Podręcznik użytkownika CodeIgniter wersja 2.2.1


Helper URL

Helper URL zawiera funkcje pomagające w pracy z adresami URL.

Ładowanie helpera

Ten helper jest ładowany za pomocą poniższego kodu:

$this->load->helper('url');

Dostępne są następujące funkcje:

site_url()

Zwraca adres URL Twojej strony, który został określony w pliku config. Plik index.php (lub inny plik, jaki masz ustawiony w pliku konfiguracyjnym jako index_page) zostanie dodany do adresu URL, tak samo jak każdy segment URI, który został przypisany do funkcji oraz url_suffix, ustawiony w pliku konfuguracyjnym.

Zachęcamy do używania tej funkcji za każdym razem, kiedy będziesz chciał wygenerować lokalny adres URL. Dzięki stosowaniu tej funkcji, Twoje strony staną się bardziej przenośne w momencie zmiany głównego adresu URL.

Opcjonalnie, segmenty mogą być przypisane do funkcji jako ciąg lub tablica. Przykład z ciągiem:

echo site_url("news/local/123");

Powyższy przykład mógłby zwrócić następujący kod: http://example.com/index.php/news/local/123

Przykład z segmentami przypisanymi jako tablica:

$segments = array('news', 'local', '123');

echo site_url($segments);

base_url()

Zwraca główny adres Twojej strony, tak jak określono w pliku config. Przykład:

echo base_url();

Ta funkcja zwraca to samo co funkcja site_url, ale bez dodawania opcji index_page, czy url_suffix.

Tak samo jak w funkcji site_url, możesz przypisać segmenty jako ciąg lub tablicę. Przykład z ciagiem:

echo base_url("blog/post/123");

Powyższy przykład mógłby zwrócić następujący kod: http://example.com/blog/post/123

Funkcja jest użyteczna, ponieważ w przeciwieństwie do site_url(), możesz określić ścieżkę do pliku, np. obrazku, czy stylu. Przykład:

echo base_url("images/icons/edit.png");

Powyższy przykład mógłby zwrócić następujący kod: http://example.com/images/icons/edit.png

current_url()

Zwraca pełen adres URL (włączając w to segmenty) do strony, którą obecnie oglądamy.

uri_string()

Zwraca segmenty URI dla strony, dla której została wywołana. Dla przykładu, jeśli nasz adres URL był następujący:

http://some-site.com/blog/comments/123

To funkcja zwróci:

/blog/comments/123

index_page()

Zwraca wartość "index" dla strony, która została określona w pliku confug. Przykład:

echo index_page();

anchor()

Tworzy standardowy odnośnik (link) HTML, na podstawie lokalnego adresu URL:

<a href="http://example.com">Kliknij tutaj</a>

Mamy do dyspozycji trzy opcjonalne parametry:

anchor(segmenty uri, tekst, atrybuty)

Pierwszy parametr może zawierać segmenty, które chcesz dołączyć do adresu URL. Tak samo jak w przypadku funkcji site_url() powyżej, segmenty mogą być ciągami lub tablicą.

Uwaga:  Jeśli budujesz linki, które są wewnętrzne, nie dodawaj bazowego adresu URL (http://...). Ten element zostanie automatycznie dodany na podstawie informacji zawartych w Twoim pliku konfiguracyjnym. Dodaj tylko te segmenty, które chcesz aby pojawiły się w adresie URL.

Drugi parametr jest tekstem, który będzie nazwą dla linku. Jeśli ten parametr zostawisz pusty, jako nazwa linku zostanie użyty adres URL.

Trzeci parametr może zawierać listę atrybutów, które chciałbyś dodać do linku. Atrybuty mogą być prostym ciągiem lub tablicą asocjacyjną.

Oto kilka przykładów:

echo anchor('news/local/123', 'My News', 'title="News title"');

Daje nam: <a href="http://example.com/index.php/news/local/123" title="News title">My News</a>

echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));

Daje nam: <a href="http://example.com/index.php/news/local/123" title="The best news!">My News</a>

anchor_popup()

Prawie taka sama jak funkcja anchor(), z tym że otwiera adres URL w nowym oknie. Możesz określić atrybuty JavaScript dla okna w trzecim parametrze, aby kontrolować w jaki sposób okno zostanie otwarte. Przykład z atrybutami:

