Passare l' URL della pagina corrente con Html

15 contenuti / 0 new
Ultimo contenuto
Passare l' URL della pagina corrente con Html

Scusate ma proprio non riesco.
Inserendo in page.tpl.php la riga seguente
<?php $var = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'].""; ?>
assegno alla variabile $var l' indirizzo completo della pagina corrente.
Infatti, se subito dopo inserisco
<?php print $var; ?>
stampo sulla pagina corrente l' URL corrente.
Il problema nasce se voglio trasferire l' URL di una mia pagina ad un altro sito web.
Per capirci, questo mi servirebbe per bypassare il modulo Service_links per i sistemi di voto e di pubblicazione della pagina corrente. Ad esempio, per votare la pagina corrente su Wikio, se la pagina corrente è
htxp://giovanninews.com/youtube-downloader-hd-scaricare-video-anche-in-full-hd
il blocco per il sistema di voto, sfruttando anche la tecnica delle immagini sprite, dovrebbe essere:

<p class="rtleft">Segnala questo articolo con</p>
<p class="rtleft"><a  href=""htxp://www.wikio.it/vote?url=" & $var" title="Vote on Wikio"><img src="htxp://giovanninews.com/sites/default/files/icone-siti/transparent.png" class="sprite2 social wikio" alt="Vota l' articolo in Wikio" /></a></p>

ma in questo modo ottengo solo l' URL corrente; dovrei invece ottenere come URL:
htxp://www.wikio.it/vote?url=htxp://giovanninews.com/youtube-downloader-hd-scar...
Spostando o inserendo apici nella variabile $var riesco solo o ad ottenere l' URL corrente oppure htxp://www.wikio.it/vote?url= & $var, senza riuscire a concatenare l' URL di voto di Wikio con la pagina corrente.

Forse sbaglio, ma se linka a se stesso vuol dire che l'HREF del link è vuoto, e in effetti nel codice che hai postato c'è una doppia virgoletta all'inizio dell'URL nell'HREF, che equivale a una stringa vuota

Angelo Turetta

Poi sei sicuro su htxp: ?

Angelo Turetta

Ho riletto tutto, e forse non avevo capito tutto all'inizio.

Se metti del codice che assegna una variabile in page.tpl.php, non puoi pensare di ritrovarla valorizzata durante il rendering del blocco. Le operazioni avvengono in tempi diversi, e non per concatenazioni di frammenti php, ma di frammenti html (tutti i singoli pezzi vengono trasformati in html e poi passati come variabili a page.tpl.php).

Se fai un blocco php, puoi mettere la concatenazione dell' URL assoluto direttamente nel blocco. Oppure (modo Drupal di fare le cose) nel tuo tema intercetti l'hook giusto e inietti quel valore tra le variabili disponibili per quel blocco.

Angelo Turetta

Angelo Turetta

Quote:
Forse sbaglio, ma se linka a se stesso vuol dire che l'HREF del link è vuoto, e in effetti nel codice che hai postato c'è una doppia virgoletta all'inizio dell'URL nell'HREF, che equivale a una stringa vuota

La doppia virgoletta dovrebbe servire per far chiudere l' HREF dopo $var.
Quote:
Poi sei sicuro su htxp: ?

htxp sta per http; ho utilizzato htxp per non creare link inesistenti su questo forum.
Se hai qualche altra idea fatti sentire.
Ciao.

@aturetta
No, non funziona.

Ma il codice per la generazione dell'url per il voto da dove lo richiami?
potresti provare a salvare $var come variabile di sistema con variable_set() e successivamente richiamarla con variable_get() quando ti serve. Se effettivamente la crei in page.tpl e la riutilizzi in un altro contesto potresti non averla disponibile.

Ciao,

Tutti i modi per scrivere la funzione l() e la funzione t() di drupal 6
http://www.drupalitalia.org/node/12850

Comunque la mia soiluzione è questa:

<?
// file_directory_path() ritorna sites/default/files
// $base_path ritorna la radice del sito

