Pagina 1 di 2

Breadcrumb PhpBBSeo

Inviato: 05/06/2014, 10:29
da Sonia
Ciao ragazzi, avrei un problemino riguardante la breadcrumb con phpbbseo, in pratica quando vado a cliccare su una qualsiasi sezione riportata nella breadcrumb, vedi foto:

Immagine

mi esce questo errore:

Codice: Seleziona tutto

Not Found

The requested URL /community/playstation3/viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
il problema è il finale del link che anzichè essere per esempio "nick psn" mi esce "viewforum.php".
Qualche idea su come potrei risolvere?
Grazie a tutti ;)

Re: Breadcrumb PhpBBSeo

Inviato: 05/06/2014, 10:37
da Angolo
I menu Breadcrumbs nativi del phpBB3, non hanno menu a tendina. O hai usato una MOD o è stata attuata una modifica allo stile. In base a questo, se la modifica è stata manuale, potrebbe essere stato inserito manualmente qualche link scorretto-improprio. Si deve vedere come è stato costruito.

Re: Breadcrumb PhpBBSeo

Inviato: 05/06/2014, 10:41
da Sonia
La breadcrumb era già installata con lo stile, non ho fatto alcuna modifica.

Re: Breadcrumb PhpBBSeo

Inviato: 05/06/2014, 10:56
da Angolo
Allora si deve capire come quello stile gestisce la cosa: sicuramente, non la gestisce in modo nativo.
Gli adattamenti della SEO, si riferiscono al funzionamento standard del menu breadcrumbs, che non è certo quello di questo stile. Non è previsto il menu a discesa. Sarà piuttosto complicato trovare un adattamento SEO per quello stile, limitatamente alla questione.
La cosa più semplice da fare, consiste nel ricostruire in quello stile, il menu breadcrumbs nativo o del prosilver o del subsilver2 SEO, limitandosi a fare un adattamento circoscritto al solo colore. Una volta ricostruito il menu breadcrumbs nativo del phpBB3, eliminare quello nativo dello stile.
Oppure, se riesci a capire come funziona quel menu, in quel particolare stile, tentare di effettuare un adattamento SEO. È una cosa troppo particolare.

Re: Breadcrumb PhpBBSeo

Inviato: 05/06/2014, 11:03
da Sonia
Ok, grazie per le info...vedrò cosa posso fare ;)

Re: Breadcrumb PhpBBSeo

Inviato: 05/06/2014, 23:57
da Sonia
Ho chiesto un pò in giro e il codice relativo alla breadcrumb è il seguente:

Codice: Seleziona tutto

   if($navmenu_enable)
      {
      if(isset($template->_tpldata['navlinks']) && isset($template->_tpldata['jumpbox_forums']) && (count($template->_tpldata['jumpbox_forums']) > 1)) {
         $breadcrumb_popup = '';
         $navlinks_data = &$template->_tpldata['navlinks'];
         $tree = build_jumpbox_tree($template->_tpldata['jumpbox_forums']);
         
         $parents = array();
         foreach ($navlinks_data as $crumb)
         {
            $parents[] = $crumb['FORUM_ID'];
         }
         foreach ($navlinks_data as $level => &$crumb)
         {
            $breadcrumb_popup = '<div class="nav-popup"><ul>';
            $breadcrumb_popup .= generate_advanced_breadcrumb($tree, $crumb['FORUM_ID'], $level, $parents);
            $breadcrumb_popup .= '</ul></div>';
            $crumb['POPUP'] = $breadcrumb_popup;
         }
      }
   }


