Back to top

Autore Topic: Passare il parametro Itemid nel wrapper  (Letto 4307 volte)

Offline cosimo84

  • Nuovo arrivato
  • *
  • Post: 3
  • Sesso: Maschio
    • Mostra profilo
Passare il parametro Itemid nel wrapper
« il: 22 Lug 2009, 16:55:56 »
Ciao, non so se qualcuno ha avuto i miei stessi problemi, comunque sono riuscito a modificare il codice del componente "wrapper" in modo da far passare il parametro Itemid.

La modifica consiste nell'editare il file /components/com_wrapper/views/wrapper/tmpl/default.php
in questo modo:

Codice: [Seleziona]
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>

<script language="javascript" type="text/javascript">
function iFrameHeight() {
var h = 0;
if ( !document.all ) {
h = document.getElementById('blockrandom').contentDocument.height;
document.getElementById('blockrandom').style.height = h + 60 + 'px';
} else if( document.all ) {
h = document.frames('blockrandom').document.body.scrollHeight;
document.all.blockrandom.style.height = h + 20 + 'px';
}
}
</script>
<div class="contentpane<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php if ( $this->params->get'show_page_title') ) : ?>
<div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php echo $this->escape($this->params->get'page_title' )); ?>
</div>
<?php endif; ?>
<?php 
$Itemid
=$_GET["Itemid"];
?>

<iframe <?php echo $this->wrapper->load?>
id="blockrandom"
name="iframe"
src="<?php echo $this->wrapper->url."?id_r=".$Itemid?>"
width="<?php echo $this->params->get'width' ); ?>"
height="<?php echo $this->params->get'height' ); ?>"
scrolling="<?php echo $this->params->get'scrolling' ); ?>"
align="top"
frameborder="0"
class="wrapper<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<?php echo JText::_'NO_IFRAMES' ); ?>
</iframe>
</div>

In seguito, in qualsiasi file php del wrapper basta richiamare la variabile id_r tramite $id_r=$_GET["id_r"] che corrisponde all'Itemid dell'oggetto wrapper.

Mi scuso se qualcuno già l'aveva scoperto e spero di essere stato utile.

Ciao

--Cosimo
--Cosimo

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #1 il: 22 Lug 2009, 17:04:08 »
ciao Cosimo84  credo che sia un argomento più attinente alla sezione sviluppo, anche se probabilmente la modifica era pensata per i forum?

che ne pensi?
a proposito, su che versione joomla hai operato la modifica?
(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline cosimo84

  • Nuovo arrivato
  • *
  • Post: 3
  • Sesso: Maschio
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #2 il: 22 Lug 2009, 17:09:33 »
ciao Cosimo84  credo che sia un argomento più attinente alla sezione sviluppo, anche se probabilmente la modifica era pensata per i forum?

che ne pensi?
a proposito, su che versione joomla hai operato la modifica?

Ciao 56francesco,
mi scuso se ho postato nella sezione sbagliata e ti ringrazio per averla spostata.
Ho operato la modifica su Joomla! 1.5, può essere utilizzata anche per i forum.
E' molto utile in quanto il parametro "Itemid" dei componenti non è visibile all'interno dei vari php che compongono il wrapper (o gli altri componenti) e può essere utile per fare degli if selettivi in base a questo id.

Spero sia utile a qualcuno  ;)
« Ultima modifica: 22 Lug 2009, 17:15:14 da cosimo84 »
--Cosimo

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #3 il: 22 Lug 2009, 17:19:46 »
1.5?
cosimo non potresti essere più preciso?
(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline cosimo84

  • Nuovo arrivato
  • *
  • Post: 3
  • Sesso: Maschio
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #4 il: 22 Lug 2009, 17:20:45 »
Scusa hai ragione, versione 1.5.12
--Cosimo

Offline Oni_01

  • Nuovo arrivato
  • *
  • Post: 16
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #5 il: 30 Ott 2010, 22:39:31 »
Grazie cosimo, il tuo script mi è stato molto utile per risolvere un problema che avevo su un template :D

mau_develop

  • Visitatore
Re:Passare il parametro Itemid nel wrapper
« Risposta #6 il: 31 Ott 2010, 09:16:10 »
$id_r=$_GET["id_r"]
-------------------------------

questo è valido come snippet, esempio, ...non fate una cosa simile, non si prendono le var direttamente dai get post etc.

M.

Offline waltersao

  • Nuovo arrivato
  • *
  • Post: 24
  • Sesso: Maschio
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #7 il: 04 Nov 2010, 11:49:16 »
@mau
Ciao, sempre graditi i tuoi interventi: :)
Forse ho letto qualcosa in merito, di tuo o di altri: potresti spendere qualche parola? ;) TIA

1.  $Itemid=$_GET["Itemid"];
2.  $id_r=$_GET["id_r"]

... detesto i sotterfugi e le astuzie di cui tanti si vantano ... (Sergio Carrarini)

mau_develop

  • Visitatore
Re:Passare il parametro Itemid nel wrapper
« Risposta #8 il: 04 Nov 2010, 14:28:58 »
ogni variabile presa dall'esterno, quindi non creata runtime, va sottoposta a casting... proprio come il grande fratello :):)

si attendono un buffone che attiri l'attenzione per mesi su una popolazione con limitato uso del cervello e quello devono trovare, così fanno un casting per vedere se il buffone atteso è veramente un buffone o fa finta.

Sì fa ridere ma il principio è il medesimo... ti attendi un id, quindi un numero e devi controllare che sia veramente ciò che ti attendi, quante più cose controlli tante meno probabilità di usi non consoni si creano; ovviamente l'errore va gestito.

Joomla solitamente usa i vari JRequest getVar piuttosto che getInt, poi dei parametri di casting come argomenti:
http://api.joomla.org/Joomla-Framework/Environment/JRequest.html

Se fossimo fuori da joomla la cosa non cambia, un:

$pippo=$_GET['id'];

va prima sottoposto a controlli, cosa facilitata da varie funzioni di php, chessò:

if(is_numeric($_GET['id'])){
   $pippo=$_GET['id'];

ma puoi anche fare controlli più specifici se sai ad esempio che quel numero non sarà mai più di 3 cifre:
if( is_numeric($_GET['id']) && strlen($_GET['id']) <= 3 ){
   $pippo=$_GET['id'];

..o complicarti la vita con le regex cercando un pattern esclusivamente [0-9]+ ... o [0-9]{3} ..per il discorso delle tre cifre sopra.

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #9 il: 06 Nov 2010, 12:36:32 »
ogni variabile presa dall'esterno, quindi non creata runtime, va sottoposta a casting... proprio come il grande fratello :):)

si attendono un buffone che attiri l'attenzione per mesi su una popolazione con limitato uso del cervello e quello devono trovare, così fanno un casting per vedere se il buffone atteso è veramente un buffone o fa finta.

vado un attimo OT, ma devo dire che in questo modo mi ricorderò SEMPRE di fare il casting :D
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

Offline waltersao

  • Nuovo arrivato
  • *
  • Post: 24
  • Sesso: Maschio
    • Mostra profilo
Re:Passare il parametro Itemid nel wrapper
« Risposta #10 il: 09 Nov 2010, 22:54:40 »
@mau

Chiarissimo, esauriente e utile. Grazie.
... detesto i sotterfugi e le astuzie di cui tanti si vantano ... (Sergio Carrarini)

 



Web Design Bolzano Kreatif