CodeIgniter, руководство пользователя к версии 1.6.1


Хелпер URL

Хелпер URL содержит функции, помогающие работать с URL.

Загрузка хелпера

Для загрузки хелпера используется следующий код:

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

Доступны следующие функции:

site_url()

Возвращает URL вашего сайта, указанный в файле конфигурации. Файл index.php (или тот, который вы выставили в index_page в файле конфигурации) будет добавлен к URL также, как и любые URI сегменты, которые вы передаете в функцию.

Данная функция рекомендуется к использованию в том случае, если необходимо сгенерировать локальный URL для улучшения переносимости страниц в процессе изменения URL.

Сегменты могут быть переданы в функцию либо как строка, либо как массив. Пример строки:

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

Приведенный в примере код выведет нечто вроде: http://www.your-site.com/index.php/news/local/123

Пример передачи сегментов массивом:

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

echo site_url($segments);

base_url()

Возвращает корневой для сайта URL, указанный в файле конфигурации. Пример:

echo base_url();

index_page()

Возвращает адрес индексной страницы сайта, указанной в файле конфигурации. Пример:

echo index_page();

anchor()

Создаёт стандартную HTML–ссылку на основе локального URL сайта:

<a href="http://www.your-site.com">Щёлк меня!</a>

Тэгу можно задать три необязательных параметра:

anchor(uri segments, text, attributes)

Первый параметр может содержать любые сегменты, которые вы хотите добавить к URL. Также, как и в функции site_url(), описанной выше, сегменты можно указать строкой или массивом.

Примечание:  Если вы создаете ссылки, являющиеся для вашего приложения внутренними, не указывайте базовый адрес (http://...). Он будет считан из файла конфигурации и добавлен автоматически. Включайте только сегменты URI, которые вы хотите добавить к URL.

Второй аргумент — текст, который вы хотите отображать. Если его оставить пустым, будет использован URL ссылки.

Третий параметр может содержать список атрибутов, которые вы хотите добавить к ссылке. Можно указать их строкой, либо при помощи ассоциативного массива.

Пара примеров:

echo anchor('news/local/123', 'Мои новости');

Выведет: <a href="http://www.your-site.com/index.php/news/local/123" title="Мои новости">Мои новости</a>

echo anchor('news/local/123', 'Мои новости', array('title' => 'Самые лучшие новости!'));

Выведет: <a href="http://www.your-site.com/index.php/news/local/123" title="Самые лучшие новости!">Мои новости</a>

anchor_popup()

Почти идентична функции anchor() за тем исключением, что URL открывается в новом окне. Вы можете указать JavaScript–атрибуты окна третьим параметром для того, чтобы задать, как именно оно откроется. Если третий параметр не задан, будет открыто новое окно с установками, заданными в вашем браузере. Пример задания аттрибутов:

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

echo anchor_popup(news/local/123, 'Щёлк меня!', $atts);

Примечание: Приведённые атрибуты являются атрибутами по умолчанию для данной функции, поэтому вам необходимо переопределить только те, которые от них отличаются. Если вы хотите, чтобы использовались значения по умолчанию — передайте в функицю пустой массив третьим параметром:

echo anchor_popup('news/local/123', 'Щёлк меня!', array());

mailto()

Создает стандартную почтовую HTML–ссылку. Пример использования:

echo mailto('me@my-site.com', 'Нажми на меня для отправки письма!');

Также, как и в функции anchor() вы можете задать атрибуты, используя третий параметр.

safe_mailto()

Идентична предыдущей функции за исключением того, что почтовый адрес выводится в обфусцированном виде с использованием порядковых номеров символов, которые генерируются при помощи JavaScript. Таким образом адрес скрывается от спам–ботов.

auto_link()

Автоматически преобразует в ссылки адреса URL и email, содержащиеся в тексте. Пример:

$string = auto_link($string);

Второй параметр определяет, будут ли определяться оба адреса: URL и email или же только один из них. Если параметр не указан – определяются оба.

Определяет и преобразует только URL:

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

Определяет и преобразует только Email:

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

Третий параметр определяет открывать ли ссылки в новом окне. Значение может быть TRUE или FALSE:

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

url_title()

Получает в качестве параметра строку и отдаёт человекопонятный URL. Очень полезно, если, допустим, у вас есть блог, в котором вы бы хотели использовать название заметок в качестве URL. Пример:

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

$url_title = url_title($title);

// Получим: whats-wrong-with-css

Второй параметр задаёт разделитель между словами. По–умолчанию используются минусы. Возможные варианты: dash(минус), underscore(подчёркивание):

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

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

// Получим: whats_wrong_with_css

prep_url()

Данная функция добавляет http:// в том случае, если его в URL нет. Передавайте функции URL, похожий на этот:

$url = "www.example.com";

$url = prep_url($url);

redirect()

Реализует перенаправление к локальному URI с помощью заголовков. Также, как и все остальные функции данного хелпера, данная функция производит перенаправление к локальному URL сайта. Вам не нужно указывать полный URL сайта. Вместо него используются сегменты URI контроллера, к которому вы хотите обратиться. Функция создаёт URL на основе значений, указанных в файле конфигурации.

Второй параметр позволяет вам выбрать между методом "location" (по–умолчанию) и методом "refresh". Метод location быстрее, но он иногда вызывает проблемы на серверах Windows. Пример:

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

Примечание: Для корректной работы данной функции она должна быть использована до любого вывода в браузер так как она использует заголовки сервера.