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

[Поддержка] Произвольные позиции модулей (нужен модуль vqmod)

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

Произвольные позиции модулей (нужен модуль vqmod)


Произвольные позиции модулей (нужен модуль vqmod)


Не стесняйтесь писать в личку перед покупкой моих модулей. Это может Вам сохранить деньги и нервы, а мне только нервы)))

Библиотека позволяет создавать произвольные позиции для модулей. Для работы должен быть установлен модуль vqmod

Демо:

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

На главной в новых позициях размещены модуль категорий (над футером).

Для отображения позиции нужно вывести позицию в отображении контроллера.

<?php if(isset($системное_имя_позиции) ) { ?><?php echo $системное_имя_позиции; ?><?php  } ?>

Никаких новых файлов создавать не нужно. Следует только следить за правильностью ввода системного имени позиции, стараться делать его уникальным.

Инструкция:

Форма добавления позиции:

  • Имя позиции: - имя позиции в списке позиций для модуля
  • Системное имя позиции: - шифр позиции, например, content_product. Это имя и будет именем переменной, которую нужно будет вывести в отображении.

Настройки позиций:

В настройках нужно отметить файлы контроллеров к которым будут подключены позиции.

Тестировано на OcStore 1.5.3.1, 1.5.4.1

Скорее всего будет работать и на других версиях

За работу под сборкой Максисторе не ручаюсь

Установка:

Внимание! Должен быть установлен vqmod!

Папка \vqmod\xml\ должна иметь права на запись

1. Скопируйте файлы в корень магазина.

2. Дальше Система-Пользователи-Групы пользователей и выставляем права на просмотр и редактирование модуля.

3. Открываем файл \index.php и добавляем:

// Position$registry->set('position', new Position($registry));

после

// Affiliate$registry->set('affiliate', new Affiliate($registry));

4. В отображении этого контроллера в нужном месте вставляем:

<?php if(isset($системное_имя_позиции) ) { ?><?php echo $системное_имя_позиции; ?><?php  } ?>

Инструкция по установке так же есть в архиве с файлами.

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


 

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


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

А что это за штука слева ? Как называется этот модуль?

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


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

)))

Ждите сейчас появится в дополнениях)))

Вот

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

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


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

я не понимаю как работает данный модуль разъясните наглядно где что и как прописывать???

и еще вот такая ошибка появляется в vqmod manager

---------- Date: 2012-12-10 00:37:52 ~ IP : 127.0.0.1 ----------

REQUEST URI : /admin/index.php?route=module/vqmod_manager/clear_log&token=9b6fdeac22cda0fd2f63b3e14f555748

MOD DETAILS:

modFile : Z:homehome.ruwwwvqmodxmlvqmod_extra_positions.xml

id : EXTRA POSITIONS BY DREAMVENTION.COM

version : 1.1

vqmver : 2.1.6

author : Dreamvention

SEARCH NOT FOUND (ABORTING MOD): $this->data['text_column_right'] = $this->language->get('text_column_right');

----------------------------------------------------------------------

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


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

Это Вы что-то не в ту тему написали.

DREAMVENTION.COM - это другая тема. Этот дополнение работает по дроугому.

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

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


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

у вас подобный код в vqmode ?

ну это отрывок где именно проблема

<file name="admin/controller/module/*.php">

<operation>

<search position="before"><![CDATA[$this->data['text_column_right'] = $this->language->get('text_column_right');]]></search>

<add><![CDATA[

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

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

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

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

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

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

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

]]></add>

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


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

Нет, у меня другой принцып работы.

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

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


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

Уважаемый автор! Возможно если Вы снизите цену ,ну скажем до 200 рублей,то этот модуль станет более популярен среди Ваших покупателей.

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


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

Уважаемый автор! Возможно если Вы снизите цену ,ну скажем до 200 рублей,то этот модуль станет более популярен среди Ваших покупателей.

Возможно))

Но если, например, за 7 дополнительных позиций просят 400 рублей, а я предлагаю неограниченное количесвто позиций, то как-то не комильфо получается))

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


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

