Custom Pagers - Integrazione in Template Suggestions!

6 contenuti / 0 new
Ultimo contenuto
Custom Pagers - Integrazione in Template Suggestions!

Ciao a tutti!
Dopo quasi un anno di lavoro sul mio sito multilingua (che ormai posso definire come l'azienda "Duomo di Milano"...) mi si è presentata un'ennesima richiesta:
Integrare il modulo "Custom Pagers" per visualizzare le classiche voci di menu (First < Previous 27 of 304 Next > Last) ma, dopo 2 giorni di test, mi vedo costretto a postasre sul forum...

Per farla breve e (possibilmente...) comprensibile ho (in parte...) questo scenario (sto usando Template Suggestions...):

node-modelli_italia.tpl.php > page-node-modelli_italia.tpl.php
node-modelli_europa.tpl.php > page-node-modelli_europa.tpl.php

Questi templates sono totalmente personalizzati nel senso che ho tolto la variabile ($content) in node-modelli_italia.tpl.php:

<div class="content clear-block">
<?php print $content ?>
</div>

...e l'ho sostituita usando esclusivamente variabili che fanno riferimento a campi CCK:

<div class="content clear-block">
<?php
$field_mio_cck_field_01
$node->field_mio_cck_field_01[0]['view'];
$field_mio_cck_field_02 $node->field_mio_cck_field_02[0]['view'];
$field_mio_cck_field_03 $node->field_mio_cck_field_03[0]['view'];
?>

<div id="contenitore">
<div id="a1"><?php print($field_mio_cck_field_01 ? $field_mio_cck_field_01 : ' '); ?></div>
<div id="a2"><?php print($field_mio_cck_field_02 ? $field_mio_cck_field_02 : ' '); ?></div>
<div id="a3"><?php print($field_mio_cck_field_03 ? $field_mio_cck_field_03 : ' '); ?></div>
</div>
</div>

P.S. Implementazione resa possibile (per me...) grazie agli aiuti di Mr. John Verona e Mr. Bohz

Il problema è, da quanto ho potuto capire, che il modulo "Custom Pagers", stampa/visualizza i suoi pulsanti di navigazione tra i nodi contenuti in un determinato "Termine" (First < Previous 27 of 304 Next > Last) solo se è presente la variabile:

<?php print $content ?>

...anzi, sembra proprio che per essere visualizzati ci debba essere questa variabile!

Per non dilungarmi troppo.... ho messo la funzione in "template.tpl.php" - http://drupal.org/node/387786 - http://drupal.org/node/262854 - e ho anche creato "custom-pager-modello_italia.tpl" (nella cartella del tema Garland...) ma, quando clicco su un titolo di questi nodi (restituito dalla View corrispondente...), si visualizza il "pager" (First < Previous 27 of 304 Next > Last) ma:

1. Se lascio la variabile "$content" visualizza tutti i campi cck uno sotto l'altro (grezzi...) e poi il template personalizzato "vero e proprio" (con gli stessi identici campi "temizzati"nei miei DIV...)

2. Se tolgo la variabile "$content" (sempre lei...) non visualizza (ovviamente...) il pager (First < Previous 27 of 304 Next > Last), appunto... e visualizza il template correttamente ma senza il Pagers...

Spero di essermi spiegato... nel frattempo continuo i miei test...

Ciao
Kipper

Ciao Kipper, sempre avanti, eh? Interessante questo modulo. Guardando il sorgente (fonte della verità, come sempre) vedo che custom pagers ha un meccanismo alquanto originale di 'aggiungere' il suo testo - lo inserisce nel $node->content nel hook nodeapi. Per questo motivo lo trovi in $content, ma solo se non stiamo guardando l'antiprima.

Ma tu non stai stampando $content. Comunque ci sono due posti dove lui mette il testo già convertito in HTML:

  1. $content['custom_pager_top']
  2. $content['custom_pager_bottom']

Ci possono essere l'uno o l'altro, o entrambi - secondo le configurazioni.

Prova così (non posso dare garanzie - quindi piombare la stanza come al solito ;-)

<div class="content clear-block">
<?php
if (!empty($content['custom_pager_top'])) {
  print(
$content['custom_pager_top']);
}
?>

<?php
$field_mio_cck_field_01
$node->field_mio_cck_field_01[0]['view'];
$field_mio_cck_field_02 $node->field_mio_cck_field_02[0]['view'];
$field_mio_cck_field_03 $node->field_mio_cck_field_03[0]['view'];
?>

<div id="contenitore">
<div id="a1"><?php print($field_mio_cck_field_01 ? $field_mio_cck_field_01 : ' '); ?></div>
<div id="a2"><?php print($field_mio_cck_field_02 ? $field_mio_cck_field_02 : ' '); ?></div>
<div id="a3"><?php print($field_mio_cck_field_03 ? $field_mio_cck_field_03 : ' '); ?></div>
</div>
<?php
if (!empty($content['custom_pager_bottom'])) {
  print(
$content['custom_pager_bottom']);
}
?>

</div>

Più imparo, più dubito.

Ciao John, grazie come sempre per i tuoi aiuti...

Ho provato ad inserire il codice:

<?php
if (!empty($content['custom_pager_top'])) {
  print(
$content['custom_pager_top']);
}
?>

...spariscono tutti i campi CCK che stanno nella variabile "$content" ma, al posto dei links "First < Previous etc etc..." appare (stranamente...) un apice "solitario" (<) ...boh ...che strano

A dire il vero nel template oltre ai DIV, ci sono anche delle TABLE (le ho messe per un motivo che mi sembra superfluo dilungare in questa discussione...) e quel "famoso" pezzo di codice (ricordi? ...sicuramente si...) che visualizza il testo in italiano (se si è nell'interfaccia ITA...) e, viceversa in quella ENG che riporto qui sotto e che credo proprio NON sia la causa dell'errore (e neanche le TABLE...):

<?php
global $language;
if (
$language->language == 'it') {
  print
"Contenuto in Italiano...";
}
else {
  print
"Contenuto in English...";
}
?>

In ogni caso, il tutto è dentro:

<div class="content clear-block">
...
</div>

...quindi non credo che il problema stia qui...

Credi potrebbe essere un'idea implementare un:

<?php print $content; ?>

...con dei "costrutti" aggiuntivi che fanno si di NON visualizzare i field CCK che si vogliono nascondere? ...appunto...

In ogni caso sono ancora in fase di investigazione di questo modulo e sto cercando di capire se l'errore è da attribuirsi ad una mia impostazione errata del modulo stesso... ma non credo... (se con la variabile $content funziona...) controllerò a "microscopio"...

Per il momento ho "spiombato" la stanza e continuo i miei test...

Ciao...
Giuliano

Ciao John,
Ho fatto una prova in locale e (anche se non ci sono campi CCK - ma credo non importi...) il codice mostra (anche qui) quell' apice "solitario" (<)... il formato di imput è ovviamente in PHP (ma non importa, va bene anche Filtered HTML etc...); di seguito le schermate:

Questo simpatico Custom Pagers mette proprio la sua simpatica creatura nel Body ($content) e sembra proprio che "remi contro" a quegli utenti che lavorano con template personalizzati (Template Suggestions). E' proprio stato pensato (a quanto pare...) per gli inserimenti Standard di Drupal...

Ma è mai possibile che ogni qualvolta devo fare qualcosa mi si presentano una montagna di problemi!?

Ma a nessuno (che usa Template Suggestions...) è venuto in mente che, dopo aver cliccato su un titolo di un nodo della lista (dei nodi linkati al nodo stesso...) restituita da una View ci possa essere (che dovrebbe essere un'esigenza vitale per la navigazione...) la possibilità di proseguire la navigazione (Avanti/Indietro) tra i nodi una volta aperto il primo!?

Ho cercato molto su Google, ma non ho ancora trovato nulla in questa direzione... boh...

P.S. Questo per metterti a conoscenza del test...

Scusa lo sfogo...

Ciao
Giuliano

Ho un piano B...

kipper wrote:
...Ho fatto una prova in locale e (anche se non ci sono campi CCK - ma credo non importi...) il codice mostra (anche qui) quell' apice "solitario" (<)... il formato di imput è ovviamente in PHP (ma non importa, va bene anche Filtered HTML etc...); di seguito le schermate:

Anch'io. Con un pò di dsm(), ho trovato la soluzione. Bisogna mettere:
<?php
if (!empty($node->content['custom_pager_top']['#children'])) {
  print(
$node->content['custom_pager_top']['#children']);
}
?>

ed anche (in fondo)
<?php
if (!empty($node->content['custom_pager_bottom']['#children'])) {
  print(
$node->content['custom_pager_bottom']['#children']);
}
?>

kipper wrote:
Questo simpatico Custom Pagers mette proprio la sua simpatica creatura nel Body ($content) e sembra proprio che "remi contro" a quegli utenti che lavorano con template personalizzati (Template Suggestions). E' proprio stato pensato (a quanto pare...) per gli inserimenti Standard di Drupal...

Concordo in pieno

kipper wrote:
Ma è mai possibile che ogni qualvolta devo fare qualcosa mi si presentano una montagna di problemi!?

Si ;-) Penso che è segno che stai creando cose oltre il 'banale'. O quello, o hai un campo di Murphy personale che fa paura...

kipper wrote:
Ma a nessuno (che usa Template Suggestions...) è venuto in mente che, dopo aver cliccato su un titolo di un nodo della lista (dei nodi linkati al nodo stesso...) restituita da una View ci possa essere (che dovrebbe essere un'esigenza vitale per la navigazione...) la possibilità di proseguire la navigazione (Avanti/Indietro) tra i nodi una volta aperto il primo!?

A me non è venuto in mente - quindi grazie per la dritta a questo modulo...

kipper wrote:
Ho cercato molto su Google, ma non ho ancora trovato nulla in questa direzione... boh...
P.S. Questo per metterti a conoscenza del test...
Scusa lo sfogo...

Ciao
Giuliano


Di niente. Essere sul "bleeding edge" può essere frustrante (per non dire parolaccie)...
John

Più imparo, più dubito.

Ciao John, come sempre risolvi tutto... funziona!

John scrive:
Ho un piano B...

E dove stiamo, nei fumetti di DIABOLIK!?!? Grandissimo John!!!

Sono appena rientrato a casa e, nonostante l'ora abbastanza inoltrata nella notte, sono qui a scrivere...

Ho testato in locale e, come già detto, funziona tutto perfettamente ma, dovendo metter mano a diversi Template Suggestions (circa una decina...), nonostante la mia natura ottimistica, mi sta sfiorando il sospetto che ci sarà qualche altro ritocco da fare... la mia leggera preoccupazione è quella di far quadrare/corrispondere/sincronizzare i numeri dei Pager (es. First < Previous 27 of 304 Next > Last) con quelli di ciascun Template e visualizzare solo quelli del Template Suggestions interessato...

Comunque, in ogni caso, seguo sempre la regola:
1. Piombare la stanza
2. Procedere con una cosa alla volta e, se necessario, mettersi di fronte allo specchio per trovare risposte...

Io ci tengo molto a questo progetto finalizzato ad avere i Content Pagers funzionanti e ben sincronizzati per ciascun Template Suggestions e credo che sia una cosa utile anche per gli altri utenti della nostra community...

P.S. Esco un'attimo dal sentiero:
Mi chiedo che senso ha usare Panels quando con Template Suggestions si possono fare delle cose "meravigliose" e... leggerissime!!!

Ti terrò informato sui miei nuovi esperimenti...

Ciao e grazie di nuovo
Giuliano