• User

    Ho provato il mambot su un Joomla che ho in locale. Ho cambiato questa riga in mosfwtooltips.php (metto in grassetto quello che ho aggiunto)

    $pattern = "/\b(" . $search_term . ")\b(?![^<]*?>)/i";

    Così non viene evidenziato il termine quando è contenuto come parte di un'altra parola. Però secondo me ci sono altri bug perché il tooltip non si vede come si dovrebbe cioè vedo quello standard non quello di mootools.

    Comunque prova a vedere se risolvi uno dei problemi, semmai si vedrà poi per l'altro.


  • Super User

    Innanzitutto, vi ringrazio entrambi per l'aiuto e il tempo che state dedicando a questo mio problema.

    Facciamo un sunto della situazione, in modo da capire quali sono i bug riscontrati e intervenire su di essi:

    1. In un sito joomla installato in remoto, il tips funziona solo nella home page, e si vede bene sia con FF, che con IE.
      Nelle altre pagine, sembra non funzionare la libreria mootools.

    2. Se, nella stesura del testo che dovrà comparire nel tips, si usano degli apostrofi, il testo del tips non viene visualizzato, ne in home page, ne in altre pagine, stesso discorso con FF e IE. (ma non considero un problema questo)

    3. Se è attivo un tips su un termine che a sua volta, è parte integrante di un altro termine, quest'ultimo viene visto come tips. (Risolto con la modifica citata da gmassi)

    Vi mostro 3 immagini con il tips in azione, in modo da capire come dovrebbe essere visualizzato.

    Giusta visualizzazione in home page, con FF e IE:
    image

    Errata visualizzazione in altre pagine, con FF (no mootools + testo troncato):
    image

    Errata visualizzazione in altre pagine, con IE [(no mootools) lo sfondo del testo si vede rosso per una mia impostazione di XP, altrimenti sarebbe bianco]:
    image

    Rimane il bug più importante, e cioè, la visualizzazione nelle pagine al di fuori della home page !
    Grazie di nuovo ragazzi 😉


  • User Attivo

    Ciao,
    non conoscevo l'uso di \b, che sostanzialmente significa "delimitatore di parola"... veramente un'ottima soluzione, anche se non capisco ancora l'utilità dalla parte che segue, quella in rosso:
    $pattern = "/\b(" . $search_term . ")\b(?![^<]?>)/i*";
    ma questa è pura speculazione informatica...;)

    Per quanto concerne l'errata visualizzazione ora è chiaro il problema.
    Nella sostituzione c'è la righa:
    <span style='border-bottom: 1px dotted #666;' class='$class' title='$title :: $description'>$term</span>
    e quella che tu chiami errata visualizzazione è in realtà più che corretta. Probabilmente in home si utilizza un altra funzione con i relativi fogli di stile. Se vuoi rendere tutto uniforme a quanto vedi in home devi andare in homepage, visualizzare il codice sorgente, copiare tutto il pezzo di codice intorno ad un tips qualunque, che nell'esempio sarà qualcosa del tipo:
    ambito <.......>Web Design</...>,
    dove al posto dei puntini potresti avere uno span, un div o qualcosa del genere, con delle classi o degli stili.

    Una volta copiata quella stringa bisogna fonderla con quella in neretto sopra riportata, se la posti lo facciamo insieme...
    :ciauz:


  • Super User

    Ecco a te, questo è di un tips in home page:

    <span style='border-bottom: 1px dotted #666;' class='tip_Web_Design' title='Definizione :: attività di ideazione, progettazione e costruzione di un sito internet.'>Web Design</span>
    ```e questo di altra pagina:
    
    

    <span style='border-bottom: 1px dotted;' class='tip_Restyling' title='Definizione :: rinnovare la grafica e i contenuti di un Sito Internet gia esistente.'>Restyling</span>

    
    Sono identici.

  • User

    @ceccus

    anche se non capisco ancora l'utilità dalla parte che segue, quella in rosso:
    $pattern = "/\b(" . $search_term . ")\b(?![^<]?>)/i*";Quello è un lookahead. Il problema è che una parola per cui normalmente si dovrebbe creare il tooltip potrebbe trovarsi dentro un tag html (in un attributo alt, title o nome di classe per esempio) e in questo caso la sostituzione non si deve fare per non rovinare il codice. Molti tutorial sulle espressioni regolari non spiegano lookaheads e lookbehinds, uno che invece lo fa è questo

    http://www.tote-taste.de/X-Project/regex/printable.html#6

    @globo
    Hai ancora il problema? Una cosa che ho notato guardando meglio è che il mambot non include il percorso completo del javascript e questo potrebbe creare qualche problema.

    Aggiungi $mosConfig_live_site in queste righe di mosfwtooltips.php

    
    function botMosFwToolTips( $published, &$row, &$params, $page=0 ) {
        global $database, $_MAMBOTS, $mainframe, **$mosConfig_live_site**;
    
    

    if ( !isset($_MAMBOTS->_content_mambot_params['mosfwtooltips']) ) {
    $mainframe->addCustomHeadTag('<script type="text/javascript" src="' . $mosConfig_live_site . '/components/com_fw_tooltips/mootools.v1.11.js"></script>');
    $mainframe->addCustomHeadTag('<script type="text/javascript" src="' . $mosConfig_live_site . '/components/com_fw_tooltips/mosfwtooltips.js"></script>');
    $mainframe->addCustomHeadTag('<link href="' . $mosConfig_live_site . '/components/com_fw_tooltips/fw_tooltips.css" rel="stylesheet" type="text/css" />');

    Vediamo se cambia qualcosa.

  • Super User

    Grazie gmassi, ora non posso perchè ho seri problemi col server, appena sistemo il tutto, faccio la prova e ti faccio sapere 😉


  • User Attivo

    Quello è un lookahead. Il problema è che una parola per cui normalmente si dovrebbe creare il tooltip potrebbe trovarsi dentro un tag html (in un attributo alt, title o nome di classe per esempio) e in questo caso la sostituzione non si deve fare per non rovinare il codice. Molti tutorial sulle espressioni regolari non spiegano lookaheads e lookbehinds, uno che invece lo fa è questoGrazie della delucidazione...

    Hai ancora il problema? Una cosa che ho notato guardando meglio è che il mambot non include il percorso completo del javascript e questo potrebbe creare qualche problema.Esatto, ho fatto la prova in locale e fornendo i percorsi assoluti dei tre file il problema è risolto:
    ***<script type="text/javascript" src="components/com_fw_tooltips/mootools.v1.11.js"></script>
    <script type="text/javascript" src="components/com_fw_tooltips/mosfwtooltips.js"></script>
    <link href="components/com_fw_tooltips/fw_tooltips.css" rel="stylesheet" type="text/css" />


    Questo perché nel caso che ho verificato il mod_rewrite faceva comparire la pagina come se fossero in una sottodirectory e quindi nei tre percorsi relativi non era presente alcun file.
    :ciauz:


  • Super User

    Perfetto, funziona alla grande, siete grandi :vai:


  • User Newbie

    Si potrebbe avere il modulo funzionante su IE7???
    Esiste un area download???

    GRazie
    Alberto


  • Super User

    che problema riscontri ?