Joomla.it Forum
Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => : Danilo88 28 Apr 2011, 17:29:40
-
Buongiorno a voi,
inizio col ringraziare nuovamente per il grande aiuto che fornisce quotidianamente questa
community e preciso che prima di richiedere il vostro aiuto ho ricercato una soluzione al
mio problema, ma purtroppo non ho ottenuto molti risultati, perchè le soluzioni trovate non erano
applicabili per chi utilizza i SEO.
Il problema in questione è il seguente, dal mio sito:
www.cooperativa16ottobre.it
si può facilmente notare come, utilizzando uno qualsiasi dei link presenti nel modulo Menu Principale o Top Menu, il collegamento porti ad una pagina ma posizionandosi all'inizio della stessa (riportando all'intestazione e non all'articolo di riferimento).
Il mio cliente ha insistito parecchio perchè si trovasse una soluzione a questo problema, e lui vorrebbe
che cliccando su uno qualsiasi dei link del Menu Principale vi fosse una sorta di "anchor" all'inizio dell'articolo (senza quindi essere costretti ogni volta a scorrere la pagina verso il basso per visualizzare lo stesso).
Quindi una sorta di anchor dell'articolo ma non interno allo stesso, bensì utilizzabile dai link del Menu Principale.
Ringrazio in anticipo per un'eventuale risposta, se nel frattempo troverò una soluzione provvederò a renderla disponibile qui stesso, sperando di poter ricambiare l'aiuto.
Buon lavoro a tutti,
Danilo
-
il problema non è quello, il problema è che in tutte le pagine ci stanno quei banneroni che rendono difficoltosa ed inaccessible la navigazione nel sito, in pratica l'ancora servirebbe a togliere di mezzo quei cosi, la soluzione di solito è far visualizzare quei cosi solo in home page ...
-
Eh.. lo so, purtroppo le direttive sono queste, potrei vedere tutti i link del menu principale come "link esterni" considerando i link passati + degli anchor?
-
brutta cosa quanto le direttive per siti joomla le da chi non conosce na cippa di joomla..
come pensi di fare?
non dimenticare di postare la soluzione quando la trovi, sarà molto utile alla comunità..
:)
-
Inizio a pensare se valga la pena sacrificare le impostazioni SEO per lasciare il cliente soddisfatto.
A lui interessava ricevere visibilità da Google e in fin dei conti l'ha ottenuta (scrivendo "cooperativa 16 ottobre" la pagina è visibile come primo risultato), ed è proprio quello che lui desiderava.
Adesso il problema sta nel fatto che non so se convenga sacrificare le Friendly URL per creare dei link "fai da te".
La ricerca continua.. :)
-
non capisco la logica..
che il modulo, anzi i due moduli in alto scappino fuori dal monitor o che non siano pubblicati sulle pagine interne, cosa cambia?
-
Certo la tua potrebbe essere un'ottima idea!
Si potrebbe prevedere di visualizzare il top menu, l'header e lo slideshow esclusivamente nella homepage, e per tutte le altre pagine visualizzare soltanto il top menu, una modifica del genere sarebbe fattibile/costruttiva a tuo parere?
Aumenterebbe la visibilità dell'articolo e soprattutto la velocità, visto e considerato che lo slideshow rallenta parecchio. :)
Unico problema è capire "come" apportare una modifica del genere!
-
te lo dicevo subito su..
come fare?
se sono moduli li condizioni solo per la prima pagina
se sono script inseriti nel template ci sono diversi metodi, uno sarebbe questo pezzetto di codice nel php del template
<?php if(JRequest::getVar('view') == "frontpage" ) : ?>
------slide--------
<?php endif; ?>
-
Scusa se approfitto della tua disponibilità (grazie sempre comunque!), ma purtroppo son testardo e tendo a trovare la soluzione al diretto problema!
Ho pensato, perchè non modificare il modules.php del template?
Così per il menu principale (che è condiviso da tutte le pagine del template) potrei inserire un anchor-link direttamente al titolo del menu verticale, agendo sul codice.
Dato il template a cui faccio riferimento, basterebbe effettuare un confronto di stringhe e verificare se si è arrivati al titolo "Menu Principale", in questo caso modificare l'istruzione echo così da aggiungere l'anchor.
Cosa ne pensa? :)
Grazie mille come sempre!
-
ma se sai scrivere righe di codice php allora puoi fare quello che desideri, non c'è dubbio.
-
Tra università e lavoro (sono laureando in Informatica all'università di Palermo) ho appreso sintassi e paradigmi del linguaggio di scripting php, però non ho mai affrontato il php orientato agli oggetti, quindi posso fare ben poco!
Vedrò di riuscire a capire come effettuare questo confronto fra stringhe (probabilmente credo userò la strcasecmp per evitare il problema della stringa case-sensitive) e l'inserimento dell'anchor, se riuscirò condividerò tutto qui stesso. :)
-
bene..
però inizierei da qui..
http://www.joomla.it/articoli-della-community/788-override-del-template-come-personalizzare-le-pagine-di-joomla.html
mai modificare il codice di joomla, al primo aggiornamento sparirebbe tutto..
-
Molto utile!!!
Al momento però inconsciamente stavo proprio effettuando l'override, lavorando sul php del template in locale (sperimentando più che altro!).
Sono riuscito ad ottenere un anchor al titolo del menu principale, e modificando il link della home
localhost/cooperativa/index.php
in
localhost/cooperativa/index.php#ancora
ottengo proprio il risultato voluto!!!
Non mi resta che modificare gli altri link in maniera tale da ottenere lo stesso risultato, ma come potrei modificare un link come questo?
localhost/cooperativa/index.php?option=com_content&view=article&id=53
In questo caso il "#ancora" dove andrebbe inserito?
Se riesco a comprendere questo penso di essere arrivato ad un punto fermo! :)
Grazie mille a chiunque riesca a rispondermi.
-
Salve ancora!
Chiedo scusa per l'insistenza, ma sono davvero vicino a trovare una soluzione al mio problema!
Modificando il file modules.php del template, il modulo utilizzato pe creare il menu principale, sono riuscito a piazzare un'ancora (chiamata per l'appunto "ancora") sulla label "Menu Principale", e ho notato che posso riuscire a richiamarla scrivendo qualsiasi url del sito seguita da #ancora, ad esempio
www.cooperativa16ottobre.it/index.php/chi-siamo.html#ancora
E il risultato è pienamente soddisfacente.
Adesso il problema però è quello di far assegnare "automaticamente" un bel #ancora alla fine di ciascun link del menu principale, e ho capito che tale menu viene creato all'interno del file modules.php richiamando l'istanza $module->content (che ricrea l'elenco verticale del menu).
Mi chiedo, dove viene creato questo "elenco" costituito da tutti i link alle varie pagine?
Basta scoprire questo e potrò capire dove inserire la parte #ancora finale e risolvere ogni problema!
Grazie in anticipo a chiunque sia in ascolto!
Danilo
-
Ciao Danilo88,
mi sembra un po' complicata la via che stai seguendo... :)
Se inserisci il codice che ti ha dato 56franceso condizioni in un secondo tutte le pagine, senza link o ancore.
<div id="content">
<?php if(JRequest::getVar('view') == "frontpage" ) : ?>
<div id="slideshow_outer">
<div id="slideshow">
<div id="slideshowContainer" class="slideshowContainer"></div>
<div id="thumbnails">
<div class="thumb_left">
<div class="slideshowThumbnail_a"><a href="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/image1.jpg" class="slideshowThumbnail"><span class="slideshowThumbnail_image"><img src="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/mini1.jpg" border="0" height="70" width="100" alt="" title="" /></span><span class="slideshow_title_text"><span class="slideshow_title"><?php echo $this->params->get('title1'); ?></span><span class="slideshow_text"><?php echo $this->params->get('text1'); ?></span></span></a></div>
<div class="slideshowThumbnail_a"><a href="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/image2.jpg" class="slideshowThumbnail"><span class="slideshowThumbnail_image"><img src="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/mini2.jpg" border="0" height="70" width="100" alt="" title="" /></span><span class="slideshow_title_text"><span class="slideshow_title"><?php echo $this->params->get('title2'); ?></span><span class="slideshow_text"><?php echo $this->params->get('text2'); ?></span></span></a></div>
<div class="slideshowThumbnail_a"><a href="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/image3.jpg" class="slideshowThumbnail"><span class="slideshowThumbnail_image"><img src="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/mini3.jpg" border="0" height="70" width="100" alt="" title="" /></span><span class="slideshow_title_text"><span class="slideshow_title"><?php echo $this->params->get('title3'); ?></span><span class="slideshow_text"><?php echo $this->params->get('text3'); ?></span></span></a></div>
</div>
<div class="thumb_right">
<div class="slideshowThumbnail_a"><a href="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/image4.jpg" class="slideshowThumbnail"><span class="slideshowThumbnail_image"><img src="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/mini4.jpg" border="0" height="70" width="100" alt="" title="" /></span><span class="slideshow_title_text"><span class="slideshow_title"><?php echo $this->params->get('title4'); ?></span><span class="slideshow_text"><?php echo $this->params->get('text4'); ?></span></span></a></div>
<div class="slideshowThumbnail_a"><a href="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/image5.jpg" class="slideshowThumbnail"><span class="slideshowThumbnail_image"><img src="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/mini5.jpg" border="0" height="70" width="100" alt="" title="" /></span><span class="slideshow_title_text"><span class="slideshow_title"><?php echo $this->params->get('title5'); ?></span><span class="slideshow_text"><?php echo $this->params->get('text5'); ?></span></span></a></div>
<div class="slideshowThumbnail_a"><a href="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/image6.jpg" class="slideshowThumbnail"><span class="slideshowThumbnail_image"><img src="<?php echo $this->baseurl ?>/templates/nld_050_1.5/images/slideshow/mini6.jpg" border="0" height="70" width="100" alt="" title="" /></span><span class="slideshow_title_text"><span class="slideshow_title"><?php echo $this->params->get('title6'); ?></span><span class="slideshow_text"><?php echo $this->params->get('text6'); ?></span></span></a></div>
</div>
</div>
<script type="text/javascript">
window.addEvent('domready',function(){
var obj = {
wait: 3000,
effect: 'fade',
duration: 1000,
loop: true,
thumbnails: true,
backgroundSlider: true,
onClick: function(i){alert(i)}
}
show = new SlideShow('slideshowContainer','slideshowThumbnail',obj);
show.play();
});
</script>
</div>
</div>
<?php endif; ?>
<?php if($this->params->get('left_component_right') == 'left') : ?>
Ho compreso la riga prima e quella dopo per farti vedere dove inserire il codice...
-
Che poi, con il tuo sistema non vedi il top menù, mentre con questo sì ;)
-
Grazie per la risposta e il sorgente, piacere di conoscerti! :)
Hai proprio ragione, con la mia idea stavo finendo per modificare praticamente qualsiasi link e non so fino a che punto sarei arrivato, ma il sito mi sembrava fin troppo "fragile".
Con questa vostra idea finirei per non visualizzare esclusivamente lo slideshow, se non nella homepage, così risolverei ogni però ogni problema di visualizzazione!!!
Mi avete salvato da una bella chiaccheratona col mio cliente, purtroppo è un tipo fin troppo all'antica!
Spero proprio che questa idea lo convincerà!! :-D
Grazie infinite, ho appena provato in locale e adesso porto tutto in remoto!! :)