Witajcie!

Właśnie napisałem dla własnych potrzeb od nowa funkcję anchor w helperze url_helper.php.

Co zostało zmienione i dodane?
Funkcja została napisana tak, że gdy jesteśmy na danej stronie to u nas w menu, odnośnik który prowadzi do strony na której właśnie jesteśmy, zostaje wyróżniony.

Wystarczy zamienic stary kod z funkcja anchor, na moj.

  1. <?php
  2. // ------------------------------------------------------------------------
  3.  
  4. /**
  5.  * Anchor Link
  6.  *
  7.  * Creates an anchor based on the local URL.
  8.  *
  9.  * @access public
  10.  * @param string the URL
  11.  * @param string the link title
  12.  * @param mixed any link class
  13.  * @param mixed any link class now
  14.  * @param mixed url name
  15.  * @param  mixed  URL segment
  16.  * @param  mixed  AOTT
  17.  * @param  mixed  Text style start
  18.  * @param  mixed  Text style end
  19.  * @return string
  20.  */
  21. function anchor($uri = '', $title = '', $a_class = '', $class_now = '', $url_name = '', $segment = 1, $aott = FALSE , $text_style1 = '', $text_style2 = '')
  22. {
  23. $CI = get_instance();
  24. $get = $CI->uri->segment($segment);
  25. $title = (string) $title;
  26.  
  27. // Generowanie adresu strony
  28. if ( ! is_array($uri))
  29. {
  30. $site_url = ( ! preg_match('!^w+://!i', $uri)) ? site_url($uri) : $uri;
  31. }
  32. else
  33. {
  34. $site_url = site_url($uri);
  35. }
  36.  
  37. // Nazwa odnośnika
  38. if ($title == '')
  39. {
  40. $title = $site_url;
  41. }
  42.  
  43. // Ustalanie klasy
  44. if ($a_class != '')
  45. {
  46. $attributes = 'class=\"'.$a_class.'\"';
  47. }
  48.  
  49. // Ustalanie kiedy ma byc zaznaczone
  50. if($aott == FALSE && $get == $CI->uri->segment(1) && $CI->uri->segment(2) != NULL)
  51. {
  52. $class = '';
  53. }
  54. else
  55. {
  56.  
  57. if($get == $url_name)
  58. {
  59. $class = 'class=\"'.$class_now.'\"';
  60. }
  61. else
  62. {
  63. $class = $a_class;
  64. }
  65.  
  66. }
  67.  
  68. return '<a href=\"'.$site_url.'\" title=\"'.$title.'\" '.$class.'>'.$text_style1.''.$title.''.$text_style2.'';
  69. }
  70. ?>


Krótkie wyjaśnienie

  1. <?php
  2. anchor('nazwapliku','wyswietlana nazwa', 'nazwa klasy linku', 'nazwa klasy jezeli ta strone aktualnie ogladamy', 'fragment adresu ktory ma sprawdzic', ktory segment linku ma sprawdzac, [b]FALSE[/b], 'costam linku, np. ', 'zakonczenie ');
  3. ?>


Przepraszam, ale ja kompletnie nie potrafię tłumaczyć :/. To False gdzie pogrubiłem, już w ogóle nie mam pojęcia jak wam wytlumaczyc. Uważam, że ktoś znający się na programowaniu choć troszeczkę, powinien patrząc na kod zrozumieć co jest od czego. Co do phpdocumentator - dopiero się uczę tongue.gif

Mam nadzieję, że komuś się przyda.

Jeszcze takie porównanko tego z html'em:
  1. <?php
  2. anchor('site/portfolio','Moje Portfolio', 'klaskac', 'now', 'portfolio', 2, FALSE, '', '');
  3. ?>

odpowiada
  1. </a href=\"'.$site_url.'\" title=\"'.$title.'\" '.$class.'><a href="http://strona_z_configu/site/portfolio" class="klaskac" title="Moje Portfolio" ><span>Moje Portfolio</span></a>
  2. <a href=\"'.$site_url.'\" title=\"'.$title.'\" '.$class.'>


^ Cos sie jebie, nie moge tego poprawic -.-
</a href=\"'.$site_url.'\" title=\"'.$title.'\" '.$class.'>