произвольных позиций я понимаю всего 3 ?

под главным меню, над футером, также в карточке товара

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


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

произвольных позиций я понимаю всего 3 ?

под главным меню, над футером, также в карточке товара

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

может моя ошибка в недостаточно полном описании(

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


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

Так убейте своих конкурентов функционалом и ценой! :-D

Если что , то я буду первым купившим этот модуль!

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


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

Так убейте своих конкурентов функционалом и ценой! :-D

Функционал отличается, но ведь каждому не угодишь))

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

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


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

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

эм.. это вручную нужно добавить позицию в контроллер и в шаблон? я плохо понимаю как это работает..

например мне нужно вывести модуль "Хиты" ниже футера. мои действия?

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


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

эм.. это вручную нужно добавить позицию в контроллер и в шаблон? я плохо понимаю как это работает..

например мне нужно вывести модуль "Хиты" ниже футера. мои действия?

Создали в админке позицию - Имя - "Ниже футера", Системное имя - "bottom_footer", например

В модуле позиция появится через vqmod. Выбрали нужную позицию в модуле

В catalogcontrollercommonhome.php или в catalogcontrollercommonfooter.php (смотря в каком шаблоне Вы хотите отобразить позицию, ниже футера может быть и в home.tpl и в footer.tpl) вставляете:

$positions = $this->load->position->data;
		if(!empty($positions)){
			foreach($positions as $key => $value) {
				$this->data[$key] = '';
				$module_html = '';
				if(!empty($value)) {
					foreach($value as $val) {
						$child = 'module/'.$val['code'];
						$args = $val['setting'];
						$module_html .= $this->getChild($child,$args);
					}
				}
				$this->data[$key] .= $module_html;
			}
		}
после

public function index() {
Можно было бы через vqmod подключить во все контроллеры этот код, но это лишняя нагрузка. Хотя выслушаю Ваши предложения.

Дальше выводите позицию в шаблоне:

<?php if(isset($bottom_footer) ) : ?>
<?php echo $bottom_footer; ?>
<?php endif;?>

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

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

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


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

Создали в админке позицию - Имя - "Ниже футера", Системное имя - "bottom_footer", например

В модуле позиция появится через vqmod. Выбрали нужную позицию в модуле

В catalogcontrollercommonhome.php или в catalogcontrollercommonfooter.php (смотря в каком шаблоне Вы хотите отобразить позицию, ниже футера может быть и в home.tpl и в footer.tpl) вставляете:

$positions = $this->load->position->data;
		if(!empty($positions)){
			foreach($positions as $key => $value) {
				$this->data[$key] = '';
				$module_html = '';
				if(!empty($value)) {
					foreach($value as $val) {
						$child = 'module/'.$val['code'];
						$args = $val['setting'];
						$module_html .= $this->getChild($child,$args);
					}
				}
				$this->data[$key] .= $module_html;
			}
		}
после

public function index() {
Можно было бы через vqmod подключить во все контроллеры этот код, но это лишняя нагрузка. Хотя выслушаю Ваши предложения.

Дальше выводите позицию в шаблоне:

<?php if(isset($bottom_footer) ) : ?>
<?php echo $bottom_footer; ?>
<?php endif;?>

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

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

н-да...

зачем программисту такой гемор?

гораздо проще сделать как в описании

https://opencartforum.com/files/file/745-%d0%bf%d1%80%d0%b5%d0%b4%d1%8b%d0%b4%d1%83%d1%89%d0%b8%d0%b9-%d1%81%d0%bb%d0%b5%d0%b4%d1%83%d1%8e%d1%89%d0%b8%d0%b9/

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


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

н-да...

зачем программисту такой гемор?

гораздо проще сделать как в описании

http://opencartforum...89%d0%b8%d0%b9/

Это дело каждого. Я же не принуждаю никого это использовать))

Меня это вполне устраивает и свой профит я забираю на тех проектах, которые разрабатываю.

В Вашем примере показано подключение в дочерние элементы, но это ведь не есть секретом каким-либо. Это продемонстрировано в конроллере header.php. Так можно любой другоой контроллер подключать к другому.

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