/* Generate a forum array tree, based on an unordered array like the jumpbox data */
function build_jumpbox_tree($list) {
   $tree = $parent_memory = array();
   $prev_id = $prev_level = 0;

   foreach($list as $item => $vars) {
      $forum_id = $vars['FORUM_ID'];
      $level = (isset($vars['level']) && is_array($vars['level'])) ? count($vars['level']) : 0;

      if ($level == 0) {
         $parent_memory = array(0);
      } elseif ($level > $prev_level) {
         $parent_memory[$level] = $prev_id;
      } elseif ($level < $prev_level) {
         unset($parent_memory[$prev_level]);
         unset($parent_memory[$prev_level + 1]); // clean up
         unset($parent_memory[$prev_level + 2]); // clean up
      }

      $current = (isset($vars['SELECTED']) && !empty($vars['SELECTED']) ? true : false);
      
      $values = array('parent_id' => $parent_memory[$level], 'level' => $level, 'forum_name' => $vars['FORUM_NAME'], 'current' => $current);
      
      switch($level) {
         case 0:
            $tree[$forum_id] = $values;
         break;
         case 1:
            $tree[$parent_memory[$level]]['children'][$forum_id] = $values;
         break;
         case 2:
            $tree[$parent_memory[$level-1]]['children'][$parent_memory[$level]]['children'][$forum_id] = $values;
         break;
         case 3:
            $tree[$parent_memory[$level-2]]['children'][$parent_memory[$level-1]]['children'][$parent_memory[$level]]['children'][$forum_id] = $values;
         break;
      }

      $prev_id = $forum_id;
      $prev_level = $level;
   }

   unset($tree[-1]);
   return $tree;
}


/* Generates menu blocks based on the forum array tree, to use for popup menus */
function generate_advanced_breadcrumb($tree, $crumb_current, $crumb_level = 0, $parents = array()) {
   $link = './viewforum.php?f=';
   $html = $childhtml = '';
   
   foreach ($tree as $id => $vars)
   {
      /*if (($crumb_level > $vars['level']) && $crumb_level !== 0)
      {
         continue;
      }*/
      
      if (isset($vars['children'])) {
         $childhtml = generate_advanced_breadcrumb($vars['children'], $crumb_current, $crumb_level, $parents);
      } else {
         $childhtml = '';
      }

      $parent_id = $vars['parent_id'];
      $level = $vars['level'];

      if (($crumb_level <= $vars['level'] && in_array($parent_id, $parents)) || $crumb_level == 0)
      {
         $class = (!empty($childhtml)) ? 'children' : '';
         $class .= ($vars['current'] == true || $id == $crumb_current) ? ' current' : '';

         $html .= '<li' . ((!empty($class)) ? (' class="' . $class . '">') : ('>'));

         $html .= '<a href="' . $link . $id .'">' . $vars['forum_name'] . '</a>';

         if (!empty($childhtml)) {
            $html .= '<div class="fly-out"><ul>';
            $html .= $childhtml;
            $html .= '</ul></div>';
         }

         $html .= "</li>\n";
      } else {
         $html .= $childhtml;
      }
   }

   return $html;
}
ho notato che a un certo punto punto compare

Codice: Seleziona tutto

$link = './viewforum.php?f=';
penso che l'inghippo sia qui...suggerimenti?

Re: Breadcrumb PhpBBSeo

Inviato: 06/06/2014, 7:57
da Angolo
Da quale file hai preso questo codice? Non mi sembra un codice nativo né del phpBB3 né della SEO...
Questa è una MOD...

Re: Breadcrumb PhpBBSeo

Inviato: 06/06/2014, 8:14
da Sonia
Si hai ragione è una mod, me lo ha confermato l'autore della skin solo che non è in grado di aiutarmi dato che mi ha riferito che di phpbbseo non ci capisce nulla dato che non lo ha mai usato, il codice proviene da un file denominato hook_pbwow2.php e quello citato sopra è solo una parte.

Re: Breadcrumb PhpBBSeo

Inviato: 06/06/2014, 8:16
da Angolo
Qui si dovrebbe fare un adattamento SEO a una MOD... una modifica della MOD... intanto vedi se ci sono info in merito, sul Forum di phpBB SEO...

Re: Breadcrumb PhpBBSeo

Inviato: 06/06/2014, 9:06
da Sonia
Ho risolto...bastava semplicemente eliminare viewforum.php, ho modificato da così

Codice: Seleziona tutto

$link = './viewforum.php?f=';
a così

Codice: Seleziona tutto

$link = './?f=';
e sembra funzionare.