Помощь Схема в статьях

Sudba

Гуру форума
Регистрация
6 Дек 2007
Сообщения
930
Реакции
50
Доброй ночи, форумчане.
Подскажите, как бы сделать собственную схему для статей.
То есть статьи есть, но они работают по шаблону information, а мне надо information1.

Чтобы не казаться, что я не пробовал.
Создал папки в контроллере information1 и там файл information1.php
Код:
<?php
class ControllerInformation1Information1 extends Controller {
    public function index() { 
        $this->language->load('information/information');
       
        $this->load->model('catalog/information');
       
        $this->data['breadcrumbs'] = array();
       
          $this->data['breadcrumbs'][] = array(
            'text'      => $this->language->get('text_home'),
            'href'      => $this->url->link('common/home'),
            'separator' => false
          );
       
        if (isset($this->request->get['information_id'])) {
            $information_id = (int)$this->request->get['information_id'];
        } else {
            $information_id = 0;
        }
       
        $information_info = $this->model_catalog_information->getInformation($information_id);
           
        if ($information_info) {
            if ($information_info['seo_title']) {
                $this->document->setTitle($information_info['seo_title']);
            } else {
                $this->document->setTitle($information_info['title']);
            }
            $this->document->setDescription($information_info['meta_description']);
            $this->document->setKeywords($information_info['meta_keyword']);
           
              $this->data['breadcrumbs'][] = array(
                'text'      => $information_info['title'],
                'href'      => $this->url->link('information/information', 'information_id=' .  $information_id),             
                'separator' => $this->language->get('text_separator')
              );       
                       
            if ($information_info['seo_h1']) {
                $this->data['heading_title'] = $information_info['seo_h1'];
            } else {
                $this->data['heading_title'] = $information_info['title'];
            }
             
              $this->data['button_continue'] = $this->language->get('button_continue');
           
            $this->data['description'] = html_entity_decode($information_info['description'], ENT_QUOTES, 'UTF-8');
             
            $this->data['continue'] = $this->url->link('common/home');

            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/information1.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/information/information1.tpl';
            } else {
                $this->template = 'default/template/information/information1.tpl';
            }
           
            $this->children = array(
                'common/column_left',
                'common/column_right',
                'common/content_top',
                'common/content_bottom',
                'common/footer',
                'common/header'
            );
                       
              $this->response->setOutput($this->render());
        } else {
              $this->data['breadcrumbs'][] = array(
                'text'      => $this->language->get('text_error'),
                'href'      => $this->url->link('information/information', 'information_id=' . $information_id),
                'separator' => $this->language->get('text_separator')
              );
               
              $this->document->setTitle($this->language->get('text_error'));
           
              $this->data['heading_title'] = $this->language->get('text_error');

              $this->data['text_error'] = $this->language->get('text_error');

              $this->data['button_continue'] = $this->language->get('button_continue');

              $this->data['continue'] = $this->url->link('common/home');

            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl';
            } else {
                $this->template = 'default/template/error/not_found.tpl';
            }
           
            $this->children = array(
                'common/column_left',
                'common/column_right',
                'common/content_top',
                'common/content_bottom',
                'common/footer',
                'common/header'
            );
                   
              $this->response->setOutput($this->render());
        }
      }
   
    public function info() {
        $this->load->model('catalog/information');
       
        if (isset($this->request->get['information_id'])) {
            $information_id = (int)$this->request->get['information_id'];
        } else {
            $information_id = 0;
        }     
       
        $information_info = $this->model_catalog_information->getInformation($information_id);

        if ($information_info) {
            $output  = '<html dir="ltr" lang="en">' . "\n";
            $output .= '<head>' . "\n";
            $output .= '  <title>' . $information_info['title'] . '</title>' . "\n";
            $output .= '  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' . "\n";
            $output .= '  <meta name="robots" content="noindex">' . "\n";
            $output .= '</head>' . "\n";
            $output .= '<body>' . "\n";
            $output .= '  <h1>' . $information_info['title'] . '</h1>' . "\n";
            $output .= html_entity_decode($information_info['description'], ENT_QUOTES, 'UTF-8') . "\n";
            $output .= '  </body>' . "\n";
            $output .= '</html>' . "\n";           

            $this->response->setOutput($output);
        }
    }
}
?>