А каждый выбирает для себя оптимальный вариант.

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


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

Это дело каждого. Я же не принуждаю никого это использовать))

Меня это вполне устраивает и свой профит я забираю на тех проектах, которые разрабатываю.

В Вашем примере показано подключение в дочерние элементы, но это ведь не есть секретом каким-либо. Это продемонстрировано в конроллере header.php. Так можно любой другоой контроллер подключать к другому.

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

А каждый выбирает для себя оптимальный вариант.

делать дизайн гибким не значит вручную прописывать вывод модуля в шаблоне ))

у вас так же идет подключение дочернего

$module_html .= $this->getChild($child,$args);
но как-то слишком сложно. мой вам совет - не ищите сложный путей для простых задач )

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


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

делать дизайн гибким не значит вручную прописывать вывод модуля в шаблоне ))

у вас так же идет подключение дочернего

$module_html .= $this->getChild($child,$args);
но как-то слишком сложно. мой вам совет - не ищите сложный путей для простых задач )
За совет спасибо, конечно))

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

Я преследовал цель автоматизовать создание положений, тоесть управление ими из админки. Конечно, меня самого смущает добавление кода в ручную, но это еще не значит, что идея безнадежна, это только значит, что есть куда двигатся))

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


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

freelancer

Вот, например, такая ситуация:

Заказчик требует от Вас такого решения, чтобы он в последствии мог потом без обращения к Вам легко разместить модуль в любом месте. Где ему захочется. Как Вы решите это?

Я, с помощью этого расширения, например, могу сделать так:

- уберу подключение стандартных позиций в контроллерах, чтобы не было лишней нагрузки

- 4 стандартных позиции продублирую в этом расширении и они будут работать так же

- во всех конроллерах подключу обработку позиций

И в конечном итоге пользователю нужно будет только уметь создать позицию в админке и отобразить ее в шаблоне:

<?php if(isset($системное_имя_позиции) ) : ?>
<?php echo $системное_имя_позиции; ?>
<?php endif;?>

Эта дискусия меня увлекает, поэтому хочу Ваш вариант услышать)))

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


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

Эта дискусия меня увлекает, поэтому хочу Ваш вариант услышать)))

пользователь добавит две строчки. одну в контроллер, другую в шаблон. вопрос только в настройках ($settings), моим способом их передать нельзя

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


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

пользователь добавит две строчки. одну в контроллер, другую в шаблон. вопрос только в настройках ($settings), моим способом их передать нельзя

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

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

И каждый программист имеет свое решения этой проблемы)

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


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

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

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

И каждый программист имеет свое решения этой проблемы)

эм.. а в вашем случае только это нужно добавить?

<?php if(isset($системное_имя_позиции) ) : ?>
<?php echo $системное_имя_позиции; ?>
<?php endif;?>

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


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

эм.. а в вашем случае только это нужно добавить?

<?php if(isset($системное_имя_позиции) ) : ?>
<?php echo $системное_имя_позиции; ?>
<?php endif;?>
Если подключить обработку позиций(я приводил код выше) через vqmod, или сразу во все контроллеры подключить, то да только это.

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

Повторюсь, это ориентировано на разработчиков. Например, нестандартный дизайн и сразу видно, что 4 позиций мало. Один раз установил это расширение, настроил, а дальше только в шаблоне, в нужном месте:

<?php if(isset($системное_имя_позиции) ) : ?>
<?php echo $системное_имя_позиции; ?>
<?php endif;?>
А можно ведь и свою сборку сделать, где все будет уже настроено.

И поэтому цена такая. Согласитесь, что поставив цену 200, например, все же кинутся покупать неглядя, а потом - "А как это работает? А я думал, что там сразу будет over 100500 позиций"

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


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

И поэтому цена такая. Согласитесь, что поставив цену 200, например, все же кинутся покупать неглядя, а потом - "А как это работает? А я думал, что там сразу будет over 100500 позиций"

да и за 200 не кинутся.

