Документация

Начало работы

Модели (models)

Шаблоны (views) и маршрутизация (routes)

Формы

SQL запросы

Сессии и безопасность

Плагины

Читабельные ссылки для страниц ЧПУ

Ответов: 2
Viktor
11.11.2014 13:28

Здравствуйте, как можно настроить ЧПУ для страниц модели? и есть ли возможность установить автоматику для преобразования названия страницы в ссылку?

Тэги: Модели Маршрутизация Другое

Прочтений: 617
Ответов: 2
Admin
13.11.2014 06:46

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

1. Добавить поле типа url в модель
2. При формировании списка ссылок для модели ставить заполненные значения url
3. При определении страницы учитывать возможные значения поля url

//Добавляем поле в модель
array("Ссылка", "url", "url", array("unique" => true))

//Вывод списка ссылок в модели
public function display()
{
    $rows = $this -> select(array("active" => 1, "parent" => 56));
    
    foreach($rows as $row)
    {
        $url = $this -> root_path."product/".($row['url'] ? $row['url'] : $row['id'])."/";
        $html .= '<li><a href="'.$url.'">'.$row['name'].'</a></li>';
        ...
    }
    ...
}

//Поиск страницы по URL в модели
public function defineProductPage(Router $router)
{
    $url_parts = $router -> getUrlParts();
    $record = false;

    if(count($url_parts) == 2)
        if(is_numeric($url_parts[1]))
            $record = $this -> findRecord(array("id" => $url_parts[1], "active" => 1));
        else
            $record = $this -> findRecord(array("url" => $url_parts[1], "active" => 1));

    if($record)
        $this -> id = $record -> id;

    return $record;
}

//В шаблоне для отображения
<?
$product = $mv -> products -> defineProductPage($mv -> router);
$mv -> display404($product);
Viktor
13.11.2014 10:58

Большое спасибо

Ответить на вопрос
Ответить