И сам файл information1.tpl в шаблоне. Его продублировал с information.tpl.
Так вот при редактирование information1.tpl ничего не происходит(

И вторая проблема:
Решил сделать схему Главная+Товар.
Добавил схему и скопировал пути с соответствующих Схем, то есть объединил их.
Пытаюсь вывести слайдшоу, а он выводится только в товаре. На главной почему-то не выводится(
Что делать?(
 
Создал папки в контроллере information1 и там файл information1.php

И сам файл information1.tpl в шаблоне. Его продублировал с information.tpl.
Так вот при редактирование information1.tpl ничего не происходит(

И вторая проблема:
Решил сделать схему Главная+Товар.
Добавил схему и скопировал пути с соответствующих Схем, то есть объединил их.
Пытаюсь вывести слайдшоу, а он выводится только в товаре. На главной почему-то не выводится(
Что делать?(
1) И по какому адресу вы обратились к новой схеме information1?
Адрес тогда должен быть таким index.php?route=information1/information1&information_id=3
2) А старые схемы вы удалили Главная и Товар? На сколько я помню при конфликте применяются более ранние схемы.
 
1) И по какому адресу вы обратились к новой схеме information1?
Адрес тогда должен быть таким index.php?route=information1/information1&information_id=3
2) А старые схемы вы удалили Главная и Товар? На сколько я помню при конфликте применяются более ранние схемы.
1. По этой ссылке страница работает. Но есть вписать seo url и попробовать так site.ru/straniza то открывается страница со схемой informartion, а не с новой схемой.
2. И что тогда делать? Дублировать модули?
 
1. По этой ссылке страница работает. Но есть вписать seo url и попробовать так site.ru/straniza то открывается страница со схемой informartion, а не с новой схемой.
2. И что тогда делать? Дублировать модули?
Не сразу понял что вы хотите сделать. Так не получиться. Если вы добавляете статью через админку, и во вкладке Дизайн выбираете нестандартную схему, то эта статья будет обрабатываться все равно старым обработчиком information/information.php, а вот комплект модулей будет взят уже из новой схемы. Не выйдет так что бы разные статьи использовали разные контроллеры для отображения.
 
Не сразу понял что вы хотите сделать. Так не получиться. Если вы добавляете статью через админку, и во вкладке Дизайн выбираете нестандартную схему, то эта статья будет обрабатываться все равно старым обработчиком information/information.php, а вот комплект модулей будет взят уже из новой схемы. Не выйдет так что бы разные статьи использовали разные контроллеры для отображения.
да я хотел, чтобы новая статья была со своей схемой(то есть расположение модулей) и открывалась по тому url, который я задал ему в админке. А по этому url открывается статься, НО со старой схемой.
 
да я хотел, чтобы новая статья была со своей схемой(то есть расположение модулей) и открывалась по тому url, который я задал ему в админке. А по этому url открывается статься, НО со старой схемой.
Пример (основан на том что вы пытались сделать) :
1) Вы создали дубликаты information1/information1.php и соответственно information1/information1.tpl (с измененным шаблоном отображения).
2) Добавили новый макет(схему модулей), назвав его "TEST". Привязали к этой схеме запрос (пункт 'путь') соответствующий "information1/information1". И задали расположение модулей так как вам нужно.
3) Добавили статью. Указали ей seo_url, например 'test'. Изменили схему модулей по умолчанию ('information') на свою "TEST".

Что же должно произойти в данной ситуации:
по адресу site.ru/test будет доступна страница соответствующая адресу
site.ru/index.php?route=information/information&information_id=N и схеме расположения модулей TEST
т.е. будет отображено содержимое файла information.tpl а не information1.tpl но с вашей схемой модулей TEST

Почему так: потому что все статьи созданные в админке обрабатываются контроллером information/information.php и соответственно
seo_url будет привязан к этому контроллеру.
Но в то же время эта статья будет доступна по прямой ссылке:
site.ru/index.php?route=information1/information1&information_id=N

Как быть в такой ситуации зависит от поставленной задачи.
 
Пример (основан на том что вы пытались сделать) :
1) Вы создали дубликаты information1/information1.php и соответственно information1/information1.tpl (с измененным шаблоном отображения).
2) Добавили новый макет(схему модулей), назвав его "TEST". Привязали к этой схеме запрос (пункт 'путь') соответствующий "information1/information1". И задали расположение модулей так как вам нужно.
3) Добавили статью. Указали ей seo_url, например 'test'. Изменили схему модулей по умолчанию ('information') на свою "TEST".

Что же должно произойти в данной ситуации:
по адресу site.ru/test будет доступна страница соответствующая адресу
site.ru/index.php?route=information/information&information_id=N и схеме расположения модулей TEST
т.е. будет отображено содержимое файла information.tpl а не information1.tpl но с вашей схемой модулей TEST

Почему так: потому что все статьи созданные в админке обрабатываются контроллером information/information.php и соответственно
seo_url будет привязан к этому контроллеру.
Но в то же время эта статья будет доступна по прямой ссылке:
site.ru/index.php?route=information1/information1&information_id=N

Как быть в такой ситуации зависит от поставленной задачи.
Спасибо, получается сео урл не сделать для новой схемы?(
 
Спасибо, получается сео урл не сделать для новой схемы?(
Необходимо модифицировать seo_url.php (и seo_pro.php, если установлен seo_pro), т.к. вы создали новый модуль и расширили систему внутренних адресов Опенкарта.
 
Назад
Сверху