Joomla.it Forum
Non solo Joomla... => Sviluppo => : Gianpaolo 09 Mar 2011, 12:46:58
-
:'( :'( :'(Salve ragazzi.. ho bisogno di un vostro grande aiuto non riesco a venirne a capo... (povero me tapino)
ho modificato nel template del mio sito la pagina che visualizza l'articolo, per l'esattezza il file
\templates\nometemplate\html\com_content\article\default.php
e fino qui tutto bene sono riuscito a ottenere cio chè volevo.. in pratica una semplice tabella con sopra il titolo e sotto data inserimento e utente come da figura
(http://img651.imageshack.us/img651/1914/headeresempio1.jpg) (http://img651.imageshack.us/i/headeresempio1.jpg/)
ma di fianco vorrei aggiungere il famoso "pagina 1 di 1" che ho scoperto è generato dal file
\plugins\content
// page counter
$row->text .= '<div class="pagenavcounter">';
$row->text .= $pageNav->getPagesCounter();
$row->text .= '</div>';
ma non so proprio come fareeeee
qui sotto c'è il codice che inserisce data e user
div class="article-tools clearfix">
<?php if ($this->params->get('show_create_date')) : ?>
<span class="createdate">
<?php echo JHTML::_('date', $this->article->created, JText::_('DATE_FORMAT_LC2')) ?>
</span>
<?php endif; ?>
<?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?>
<span class="createby">
<?php $this->escape(JText::printf(($this->escape($this->article->created_by_alias) ? $this->escape($this->article->created_by_alias) : $this->escape($this->article->author)) )); ?>
</span>
<?php endif; ?>
qui prima della fine della tabella dovrei inserire
<span class="createby">
e poi il php per reperire il codice che viene visualizzato appena sotto "pagina 1 di 1"
</span>
</div>
potete aiutarmi ????
grazie... grazie... grazie......... :) :)
-
non si modificano i files di joomla si fanno gli override.
M.
-
esatto infatti il file che citavo prima non è altro che un override basta dire che è in :
templates\nometemplate\html\com_content\article\default.php
se no sarebbe in components\com_content ??? ti pare??
è quello che io voglio continuare a modificare... per ottenere il numero delle pagine in alto nell'intestazione..
mi sono spiegato male forse ???
-
sorry, nn avevo visto la path...
scusa ma nella pagina non modificata dove appare? qual'è il codice che lo visualizza?
M.
-
mi sa che mi sono spiegato proprio male.... sorry :-[
la pagina ovveride è in templates\nometemplate\html\com_content\article\default.php
ma il numero delle pagine viene creato dal file che ti dicevo \plugins\content\pagebreack.php che riporta il risultato sempre nella pagina di ovveride nella parte di codice finale che ti scrivo sotto
<div class="article-content">
<?php if (isset ($this->article->toc)) : ?>
<?php echo $this->article->toc; ?>
<?php endif; ?>
<?php echo $this->article->text; ?>
</div>
ma .....che come vedi è tutto un blocco e non capisco dove pigliare , estrarre in parole povere solo il pagenavcounter che da quella famosa scrittina "Pagina 1 di 4" per poterlo mettere poi in una span sopra...
nella stessa pagina in modo da far apparire in alto la scrittina...
spero di essermi spiegato meglio... grazie ancora per l'aiuto.... ;) ;)
-
questa l'hai vista?
http://www.joomla.it/articoli-della-community/4785-suddividere-un-articolo-in-pagine-luso-delle-pagebreak-in-joomla-15.html
M.
-
...si è la cosa migliore che ho trovato prima di scrivere sul forum.. ci sto sbattendo la testa ma non ne vengo a capo.. per questo ho chiesto aiuto sul forum..... :'( :'( :'(
-
non è possibile perché il citato plugin inserisce la paginazione solo in coda al testo.
la cosa migliore sarebbe copiare e re-installare il plugin con un altro nome e modificare la linea in cui mette il navigatore (294 in j1.5.22) magari aggiungendo un parametro per definire ove mettere la paginazione oppure definendo una nuova proprietà da usare nel tuo template, magari verificando prima se esiste ;)
quindi disabiliti il template standard ed attivi il tuo.
ciao,
marco
-
ho provato..... :'( e se questa è la riga a cui ti riferisci...
$row->text .= '<div>' . $prev . ' - ' . $next .'</div>'; purtroppo... non è solo il "pagina 1 di 3" ma e tutto il testo dell'articolo con in fondo "pagina 1 di 3"
molto probabilmente $row->text prende tutto l'articolo....
dovrei trovare il modo di trasformare il solo"pagina 1 di 3" in una variabile passarla in GET e poi recuperarla con $_GET["id"] oppure $_REQUEST["id"]
cosa pensate ????
thks.... ;)
-
hai notato che vi è un punto prima dell'uguale?
ps: scusa la brutalità, ma hai almeno le basi di programmazione? hai capito la mia precedente risposta?
ciao,
marco
-
:-[hai perfettamente ragione, ma di fatto a me bastava modificare quello originale, anche perchè di compontenti pagebreack alternativi ne ho trovati diversi .....
. :-\...si è per la mia incapacità sul php che chiedevo aiuto risolvere il problema ...
mi sto comunque adoperando .. studiando un po alla volta php.. css e poi i meccanismi di joomla...ma ancora sono in alto mare.....
di quel lavoro che mi ero prefisso di fare cambiare l'intestazione con tabella logo etc.. sono riuscito a fare tutto... ma il pagebreack è ancora troppo complesso per le mie conoscenze... sorry..
spero qualcuno possa comuque aiutarmi... ringrazio comunque per la pazienza e disponibilità... ;)
-
'.=' è una notazione abbreviata di derivazione C
$row->text .= '<div>' . $prev . ' - ' . $next .'</div>';
va letto come
$row->text = $row->text . '<div>' . $prev . ' - ' . $next .'</div>';
ecco perché la navigazione è in coda al testo che è contenuto in $row->text; per spostarla in cima:
$row->text = '<div>' . $prev . ' - ' . $next .'</div>' . $row->text;
invece, per separarla dal testo
$row->textNav = '<div>' . $prev . ' - ' . $next .'</div>';
poi nel template, all'interno della tua tabella:
<?php echo(isset($this->article->textNav)?$this->article->textNav:''); ?>
ovviamente vale quando detto prima sulla inopportunità di modificare i files di sistema, ti propongo come esercizio di convertire il plugin in uno nuovo :P
ciao,
marco
-
Perdonatemi se mi sono fatto vivo solo adesso...
ho passato tutto questo tempo... a spizzichi e bocconi... a studiare php script e php OOP
inanzitutto RINGRAZIO DI CUORE per l'aiuto
in particolare mmleoni che forse per errore mio (mi sono spiegato male)mi ha dato una soluzione giusta ma per far vedere il prev e next...ma a me interessava la parola "pagina 1 di 1" etc....
questo però non toglie che mi ha aiutato tantissimo, anche perchè non ha semplicemente incollato una riga di codice, ma bene 3 e con tanto di chiara spiegazione.... cosi sono riuscito a capire meglio e a risolvere il mio problema
Ora vi spiego come ho fatto
il sotto l'ho lasciato come era,
sono andato a cercare la riga che creava non il prev e next ma quella che creava appunto il "pagina 1 di 1"
l'ho trovata qui....
// page counter
$row->text .= '<div class="pagenavcounter">';
$row->text .= $pageNav->getPagesCounter();
$row->text .= '</div>';
a questo punto ho aggiunto appena sotto:
$row->textPages = $pageNav->getPagesCounter();
in modo da creare questo textPages come aveva fatto prima mmleoni con il textNav
nel template.css ho copiato e poi modificato una spam class per dare la giusta formattazione alla mia tabella rinominandola numpage
poi sulla pagina di default in miotemplate\html\com_content\article ho inserito
nella mia tabella
<span class="numpage">
<?php echo(isset($this->article->textPages)?$this->article->textPages:''); ?>
</span>
<?php endif; ?>
e magicamente è apparsa la mia voce pagina 1 di 1 che si incrementa allo scorrere delle pagine..........
;D ;D ;D
-
Come faccio a mettere risolto ????
:o