eliminate 'catalogo' dalla navigazione

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

Rispondi
Avatar utente
wiko85
membro Veteran
membro Veteran
Messaggi: 731
Iscritto il: 15/09/2005, 11:24
Contatta:

eliminate 'catalogo' dalla navigazione

Messaggio da wiko85 »

ragazzi è possibile eliminare il link 'catalogo' nel menù in alto?

Home Page » Catalogo » Categoria... ecc


grazie...
Avatar utente
kikoleppard
membro Senior
membro Senior
Messaggi: 343
Iscritto il: 25/05/2005, 18:12
Località: Plovdiv-Bulgaria
Contatta:

Re: eliminate 'catalogo' dalla navigazione

Messaggio 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
Avatar utente
marcus
membro Master
membro Master
Messaggi: 1619
Iscritto il: 04/12/2003, 1:00
Contatta:

Re: eliminate 'catalogo' dalla navigazione

Messaggio 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
Ultima modifica di marcus il 17/10/2005, 2:04, modificato 2 volte in totale.
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Avatar utente
wiko85
membro Veteran
membro Veteran
Messaggi: 731
Iscritto il: 15/09/2005, 11:24
Contatta:

Messaggio 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
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

wiko85 ha scritto:scusa ma quindi devo fare solo questo?
No, devi anche cambiare la classe :)

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
wiko85
membro Veteran
membro Veteran
Messaggi: 731
Iscritto il: 15/09/2005, 11:24
Contatta:

Messaggio da wiko85 »

bass, mi spieghi come devo fare?

grazie...
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio 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
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
wiko85
membro Veteran
membro Veteran
Messaggi: 731
Iscritto il: 15/09/2005, 11:24
Contatta:

Messaggio da wiko85 »

e non è possibile ke così facendo sovrascrivo altre contrib installate?
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio 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
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
elvinomac
membro Senior
membro Senior
Messaggi: 331
Iscritto il: 24/05/2005, 20:39
Località: Vicenza
Contatta:

Messaggio 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
Avatar utente
wiko85
membro Veteran
membro Veteran
Messaggi: 731
Iscritto il: 15/09/2005, 11:24
Contatta:

Messaggio da wiko85 »

scusa, questa sarebbe una alternativa?
Avatar utente
elvinomac
membro Senior
membro Senior
Messaggi: 331
Iscritto il: 24/05/2005, 20:39
Località: Vicenza
Contatta:

Messaggio da elvinomac »

wiko85 ha scritto:scusa, questa sarebbe una alternativa?
si, perchè non ti sembra?

Ciauz
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio 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
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
marcus
membro Master
membro Master
Messaggi: 1619
Iscritto il: 04/12/2003, 1:00
Contatta:

Messaggio 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.
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Rispondi