Tutorial - FLEXIcontent Template - Part2: i tipi di campo
FLEXIcontent ti permette di creare campi personalizzati per ogni tipo di contenuto che si desidera utilizzare. Questo permette di forzare all'utente di inserire diverse informazioni in aree molto specifiche che posso inviare in seguito come vedo in forma. Posso anche trasformare questi campi nel criteri di ricerca e filtro ... Così con un po 'di fantasia, è possibile effettuare rapidamente tutti i modelli che si desidera e ancora una volta aprire le porte che si chiudono a sinistra Joomla.
I tipi di campi disponibili sono: checkbox, immagine checkbox, data, email, file, immagini, pulsanti radio, radio immagini pulsanti, selezionare, selezionare multipla, testo, textarea e WebLink. Basti dire che manca poco per farti felice.
Oltre ai campi personalizzati, FLEXIcontent ti dà anche accesso ad altre funzioni per ogni contenuto:
- Gestione delle versioni
- Un sistema integrato di voto
- Energia immagazzinata preferiti
- Un contatore di visite
- Gestione di parole chiave
- Assegnazione di categorie multiple ad un singolo contenuto
Tutte le sue caratteristiche, che appaiono come campi, vengono automaticamente assegnati a un tipo di contenuto al momento della creazione e dei campi del database (titolo, descrizione, autore, data di creazione, data di modifica, stato di pubblicazione)
Voglio continuare a creare il mio modello, la configurazione di alcuni campi tipici e l'aggiunta di campi personalizzati. Questo esempio è ovviamente nulla di concreto, ha solo lo scopo di illustrare le varie caratteristiche.
Sintesi dei tutorial:
- Informazioni generali campi FLEXIcontent
- I campi tipici
- I campi personalizzati e l'uso di plugin
- Crea il tuo proprio tipo di campo
- Posizionare i campi del modello
Informazioni generali campi FLEXIcontent
FLEXIcontent in, è possibile associare un campo con uno o più tipi di contenuti. Ognuno ha le proprie opzioni personalizzate campi. Infatti i tipi di campo (textarea, checkbox, list ...) vengono generati tramite un plugin specifico, quindi se volete nulla vi impedisce di creare un tipo di campo.
Per ogni tipi di campo, ci sono alcune opzioni che sono comuni:
- Etichetta: qual è il nome che verrà visualizzato (o meno) davanti ai vostri campi nel modello. Attenzione se si desidera cambiare l'etichetta del campo descrizione e desidera differenziare in base al tipo di contenuto, è preferibile in questo momento per cambiare questo valore direttamente in contesti in cui è prevista tale possibilità per questo scopo.
- Nome: il nome utilizzato per identificare i campi, è importante utilizzare solo i caratteri AZ, az e 0-9 senza spazi, perché è il nome che ci permetterà di fare riferimento il nostro campo nel modello. Per impostazione predefinita quando si crea un campo, chiamato FLEXIcontent "fieldxx" Vi esorto a cambiare per ottenere il vostro cuscinetti in seguito.
- Inviato: abilita o meno un campo. Alcuni campi (titolo, descrizione, creato, creato da, modificato l'ultima volta, sarà riveduto secondo) non può essere dépubliés perché sono necessari per la corretta versioni. Tuttavia c'è un trucco se non si desidera vengano visualizzati durante la creazione di nuovi contenuti, solo che non influenzano i campi per il tipo di contenuto in questione e il nostro problema è risolto.
- Cerca: Indica se il contenuto dei campi verranno indicizzati per una ricerca o meno.
- Ricerca avanzata: questa funzione sarà utilizzata dalla versione 1.7 FLEXIcontent che è prevista per la fine di marzo.
- Filter: Indica se i campi verrà visualizzato come un filtro nella categoria di contenuto modalità di visualizzazione. Se si desidera utilizzare questa funzione è necessario inizialmente impostare il valore su yes sui campi che si filtrano. Attenzione! solo i campi con i valori predefiniti (casella di controllo, immagine Checkbox, Select, Select multipla, Radio, Radio Immagine) può essere usato come un filtro. Allora non dimenticare di attivare i filtri entro i parametri della categoria e selezionare dall'elenco i campi appropriati.
- Livello di accesso: Il livello di accesso ai campi, i livelli di base relativi alla ACL Joomla.
- Ordina: Determina l'ordine di visualizzazione dei campi quando entrano contenuto.
- Descrizione: Specifica le istruzioni per l'uso per entrare nel campo. Allo stesso modo come per l'etichetta, se volete imparare diverse descrizioni per il campo "descrizione", imparerete nei parametri di tipo.
- Tipo: Seleziona qui i tipi che si desidera associare il vostro campo (premere Ctrl per selezionare più tipi)
- Mostra Etichetta: consente di immettere un parametro che può essere utilizzato nel modello per determinare se sia o non visualizza l'etichetta del campo.
- Prefisso e suffisso: Disponibile nella maggior parte dei campi (ma non tutti). Questi due parametri consentono la possibilità di aggiungere valore prima e dopo i contenuti dei vostri campi. È possibile aggiungere ad esempio il suffisso simbolo € se si desidera visualizzare un campo valuta. Possono essere utilizzati anche per aggiungere codice html o addirittura usarli per implementare un plugin (per vedere l'ultima parte di questo tutorial)
- Plugins specifici: Questa lista mostra tutti i plugin contenuti installate nel vostro sito Joomla, è possibile scegliere plugin specifici nella lista o lasciare vuoto per rendere il contenuto compatibile con tutti i plugin. Questa funzione è utile in alcuni casi, per evitare conflitti, schermi multipli o ridurre il carico. Tenete a mente che quando il plugin viene utilizzato su un campo, verrà automaticamente eseguito su tutti i campi del loop.
I campi tipici
Alcuni campi vengono assegnati automaticamente quando si crea un nuovo tipo, questi sono i tipi di FLEXIcontent campi.
Alcuni sono direttamente collegate al nucleo Joomla:
- Titolo: Il titolo del contenuto
- Descrizione: Qual è il contenuto del vostro articolo in Joomla. Se si vuole fare la compatibilità con i plugin Joomla contenuto, non ci vorrà si dimentica di controllare nelle impostazioni di questa finestra l'opzione "Esegui plugins contenuto".
- * Creato: Data in cui il contenuto.
- Creato da: Autore del contenuto.
- * Ultimo aggiornamento: Data ultima modifica del contenuto.
- Rivisto da: Nome utente che ha modificato il contenuto.
- Hits: Numero di volte il contenuto è stato inviato. (Per impostazione predefinita ha un suffisso di informazioni: "views")
- Tipo di documento: Il tipo di contenuto.
- Version: La versione del contenuto.
- Stato: Lo stato di pubblicazione di contenuti.
* Per i campi data, è possibile cambiare il formato di visualizzazione nelle impostazioni del settore attraverso un elenco di valori prestabiliti o creare un formato di visualizzazione personalizzato utilizzando le impostazioni di PHP strftime ( http :/ / php.net / manual / en / function.strftime.php ).
Altri campi corrispondono a caratteristiche molto specifiche di FLEXIcontent:
- Votazione:
Funzionalità di valutare da gennaio a maggio del contenuto. Votazioni è simboleggiato da una immagine 25 × 75 (com_flexicontent / attività / images / star.gif) diviso in tre sotto-immagini che rappresentano le Azioni: No selezionato, scelto e hover. È possibile creare la propria immagine, quindi modificare il percorso nei campi le impostazioni per puntare il percorso del file. Così mi rendo conto che la mia piccola immagine con palloncini, è più divertente per valutare fasi. È inoltre possibile modificare la dimensione di visualizzazione delle impostazioni predefinite di immagini a 16 pixel. - Preferiti:
Consente a un utente registrato per classificare questa pagina nei suoi preferiti. - Categorie: Memorizza le categorie in cui è classificato il contenuto. Un'opzione per selezionare il separatore che verrà illustrato più avanti in frontend (barra verticale, interruzione di riga, virgola, spazio)
- Tags: negozi tag in cui sono classificati i contenuti. Un'opzione per selezionare il separatore che verrà illustrato più avanti in frontend (barra verticale, interruzione di riga, virgola, spazio)
Campi personalizzati
Come ho affermato in precedenza FLEXIcontent ci offre molte possibilità di personalizzare la voce di visualizzare il contenuto, ma anche attraverso i campi personalizzati. Io ora, mentre riprendere il mio esempio di creazione di un modello per presentare le tappe del calcio francese, si dispone di diversi tipi di campi personalizzati. Non vorrei usare i campi per ogni set di parametri disponibili, ma attraverso l'intero tutorial mi occuperò di tutte le funzioni disponibili.
Ricorda per ogni campo per selezionare i tipi colpiti nel nostro tipo "Stadium".
- Testo:
Inizierò con l'aggiunta di mio primo campo personalizzato, voglio visualizzare l'indirizzo dello stadio. Ma non è tutto quello che mi divertirò utilizzando l'indirizzo immesso per visualizzare la posizione del mio GoogleMap palco.
Prima di tutto ho installato e attivato la versione più recente del GoogleMap plugin ( http://www.kksou.com/php-gtk2/Joomla-Gadgets/googleMaps-plugin.php # download ).
Aggiungo i miei campi con i seguenti valori:
Ho chiamato l'etichetta e il nome del campo "indirizzo", quindi a selezionare il mio tipo di campo: "Testo". Ho completato la mia descrizione deve indicare come deve informare il contenuto "Inserire l'indirizzo dello stadio con il seguente formato:. 'Civico' 'il nome della strada', 'città'"
Voglio correre il plugin GoogleMap su quel campo, così ho modificare il valore di "Esegui plugins di contenuti", indicando il valore "yes".
Io prendo il mio prefisso all'inizio del tag del mio plugin GoogleMap: {addr = GoogleMaps "
Poi il suffisso posso chiudere il mio faro e aggiungo alcuni parametri del plugin specifici: "width = 100 height = 190% = lang = it mapType G_HYBRID_MAP}
L'indirizzo che posso inserire successivamente sarà integrato direttamente come parametro per il mio plugin.
Importante! Finora non è possibile utilizzare un plugin che utilizza il carattere pipe "|" nelle impostazioni, perché genera un bug.
- Textarea
Vorrei ora aggiungere una zona che mi permetterà di inserire l'indirizzo supplementare con i seguenti valori:
Decido di non attivare l'editor HTML e ridurre l'area a cinque righe in modo da non sovraccaricare la mia pagina iniziale. (Il "Altezza della casa editrice" area corrisponde solo l'altezza in pixel del editor HTML)
- Data
Vorrei ora aggiungere il campo per registrare la data di inaugurazione dello stadio. Questo campo mi permetterà di scegliere una data in un calendario che viene visualizzato accanto i miei campi in modo dinamico.
Voglio un formato di visualizzazione che non esiste nella lista, così ho selezionare "Dimensioni personalizzate" e prendo il mio formato: "% d /% m /% Y" per visualizzare una data che sarà simile a questa '14 / 07/1979 '. I disabilita anche i valori multipli.
Vorrei aggiungere una email zome che posso capire i diversi indirizzi di contatto.
Ho chiamato il mio campo "contatto", indico le istruzioni inserite nella descrizione. Mi consentirà di valori multipli con un massimo di 5 contatti. Ho anche deciso di visualizzare i valori nel mio modello, separando da una virgola.
Attenzione, non vi è alcun controllo formato quando si immettono valori, l'utente può inserire ciò che vuole (vale a dire qualcosa di diverso indirizzo e-mail). Nel modello, FLEXIcontent semplicemente aggiungere un "mailto:".
- Weblink
Voglio visualizzare per ogni fase del mio nome e il sito ufficiale del club giocando sul prato.
Ho chiamato il mio campo "site_stade" e io ho detto nella descrizione non devono entrare nella "http://" nel mio discorso. (Anche se vedremo più avanti che gestisce automaticamente il FLEXIcontent) ho allargato un po 'le dimensioni del mio campo come un indirizzo web prenderà camera un po' di più.
Io uso anche il titolo del mio link, invece di visualizzare l'indirizzo del sito. Questo mi permetterà di mostrare il nome del club, piuttosto che il nome del suo sito.
Infine, non voglio che l'utente lascia il mio sito, se si clicca sul link, quindi ho mandato in una nuova finestra.
- Immagine
Aggiungerò ora un campo di immagine per visualizzare una foto del mio tirocinio. Prendo i seguenti parametri:
Ho chiamato il mio campo "image_stade" Mi informa quindi la descrizione dicendo che mi permettono solo file jpg e png. Decido di non visualizzare l'etichetta del campo, come per un'immagine che si suppone illustrato la mia pagina non vedo il punto.
I mostra i tipi di estensioni ammesse, attenzione, è importante inserire l'estensione in lettere minuscole e maiuscole. I limitare il mio dimensioni massime del file di 500 KB (500.000 byte).
La qualità delle miniature è il tasso di compressione non, lavorando su una grande quantità di immagine preferisco mantenere una buona qualità (possibile valore 1 -> 100)
Posso cambiare il percorso di miniature di directory per centralizzare tutte le mie immagini più tardi nella stessa directory per FLEXIcontent, posso specificare le immagini / FLEXIcontent / thumbnails
Abbiamo la possibilità di gestire una filigrana (immagine incorporato nell'immagine originale per garantire i diritti d'uso), quindi lo sfruttamento. Lascio l'opacità al 100% perché ho gestirà direttamente la trasparenza nel mio file di immagine. Posiziono il mio watermark in basso a destra.
FLEXIcontent genererà automaticamente tre tipi di thumbnails quando si caricano la nostra immagine. Possiamo quindi utilizzare successivamente nelle nostre dimensioni dell'immagine modelli diversi e quindi ottimizzare i tempi di caricamento.
Per ogni dimensione che ho impostato il mio larghezza e altezza massime. Per grandi e medie miniatura, ho lasciato la scala dell'immagine e ho deciso di incorporare i miei filigrane personalizzate che devo conservare nella seguente posizione: images / FLEXIcontent / core / watermark.png. ![]()
Per la mia piccola miniatura non userei la filigrana alle piccole dimensioni della mia immagine.
Infine è anche possibile collegare automaticamente la mia Mini con la mia immagine originale tramite un pop-up apparirà automaticamente nel mio modello. È possibile scegliere tra l'effetto Rockbox o Multibox.
- Coda
Ora voglio aggiungere una zona in cui ho potuto mettere a disposizione risorse diverse sul palco: forum di piano, servizi disponibili, brochure ... così ho aggiungere il mio tipo di zona "file" che io chiamo "risorse".
Questa zona mi permetterà di aggiungere più file automaticamente. Scegliere il tipo di separatore tra diversi file.
"Usa MIME icona 'permette di visualizzare il frontend una piccola icona di fronte al nome del file, che dipendono direttamente dal tipo MIME del file.
"Utilizzare un pulsante download", questo vi permette di visualizzare un pulsante "Download" piuttosto che un link al file. La preoccupazione è che se attivare questa funzione, non ho potuto gestire un file in modo che non mi interessa.
- Selezionare
Per ogni tappa voglio associare la musica suonata durante l'ingresso dei giocatori in campo. Userò una lista che dipenderà direttamente i file FLEXIcontent. Prima, faccio alcuni cambiamenti nelle impostazioni generali del FLEXIcontent, autorizzo dell'invio di file mp3 e poi modificare il percorso Carica "immagini al FLEXIcontent o file /". Posso installare il plugin JosDewPlayer che mi permetterà di leggere i file mp3 in modo corretto.
Ho chiamato il mio campo "inno". Posso attivare l'esecuzione plug-in sul contenuto e selezionare josdewplayer solo di ottimizzare il funzionamento.
Ho anche abilitare la rimozione degli spazi nei nomi per evitare errori nel l'indirizzo del file.
Per impostare la lettura del mio file, mi prefisso informazioni: {gioco} FLEXIcontent / immagini / files /, quindi il suffisso {/ visualizzarlo}
Voglio usare SQL per informare mia lista direttamente da FLEXIcontent file. Riempio la mia query sql:
A 2 3 | value , filename AS text Selezionare il valore come nome di file, file di testo AS DA COME fi flexicontent_files N. __ ext = "mp3" AND fi . published = 1 DOVE fi. Ext = "mp3" E fi. Edizione = 1 |
Deve eseguire una query con due campi da visualizzare, che deve necessariamente associare l'alias "valore" e "testo" che ovviamente corrisponde al valore e il testo della lista. Essere consapevoli del fatto che il valore predefinito che verrà restituita durante la visualizzazione del modello sarà "text". I filtrare i file selezionando solo gli mp3 che vengono pubblicati.
- Seleziona multipla
Vorrei associare e visualizzare i vari partner del club. Ho messo su un "Selezione multipla" di essere associato al componente di banner in Joomla in modo da poter selezionare più partner. Ho chiamato il mio campo "partner"
Userò un plugin per visualizzare il mio banner, io non dimenticate di eseguire anche i plugin di contenuti e a selezionare il mio plugin " Banner Mos 0,4 "precedentemente installato. Ho eliminare gli spazi. Prendo il mio tag prefisso "mosbanner {: id =" poi il mio suffisso "}".
Io collegare l'elenco l'elenco dei banner Joomla pubblicato, così mi giro e vado sulla mia query SQL:
A 2 3 4 | value , name AS text SELEZIONARE BID come valore, nome come testo COME FROM # __ ba bandiera showBanner = 1 DOVE ba. ShowBanner = 1 name ORDER BY ba. Nome |
Alla fine mi selezionare valori separati da virgola, perché è il carattere utilizzato dal mio plugin.
Vedremo in seguito che il risultato non è davvero quella che si desidera, e devo creare il mio proprio tipo di campo (vedere la sezione successiva)
- Casella di controllo, immagine Checkbox, pulsanti di opzione e radio picture pulsanti
Questi campi sono gestiti nello stesso modo oltre al fatto che in alcuni possiamo aggiungere immagini.
Io selezionare l'opzione "immagine Casella di controllo" e apprendere gli elementi in formato
"Etichetta Valore ::::%% immagine", i miei valori "drink, bevande :: :: wc :: boissons.gif%%% vetrine wc.gif% :: ristorante :: Ristoranti ::% Parcheggio% resto.gif parking.gif Parcheggio ::::%% :: smoking :: fumer.gif divieto di fumo "
Non mettere la percentuale doppia alla fine della lista.
Ho poi modificato il percorso per le mie immagini "immagini / FLEXIcontent / core /". E 'anche possibile controllare i valori di default, utilizzando le impostazioni predefinite. Basta catturare i "valori", separati da virgole.
I miei campi personalizzati sono ora complete.
Crea il tuo proprio tipo di campo
FLEXIcontent ti permette di creare i propri tipi di campo, possiamo immaginare di fare un campo con un contatore incrementale (+, -) o addirittura un rotolo per determinare i valori. Mi limiterò a presentare le possibilità per me perché mi limiterò a fare una copia di "selezione multipla" per trasformare il rendering che attualmente è in questa forma: In questo nuovo formato ... che voglio: [prefixe_plugin] [valore1] [separatore] [valore2] [separatore] ... [suffixe_plugin]
Un tipo di campo nella FLEXIcontent è in realtà un plugin, plugins vengono installati automaticamente nella cartella plugins / flexicontent_fields / e sono costituite da due file [nom_plugin]. Xml [nom_plugin]. Php e file di linguaggio associati.
Il file XML
Allora ho fatto una copia del selectmultiple.xml originale che rinomina selectmultiple.php. Questo file è una installazione standard di Joomla, c'è prima il quadro giuridico e la descrizione, mi modifica solo il nome del mio plugin per distinguere il plugin originale, ho aggiunto al l'autore e io aggiornare la versione:
A 2 3 4 5 6 7 8 9 10 11 | March 2009 </creationDate > <copyright > Copyright (C) 2009 Emmanuel Danan </copyright > <license > GNU/GPL Multiplo avanzato </ name> <author> Emmanuel Danan, Maxime aggiornamento Danjou (NetAssoPro) </ author> <creationDate> marzo 2009 </ creationDate> <copyright> Copyright (C) 2009 Emmanuel Danan </ copyright> <license> GNU / GPL |
I indica il nome del file del mio plugin:
12 13 14 | <Files> > selectmultiplead.php </filename > <filename "selectmultiplead" plug => selectmultiplead.php </ filename> </ Files> |
Troviamo poi i parametri del plugin. Aggiungo due parametri, il primo che io chiamo "postext_mode" che mi permetterà di dire se si usa il prefisso e suffisso di ogni valore, o solo l'inizio e la fine di tutti i valori. Il mio secondo parametro "value_mode" determina se mi mostrerà i miei valori e le mie etichette.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | > <params "standard" gruppo => > No </option > Valore "0" <option => no </ option> > Yes </option > "1" valore <option => Sì </ option> </ Param> </ Params> addpath = "/administrator/components/com_flexicontent/elements" > <params group = "group-selectmultiplead" addpath "/administrator/components/com_flexicontent/elements" => > FLEXI_NO </option > Valore "0" <option => FLEXI_NO </ option> > FLEXI_YES </option > <option Valore "1" => FLEXI_YES </ option> </ Param> > FLEXI_NO </option > Valore "0" <option => FLEXI_NO </ option> > FLEXI_YES </option > <option Valore "1" => FLEXI_YES </ option> </ Param> > FLEXI_NO </option > Valore "0" <option => FLEXI_NO </ option> > FLEXI_YES </option > <option Valore "1" => FLEXI_YES </ option> </ Param> > FLEXI_NO </option > Valore "0" <option => FLEXI_NO </ option> > FLEXI_YES </option > <option Valore "1" => FLEXI_YES </ option> </ Param> > FLEXI_FIELD_LABEL </option > Valore "0" <option => FLEXI_FIELD_LABEL </ option> > FLEXI_FIELD_VALUE </option > Valore "1" <option => FLEXI_FIELD_VALUE </ option> </ Param> > FLEXI_SPACE </option > Valore "0" <option => FLEXI_SPACE </ option> > FLEXI_LINE_BREAK </option > <option Valore "1" => FLEXI_LINE_BREAK </ option> > FLEXI_PIPE </option > Valore "2" <option => FLEXI_PIPE </ option> > FLEXI_COMMA </option > <option "3" valore => FLEXI_COMMA </ option> > FLEXI_FIELD_TAG_CUSTOM </option > "4" value <option => FLEXI_FIELD_TAG_CUSTOM </ option> </ Param> </ Params> |
Nell'ultima parte del file xml, posso caricare i miei file di lingua (che sono anche una copia dell'originale), aggiungo i miei file in ciascuna delle seguenti variabili: FLEXI_FIELD_VALUE_MODE, FLEXI_FIELD_VALUE_MODE_DESC, FLEXI_FIELD_VALUE, FLEXI_FIELD_POSTEXT_MODE, FLEXI_FIELD_POSTEXT_MODE_DESC.
58 59 60 61 62 | <languages> > en-GB.plg_flexicontent_fields_selectmultiplead.ini </language > tag <language "en-GB" => en-GB.plg_flexicontent_fields_selectmultiplead.ini </ language> > fr-FR.plg_flexicontent_fields_selectmultiplead.ini </language > tag <language "fr-FR" => en-FR.plg_flexicontent_fields_selectmultiplead.ini </ language> </ Lingue> </ Install> |
Il file di PHP
Il file è una classe composta di cinque eventi:
- onDisplayField: visualizzare il campo del contenuto di input
- onDisplayFieldValue: Visualizzazione del campo formattato per il frontend
- onBeforeSaveField: Formatta il valore del campo prima della registrazione
- onAfterSaveField: Non ancora utilizzato, per ora, ma nel prossimo futuro consentirà di interazioni con altri componenti.
- onDisplayFilter: Visualizza i filtri nella visualizzazione della classe template. Il valore predefinito è liste.
Da parte mia mi limito a cambiare il onDisplayFieldValue evento da aggiungere condizioni che dipendono i miei 2 nuovi parametri.
Comincio modificando il nome della mia classe e io chiamo il mio costruttore: plgFlexicontent_fieldsSelectmultiplead.
E poi nella prima riga di ogni evento, ho modificato il codice come segue:
A
| $field -> field_type != 'selectmultiplead' ) return ; if ($ field -> field_type = 'selectmultiplead'!) return; |
Ho quindi aggiunto le condizioni nel mio codice e ho anche tolto i miei separatori in modo da non creare un bug con il mio plugin.
A 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | function onDisplayFieldValue ( & $field , $item , $values = null , $prop = 'display' ) { // execute the code only if the field type match the plugin type if ( $field -> field_type != 'selectmultiplead' ) return ; $values = $values ? $values : $field -> value ; // some parameter j'ajoute mes deux nouveaux je retire dans les séparateurs le switch ( $separatorf ) { case 0 : $separatorf = ' ' ; break ; case 1 : $separatorf = '<br ' ; } if ( $posttext ) { $posttext = $remove_space ? $posttext : ' ' . $posttext ; } if ( $sql_mode ) { // SQL selon qu'on décide d'afficher la valeur ou l'étiquette if ( $value_mode == 0 ) { $thevalue = $result -> text ; } else { $thevalue = $result -> value ; } // selon qu'on décide d'utiliser le plugin pour toutes les valeurs ou pour l'ensemble des Elements mode // initialise selon qu'on décide d'afficher la valeur ou l'étiquette if ( $value_mode == 0 ) { $thevalue = $listarray [ 1 ] ; } else { $thevalue = $listarray [ 0 ] ; } // selon qu'on décide d'utiliser le plugin pour toutes les valeurs ou pour l'ensemble des selon qu'on décide d'utiliser le plugin pour toutes les valeurs ou pour l'ensemble des |
// some parameter shortcuts
$remove_space = $field->parameters->get('remove_space', 0) ;
$pretext = $field->parameters->get('pretext', ») ;
$posttext = $field->parameters->get('posttext', ») ;
$field_elements = $field->parameters->get('field_elements', ») ;
$sql_mode = $field->parameters->get('sql_mode', 0) ;
$separatorf = $field->parameters->get('separatorf') ;
$opentag = $field->parameters->get('opentag', ») ;
$closetag = $field->parameters->get('closetag', ») ;
$value_mode = $field->parameters->get('value_mode', ») ;
$postext_mode = $field->parameters->get('postext_mode', ») ;
switch ($separatorf) {
case 0:
$separatorf = ' ';
break;
case 1:
$separatorf = '<br />';
break;
case 2:
$separatorf = '|';
break;
case 3:
$separatorf = ',';
break;
case 4:
$separatorf = $closetag . $opentag;
break;
default:
$separatorf = ' ';
break;
}
if ($pretext) {
$pretext = $remove_space ? $pretext : $pretext . ' ';
}
if ($posttext) {
$posttext = $remove_space ? $posttext : ' ' . $posttext;
}
if ($sql_mode) { // SQL mode
$db = &JFactory::getDBO();
$query = preg_match('#^select#i', $field_elements) ? $field_elements : »;
$db->setQuery($query);
$results = $db->loadObjectList();
if (!$results) {
$field-> {
$prop} = »;
Else {}
$display = array();
foreach($results as $result) {
for($n = 0, $c = count($values); $n < $c; $n++) {
if ($result->value == $values[$n]) {
if ($value_mode == 0) {
$thevalue = $result->text ;
Else {}
$thevalue = $result->value ;
}
if ($postext_mode == 0) {
$display[] = $pretext . $thevalue . $posttext;
Else {}
$display[] = $thevalue ;
}
}
}
}
}
} else { // Elements mode
// initialise property
$listelements = explode( »%% « , $field_elements);
$listarrays = array();
foreach ($listelements as $listelement) {
$listarrays[] = explode( »:: », $listelement);
}
$display = array();
foreach ($listarrays as $listarray) {
for($n = 0, $c = count($values); $n < $c; $n++) {
if ($values[$n] == $listarray[0]) {
if ($value_mode == 0) {
$thevalue = $listarray[1];
Else {}
$thevalue = $listarray[0];
}
if ($postext_mode == 0) {
$display[] = $pretext . $thevalue . $posttext;
Else {}
$display[] = $thevalue ;
}
// end of modification
}
}
}
}
$field-> {$prop} = implode($separatorf, $display);
if ($postext_mode == 1) {
$field-> {$prop} = $pretext . $field-> {$prop} . $posttext;
}
$field-> {$prop} = $opentag . $field-> {$prop} . $closetag;
}
Une fois toutes mes modifications effectuées je n'ai plus qu'à créer mon fichier zip afin de réaliser le package de mon plugin que je pourrais installer via Joomla.
Vous pouvez télécharger l'exemple que j'ai réalisé ici : plg_flexicontent_selectmultiplead .
Je vais donc changer maintenant mon type de champ pour mon champ « partenaires » afin de lui affecter mon nouveau type : « Select Multiple Advanced ». Au niveau des options pour « Type d'information à afficher (frontend) », je sélectionne « valeur », puis pour « Multi Suffixe, préfixe » je le laisse sur « non ».
Positionner les champs dans le template
Dans ce dernier chapitre de la 2ème partie du tutoriel de la créations de template sous FLEXIcontent, je vais vous montrer comment positionner ses champs dans son propre template via l'interface du back office.
Je me rends dans la section Template de FLEXIcontent puis au niveau de la ligne de mon template « Stade » je clique sur l'icône associé à la Vie Item.
Le positionnement des champs se fait alors par un simple glisser/déposer. Je met en place mes champs de la manière suivante :
Dans une prochaine version de FLEXIcontent il sera également possible de créer ses propres zones directement via l'interface graphique… plutôt intéressant.
Je vous montrerez également dans la quatrième partie de ce tutoriel comment insérer des champs fixes directement dans le template.
Questo è tutto per questa volta in parte successiva mi toccherà la parte della creazione di contenuti attraverso il nostro tipo personalizzato . Questo vi permetterà di visualizzare in anteprima il layout dei campi diversi e la loro modalità di inserimento.














Il 27/01/2010 alle 20:51, NetAssoBlog | Tutorial - FLEXIcontent Template - Parte 1: struttura , ha dichiarato:
[...] Part2: I tipi di campo disponibili per creare un modello [...]