в цену включена помощь в настройке? если да, то вполне нормально.. пользователи не будут покупать кота в мешке )

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От Arion
      Здравствуйте! Прошу помочь разобраться в проблеме. Полностью перестали работать модификаторы (которые в админке в разделе Модули/Расширения - > Модификаторы). Список модификаторов есть, они включаются и выключаются, НО при обновлении кэша модификаторов на сайте не происходит абсолютно никаких изменений, как будто модификаторов никаких и не установлено. Причём если я создаю файл ***.ocmod.xml и добавляю его в /system, то всё работает как и нужно, но стоит этот же код модификатора установить через админку, он совсем не работает. Не знаю в какую даже сторону копать... Ошибок в логах никаких....И не обратил внимание после чего это началось. Opencart 2.3.0.2
    • От whiteblue
      300.00 руб
      Скачать/Купить дополнение


      Подарки Opencart
      Данный модуль предназначен для повышения продаж, предлагая бесплатные подарки при достижении определенных условий.
       
      Демо
      http://shirt.torg.town/index.php?route=product/product&path=20&product_id=44
      Админка
      http://shirt.torg.town/admin/index.php?route=extension/module/gifts&token=ZkcqIsvy669lv6HRqX7zpCVPyvsOGViU
      gifts/gifts

      Эти условия устанавливаются в админке модуля. Покупатель должен совершить покупку товаров на определённую сумму или больше.
      Также есть возможность выбрать несколько товаров в разных товарных группах. Отличительной особенностью данного модуля
      является то, что клиент может сам выбрать себе подарок из нескольких назначенных вами. При помощи данного модуля вы будете стимулировать покупателей увеличивать сумму чека.
      Примеры использования данного модуля:
      "купи фотоаппарат и получи в подарок карту памяти", "закажи пиццу и получи бутылку пепси в подарок" и т.д.
      Добавил whiteblue Добавлено 18.06.2018 Категория Модули Системные требования Сайт разработчика http://white-blue.com.ua/Gifts Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop  
    • От whiteblue
      Данный модуль предназначен для повышения продаж, предлагая бесплатные подарки при достижении определенных условий.
       
      Демо
      http://shirt.torg.town/index.php?route=product/product&path=20&product_id=44
      Админка
      http://shirt.torg.town/admin/index.php?route=extension/module/gifts&token=ZkcqIsvy669lv6HRqX7zpCVPyvsOGViU
      gifts/gifts

      Эти условия устанавливаются в админке модуля. Покупатель должен совершить покупку товаров на определённую сумму или больше.
      Также есть возможность выбрать несколько товаров в разных товарных группах. Отличительной особенностью данного модуля
      является то, что клиент может сам выбрать себе подарок из нескольких назначенных вами. При помощи данного модуля вы будете стимулировать покупателей увеличивать сумму чека.
      Примеры использования данного модуля:
      "купи фотоаппарат и получи в подарок карту памяти", "закажи пиццу и получи бутылку пепси в подарок" и т.д.
    • От seomike
      Требуется программист на доработку проекта http://test.soglasie-ooo.ru/, проект на OpenCart 2.3 шаблолн TechStore (http://tech-store.octemplates.net/).
      Должен быть хороший опыт и умение разбирать сложные объемные задачи (в перспективе, пока только простые)
      Текущие задачи разместил в Google Docs https://docs.google.com/document/d/1G9WVtk6X-NwIBPKyOM0OcIVrw4ffckz0ICIcDIuBRWE/edit?usp=sharing
       
      Требуется оперативное внедрение в течении 1-2 дней по первой части, задачи будут постепенно добавляться, не только по этому проекту, есть еще ряд проектов на OpenCart 2.3.
       
      Со стороны исполнителя нужен также расчет бюджета на реализацию задач, оплата электронными деньгами или с карты на карту если РФ.
    • От Coldwind
      Добрый день, уважаемые форумчане.
      Интересует вопрос: "Можно ли в opencart сделать страницу категории ввиде лендинг пейдж"
      Может есть какие-то модули...
      Благодарю всех за ответы.
  • Последние посетители   0 пользователей онлайн

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

×

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

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