Перейти к содержанию
shurik

[Поддержка] Модуль констант ( статических данных )

Рекомендуемые сообщения

Модуль констант ( статических данных )


Модуль констант ( статических данных )


Opencart модуль, позволяющий создавать константы ( статические записи, дополнительные поля, переменные ), и затем использовать их в коде.

Модуль отлично подходит для тех ситуаций, когда нужно создать копирайт, несколько телофонов, слоган и.т.п

То есть данные, которые можно будет потом изменять прямо в админке.

Для front-end'a доступна только модель для вывода полей.

Код есть на github -> https://github.com/venomjke/ocmodule_constants


 

  • +1 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отлично!

А где ему задавать в шаблон позиции для вывода?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отлично!

А где ему задавать в шаблон позиции для вывода?

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

например:

// catalog/controller/common/header.php
$this->load->model('constants');
$this->data['phone'] = $this->model_constants->getValueByAlias('phone_1');
// catalog/view/template/../common/header.tpl
<div class="contacts"> <?php echo $phone; ?> </div>

А на счет просто вывода можно подумать, но я пока плохо представляю как именно это лучше сделать, и где может пригодиться, потому-что константы идут список, никак не подразделяясь.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проще использовать таблицу settings и

$this->config->get()

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проще использовать таблицу settings и

$this->config->get()
У меня была такая идея, но по сути, этот модуль является самодостаточным компонентом, который можно расширять как угодно, а если через settings то появляется прямая зависимость от структуры данных setting, и от всего, что с ней связано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня была такая идея, но по сути, этот модуль является самодостаточным компонентом, который можно расширять как угодно, а если через settings то появляется прямая зависимость от структуры данных setting, и от всего, что с ней связано.

через settings всё работает и не надо ничего придумывать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня была такая идея, но по сути, этот модуль является самодостаточным компонентом, который можно расширять как угодно, а если через settings то появляется прямая зависимость от структуры данных setting, и от всего, что с ней связано.

Какая зависимость? Там можно хранить любые данные.

Честно говоря, когда увидел модуль, то подумал, что Вы так и зделали.

В этом вопросе поддерживаю freelancer. И вызов, соответсвенно, был бы более лаконичным и доступно по умолчанию в любом контроллере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я все-равно чего-то не въехал. Далек от этих вещей.

Создал константу: идентификатор: 3, псевдоним: dollar, headline: bax. Значение: "=9,5 грн". Далее:

// catalog/controller/common/header.php
$this->load->model('constants');
$this->data['dollar'] = $this->model_constants->getValueByAlias('dollar_1');
// catalog/view/template/../common/header.tpl
<div class="contacts"> <?php echo $dollar; ?> </div>

