Joomla.it Forum
Non solo Joomla... => Sviluppo => : ilo 29 May 2011, 13:39:58
-
ciao,
sto creando un modulo che mostri le ultime notizie di una determinata categoria (tipo flash news)
la differenza sta nella visualizzazione che è specifica per il mio sito (visto che il modulo è un pò incastrato ;D )
ora ho tutti i dati che mi servono recuperati dal database. devo solo più creare il link all'articolo e mi crea problemi
la struttura del link è tipo questa:
<url-sito>/index.php?option=com_content&view=article&id=8&Itemid=115
ora l'id è l'id dell'articolo, ma cos'è l'Itemid?? ho notato che cambia e sembra un progressivo...ma come lo recupero?
ho anche il dubbio che attivando l'impostazione SEF poi mi crei problemi quindi
come faccio a capire se l'impostazione SEF è attiva o no?
grazie,
ciao
-
itemid in pratica indica la pagina, cioè la diversa combinazione di moduli e voci di menù che genera una pagina html in un modo rispetto all'altro...
se sbagli itemid potrebbe succedere che il modulo tale che avevi settato per apparire o meno con la tale voce di menù non rispetta più le tue decisioni..
poi come recuperarlo non saprei,
sei certo che devi procedere a livello di codice php e non di solo css?
-
come fai a creare un modulo per gli articoli ignorando l'item id? .. vuol dire che non consideri qualcosa quindi aspettati magari un ottimo funzionamento da solo ma con problemi a coesistere (infatti già ne hai con gli url SEF)
Se devi modificare qualcosa che già esiste non serve riscrivere tutto ma basta un override del modulo nel template
M.
-
io l'itemid non lo sto ignorando...sto cercando di capire cos'è
se per override intendi modifica solo dello stile e quindi solo del foglio css non mi basta
devo aggiungere codice javascript, è per questo che ho creato un nuovo modulo
ho provato a guardare il codice del modulo flash news, ma non l'ho capito completamente..cioè usa tante funzioni di joomla che non so dove trovarne la documentazione
domanda per cui mi ucciderete :) ci sono le API di joomla da qualche parte?
EDIT: ok mi uccido da solo perchè bastava googlare joomla api (è che mi è venuto in mente adesso che poteva esserci una documentazione diversa dal wiki...scusate :( )
-
ok allora il problema del link l'ho risolto usando la classe JRoute
require_once JPATH_SITE.'/components/com_content/helpers/route.php';
........... <altra roba> ..........
foreach($news as $k=>$new) {
$slug = $new->id.':'.$new->alias;
$catslug = $new->catid.':'.$new->category_alias;
$newUrl = JRoute::_(ContentHelperRoute::getArticleRoute($slug, $catslug));
ora potevo evitarmi tutto il lavoraccio che ho fatto facendo l'override? cioè io devo, oltre allo stile, aggiungere delle funzioni javascript (per essere precisi uso jquery) per aggiungere degli effetti tipo fade o cose simili...con l'override risolvevo?
grazie per le risposte :D
-
http://www.sanjeevshrestha.com.np/2009/05/using-jquery-with-joomla/
http://blog.joocode.com/cms/joomla/gli-output-override-di-joomla/
M.
-
ok grazie per i 2 link
ho dato una lettura veloce e da quello che ho capito l'override modifica solo la visualizzazione del modulo (la parte V dell'MVC) ma non aggiunge funzioni.
invece per jquery io l'ho inserito nel modulo semplicemente usando
$document = &JFactory::getDocument();
$document->addScript(JPATH_SITE.’/media/system/js/jquery.js’ );
senza andare a modificare il file behavior.php come dice la guida questo potrebbe comportare eventuali futuri problemi o conflitti con altri moduli??? non vuole semplicemente dire che importo jquery solo per il modulo in cui lo uso?
-
ora potevo evitarmi tutto il lavoraccio che ho fatto facendo l'override? cioè io devo, oltre allo stile, aggiungere delle funzioni javascript (per essere precisi uso jquery) per aggiungere degli effetti tipo fade o cose simili...con l'override risolvevo?
direi proprio di sì, hai fatto un sacco di lavoro inutile secondo me.
per aggiungere un semplice script potevi benissimo fare un 'override come ti avevano consigliato, oppure bastava fare una copia del mod_latestnews ad esempio ed applicarci lo script.
.....ma tutto serve ad imparare ;)
-
eheh vabbè almeno adesso è mio ;)
ma quindi con l'override posso metterci anche codice javascript? cioè lo aggiungo come se fosse una normale pagina html?
alla fine è venuto simile al mod_latestnews e la parte più difficile che ho dovuto fare è stata il link quindi amen :D
-
ma quindi con l'override posso metterci anche codice javascript? cioè lo aggiungo come se fosse una normale pagina html?
certo, basta inserire tutto nella "view" del modulo, tanto lo script va ad agire sull' HTML del modulo.
-
mmm buono a sapersi....allora mi sa che modifico quello esistente così sono sicuro che funzioni :D
un'ultima cosa nella cartella modules non trovo la cartella mod_latestnews l'hanno tolto nella versione 1.6? anche se da back-end si può inserire.
ho guardato nelle cartelle di altri moduli e non c'è la cartella views devo modificare il file nella cartella tmpl?
-
ci sta, ora si chiama mod_articles_latest
;)
-
ok grazie...quindi per la modifica vado a cambiare il file mod_articles_latest/tmpl/default.php giusto?
scusate la niubbaggine è che di solito le cose me le faccio invece di cercarle il che mi fa perdere un sacco di tempo a volte :-[ :-\