logo

Boczne menu


Dział poświęcony modom i dodatkom, które są w pełni sprawne i przetestowane. Tu przedstawiamy działające modyfikacje CMSa sNews 1.7

Avatar użytkownika

Posty: 23

Dołączył(a): 19 maja 2010, o 10:37

Lokalizacja: Żory

Podziękował : 0 raz
Otrzymał podziękowań: 0 raz

Post 23 maja 2010, o 22:13

Boczne menu

Witam wszystkich.
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ą):

  Kod:
//Podmiana diva
function div_swich(){
// W globalach wykorzystujemy kategorię
      global $categorySEF;
//Jeżeli spełnia warunek
  if (!check_category($categorySEF) && !empty($categorySEF)) {
//wyświetl div 1
   echo '<div id="posts">';
  }
//jeżeli nie wyświetl div 2
  else {
       echo '<div id="posts2">';
       }
}


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. :

  Kod:
#left_posts {width: 800px;color: #454545;float: left;padding: 0 0 10px 40px;}
#left_posts2 {width: 527px;color: #454545;float: left;padding: 0 0 10px 10px;}


Co to daje? po prostu rozciąga diva lub go zmniejsza.
Teraz kod HTML który umieszczamy w index.php:
  Kod:
<div id="main">
         <?php div_swich() ?><div id="breadcrumbs">You are here: <?php breadcrumbs(); ?></div>
            <?php center(); ?>
           
         </div>
         <?php show_menu(); ?>
         
      <div class="clear"></div>

</div>   


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.
Tu coś o mnie Obrazek - Zobacz mnie na GoldenLine | Maksyma: Pozycjonowanie jest dla Ludzi! | To pozycjonuje: Portfolio
Avatar użytkownika

Administrator

Posty: 39

Dołączył(a): 18 maja 2010, o 17:14

Lokalizacja: Brzeźno Wielkie

Podziękował : 0 raz
Otrzymał podziękowań: 0 raz

Post 24 maja 2010, o 11:32

Jakieś demo?

A możesz jakąś stronkę z demem pokazać? Na dniach postaram się przetestować tego moda, bo z opisu całkiem przydatny się wydaje ;)
Avatar użytkownika

Posty: 23

Dołączył(a): 19 maja 2010, o 10:37

Lokalizacja: Żory

Podziękował : 0 raz
Otrzymał podziękowań: 0 raz

Post 24 maja 2010, o 15:31

Re: Boczne menu

Demo:

Trochę się już zdezaktualizowało ale po tych linkach można zobaczyć zasadę działania:

Strona Główna: TU
Strona produktu: TU
Strona usług: TU
Strona Galerii: TU

Proszę... Tą stronę robiłem 2 lata temu...
Tu coś o mnie Obrazek - Zobacz mnie na GoldenLine | Maksyma: Pozycjonowanie jest dla Ludzi! | To pozycjonuje: Portfolio
Avatar użytkownika

Administrator

Posty: 39

Dołączył(a): 18 maja 2010, o 17:14

Lokalizacja: Brzeźno Wielkie

Podziękował : 0 raz
Otrzymał podziękowań: 0 raz

Post 24 maja 2010, o 18:08

Trzeba to wykorzystać :D

Hmmm całkiem fajne. Na innej mojej stronce opartej o sNews przyda się taki mod. I tak chciałem coś zrobić na tej zasadzie, aby strona była bardziej użyteczna i intuicyjna.

Powrót do Mody i dodatki

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
phpBB SEO