И ни фига :( bax тоже пробовал.

Версия 1.5.3.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я все-равно чего-то не въехал. Далек от этих вещей.

Создал константу: идентификатор: 3, псевдоним: dollar, headline: bax. Значение: "=9,5 грн". Далее:

// catalog/controller/common/header.php
$this->load->model('constants');
$this->data['dollar'] = $this->model_constants->getValueByAlias('dollar_1');
// catalog/view/template/../common/header.tpl
<div class="contacts"> <?php echo $dollar; ?> </div>

И ни фига :( bax тоже пробовал.

Версия 1.5.3.1

Небольшое недопонимание вышло=) Псевдоним и Id никак не связаны, вы можете выбирать и по id и по псевдониму, в вашем случае это так:

//catalog/controller/...
$this->load->model('constants')
$this->data['dollar'] = $this->model_constants->getValueByAlias('dollar');
// view
<div> <?php echo $dollar; ?> </div>
Или, если хотите по id выбрать то:

//catalog/controller/...
$this->load->model('constants')
$this->data['dollar'] = $this->model_constants->getValueById(3);
// view
<div> <?php echo $dollar; ?> </div>
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая зависимость? Там можно хранить любые данные.

Честно говоря, когда увидел модуль, то подумал, что Вы так и зделали.

В этом вопросе поддерживаю freelancer. И вызов, соответсвенно, был бы более лаконичным и доступно по умолчанию в любом контроллере.

Вообще-то зависимость прямая получается, то есть, если кто-то решит что-то убрать из таблицы, то мне придется за этим следить.Разумеется это крайне маловероятно, но это факт, и его нужно брать в расчет.

Второе - пересечение ключей, так как в таблице уже существует огромное кол-во всяких псевдонимов, то вероятность совпадения при добавлении достаточно большая, мне это не надо.

Третье - это расширяемость, предположим я захотел добавить поле "группы", для того чтобы подчеркнуть принадлежность к разделам, скажем "header", "footer", тогда мне надо будет добавлять это поле в сериализуемый массив, а потом еще сортировать при отображении, нафик это надо??

Или, скажем, я захотел добавить поле "Тип значения", опять приходится работать с сериализованными данными, когда можно просто получить то, что мне надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

закидываю файлы с заменой на чистый ocstore1.5.3.1 и при входе в админке в модули вот это

Could not load language module/constants! in Y:\home\ocstore\www\system\library\language.php on line 39

понял свою ошибку, а под ocstore будет модуль

Изменено пользователем Dimintej

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а для чего нужно поле в админке Заголовок?

Для того, чтобы можно было давать осмысленные имена константам типа "Phone_1" и "Phone_2"

Правда, стоило наверно его сделать "Наименование константы" а не заголовок.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня на 1.5.4.1. не работает( Может кто подскажет как еще вывести любую текстовую информацию в любом месте шаблона?

Какие симптомы, что именно не работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Закачал все как положено. Потом захожу в админку выбираю модули а вместо модулей выходит пустая страница, удаляю файл admin/controller/module/constants.php-> модули открываются нормально

У вас включен вывод php ошибок? Если нет, то попробуйте логи веб-сервера посмотреть, просто пока сложно понять в чем конкретно дело.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Проблема в расположении файла "языка" для админки. (\admin\language\module\constants.php)

Данный файл необходимо положить в другую папку (/admin/language/russian/module/constants.php )

И все заработает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Проблема в расположении файла "языка" для админки. (\admin\language\module\constants.php)

Данный файл необходимо положить в другую папку (/admin/language/russian/module/constants.php )

И все заработает

Спасибо за наводку, поправлю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Как редактировать расположение, стиль и т.п. ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, подскажите, пожалуйста, как вывести константы и в футере, и в хедере. В хедере вывел, все работает без проблем, но когда сделал то же и для футера (те же переменные), пишет что в файле футере переменные не найдены (Notice: Undefined variable: phone1 in ..vq2-catalog_view_theme_bigshop_template_common_footer.tpl on line...), хотя в controller/common/footer.php прописал: $this->load->model('constants'); $this->data['phone1'] = $this->model_constants->getValueByAlias('phone1') и в footer.tpl вывел (<?php echo $phone1; ?>). ОС 1.5.4.1

Проблема решена, всё работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день! Подскажите пожалуйста как и где редактировать стили, положение и.т. д. И если можно поподробней. Думаю таким новичкам как я будет ИНТЕРЕСНО,

И ещё как ввести несколько телефонов, у меня почему-то все накладываются друг на друга!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день! Подскажите пожалуйста как и где редактировать стили, положение и.т. д. И если можно поподробней. Думаю таким новичкам как я будет ИНТЕРЕСНО,

И ещё как ввести несколько телефонов, у меня почему-то все накладываются друг на друга!!!

Вопрос не по теме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С помощью модуля реализовал редактируемые через админку контакты и ссылки в шапке стандартного шаблона! Правда пришлось немного допилить под себя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за наводку, поправлю.

И так и не поправил :)

Но всеравно спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Truth_Explorer
      Коллеги, приветствую.
       
      Несколько лет назад на форуме была тема, где автор спрашивал про реализацию дополнительных произвольных полей в админке товара для последующего вывода в шаблон карточки.
       
      Весь гугл перерыл по ключевым запросам - не нашел.
       
      В той теме (не ТС) разобрал по полочкам этот момент и очень подробно описал шаги: что необходимо прописывать вручную в файлах контроллеров и моделей, что надо создавать в БД, как выводить в шаблон.
       
      Помогите, пожалуйста, найти эту тему. Меня интересует именно ручная реализация, а не какие-либо модули.
       
      PS вот не сохранишь в своё время ссылку - потом никогда ничего не найдёшь
    • От Muskather
      Добрый день.
      Проблема в том, что не совсем разбираюсь в запросах SQL.
      Хочу вывести два дополнительных поля в карточке товара, содержимое которых будет выводится через админ-панель, текст будет сохранятся в базе данных, то есть текст будет меняться, как описание, мета-теги и так далее...
       
      Задумка работает, только одно из полей не хочет сохранятся, выдает ошибку, при этом в карточке товара одно поле выводится, второе пустое.
      Это точно не привышение лимита символов, что-то в запросе.
       
      Ошибка которая возникает, выглядит вот так:
       
    • От Karfagen
      350.00 руб
      Скачать/Купить дополнение


      Дополнительные поля на странице товара New-Description PRO
      Дополнение, работающее на vQMod. (Возможна установка и без vQMod) писать в л.с.
      Позволяет добавлять дополнительные заполняемые поля, к товару непосредственно на странице редактирования товаров в админке, по принципу атрибутов.
      Основная цель: как можно больше показать покупателем информации о товаре.
      Основные возможности:
      1. Не ограниченное добавление своих полей к описанию товара,
      2. Возможность добавления ссылки или изображения вместо текста,
      3. Возможность создания дополнительных вкладок (табы),
      4. Положение на странице товара (сверху, в описании и на вкладке групп (опционально)),
      5. Отображение полей в поиске, категориях, брендах.
      6. Поддержка HTML,
      7. Порядок отображения полей.
      Вся вносимая информация сохраняются в базе данных.
      Возможные проблемы:
      1. Установка только на чистую OcStore / Opencart.
      2. В Maxystore не проверял.
      3. Мод использует только стандартные средства редактирования. Это было основное условие при его разработке. Поэтому если у Вас стоят какие-то модульные решения, с похожим функционалом, корректная работа не гарантируется.
      По всем вопросам в лс.
      Проверено на ocStore 1.5.5.1 / 1.5.5.2
      VQMod (минимум v2.1.6)
      Добавил Karfagen Добавлено 07.06.2014 Категория Прочее  
    • От morrison4394
      Добрый день, помогите пожалуйста.
      Есть модуль для добавления дополнительных полей в карточку товара, в нем три дополнительных поля.
      Мне трех полей мало, хочется штук 8-10. Пытаюсь по аналогии прописать дополнительные поля 4-5-6 к примеру, админка сайта перестает работать, хотя сам сайт работает. Но на сайте появляется ошибка system/storage/modification/catalog/model/catalog/product.php on line 22Notice: для полей 4-5-6.
      Подскажите, что я делаю не так, и как мне это исправить? 
      Прилагаю 2 файла, первый который исходный, а второй, в который я пытаюсь добавить поля 4-5-6. Версия опенкарт про 2.1.0.2, других подходящих бесплатных модулей я не нашла, а переименование 6 полей товарных кодов мне не подходят (у разных товаров разные хар-ки). 
      extra_fields_in_product.ocmod.xml
      extra_fields_in_product.ocmod.xml
    • От Demidovez
      Приветствую всех!
      В админке в категориях нужно добавить кнопку, при нажатии которой будет добавлено поле для добавлении видео с ютуб (сылка).
      Нажал-добавил, нажал-добавил....
      Сколько раз нажал столько и создалось дополнительных полей.
      Как такое сделать?
      Киньте кто статейку какую-нибудь, пожалуйста
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.