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

Создал расширение для Opencart 3, но не могу понять почему "Доступ запрещен!", при настройке расширения


Recommended Posts

При создании расширения столкнулся с проблемой доступа(чистый opencart 3).

При изучении движка opencart 3, решил в начале поднабраться знаний, а уж потом оптимизировать систему под себя.

Для начала определился в каком месте будут храниться мои расширения, путь следующий:

Extensions, а далее из выпадающего списка выбираем Other. 

Чтобы у меня получилась такая структура я создал в несколько файлов согласно MVCL

admin/controller/extension/extension/other.php

admin/controller/extension/other/тут хранятся все мои расширения

admin/language/en-gb/extension/extension/other.php

admin/language /en-gb/extension/other/ тут хранятся все мои языковые файлы

admin/view/template/extension/other/other.php

admin/view/template/ extension/other/шаблон моего расширения

Представим, что мне необходимо установить дополнительный счётчик(что-то наподобие Yandex Metrika или Google Analytics) и чтобы он располагался в указанном месте(other). Я создаю  файлы в controller и language называю их counter.php. Добавляю права(ставлю галочки) в group user для доступа к созданным выше категориям и файлам. Но при переходе Extensions, а далее из выпадающего списка выбираем Other нажимаю активировать счётчик, всё получилось – активация прошла успешно. Далее жму редактировать(изменить), чтобы вставить код своего нового счётчика, а мне выдаёт ошибку Permission Denied!

Подскажите, что я не правильно сделал? Что забыл сделать? Почему мне выдает, что доступ запрещён? Галочки для доступа и работы с файлами все стоят, активация проходит успешно.

Если кто-то, что-то не понял из выше изложенного могу скинуть архив с файлами.

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

13 часов назад, katasonovadim сказал:

Для начала определился в каком месте будут храниться мои расширения, путь следующий:

Extensions, а далее из выпадающего списка выбираем Other.

 

плохо определились, модули должны быть в extension/module

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

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

9 минут назад, AlexDW сказал:

 

хреново определились, модули должны быть в extension/module

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

Спасибо!

не подскажешь где это прочёл?

Возможно как-нибудь снять эти ограничения?

В каком месте лежат файлы данных настроек?

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

и здесь, и на оф.форуме в свое время обсуждались все нововведения тройки

список разрешенных директорий в файле admin\controller\marketplace\install.php

				// A list of allowed directories to be written to
				$allowed = array(
					'admin/controller/extension/',
					'admin/language/',
					'admin/model/extension/',
					'admin/view/image/',
					'admin/view/javascript/',
					'admin/view/stylesheet/',
					'admin/view/template/extension/',
					'catalog/controller/extension/',
					'catalog/language/',
					'catalog/model/extension/',
					'catalog/view/javascript/',
					'catalog/view/theme/',
					'system/config/',
					'system/library/',
					'image/catalog/'
				);

но менять его не стоит, во избежание проблем работоспособности и совместимости

лучше следовать стандартам

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

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

  • 1 year later...
В 20.07.2018 в 00:12, AlexDW сказал:

 

плохо определились, модули должны быть в extension/module

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

 

Но ведь он же пишет в разрешённую директорию

'admin/controller/extension/',

просто создает в ней отдельный каталог для своего модуля  admin/controller/extension/other

Мне кажется он не нарушает ограничений OpenCart.

А доступа к такому модулю действительно нет.

Интересно почему?

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


1 час назад, chukcha сказал:

Откройте startup/permission и смотрите что не так

Чукча, спасибо. Действительно, если добавить в строку 18 массива $extension дополнительный путь extension/other, то все работает.

А не подскажете возможный вариант решения? Если модуль имеет достаточно сложную структуру (много разных *.php) удобнее было бы выделить ему отдельную папку. Но если эту папку положить в extension/module то OpenCart её не видит. Я думаю из-за этого у автора топика вопрос и возник.

Через модификаторы делать?

Змінено користувачем Harry3000
Надіслати
Поділитися на інших сайтах


Надо смотреть по назнfчению этих ваших *.php
Если это "обслуживающие" методы, то наверное для них лучшее место в system/mymodule
Если это контроллеры модуля
например отдельная ветка для блока, а там для категорий, статей, и прочее, то лучше конечно оставлять
Или  совмещать в одном файле, но все зависит от назначения.

 

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

15 минут назад, Harry3000 сказал:

system / library / mymodule

Вы себя позиционируете как разработчик, и вам надо все разжевать?

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

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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