//link
$varlocal = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
print l(t('Vote on Wikio'), 'http://www.wikio.it/vote?url='.$varlocal, array('attributes' => array('class' => 'link', 'id' => 'votewikiolink', 'title' => t('Vota articolo in Wikio'))));

// immagine linkabile
$varlocal = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$img = '< i m g s r c = "' . $base_path . file_directory_path() . '/ icone-siti/transparent.png" title="Vote on Wikio" />';
print l($img, 'http://www.wikio.it/vote?url='.$varlocal, array('attributes' => array('class' => 'link', 'id' => 'votewikiolink', 'title' => t('Vota articolo in Wikio')), 'html' => 'true'));
?>

Fammi sapere Ciao!

@danzisiweb
Ciao danzi e grazie per la tua risposta; come avrai capito sono alquanto digiuno di php, anche se riesco a capire cos' è una variabile e qualche altra piccola cosa.
Cercherò di capire cosa fai con la funzione l() e con la funzione t() di Drupal 6.
Ad occhio, per quello che serve a me, sembra comunque un pò troppo, nel senso che io devo solo concatenare in html la url per il voto con la pagina corrente (nel mio caso la variabile $var ottenuta in php con la funzione <?php $var = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'].""; ?>).
In html l' href per il voto in wikio è "http://www.wikio.it/vote?url=[/codefilter_code]" ed in coda a questo devo mettere il contenuto della variabile $var al fine di ottenere ad esempio "http://www.wikio.it/vote?url=http://giovanninews.com/youtube-downloader-...".
Sto cercando di sostituire il modulo Service_links che, anche se funziona benissimo, è alquanto avido di risorse. Utilizzando sia i services italiani che quelli generali, ce ne sono circa una quindicina e ripetere il tuo codice per 15 services forse appesantirei la pagina, anzichè alleggerirla.
La variabile $var è sempre disponibile, anche con html, e cambia solo cambiando pagina.
Possibile che questo non possa essere fatto con una riga di html ?

Ciao giovanninews,

si in effetti c'è un pò di confusione tra html e php...
Questo dovrrebbe essere quello che cerchi da mettere nella page.tpl.php

$foo = "http://www.wikio.it/vote?url=";
$var = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
print '<a href="'.$foo.''.$var.'" title="Vota articolo in Wikio"></a>';

Adesso La funzione t() e la funzione l() in Drupal 6 sono anche qui:
http://danzisiweb.altervista.org/sviluppo/content/la-funzione-t-e-la-funzione-l-drupal-6

Lo scrivo se magari serve alla comunità. Ciao

Ciao Danzi, la via potrebbe essere quella giusta (l' avevo provata anch' io), ma è il ritorno in html che non va.
In php ottengo http://www.wikio.it/vote?url= http://giovanninews.com/youtube-downloader-hd-scaricare-video-anche-in-f... con uno spazio in più, mentre in html ottengo http://giovanninews.com/'.$foo.".$var.'

Ti ripeto fai un pò di confusione tra html e php: html NON può restituire delle variabili.

Poi c'è Drupal che utilizza la funzione l() per la costruzione dei tag a href. Questo è il punto.

Riguardo il codice sopra è vero, non l'avevo testato, mi spiace, semplicemente mancava il testo.
Ora è corretto:

<?php
  $foo
= "<a href="http://www.wikio.it/vote?url=";
" rel="nofollow">http://www.wikio.it/vote?url=";
</
a$var = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
  print
'<a href="'.$foo.$var.'" title="Vota articolo in Wikio">Qui mancava il testo !!</a>';
?>

Mi raccomando controlla bene i tag del php di apertura e chiusura nella posizione in cui metti questa porzione di codice. Per vedere che funzione clicca il mio sito, giusto sotto il titolo troverai Qui mancava il testo !! : http://danzisiweb.altervista.org/
Ciao

Service_links è stato ottimizzato per lo sprite da The Crown con la versione 6.x-2.x-dev (e 7.x-2.x-dev)
http://drupal.org/node/1224828