Ciao a tutti!
Ogni tanto ho la necessità di inserire nel mio sito in 2 lingue il seguente script che stampa HTML in una lingua o nell'altra a seconda dell'interfaccia ITA/ENG in cui ci si trova e che funziona perfettamente...
Lo script:
<div id="contenitore">
<?php
global $language;
if ($language->language == 'it') {
print "HTML Ita...";
}
else {
print "HTML Eng...";
}
?>
</div>
Come fare per farsì che mi accetti anche codice PHP??? ...in modo che uno scenario di questo tipo funzioni:
<div id="contenitore">
<?php
global $language;
if ($language->language == 'it') {
print "Codice PHP Ita...";
}
else {
print "Codice PHP Eng...";
}
?>
</div>
...lo script lo devo inserire in un contesto di Theming "puro" in un node-mio_ctype.tpl.php
, senza scendere troppo nel dettaglio... inutile dire che così NON funziona... non esce nessun errore ma non stampa nulla a video...
Sarebbe molto urgente... qualcuno è in grado di risolvermi questo problema?
Grazie
Ciao
Kipper
Guarda che il tuo codice funziona tuttavia ti consiglio di impostare il prefisso en nella configurazione della lingua inglese e utilizzare una opzione in più:
Io ho testato questo codice in un punto qualsiasi di page.tpl.php e funziona.
Ciao!
Io punterei a:
e nell'interfaccia di traduzione caricherei il testo con le relative traduzioni.
PRO: gestione traduzioni omogenizzata, caching degli elementi già gestita nella parte lingua, meno codice da scrivere e più semplice da mantenere..
Ciao
Marco
--
My blog
Working at @agavee
ciao danzisiweb e grazie per la risposta... e piacere di conoscerti, visto che è la prima volta che siamo in un thread direttamente... mi sembra...
detto questo si, funziona, ma hai provato a mettere uno script PHP nel "print" anzichè solo testo?
...per es.
<?php print $mia_variabile ?>
...ti funziona anche così? ...a me no ...con questo piccolo script non ho provato ma credo NON funzioni - mi spiego meglio anzi, nel dettaglio...sono abituato in certe situazioni ad inserire dei blocchi "Quick Tabs" > http://drupal.org/project/quicktabs nei miei
node-my_ctype.tpl.php
e per farlo, uso il seguente script che stampa i blocchi Quick Tabs perfettamente:<?php
$qtid = 218; // write here your quicktabs id.
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
?>
Il problema è, che se inserisco questo codice nello script di esempio in questione non mi stampa nulla e ho il dubbio (anzi, deve essere proprio così...) che accetti solo testo e tag HTML etc etc... ma sempre HTML..
Ecco lo script completo che NON funziona:
<?php
global $language;
if ($language->language == 'it') {
print "<?php
$qtid = 218; // write here your quicktabs id.
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
?>";
}
else {
print "<?php
$qtid = 219; // write here your quicktabs id.
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
?>";
}
?>
...e con il tuo - che purtroppo NON funziona ugualmente:
<?php
global $language;
//la riga sottostante è per il debug poi da togliere
print $language->language;
if ($language->language == 'it') {
print "<?php
$qtid = 218; // write here your quicktabs id.
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
?>";
} elseif ($language->language == 'en') {
} else {
print "<?php
$qtid = 219; // write here your quicktabs id.
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
?>";
}
?>
spero di essermi spiegato bene...
P.S. col tuo esempio mi stampa "it" e "en" (proprio solo queste 2 lettere del "language") e con il mio non stampa nulla, bianco totale...
Se hai maggiori elementi per risolvere la questione te ne sarei veramente grato perchè sarebbe urgente...
Grazie
Ciao
Kipper
ciao mavimo
purtroppo anche con il tuo intervento NON risolvo... schermata bianca con errore di sintax error...
ho inserito questo:
<?php
global $language;
if ($language->language == 'it') {
print t('<?php
$qtid = 218; // write here your quicktabs id.
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
?>');
}
else {
print t('<?php
$qtid = 219; // write here your quicktabs id.
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
?>');
}
?>
Mah... speriamo di risolvere...
P.S. ma sto notando che c'è un problema di formattazione del testo quando salvo il post qui sul forum > 'quicktabs' lo inserisco con i 2 apici correttamente e, dopo l'invio, se ne perde uno per strada almeno, sul mio monitor vedo così...
Grazie
Ciao
kipper
Ciao Kipper,
molto lieta di scriverti! Vedi il mio codice è stato visto dal grande mavimo che è UberAdmin !! niente po po di meno e ha corretto, giustamente, solo la riga di print t('Codice neutral language'); anzichè come ho scritto io, che volevo solo darti un esempio per il debug, print "Codice ecc..";
pertanto credimi il codice è corretto e testato! Ti riporto il tuo codice corretto, testato e funzionante (anche se io non ho quicktabs), in quanto qualche errore di sintassi c'era:
global $language;
if ($language->language == 'it') {
$qtid = 218;
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
print $qtid;
print $language->language;
} else {
$qtid = 219;
print $qtid;
print $language->language;
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
}
Occhio quindi alle aperture del tag < ? php
Ciao!
ciao danzisiweb e un grazie anche a mavimo... funziona ma c'è ancora un problema...
i QTabs vengono visualizzati correttamente/perfettamente ma, in interfaccia ITA appena sotto (il QTabs) appare "218it" e, vice-versa in quella ENG, appare sopra "219en"
ecco le schermate:
il codice che ho inserito nel mio
node-my_ctype.tpl.php
(l'ultimo che mi hai postato...):<div id="contenitore">
<?php
global $language;
if ($language->language == 'it') {
$qtid = 218;
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
print $qtid;
print $language->language;
} else {
$qtid = 219;
print $qtid;
print $language->language;
$quicktabs = quicktabs_load($qtid);
print theme('quicktabs', $quicktabs);
}
?>
</div>
Grazie ancora per la collaborazione...
Ciao
Kipper
[RISOLTO]
Grazie danzisiweb e grazie Mavimo!
Essendo un po stanco oggi non avevo visto i 2
print
di troppo che andavano a stampare l'ID del QuickTabs e la lingua e cioè questi:print $qtid;
print $language->language;
Togliendoli, adesso tutto è OK!
Grazie veramente per il prezioso aiuto.
Ciao
kipper
Ciao Ragazzi...
Ma in Drupal 7 come deve essere modificato questo codice?
Grazie mille!!!