Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Создал расширение для 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!

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

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

Link to comment
Share on other sites

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

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

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

 

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

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

Link to comment
Share on other sites

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

 

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

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

Спасибо!

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

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

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

Link to comment
Share on other sites

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

список разрешенных директорий в файле 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/'
				);

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

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

Link to comment
Share on other sites

Link to comment
Share on other sites

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

 

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

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

 

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

'admin/controller/extension/',

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

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

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

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

Link to comment
Share on other sites


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

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

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

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

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

Edited by Harry3000
Link to comment
Share on other sites


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

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.