Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ссылка на определенные страницы


wlll

Recommended Posts

Хочу сделать ссылки в хедере на нужные мне страницы

в файле header.tpl написал:

<?php foreach ($informations as $information) { ?>
                             if(in_array($informations['information_id'], array(4))) {
          <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
          <?php } }?>

В контроллере:

$data['informations'] = array();

		foreach ($this->model_catalog_information->getInformations() as $result) {
			if ($result['bottom']) {
				$data['informations'][] = array(
					'title' => $result['title'],
					'information_id' => $result['information_id'],
					'href'  => $this->url->link('information/information', 'information_id=' . $result['information_id'])
				);
			}
		}

Но теперь страницы сайта выдают 500 ошибку. Без условия if все работает. 

Спасибо!

Надіслати
Поділитися на інших сайтах


У вас есть условие 

if ($result['bottom']) {

Сделайте такое же, но уже не для подвала, а для шапки. И по чекбоксу в админке будут вам выводиться нужные страницы в меню, без костылей

Надіслати
Поділитися на інших сайтах


3 часа назад, wbDev сказал:

У вас есть условие 


if ($result['bottom']) {

Сделайте такое же, но уже не для подвала, а для шапки. И по чекбоксу в админке будут вам выводиться нужные страницы в меню, без костылей

Спасибо за идею! 

Но вот у меня что то не получилось. Вот что сделал:

1. Выполнил завпрос в бд:

ALTER TABLE oc_information ADD COLUMN top INT(1) NOT NULL DEFAULT '0' AFTER bottom

2. Для админки:

admin/controller/catalog/information.php

Добавил:

$data['entry_top'] = $this->language->get('entry_top');
$data['help_top'] = $this->language->get('help_top');
if (isset($this->request->post['top'])) {
            $data['top'] = $this->request->post['top'];
        } elseif (!empty($information_info)) {
            $data['top'] = $information_info['top'];
        } else {
            $data['top'] = 0;
        }

Добавил перевод:

admin/language/ru-ru/catalog/information.php

$_['entry_top']           = 'Отображать сверху';
$_['help_top']  = 'Показывать в верхней части сайта (хеадер, шапка)';

admin/model/catalog/information.php

Строку

$this->db->query("INSERT INTO " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', status = '" . (int)$data['status'] . "'");

Заменил на 

$this->db->query("INSERT INTO " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', top = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', status = '" . (int)$data['status'] . "'");

И эту строку 

$this->db->query("UPDATE " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', status = '" . (int)$data['status'] . "' WHERE information_id = '" . (int)$information_id . "'");

заменил на

$this->db->query("UPDATE " . DB_PREFIX . "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', top = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', status = '" . (int)$data['status'] . "' WHERE information_id = '" . (int)$information_id . "'");

admin/view/template/catalog/information_form.tpl

Добавил:

<div class="form-group">
                <label class="col-sm-2 control-label" for="input-top"><span data-toggle="tooltip" title="<?php echo $help_top; ?>"><?php echo $entry_top; ?></span></label>
                <div class="col-sm-10">
                  <div class="checkbox">
                    <label>
                      <?php if ($top) { ?>
                      <input type="checkbox" name="top" value="1" checked="checked" id="input-top" />
                      <?php } else { ?>
                      <input type="checkbox" name="top" value="1" id="input-top" />
                      <?php } ?>
                      &nbsp; </label>
                  </div>
                </div>
              </div>

3. Вывел на сайте

catalog/controller/common/header.php

Перед

// Menu
        $this->load->model('catalog/category');

Добавил:

$this->load->model('catalog/information');

        $data['informations'] = array();

        foreach ($this->model_catalog_information->getInformations() as $result) {
            if ($result['top']) {
                $data['informations'][] = array(
                    'title' => $result['title'],
                    'href'  => $this->url->link('information/information', 'information_id=' . $result['information_id'])
                );
            }
        }

catalog/view/theme/ТЕМА/template/common/header.tpl

 <ul class="list-unstyled list-inline">
                             <?php foreach ($informations as $information) { ?>
          <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
          <?php } ?>
                           </ul>

И обновил кеш модификаторов

В итоге в админке на странице редактирования статей :

Notice: Undefined index: top in /admin/controller/catalog/information.php on line 422 

На странице сайта:

Notice: Undefined index: top in system/storage/modification/catalog/controller/common/header.php on line 97

При сохранении статьи выдает 500 ошибку.

В чем я ошибся? :(

Надіслати
Поділитися на інших сайтах


В admin/controller/catalog/information.php

после этой строки

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

добавил

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

После этой 

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

добавил ниже

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

После этих строк

if (isset($this->request->post['bottom'])) {
            
$data['bottom'] = $this->request->post['bottom'];
        } elseif (!empty(
$information_info)) {
            
$data['bottom'] = $information_info['bottom'];
        } else {
            
$data['bottom'] = 0;
        }

ниже добавил:

if (isset($this->request->post['top'])) {
            
$data['top'] = $this->request->post['top'];
        } elseif (!empty(
$information_info)) {
            
$data['top'] = $information_info['top'];
        } else {
            
$data['top'] = 0;
        }
Змінено користувачем wlll
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.