$atts = array(
              'width'      => '800',
              'height'     => '600',
              'scrollbars' => 'yes',
              'status'     => 'yes',
              'resizable'  => 'yes',
              'screenx'    => '0',
              'screeny'    => '0'
            );

echo anchor_popup('news/local/123', 'Kliknij mnie!', $atts);

Uwaga: Powyższe atrybuty są ustawieniami domyślnymi, więc jeśli nie chcesz zmieniać któregoś z atrybutów, nie musisz go przypisywać. Jeśli chcesz aby funkcja używała wszystkich wartości domyślnych, wystarczy przypisać pustą tablicę do trzeciego parametru:

echo anchor_popup('news/local/123', 'Kliknij mnie!', array());

mailto()

Tworzy standardowy odnośnik email. Przykład:

echo mailto('me@my-site.com', 'Kliknij aby się ze mną skontaktować');

Tak samo jak w przypadku anchor(), możesz przypisać atrybuty za pomocą trzeciego parametru.

safe_mailto()

Prawie taka sama jak funkcja powyżej, z tym że tworzy "zaciemnioną" wersję adresu email za pomocą JavaScriptu, co pomaga chronić adres email przed spam botami.

auto_link()

Automatycznie zamienia adresy URL i email, które mają postać ciągu na linki. Przykład:

$string = auto_link($string);

Drugi parametr określa, czy konwertowany jest adres URL, czy email lub oba. Domyślnym ustawieniem, jeśli nie określono parametru, jest both. Linki email są konwertowane za pomocą safe_mailto(), w sposób jaki pokazano powyżej.

Konwertuje tylko adresy URL:

$string = auto_link($string, 'url');

Konwertuje tylko adresy email:

$string = auto_link($string, 'email');

Trzeci parametr decyduje o tym, czy linki zostaną otwarte w nowym oknie. Parametr moze przyjąć wartość TRUE lub FALSE (boolean):

$string = auto_link($string, 'both', TRUE);

url_title()

Jako pierwszy parametr przyjmowany jest ciąg, który przetwarzany jest na przyjazny adres URL. Przydatne w przypadku, kiedy posiadając blog chciałbyś, aby tytuł wpisu był zawarty w adresie URL. Przykład:

$title = "What's wrong with CSS?";

$url_title = url_title($title);

// Daje: Whats-wrong-with-CSS

Drugi parametr określa słowo, za pomocą którego będą łączone wyrazy. Domyślnie są to myślniki. Dostępne opcje to: dash (myślniki) lub underscore (podkreślenia):

$title = "What's wrong with CSS?";

$url_title = url_title($title, 'underscore');

// Daje: Whats_wrong_with_CSS

Trzeci parametr określa, czy ciąg zostanie zamieniony na małe litery. Domyślnie opcja ta jest wyłączona. Dostępne opcje: TRUE/FALSE (boolean):

$title = "What's wrong with CSS?";

$url_title = url_title($title, 'underscore', TRUE);

// Daje: whats_wrong_with_css

prep_url()

Ta funkcja doda http:// do ciągu. Przypisz ciąg URL do funkcji w ten sposób:

$url = "example.com";

$url = prep_url($url);

redirect()

Wykonuje przekierowanie nagłówków do określonego adresu URI. Jeśli podasz jako parametr pełny adres URL, będzie on poprawny, ale dla lokalnych linków używaj segmentów URI. Ta funkcja stworzy adres pełny URL na podstawie ustawień konfiguracyjnych z pliku config.

Drugi, opcjonalny parametr pozwoli na wybranie pomiędzy metodą "location" (domyślna), a metodą "refresh". Location jest szybsza, ale na serwerach Windows, może czasami powodować problemy. Opcjonalny trzeci parametr pozwala na wysłanie HTTP Responce Code - może być to wykorzystane do tworzenia przekierowań 301 dla robotów wyszukiwarek. Domyślny Responce Code, to 302. Trzeci parametr jest dostępny tylko w połączeniu z metodą "location, a nie "redirect". Przykłady:

if ($logged_in == FALSE)
{
     redirect('/login/form/', 'refresh');
}

// przekierowanie 301
redirect('/article/13', 'location', 301);

Uwaga: Aby ta funkcja zadziałała, musi być użyta przed tym, nim cokolwiek innego zostanie zwrócone do przeglądarki i wyśle nagłówki HTTP.
Uwaga: Dla bardzo łatwej kontroli nad nagłówkami, powinieneś skorzystać z funkcji set_header() z biblioteki Output.