#1 TopoMotoV3X Lunedì, 24 Gennaio 2011, 19:24
Buonasera forum, sto cercando di creare una mod ma sono arrivato al punto d'usare metodi "Sporchi" per avere il risultato che volevo, e non credo sia una cosa presentabile...
Parliamo di PHP
Ho un upload file, e devo fare in modo che un utente possa cambiare titolo al file
Tutto questo vorrei che fosse specificato già nella pagina php, perche ora io l'ho fatto ma il tutto viene assegnato tramite form nel tpl finale, cioè input1 contiene il file caricato completo di bbcode, input2 contiene la stampa del nome originale e permette di modificarlo, input3 contiene il bbcode /url
Esempio
input1 è nascosto = [url=http://localhost/forum/downloads/file.zip]
input2 è visibile = input text contenente il nome modificabile del file es: MioFile
input3 è nascosto = [/url]
Tramite il tasto "Send" invio input1, input2, input3 al topic.
[url=http://localhost/forum/downloads/file.zip]MioFile[/url]
Mi fate capire come posso specificare in php tutto questo?
Grazieee
Versione di IP: 1.3.0.53b
Server: Linux
____________
Guida ad Icy Phoenix
Mobile Modding Community
-

TopoMotoV3X
-
Staff
 AutoGatto è gay
-
- Età: 38
- Registrato: Agosto 2007
- Residenza: Cagliari
- Messaggi: 741
-
#2 FedericoBiccheddu Lunedì, 24 Gennaio 2011, 19:48
Io non ci ho capito nulla!
E' una cosa inerente ad IcyPhoenix? Se si, andrebbe spostato nella zona MOD.
Vuoi che una volta caricato il file, venga fatto come l'upload immagine di qua tramite pop up, che ti genera il bbcode e la possibilità di inserirlo nel topic?
Versione di IP: 1.3.15 (αlphα)
Server: Linux
____________ Per favore inserisci nel tuo Profilo la versione di Icy Phoenix e il Server utilizzato.
-

FedericoBiccheddu
-
Veterano

-
- Età: 20
- Registrato: Dicembre 2007
- Residenza: Sant'Antioco
- Messaggi: 2593
-
#3 TopoMotoV3X Lunedì, 24 Gennaio 2011, 19:57
Diciamo che per ora è solo un groviglio di php.
L'upload img di icy inserisce il link immagine tra i bbc IMG, io sto facendo una cosa del genere ma con la possibilità di cambiare il titolo del link... una specie di mix tra l'upload IMG e il js per l'inserimento di un url
Versione di IP: 1.3.0.53b
Server: Linux
____________
Guida ad Icy Phoenix
Mobile Modding Community
-

TopoMotoV3X
-
Staff
 AutoGatto è gay
-
- Età: 38
- Registrato: Agosto 2007
- Residenza: Cagliari
- Messaggi: 741
-
#4 FedericoBiccheddu Lunedì, 24 Gennaio 2011, 20:33
Quindi vuoi che faccia come l'upload delle immagini, solo che prima di cliccare nell'inserimento del bboce, ti dia la possibilità di cambiare il "titolo" nel bbcode?
Versione di IP: 1.3.15 (αlphα)
Server: Linux
____________ Per favore inserisci nel tuo Profilo la versione di Icy Phoenix e il Server utilizzato.
-

FedericoBiccheddu
-
Veterano

-
- Età: 20
- Registrato: Dicembre 2007
- Residenza: Sant'Antioco
- Messaggi: 2593
-
#5 TopoMotoV3X Lunedì, 24 Gennaio 2011, 20:53
Ti faccio vedere:
(Carico il file)
( Una volta caricato il file mi si apre questa pagina:)
In fine invio il file al topic, col titolo modificato o con quello originale, che sarebbe $filename
Ora... io tutto questo l'ho già fatto, però non è del tutto in php.
L'url di chiusura lo sto inviando tramite form, in upload_file.php non è specificato che dopo la modifica di $filename ci dev'essere questo url, se non ti è chiaro adesso contattami su msn, così lo finiamo e lo postiamo.
Versione di IP: 1.3.0.53b
Server: Linux
____________
Guida ad Icy Phoenix
Mobile Modding Community
-

TopoMotoV3X
-
Staff
 AutoGatto è gay
-
- Età: 38
- Registrato: Agosto 2007
- Residenza: Cagliari
- Messaggi: 741
-
#6 FedericoBiccheddu Martedì, 25 Gennaio 2011, 01:15
Ho capito! Tu vuoi che venga caricato il file con il nome scelto e salvarlo nel server? Se si, mi serve il sorgente per poter vedere come lo hai strutturato e modificarlo!
Così, senza snippet, posso solo dirti COME FARE, ma non il codice, quindi:
- Nella pagina di upload, aggiungi un campo di testo ulteriore a quello del file, che sarà il nome da dare al file caricato e mettiamo come nome (name="") dell'input: nome_file.
- Siccome invii tramite POST il file, avrai nell'array $_POST, la chiave nome_file e come valore quello inserito nel campo di testo, per esempio nome-mio-del-file (ovviamente l'utente metterà spazi ed altri caratteri non ammessi, quindi dovrai utilizzare una funzione per pulire il nome, oppure imporgli di usare solo caratteri a-z, A-Z, 0-9 ed eventuali caratteri come il punto, l'underscore, il trattino ed altri che non incasinano il webserver).
- Nell'array $_FILES c'è una chiava con "name" di cui dovrai cambiare il valore con il contenuto inviatro tramite POST di nome_file.
Poi in base a come hai strutturato lo script aggiungi, nel caso, una condizione che se il contenuto di nome_file è vuoto, lasci il nome del file caricato ed ovviamente "pulito".
In queste condizioni, più di questo non posso fare/dire.
Versione di IP: 1.3.15 (αlphα)
Server: Linux
____________ Per favore inserisci nel tuo Profilo la versione di Icy Phoenix e il Server utilizzato.
-

FedericoBiccheddu
-
Veterano

-
- Età: 20
- Registrato: Dicembre 2007
- Residenza: Sant'Antioco
- Messaggi: 2593
-
#7 Mighty Gorgon Martedì, 25 Gennaio 2011, 16:33
Nei files upload.php e upload_ajax.php della nuova versione di sviluppo trovi già pronto del codice che ti può essere utile.
Versione di IP: 3.X
Server: Linux
____________ Luca
-

Mighty Gorgon
-
I wanna love you tender
-
- Età: 37
- Registrato: Maggio 2007
- Residenza: Borgo San Michele
- Messaggi: 1608
-
#8 TopoMotoV3X Mercoledì, 26 Gennaio 2011, 01:03
Scusate il ritardo, allora Fede, stiamo confondendo il titolo del link con il nome del file, tutta la parte che lavora per il file caricato è OK, quindi spazi, maiuscole, caratteri speciali etc..
L'utente che carica il file sul server deve soltanto poter aggiungere un titolo per il link, quindi se il file caricato si chiama: miofile.zip, l'utente deve poter presentare il link come preferisce... ES: Download.
Come hai visto, tutto questo è già fatto, c'è soltanto da sistemare eventuali piccoli errori nel codice, che io non vedo, ma che ricuramente potrebbero esser ottimizzati.
ti passo la mod via mp e mi dirai...
PS: prima di tutto provala così com'è, poi vedi se possiamo ottimizzarla.
@ Boss
Ciao capo, scarico i file che mi hai consigliato e vedo cosa posso fragare.
lo so.. hai ragione, dobbiamo lavorare sulla versione di sviluppo, dopo questa mod passo alla nuova versione
Versione di IP: 1.3.0.53b
Server: Linux
____________
Guida ad Icy Phoenix
Mobile Modding Community
-

TopoMotoV3X
-
Staff
 AutoGatto è gay
-
- Età: 38
- Registrato: Agosto 2007
- Residenza: Cagliari
- Messaggi: 741
-
#9 FedericoBiccheddu Mercoledì, 26 Gennaio 2011, 02:20
Sarò di coccio io, ma non riesco proprio a capire cosa ci sia da fare se non ci sono problemi in quello che tu vuoi fare.
Se il problema non sta nel caricamento del file, ma nell'inserimento del bbcode, cosa non riesci a fare se nello screen #3 sembra faccia quell che vuoi?
Oppure mi pare di capire che tu vuoi che venga inserito:
[url=url_file_caricato]TESTO_PERSONALE[/url]
Dove TESTO_PERSONALE, di default, è url_file_caricato, vero?
Versione di IP: 1.3.15 (αlphα)
Server: Linux
____________ Per favore inserisci nel tuo Profilo la versione di Icy Phoenix e il Server utilizzato.
-

FedericoBiccheddu
-
Veterano

-
- Età: 20
- Registrato: Dicembre 2007
- Residenza: Sant'Antioco
- Messaggi: 2593
-
#10 Mighty Gorgon Mercoledì, 26 Gennaio 2011, 11:51
Devi usare una funzione JavaScript sull'evento "onsubmit" del form.
Hai almeno due modi per creare la funzione:
- Crei un prefisso ed un suffisso ed in mezzo ci aggiungi la nuova stringa... tipo quanto viene fatto in bbcb_mg.js:
var title = prompt(s_url_title_insert, s_url_title_insert_tip);
if (title == null)
{
return;
}
else if (!title)
{
var text = "[url]" + url + "[/url]";
}
else
{
var text = "[url=" + url + "]" + title + "[/url]";
}
- Oppure usi la funzione "replace" di JS per rimpiazzare il titolo che hai memorizzato nella variabile con il nuovo titolo.
In entrambi i casi hai bisogno di INPUT HIDDEN con i paramentri che ti servono ed a cui hai associato un ID, così puoi leggerli tranquillamente tramite JS usando la sintassi del tipo:
document.getElementById('url_prefix').value
Non ho visto il tuo codice... però queste dovrebbero essere le regole da seguire.
Versione di IP: 3.X
Server: Linux
____________ Luca
-

Mighty Gorgon
-
I wanna love you tender
-
- Età: 37
- Registrato: Maggio 2007
- Residenza: Borgo San Michele
- Messaggi: 1608
-
#11 TopoMotoV3X Mercoledì, 26 Gennaio 2011, 20:07
Si, c'è un modo migliore di quello che ho usato..
Sul php ho l'array per il template così:
'FILE_URL' => '[url=' . $server_path . substr($upload_dir, strlen(IP_ROOT_PATH)) . $filename . '.' . $extension . ']',
'CUSTOM_NAME' => $filename,
'L_CUSTOM_NAME_DESC' => $lang['Custom_Name_Desc'],
'L_CUSTOM_NAME' => $lang['Custom_Name'],
'C_URL' => '[/url]',
e sul template:
{L_CUSTOM_NAME_DESC}<br /><br />
<b>{L_CUSTOM_NAME}</b>: <input name="Link_Url" value="{FILE_URL}" type="hidden" /><input class="post" name="CustomName" size="80" maxlength="100" value="{CUSTOM_NAME}" type="text" onclick="this.form.CustomName.focus(); this.form.CustomName.select();"/><input type="hidden" name="C_Url" value="{C_URL}"/>
con l'linvio e la chiusura del popup:
<input type="button" class="mainoption" value="{L_INSERT_LINK}" onclick="bbcb_ui_vars_reassign_start(); upload_file(this.form.Link_Url.value); upload_file(this.form.CustomName.value); upload_file(this.form.C_Url.value);bbcb_ui_vars_reassign_start();" />
<input type="button" class="liteoption" value="{L_CLOSE_WINDOW}" onclick="window.close();" />
Versione di IP: 1.3.0.53b
Server: Linux
____________
Guida ad Icy Phoenix
Mobile Modding Community
-

TopoMotoV3X
-
Staff
 AutoGatto è gay
-
- Età: 38
- Registrato: Agosto 2007
- Residenza: Cagliari
- Messaggi: 741
-
#12 Mighty Gorgon Giovedì, 27 Gennaio 2011, 09:28
L'ultima parte non va bene...
Ti serve qualcosa di questo tipo:
<input type="button" class="mainoption" value="{L_INSERT_LINK}" onclick="bbcb_ui_vars_reassign_start(); emoticon_sc(this.form.Link_Url.value + this.form.CustomName.value + this.form.C_Url.value); bbcb_ui_vars_reassign_end();" />
Per usare la funzione emoticon_sc devi aver incluso il JS templates/common/js/bbcb_mg_small.js, che onestamente non ricordo se era incluso anche in IP 1.3.
Versione di IP: 3.X
Server: Linux
____________ Luca
-

Mighty Gorgon
-
I wanna love you tender
-
- Età: 37
- Registrato: Maggio 2007
- Residenza: Borgo San Michele
- Messaggi: 1608
-
#13 TopoMotoV3X Giovedì, 27 Gennaio 2011, 18:00
Non ho trovato la funzione su IP 1.3, quindi l'ho fregata, inclusa sul tpl e aggiunto le parti che servivano.. credo sia così:
<script type="text/javascript">
function upload_file_sc(text)
{
var txtarea = opener.document.forms[form_name].elements[text_name];
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos)
{
if (opener.baseHeight != txtarea.caretPos.boundingHeight)
{
txtarea.focus();
opener.storeCaret(txtarea);
}
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
txtarea.focus();
}
else if ((txtarea.selectionEnd | txtarea.selectionEnd == 0) && (txtarea.selectionStart | txtarea.selectionStart == 0))
{
mozInsert_sc(txtarea, text, "");
}
else
{
txtarea.value += text;
txtarea.focus();
}
}
function mozInsert_sc(txtarea, openTag, closeTag)
{
if (txtarea.selectionEnd > txtarea.value.length)
{
txtarea.selectionEnd = txtarea.value.length;
}
var startPos = txtarea.selectionStart;
var endPos = txtarea.selectionEnd + openTag.length;
txtarea.value = txtarea.value.slice(0, startPos) + openTag + txtarea.value.slice(startPos);
txtarea.value = txtarea.value.slice(0, endPos) + closeTag + txtarea.value.slice(endPos);
txtarea.selectionStart = startPos + openTag.length;
txtarea.selectionEnd = endPos;
txtarea.focus();
}
function bbcb_ui_vars_reassign_start()
{
form_name = ((typeof(form_name_thisform) != "undefined") && (form_name_thisform != null) && (form_name_thisform != '')) ? form_name_thisform : form_name;
text_name = ((typeof(text_name_thisform) != "undefined") && (text_name_thisform != null) && (text_name_thisform != '')) ? text_name_thisform : text_name;
}
function bbcb_ui_vars_reassign_end()
{
form_name = ((typeof(form_name_original) != "undefined") && (form_name_original != null) && (form_name_original != '')) ? form_name_original : form_name;
text_name = ((typeof(text_name_original) != "undefined") && (text_name_original != null) && (text_name_original != '')) ? text_name_original : text_name;
}
</script>
Ora mi pare che l'inserimento sia ok, sinceramente m'aspettavo più errori di quelli che ho fatto... ora mi devo preoccupare dei permessi che ti dicevo giorni fa.
Versione di IP: 1.3.0.53b
Server: Linux
____________
Guida ad Icy Phoenix
Mobile Modding Community
-

TopoMotoV3X
-
Staff
 AutoGatto è gay
-
- Età: 38
- Registrato: Agosto 2007
- Residenza: Cagliari
- Messaggi: 741
-
Questo argomento è stato utile?
Questo argomento è stato utile?
| Condividi Argomento |
|
 | | Inserisci un link per questo argomento |
| URL |
|
| BBCode |
|
| HTML |
|
Lista Permessi
|
Non puoi inserire nuovi Argomenti Non puoi rispondere ai Messaggi Non puoi modificare i tuoi Messaggi Non puoi cancellare i tuoi Messaggi Non puoi votare nei Sondaggi Non puoi allegare files Non puoi scaricare gli allegati Non puoi inserire eventi calendario
|
|
|
|
|