Pagina 1 di 1
eliminate 'catalogo' dalla navigazione
Inviato: 08/10/2005, 15:33
da wiko85
ragazzi è possibile eliminare il link 'catalogo' nel menù in alto?
Home Page » Catalogo » Categoria... ecc
grazie...
Re: eliminate 'catalogo' dalla navigazione
Inviato: 08/10/2005, 17:24
da kikoleppard
wiko85 ha scritto:ragazzi è possibile eliminare il link 'catalogo' nel menù in alto?
Home Page » Catalogo » Categoria... ecc
grazie...
te lo dico a memoria non l'ho fatto mai.
so che questo proviene dal codice
Codice: Seleziona tutto
<td class="headerNavigation"> <?php echo $breadcrumb->trail(' » '); ?></td>
E ci sta una class per questo ma di pui non posso dirti.
Ciao
Re: eliminate 'catalogo' dalla navigazione
Inviato: 08/10/2005, 18:31
da marcus
wiko85 ha scritto:ragazzi è possibile eliminare il link 'catalogo' nel menù in alto?
Home Page » Catalogo » Categoria... ecc
grazie...
Ecco la classe Breadcrumb modificata in modo da ottenere una pathline senza il livello catalog. Viene anche effettuato lo strip del carattere
» alla fine della pathline.
In home la pathline non viene visualizzata, in una pagina interna, ad es la scheda di un prodotto, viene visualizzata una pathline del tipo: Home >> CategoriaDelProdotto.
In sostanza è utile quando il sito ha la classica barra di navigazione orizzontale e non c'è una copertina esterna ma la home del sito coincide con la index di oscommerce.
Codice: Seleziona tutto
<?php
/*
$Id: breadcrumb.php,v 1.3 2003/02/11 00:04:50 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
Mod by oscommercedev.com
*/
class breadcrumb {
var $_trail;
function breadcrumb() {
$this->reset();
}
function reset() {
$this->_trail = array();
}
function add($title, $link = '') {
$this->_trail[] = array('title' => $title, 'link' => $link);
}
function trail($separator = ' - ') {
$trail_string = '';
$n=sizeof($this->_trail);
if ($n > 2) {
for ($i=0, $n; $i<$n; $i++) {
if ($i<>1) {
if (isset($this->_trail[$i]['link']) && tep_not_null($this->_trail[$i]['link'])) {
$trail_string .= '<a href="' . $this->_trail[$i]['link'] . '" class="headerNavigation">' . $this->_trail[$i]['title'] . '</a>';
} else {
$trail_string .= $this->_trail[$i]['title'];
}
if ( (($i+1) < $n) && (tep_not_null($this->_trail[$i+1]['title'])) ) $trail_string .= $separator;
}
}
}
return $trail_string;
}
}
?>
Modificato:
La seguente modifica nel file catalog/includes/header.php non è indispensabile ma può essere utile per cambiare il layout html in funzione della presenza o meno della line-path:
Codice: Seleziona tutto
<td class="headerNavigation"><?php echo $breadcrumb->trail(' » '); ?></td>
->
Codice: Seleziona tutto
<td class="headerNavigation"><?php
if ( tep_not_null($breadcrumb->trail(' » ')) ) { ?>
<!-- codice html -->
<?php echo $breadcrumb->trail(' » '); ?>
<!-- codice html -->
<?php } else { ?>
<!-- codice html -->
<?php } ?></td>
Marcus
Inviato: 15/10/2005, 13:06
da wiko85
scusa ma quindi devo fare solo questo?
Per utilizzare la classe così modificata occorre effettuare la seguente modifica nel file catalog/includes/header.php
Codice:
<td class="headerNavigation"> <?php echo $breadcrumb->trail(' » '); ?></td>
->
Codice:
<td class="headerNavigation"> <?php
if ( tep_not_null($breadcrumb->trail(' » ')) ) {
echo $breadcrumb->trail(' » ');
} ?></td>
Marcus
Inviato: 15/10/2005, 13:11
da Bass
wiko85 ha scritto:scusa ma quindi devo fare solo questo?
No, devi anche cambiare la classe
'iao
Sergio
Inviato: 15/10/2005, 13:24
da wiko85
bass, mi spieghi come devo fare?
grazie...
Inviato: 15/10/2005, 13:26
da Bass
wiko85 ha scritto:bass, mi spieghi come devo fare?
apri il file includes/classes/breadcrumb.php e sostituisci il codice presente con quello che ti ha postato Marcus
'iao
Sergio
Inviato: 16/10/2005, 0:36
da wiko85
e non è possibile ke così facendo sovrascrivo altre contrib installate?
Inviato: 16/10/2005, 10:36
da Bass
wiko85 ha scritto:e non è possibile ke così facendo sovrascrivo altre contrib installate?
Direi che e' molto improbabile, non ricordo contrib che agiscano su quella classe. Eventualmente fai un confronto
'iao
Sergio
Inviato: 16/10/2005, 15:08
da elvinomac
io modifico includes/application_top.php
Codice: Seleziona tutto
// include the breadcrumb class and start the breadcrumb trail
require(DIR_WS_CLASSES . 'breadcrumb.php');
$breadcrumb = new breadcrumb;
$breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);
$breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT));
cancellano o commentando quello che non voglio...
Sbaglio?
Ciauz
Elvino
Inviato: 16/10/2005, 16:10
da wiko85
scusa, questa sarebbe una alternativa?
Inviato: 16/10/2005, 18:42
da elvinomac
wiko85 ha scritto:scusa, questa sarebbe una alternativa?
si, perchè non ti sembra?
Ciauz
Inviato: 16/10/2005, 18:47
da Bass
elvinomac ha scritto:
si, perchè non ti sembra?
Anche a me e' capitato di fare modifiche da application_top.
Quello che non capisco e' cosa frena wiko nell'utilizzare il codice di marcus
'iao
Sergio
Inviato: 17/10/2005, 1:30
da marcus
elvinomac ha scritto:io modifico includes/application_top.php
Codice: Seleziona tutto
// include the breadcrumb class and start the breadcrumb trail
require(DIR_WS_CLASSES . 'breadcrumb.php');
$breadcrumb = new breadcrumb;
$breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);
$breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT));
cancellano o commentando quello che non voglio...
Sbaglio?
No è giusto.
In questo caso occorre però aggiungere un if di controllo per non avere una linepath costituita dal solo link 'Home Page' quando viene visualizzata la pagina home.
Un modo alternativo di ottenere quello che chiede wiko85, senza modificare la classe Breadcrumb potrebbe allora essere questo:
Codice: Seleziona tutto
$breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);
$breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT));
-->
Codice: Seleziona tutto
//$breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);
//$breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT));
if ( isset($cPath_array) || isset($HTTP_GET_VARS['manufacturers_id']) || ($PHP_SELF != DIR_WS_HTTP_CATALOG . FILENAME_DEFAULT) ) {
$breadcrumb->add(HEADER_TITLE_TOP, tep_href_link(FILENAME_DEFAULT));
}
Marcus
PS: ho effettuato una modifica al mio post precedente per correggere una imprecisione.