• Super User

    Guida - Installare e configurare le URL su Invision Power Board con Minerva Seo

    Per effettuare il rewrite dell?url con IPB devi avere Minerva Seo 😉 Una volta scaricato il pacchetto dovrai fare qualche modifica alla tua board prima di procedere con l?installazione del pacchetto seo. Ecco la lista dei files da modificare:

    Lofiversion/index.php
    sources/action_admin/spiderlogs.php
    sources/classes/class_display.php
    sources/classes/class_forums.php
    sources/classes/class_session.php
    sources/lib/func_topic_linear.php
    sources/action_public/forums.php
    sources/action_public/profile.php
    sources/action_public/topics.php
    sources/ipsclass.php
    index.php
    

    Apri il file lofiversion/index.php
    Trova:

       $output = str_replace( "<% CHARSET %>"   , $ipsclass->vars['gb_char_set'], $output);
    

    Dopo aggiungi:

    if($ipsclass->vars['mseo_meta_lofi_enabled'])
    {
            $output = str_replace('<meta name="robots" content="INDEX,FOLLOW" />','',$output);
            $meta = '<meta name="robots" content="NONE" />';
            $meta .= '<meta name="googlebot" content="NONE" />';
            $meta .= '<meta name="slurp" content="NONE" />';
    
    •    $output = str_replace('</title>','</title>'.$meta,$output);*
      
    • }*

    Apri il file sources/action_admin/spiderlogs.php
    Trova:

    $query_string_html = "<a href='{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}?{$row['query_string']}' target='_blank'>{$row['query_string']}</a>";
    

    Sostituiscilo con:

    $qs=$this->ipsclass->txt_truncate($row['query_string']);
     $query_string_html = "<a href='{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}?{$row['query_string']}' target='_blank'>{$qs}</a>";
    

    Apri sources/classes/class_display.php
    Trova:

       $this->ipsclass->skin['_wrapper'] = str_replace( "<% CSS %>"            , $css                                , $this->ipsclass->skin['_wrapper']);
    

    Dopo aggiungi:

              $css = $css.$this->ipsclass->minerva->replace_meta();
    

    Trova:

    $this->ipsclass->skin['_wrapper'] = str_replace( "<#IMG_DIR#>", $this->ipsclass->skin['_imagedir'], $this->ipsclass->skin['_wrapper'] );
            $this->ipsclass->skin['_wrapper'] = str_replace( "<#EMO_DIR#>", $this->ipsclass->skin['_emodir']  , $this->ipsclass->skin['_wrapper'] );
            //-----------------------------------------
            // Images on another server? uncomment and alter below
            //-----------------------------------------
            if ( $this->ipsclass->vars['ipb_img_url'] )
            {
                $this->ipsclass->skin['_wrapper'] = preg_replace( "#img\s+?src=([\"'])style_(images|avatars|emoticons)(.+?)[\"'](.+?)?".">#is", "img src=\\1".$this->ipsclass->vars['ipb_img_url']."style_\\2\\3\\1\\4>", $this->ipsclass->skin['_wrapper'] );
             }
    

    Dopo aggiungi:

    $this->ipsclass->minerva->html =& $this->ipsclass->skin['_wrapper'];
             $this->ipsclass->minerva->includer('replace_url');
    

    Trova:
    ```
    $html = str_replace( '<{body_extra}>', '', $html );
    //-----------------------------------------
    // Images on another server? uncomment and alter below
    //-----------------------------------------

         if ( $this->ipsclass->vars['ipb_img_url'] )
         {
             $html = preg_replace( "#img\s+?src=[\"']style_(images|avatars|emoticons)(.+?)[\"'](.+?)?".">#is", "img src=\"".$this->ipsclass->vars['ipb_img_url']."style_\\1\\2\"\\3>", $html );
          }
    
      Dopo aggiungi:
    

    $this->ipsclass->minerva->html =& $this->ipsclass->skin['_wrapper'];
    $this->ipsclass->minerva->includer('replace_url');

      
    
    
      Apri: sources/classes/class_forums.php
      Trova:
    

    $forum_data['last_topic'] = "<a href='{$this->ipsclass->base_url}showtopic={$forum_data['last_id']}&view=getnewpost' title='{$this->ipsclass->lang['tt_gounread']}: {$forum_data['full_last_title']}'>{$forum_data['last_title']}</a>";
    Sostituiscilo con:
    $forum_data['last_topic'] = "<a href='{$this->ipsclass->base_url}showtopic={$forum_data['last_id']}&view=getnewpost&f={$forum_data['id']}' title='{$this->ipsclass->lang['tt_gounread']}: {$forum_data['full_last_title']}'>{$forum_data['last_title']}</a>";

      
    
    
      Apri: sources/classes/class_session.php
      Trova:
    

    $qstring = str_replace( "'", "", $this->ipsclass->my_getenv('QUERY_STRING'));

      Sostituiscilo con:
    

    $qstring = str_replace( "'", "", 'automodule=minerva&CODE=redirect&u='.$this->ipsclass->vars['board_url'].$this->ipsclass->my_getenv('REQUEST_URI'));

      
    
    
      Apri: sources/lib/func_topic_linear.php
      Trova:
    

    $return = $this->lib->parse_row( $row );

      
    
    
      Dopo aggiungi:
    

    $temp_minerva_post[] = $return;

      
    
    
      Trova:
    

    $this->output .= $this->ipsclass->compiled_templates['skin_topic']->TableFooter( array( 'TOPIC' => $this->topic, 'FORUM' => $this->forum ), 0, $this->ipsclass->return_md5_check() );

      
    
    
      Dopo aggiungi:
    

    $this->ipsclass->minerva->current_post = $temp_minerva_post[0];
    unset($temp_minerva_post);

      
    
    
      Apri: sources/action_public/forums.php
      Trova:
    

    //-----------------------------------------
    // Get the forum info based on the forum ID,
    // and get the category name, ID, etc.
    //-----------------------------------------

          $this->forum = $this->ipsclass->forums->forum_by_id[ $this->ipsclass->input['f'] ];
    
    
    
      Dopo Aggiungi:
            ```
    $this->ipsclass->minerva->forum = $this->forum;
              $this->ipsclass->minerva->check_forum();
    

    Trova:

    $this->ipsclass->print->do_output( array( 'TITLE'    => $this->ipsclass->vars['board_name']." -> ".$this->forum['name'],
    

    Sostituiscilo con:

    $this->ipsclass->print->do_output( array( 'TITLE'    => $this->forum['name'] . " - ".$this->ipsclass->vars['board_name'],
    
    

    Trova:

    $topic['go_new_post']  = "<a href='{$this->ipsclass->base_url}showtopic={$topic['tid']}&amp;view=getnewpost'><{NEW_POST}></a>";
    

    Sostituiscilo con:

    $topic['go_new_post']  = "<a href='{$this->ipsclass->base_url}showtopic={$topic['tid']}&amp;view=getnewpost&amp;f={$topic['forum_id']}'>
     <{NEW_POST}></a>";
    

    Apri: sources/action_public/profile.php
    Trova:

    //-----------------------------------------
            // Grab all data...
            //-----------------------------------------
    
             $member = $this->personal_function_load_member( $member_id );
     
    

    Dopo aggiungi:

    $this->ipsclass->minerva->user = $member;
            $this->ipsclass->minerva->check_user();
    

    Apri: sources/action_public/topics.php
    Trova:
    ```

         //-----------------------------------------
         // Error out if we can not find the forum
          //-----------------------------------------
    
      
    
    
      Dopo aggiungi:
    

    [CENTER]$this->ipsclass->minerva->topics = $this->topic;[/CENTER]
    $this->ipsclass->minerva->check_topic();

      
    
    
      Trova:  
    

    //-----------------------------------------
    // Siggie stuff
    //-----------------------------------------

      
    
    
      Dopo aggiungi:
    

    $row = $this->ipsclass->minerva->parse_rowpost( $row );

      
    
    
      Apri: sources/ipsclass.php
      Trova:
         ```
    if ($this->member['id'] == "" and $error['MSG'] != 'server_too_busy' and $error['MSG'] != 'account_susp')
             {
                 $safe_string = $this->base_url . str_replace( '&amp;', '&', $this->parse_clean_value($this->my_getenv('QUERY_STRING')) );
         
                 $html = str_replace( "<!--IBF.LOG_IN_TABLE-->", $this->compiled_templates['skin_global']->error_log_in( str_replace( '&', '&amp;', $safe_string ) ), $html);
                 $override = 1;
              }
    

    Dopo aggiungi:

       $this->minerva->return_checked_error($error['MSG']);
    

    Trova:
    ```
    function board_offline()
    {
    $this->quick_init();

      
    
    
      Dopo aggiungi:
    

    $this->minerva->r503();

      
    
    
      Apri: index.php
      Trova:
    

    //===========================================================================
    // Generate choice array
    //===========================================================================

      
    
    
      Dopo aggiungi:
    

    require_once(ROOT_PATH.'modules/minerva/tools/include.php');
    $ipsclass->minerva = new mseo_inc();
    $ipsclass->minerva->ipsclass =& $ipsclass;
    $ipsclass->minerva->init();

      
    
    
      Trova:
    

    //--------------------------------
    // Initialize the FUNC
    //--------------------------------

      
    
    
      Dopo aggiungi:
    

    $ipsclass->minerva->after_init();

      
    
    
      Trova:
    

    require ROOT_PATH."modules/module_loader.php";
    $loader = new module_loader();
    $loader->ipsclass =& $ipsclass;
    $loader->run_loader();

      
    
    
      Sostituiscilo con:
    

    require ROOT_PATH."modules/module_loader.php";
    $ipsclass->minerva->current_class = new module_loader();
    $ipsclass->minerva->current_class->ipsclass =& $ipsclass;
    $ipsclass->minerva->current_class->run_loader();

      
    
    
      Trova:
    

    require_once( $file );
    $loader = new component_public();
    $loader->ipsclass =& $ipsclass;
    $loader->run_component()

      
    
    
      Sostituiscilo con:
    

    require_once( $file );
    $ipsclass->minerva->current_class = new component_public();
    $ipsclass->minerva->current_class->ipsclass =& $ipsclass;
    $ipsclass->minerva->current_class->run_component();

      
    
    
      Trova:
    

    $runme = new $choice[ strtolower($ipsclass->input['act']) ][1];
    $runme->ipsclass =& $ipsclass;
    $ipsclass->memory_debug_add( "CORE: Loaded ".$choice[ strtolower($ipsclass->input['act']) ][0].".php", $_pre_load );
    $runme->auto_run();

     
    
    
      Sostituiscilo con:
     
    
    

    $ipsclass->minerva->current_class = new $choice[ strtolower($ipsclass->input['act']) ][1];
    $ipsclass->minerva->current_class->ipsclass =& $ipsclass;
    $ipsclass->memory_debug_add( "CORE: Loaded ".$choice[ strtolower($ipsclass->input['act']) ][0].".php", $_pre_load );
    $ipsclass->minerva->current_class->auto_run();

    
    
      Ora vai su Look&Feel
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m11a54709.jpg)
      Dal tema che stai utilizzando seleziona la voce Edit Template HTML
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m1acd7752.jpg)
      Ti si aprirà questa finestra
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_298a4656.jpg)
      Cerca TableFooter(skin_topic)
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_5d593c76.jpg)
      In modo tale da visualizzare questa finestra
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m184b0ce5.jpg)
      Ora trova:
     *<!--IBF.TOPIC_ACTIVE-->*
      *<!--IBF.QUICK_REPLY_OPEN-->*
      E dopo aggiungi
      *<!--IPBSEO.TAG-->*
      Ora, come hai fatto in precedenza, cerca questi altri template e fai le modifiche che ti indico ;-)  
      Template: **topic_page_top**(skin_topic)
      Trova:  
      <!--IBF.FORUM_RULES-->
      
    
    
      E dopo aggiungi:
      *<!--MSEO.Additional.Description-->*
      
    
    
      Trova:
      *<!--IBF.FORUM_RULES-->*
      
    
    
      E dopo aggiungi:
     *<!--MSEO.Additional.Form-->*
      
    
    
      Template: **topic_page_top**(skin_topic)
      Trova:
      *<!--IBF.TOPIC_REPLY-->*
      
    
    
      E dopo aggiungi:
      *<!-MSEO.Bookmarklet-->*
      
    
    
      Template: **forumrow_lastunread_link(skin_boards)**
      **Trova: ** 
     *$tid*
      
    
    
      E dopo aggiungi:
      *&amp;f=$fid*
      
    
    
      Template: **PageTop(skin_forum)**
      **Trova:**
     *<!--IBF.SUBFORUMS-->*
      
    
    
      E dopo aggiungi:
      *<!--MSEO.Additional.Forum.Form-->*
      *<!--MSEO.Additional.Forum.Description-->*
      
    
    
      Template: **lobal_board_footer(skin_global)**
      
    
    
      Trova:
      *<a href="lofiversion/index.php<% LOFIVERSION %>"><b>{$this->ipsclass->lang['global_lofi']}</b></a>*
      
    
    
      E dopo aggiungi:
     *&nbsp;|&nbsp;<!--MSEO.COPYRIGHT-->*
      
    
    
      Ora vai su looks & feel > skin tools e clicca su ?Run Tool? per ripristinare tutti i template.  
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_45860.jpg)
      
    
    
      Ora vai sul www.tuodominio.ltd§/ipbseo_install/index.php per installare MinervaSeo. La prima schermata che ti comparirà sarà questa dove dovrai cliccare su Install  
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_mac4a219.jpg)
      A questo punto inizierà l?installazione
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m5c28ef22.jpg)
      Una volta terminata ti verrà proposta questa pagina dove dovrai cliccare su ?Your Board? per tornare al forum
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m39e1a7bc.jpg)
      Adesso vai nel pannello di amministrazione e clicca su Components
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m183d06ae.jpg)
      Tra i vari menù che ti vengono proposti troverai questo (clicca su General Settings)
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_176b388d.jpg)
      Ti comparirà questa schermata che ti permetterà di settare tutti i parametri per il rewrite dell?url. Puoi attivare il plugin, attivare il rewrite, includere index.php nei links, inserire il link principale del forum, scegliere il separatore, decidere il numero massimo di caratteri per le descrizioni, abilitare i Bookmarking
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_6fdce80c.jpg)
      Da queste opzioni puoi aggiungere gli account per AddThis, Mint e Analytics
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m63abeec.jpg)
      Da qui buoi abilitare la riscrittura dei caratteri speciali e il redirect per per le pagine 404.
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m2dab2f9b.jpg)
      Puoi abilitare il redirect su una sezione specifica, puoi scegliere i siti per la WhiteList (quelli accettati) e il tipo di redirect da effettuare (se utilizzare MinervaSeo o meno).
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m4c827f12.jpg)
      Puoi scegliere se e quali acronimi utilizzare.
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m10180ee8.jpg)
      Una volta settati tutti questi parametri e dopo aver cliccato su Update Settings dovrai cliccare su Tool & Settings
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_3077aae9.jpg)
      Dal menù che ti comparirà visualizza tutte le impostazioni generali  
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m1c6ff447.jpg)
      Tra quelle che ti compariranno scegli General Configuration
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m5394b8ee.jpg)
      Dovrai cambiare due impostazioni in questa configurazione:
     
    
    *      Redirect Page (mettere     su SI o YES)
    
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m210c79ea.jpg)
     
    
    *      Image url (mettere l?url     della cartella per le immagini)
    
      ![image](http://www.cionfs.it/files/rewrite/rewrite_html_m46199dc7.jpg)