• User Newbie

    Username dell' utente loggato

    Salve a tutti.

    Da un pò di tempo mi sto barcamenando con un problrma problematico in un PbF startrekkiano basato su phpbb, ossia avere un pulsante supplementare all' interno del post che sia visibile solo a moderatori ed admin (chiamiamoli MA per brevità )
    Mi spiego: un player posta. A tutti i player "standard" il post apparirà nella veste classica, quindi con pulsanti di segnalazione e quote, tanto per esser brevi.
    Gli utenti MA, invece, lo vedranno con in più questo pulsante supplementare.
    A cosa serve questo pulsante, direte voi? Serve a mandare in esecuzione uno script, misto di html&php, atto a permettere agli utenti MA la valutazione tecnica del post. E' un sistema che abbiamo messo giù per la gestiione delle promozioni dei PG.
    Questa feature è stata implementata aggiungendo, nel file viewtopic_body.html del template in uso, un apposito codice ( che, ovviamente, non posso pubblicare ).

    Ora vengono le dolenti note.

    1. Trattandosi di uno script esterno, ho un grosso problema ovvero "catturare" la username dell' utente che preme questo pulsante e passarla allo script. Ora come ora lo script iniziale è html ma ci vuol poco a metterlo in un PHP sì da leggere il parametro passatogli. Questa cosa della cattura della username è fattibile? Ma, sopratutto, esiste la possibilità di richiamare uno script passandogli il parametro nel comando?

    2. In aggiunta, mi chiedo se si riesca a catturare anche il link del post nel quale viene premuto il pulsante.

    3. Non mi riesce di capire perché il pulsante ( ancora sperimentale e quindi bruttarello ) che è stato cresto per copia da quello di quote, venga mal visualizzato. Classicamente, i pulsanti hanno un "rollout state" ed un "rollover state"; quindi, in situazione di visualizzazione ( senza che facciamo nulla ) ci mostrano solo il "rollout state" per poi cambiare quando ci posizionimo copra di esso con il mpuse. Invece questo pulsantaccio mi mostra entrambi gli stati e, cosa peggiore, sparisce quando ci passo sopra.

    Grazie per quanto andrete, eventualmente, a fare.
    BRUNS


  • User Attivo

    @Icheb said:

    1. Trattandosi di uno script esterno, ho un grosso problema ovvero "catturare" la username dell' utente che preme questo pulsante e passarla allo script. Ora come ora lo script iniziale è html ma ci vuol poco a metterlo in un PHP sì da leggere il parametro passatogli. Questa cosa della cattura della username è fattibile? Ma, sopratutto, esiste la possibilità di richiamare uno script passandogli il parametro nel comando?

    Trattandosi dello username, quindi un dato pubblico, puoi tranquillamente passarlo via GET tramite URL. phpBB quando apre la sessione utente mette nella variabile $user un oggetto che contiene una serie di array associativi che rappresentano i dati dell'utente loggato. Allo username si accede tramite $user->data["username"]. Quindi sostanzialmente il link a cui dovrai linkare il bottone è:

    tuodominio.it/tuoscript.php?username={$user->data["username"]}
    

    nel file tuoscript.php potrai accedere a quel dato con l'istruzione

    [php]
    <?php
    // IMPLEMENTA UN SERIO CONTROLLO SU COSA RICEVI, NON USARE QUESTO CODICE COSI' COME E'
    $username = $_GET["username"];
    ?>
    [/php]

    @Icheb said:

    1. In aggiunta, mi chiedo se si riesca a catturare anche il link del post nel quale viene premuto il pulsante.

    Considera che in phpBB non esiste un "link del post". Esiste un link al topic, ma purtroppo per accedere al singolo post esiste solo l'ancora, cioè il link interno alla pagina stessa. Se ti interessa il link al topic, in PHP il modo per accedere alla pagina di provenienza è l'indice HTTP_REFERER dell'array superglobale $_SERVER. Quindi nel tuo file tuoscript.php ricavi il tuo link così:

    [php]
    <?php
    $topic_link = $_SERVER["HTTP_REFERER"];
    ?>
    [/php]

    Se ti interessa proprio il link che contiene anche l'ancora al singolo post, vedi che nel file di template che riguarda la visualizzazione del post, deve esserci un punto in cui phpBB stampa un

    [html]<div id="p{IDPOST}">contenuto blablabla...</div>[/html]

    prendi quella variabile IDPOST e passala a tuoscript.php come fatto per lo username. In pratica, ammesso che si chiami $post->id, il tuo href diventa...

    tuodominio.it/tuoscript.php?username={$user->data["username"]}&post={$post->id}
    

    ed il tuo file tuoscript.php...

    [php]
    <?php

    // IMPLEMENTA UN SERIO CONTROLLO SU COSA RICEVI, NON USARE QUESTO CODICE COSI' COME E'
    $username = $_GET["username"];
    $id_post = $_GET["post"];
    $post_link = $_SERVER["HTTP_REFERER"]."#p".$id_post;

    // fai quello che vuoi ora che hai tutto ciò che ti serve...

    ?>
    [/php]

    @Icheb said:

    1. Non mi riesce di capire perché il pulsante ( ancora sperimentale e quindi bruttarello ) che è stato cresto per copia da quello di quote, venga mal visualizzato. Classicamente, i pulsanti hanno un "rollout state" ed un "rollover state"; quindi, in situazione di visualizzazione ( senza che facciamo nulla ) ci mostrano solo il "rollout state" per poi cambiare quando ci posizionimo copra di esso con il mpuse. Invece questo pulsantaccio mi mostra entrambi gli stati e, cosa peggiore, sparisce quando ci passo sopra.

    Se sparisce quando ci vai sopra significa che la fase di transizione da uno stato all'altro non è ben definita. Postaci il codice HTML/JS/CSS con cui produci quel rollover state, ed eventualmente quello che ti compare nella console javascript degli errori.