Joomla.it Forum
Non solo Joomla... => Database => : deadwolf 28 Feb 2011, 01:53:14
-
Sera a tutti... ho già provato a chiedere da altre parti, ma non ho ricevuto molte risposte...
Io ho creato dei campi nella tabella "content" (quindi nella taballa dove risiedono tutte le informazioni dei contenuti).. questi campi vengono creati e compilati da chronoform.
Ora vorrei che questi venissero visualizzati negli articoli, ma non so qualle file modificare per midificar ela struttura degli articoli o meglio se esiste un plugin che mi permetta di automatizzare il tutto selezionando addirittura categorie..
Anche se si dovesse metter mano al codice in php, piuttosto lo faccio.. ma mi servirebbe almeno capire se esiste qualche plugin che lo faccia di suo o altriemnti un esempio di codice che mi stampi anche solo un campo e sapere in che file metterlo (credo ora mai di aver capito che la cartella sia content ma non saprei se nella cartella templates o direttamente da components/com_content(ho un po' di confusione))
Scusate e grazie per la pazienza..
-
sul template puoi fare l'override delle view degli articoli, tuttavia per fare un lavoro pulito verifica che i models carichino i tuoi dati (adesso non ricordo se le query degli articoli sono SELECT * oppure SELECT [campi]). comunque se fai un po' di prove non è difficile.
-
ok quindi devo fare un override modificando /templates/"nome_template"/html/com_content/article/default.php ?
E' possibile reperire una guida dove possa prendere spunto da codici oppure che qualcuno mi possa spiegare bene i passaggi? Riscusatemi, davvero. Sono 3 giorni che ci provo.
P.s.: erro o questa guida potrebbe fare al caso mio?
http://www.kavdesign.net/blog/programming/how-to-add-additional-field-in-the-joomla-article-administrator-page/
-
la guida va bene solo che ti dice di scrivere direttamente dentro com_content (il componente che gestisce gli articoli) va benissimo, però considera che se aggiorni da una versione all'altra di Joomla potrebbe sovrascriverti le modifiche che hai fatto, mentre con l'override staresti più tranquillo, cmq secondo me segui quella guida mi sembra abbastanza chiara
Ciao e in bocca al lupo
-
adesso non ricordo se le query degli articoli sono SELECT * oppure SELECT [campi]).
---------------------------------------------
e JTable a che serve?
...solo che facendo queste "marocchinate" non puoi ne aggiungere i campi nelle tables perchè ti darebbero errori ne usare le tables perchè non leggerebbero i campi.
Se joomla ha componenti moduli plugin e un pattern mvc un senso ci sarà...
Il modo corretto è far inserire ad un form, che può essere anche cronoform, dei dati aggiuntivi in una tabella in relazione con l'articolo.
Dopodichè devi sviluppare un componente e un plugin per gestire il tutto.
-
purtroppo non ho conoscenze tali d apotermi permettere di creare componenti, moduli e plugin.. e non ho nemmeno ora come or ail tempo per studiarmi come crearli..
seriamente uso il termine: "purtroppo" perchè non mi dispiacerebbe affatto.
Da uan parte uso chronoform dall'altra mi vedo costretto a fare ste"marocchinate" per visualizzare il contenuto nell'articolo.. sperando di riuscirci.
la guida va bene solo che ti dice di scrivere direttamente dentro com_content (il componente che gestisce gli articoli)
Se avesis un template quale artisteer non mi causerebbe problemi vero?
-
ok mau_develop tu hai perfettamente ragione sul JTable, mvc e tutto il discorso teorico, però ti contraddico sia sul fatto di definirle marocchinate e soprattutto che non puoi usarle ....
Sono andato a controllare il model di article e recita:
SELECT a.* [...] FROM #__content AS a
(component/models/article -> funzione _loadArticle)
quindi estrae tutti i campi di un articolo per cui dal lato pubblico proprio non ci sono problemi... per il lato amminstrativo puoi usare chronoform o quello che ti pare, ma si possono anche aggiungere campi a mano l'mvc è fico per questo: il codice è scritto bene, si legge bene, e soprattutto si modifica bene!
Infine io penso che l'importante è il risultato non come ci si arriva :)
P.S.
il template non è un problema basta che non ci sia l'override altrimenti devi modificare quello.
-
...ricordati anche di non aggiornare mai il cms...
l'mvc e il framework di joomla servono per aggiungere "cose" che possono andare in aggiunta o modificare le esistenti.
Comunque sono felice anche se ci sono persone che dissentono ... non penso di possedere la verità ed è giusto anche che ognuno faccia un po' quel che crede, in fondo una cosa la condivido... col codice puoi fare tutto.
M.
-
nel mi caso credo che il template sia un problema...
ho provato ad aggiungere il codice
<?php echo $this->escape($this->article-> custom_field); ?>
Nella linea 25
Esattamente così:
<?php if (!$this->print) : ?>
<?php echo $this->escape($this->article-> custom_field); ?>
<?php if ($this->params->get('show_pdf_icon')) : ?>
Ma se aggiorno l'articolo, sia con lo stesso browser che con altri, non mi da nulla.. pur non avendo nessuna field con il nome custom_fiel... come da guida non dovrebbe restituirmi sulla pagina: "custom_field" ?
Duqnue fosse un problema di template.. come agisco con l'override da template? posso usare lo stesso codice? (no non credo)
...ricordati anche di non aggiornare mai il cms...
sempre tenuto presente, grazie
-
Al massimo ti stampa un notice $this->article è un oggetto StdClass. Ti restituirebbe warning o notice non ricordo, se fosse un array, mentre quello che dici tu è se ti riferisci a costanti non inizializzate per cui 'assume' che sia il nome della costante stessa (non senza un notice prima).
però questo è php non è joomla...
per vedere se stai modificando il file giusto scrivi come prima riga
<?php echo "SBIRULO"; ?>
se appare SBIRULO stai modificando il file giusto :)
Detto questo il mio consiglio è:
tu provaci e sbattici la testa perché tutto fa brodo per imparare però se ti accorgi che ti mancano le nozioni di php o non hai idea di come è strutturato Joomla forse è meglio se installi un componente che faccia quello che ti serve tipo k2 o jseblod o quello che è ...
-
Scusa ho letto solo ora...
Comunque sono riuscito... ho eliminato il file
/templates/"nome_template"/html/com_content/article/default.php
(sperando che dalla "marocchina" non sia diventato un lavoro alla "zingara")
E mi ha visualizzato il tutto (la tabella che volevo fare)... con all'interno i campi:
<?php echo $this->escape($this->article-> custom_field); ?>
perfetto
Ora sorge un'ulteriore problema però...
La home page...
Adesso tutto quel che è un'articolo mi riporta una tabella...
Così anche la home ha una tabella..
Possibile conoscere il codice che viene usato in chronoform per: Where SQL?
Così da poter dirgli quali debba farmi vedere e quali no?
Ipotizzo una sorta di:
<?php if ($this->escape($this->article-> catid)->get = '1' )
echo
tutto quel che voglio far vedere
endif; ?>
Ma non mi sembra funzionare molto.. qualche aiutino?
-
RISOLTO!!!!!!
Dopo 2 giorni ho trovato la soluzione!!!
Posto lo script nel caso in cui dovesse mai servire a qualcuno:
<?php if (JRequest::getInt( 'catid' ) >="1") : ?>
Inserire quel che si vuol far vedere in tutti gli articoli di categoria uguale o superiore ad 1
<?php else : ?>
Inserire quello che si vuol far vedere negli articoli di categoria uguale a 0
<?php endif; ?>
Avessi mai studiato prima d'ora il php ci avrei impiegato molto di meno. Ad ogni modo ringrazio tutti per l'aiuto iniziale... possiamo mettere [RISOLTO]