Boczne menu
Chcę wam pokazać ciekawą modyfikację głównego pliku snews.php tak aby boczne menu ukrywało się na stronach a pokazywało na kategoriach i w artykułach.
Po co to? To dość proste. Jeśli mamy Główne menu na swoim snews to chcemy aby po pierwsze na stronie głównej było jak najwięcej informacji zachęcających do exploracji dalszych części strony. Menu górne wygląda wtedy mniej więcej tak: Start | Kat1 (np. Produkty) | Kat2 (np. Usługi) | Kontakt. Teraz w kat 1 chcemy widzieć Produkty i ich listę ale nie chcemy widzieć listy usług. W kat 2 będzie widoczna lista usług i tam nie chcemy produktów. Pustymi pozostają Strona główna | kontakt | i wszystkie strony dodatkowe systemu.
Skoro wiecie już o co chodzi to do dzieła.
Pierwsza rzecz którą trzeba wykonać to ustawić wyświetlanie listy artykułów w kategorii, a ukrycie listy artykułów z pozostałych kategorii.
W pliku snews.php dodajemy następujący kod (w dowolnym miejscu ale polecam poniżej funkcji login_link) :
- Kod:
//Hide menu
//Funkcja pokazuje listę artykułów w kategorii.
function show_menu(){
global $categorySEF, $subcatSEF, $_POS, $_TITLE, $_NAME, $_XNAME, $_catID, $_ID;
//Jeżeli spełnia warunek kategoria lub pusty wyświetl...
if (!check_category($categorySEF) && !empty($categorySEF)) {
echo '<div class="right_side"><div id="intro"><?php extra(); ?></div>';
echo '<h3>';
//Co to za kategoria
$link = '<a href="'._SITE.'';
if (_ADMIN) {
echo $link.'administration/" title="'.l('administration').'"></a> ';
}
echo (!empty($categorySEF) ? $link.'"></a>' : l('home'));
if (!empty($categorySEF) && check_category($categorySEF) == false) {
echo (!empty($subcatSEF) ? ' '.$link.$categorySEF.'/">
</a>' :
(!empty($_NAME) ? ' '.$_NAME:''));
if (!empty($subcatSEF) && $_XNAME) {
echo ($_POS==1 ? ' '.$link.$categorySEF.'/'.$subcatSEF.'/">
</a>' : ' '.$_NAME);
}
echo (!empty($_TITLE)? ' '.$_TITLE : '');
}
if (check_category($categorySEF) == true && $categorySEF != 'administration' && $categorySEF) {
echo ' '.l($categorySEF);}
echo '</h3>';
// Menu artykuły w kategoriach
if( isset($_catID) ){
$link = (!empty($categorySEF) ? $categorySEF.'/' : '');
if( isset($_XNAME)) $link .= ((!empty($subcatSEF)) ? $subcatSEF.'/' : '');
$source = mysql_query('SELECT id,title,seftitle FROM '.
_PRE.'articles WHERE category ='.$_catID.' AND visible=\'YES\' AND published=1 ORDER BY artorder,`title`');
$list = '';
while($r = mysql_fetch_assoc($source)){
if( $_ID === $r['id']) $list .= sprintf('<li id="here">%s</li>',$r['title']);
else $list .= sprintf('<li><a href="%s%s/">%s</a></li>',$link,$r['seftitle'],$r['title']);
}
}
if($list) echo "\n<ul>$list</ul>\n";
echo '<div class="clear"></div>
</div>';
}
}
Dobra skoro już to udało się zrobić to teraz 2 element. Ukrywanie div. (wklejmy go pod poprzednią funkcją):
To co wypełnimy między divami będzie się wyświetlać lub nie.
Następnym krokiem jest ustawienie odpowiednich formatów div w pliku style.css u mnie np. :
Co to daje? po prostu rozciąga diva lub go zmniejsza.
Teraz kod HTML który umieszczamy w index.php:
I teraz tak. To jest ogólna modyfikacja należy zastosować swoje własne zmienne.
Przykład css dla własnego szablonu html.
Przykład podmiany div:
- Kod:
function div_swich(){
global $categorySEF;
if (!check_category($categorySEF) && !empty($categorySEF)) {
echo '<div id="right2">';
}
else {
echo '<div id="right">';
echo '<div id="search_box"> ';
searchform();
echo '</div> <!-- Wyszukiwarka -->
<h3>Kategorie</h3>
<ul>';
categories();
echo '</ul> <!-- Linki Kategorii -->
<h3>Ostatnie artykuły</h3>
<ul> ';
menu_articles(0, 5);
echo '</ul> <!-- Linki Artykułów -->
<h3>Ostatnie komentarze</h3>
<ul>';
new_comments(5, 50);
echo '</ul> <!-- Linki Komentarzy -->
<h3>RSS</h3>
<ul> ';
rss_links();
echo '</ul> <!-- Linki RSS -->';
}
}
Kombinujcie i piszcie jak coś jest nie jasne.
- Zobacz mnie na GoldenLine | Maksyma: Pozycjonowanie jest dla Ludzi! | To pozycjonuje: Portfolio

