Есть ли возможность привязать форму к каким-то конкретным видам доставки штатными средствами? Например, сделал я форму для отправки бандеролей почтой России и она выводится только для заказов с доставкой почтой России, а не во всех. Нашел только метод allowedCurrency для ограничения по виду валюты ((
Плюс может кто знает как в requirements.php плагина прописать привязку к определенным плагинам т.е. чтобы без них плагин не работал.
Файл requirements.php используется только при установке продукта с помощью "Инсталлера". Нужные вам проверки выполняйте в основном коде плагина.
Я разве писал что плагин будет устанавливаться не через инсталлер? Кстати подключите комментарии в этом разделе - неудобно, непонятно кому адресовано сообщение.
Нынешняя политика с requirements.php такая: что бы там ни было указано, проверку соответствия всем условиям (наличие расширений php и т.д.) нужно самостоятельно выполнять в коде. Этот самый requirements.php нужен только чтоб Инсталлер показывал чего-нибудь и пытался блокировать установку. Но, кажется, появились умники, оформляющие покупку, скачивающие и устанавливающие не через Инсталлер, а потом жалующиеся, что "ничего не работает". И, кстати, проверка требует, чтоб все сразу из коробки работало и даже полному кретину все сразу было понятно. (Однако, как гласит принцип Шоу "Создайте систему, которой сможет пользоваться идиот, и только идиот захочет ею пользоваться.")
И, чтоб два раза не вставать — насчет привязки к конкретному плагину. В последний раз, когда я интересовался этим вопросом, официально было заявлено, что плагины, зависящие от других плагинов не будут допущены к публикации. По крайней мере платные.
Честно говоря, не вижу причин не пропускать плагины, зависящие от других плагинов. Опишите это в описании плагина, добавьте в коде проверки на существование нужного плагина — и пожалуйста.
Видимо, надо сохранять ссылки на сообщения годичной давности и более ранние.
Я же не сам придумал, что плагин не может зависеть от других плагинов или от нескольких приложений. Ну хорошо, теперь, наверное, правила поменялись :) опять незаметно :)
А еще.
Как правильно проверить версию фреймворка (или приложения)? А то вот сегодня нарисовался клиент, у которого фреймворк 1.5.0 и обновляться не хочет (или не может). Сподобился установить плагин (который, конечно, не работает ибо требует 1.5.3+)
wa('webasyst')->getVersion() или wa('installer')->getVersion();
Михаил Ушенин Webasyst "Опишите это в описании плагина, добавьте в коде проверки на существование нужного плагина — и пожалуйста."
А как запись должна выглядеть?
О кстати и как правильно в requirements.php обозначать версию фреймворка? 'app.installer' , 'app.webasyst' или еще как?
Сергей Родовниченко requirements.php
Я 'latest' не пишу. Указываю конкретную версию. Оказывается есть ненулевое количество людей, не обновляющих систему. Очень часто либо сами, либо какие-нибудь нубы-ингераторы им код правят и запрещают обновляться строго-настрого.
Вообще версию Инсталлера проверять, на мой взгляд, не очень хорошо. Его может и не быть. А вот запилить внутрь фреймворка метод, проверяющий на соответствие требованиям и принимающий в качестве аргумента структуру из requirements.php — идея интересная. Заодно будет больше смысла у этого requirements.php
Сергей, Вам же объяснили нынешний принцип работы requirements.php: нет инсталлера - нет нужды и в проверке.
появились умники, оформляющие покупку, скачивающие и устанавливающие не через Инсталлер, а потом жалующиеся, что "ничего не работает" -
а разве это технически возможно? меня это наводит на сомнительную законность таких "покупок" за которые возможно забыли заплатить в лучшем случае дважды.
технически возможно. можно скачать любой продукт в центре заказчика, насколько я понимаю. можно вручную установить плагин и подключить его в конфигах.
И по поводу проверки. Нынешние модераторы требуют чтобы плагин сам проверял наличие нужных компонентов. По крайней мере расширений php (simplexml, curl) точно. Без этого не пропускают.
поэтому хочу больше смысла для requirements.php :)
Сергей, хм.. а мой мелкий плагин пропустили, я наоборот не зная таких тонкостей вынес проверку в requirements.php, иначе будет бестолковое дублирование проверки.
Дублирования, как я понимаю, не будет. requirements отрабатывает только в момент установки. А тот же curl может быть снесен и после установки плагина.
Павел: Код, учитывающий все "если" получается чересчур громоздким. В любом случае вызывается исключение, только в случае без проверки в коде вначале генерируется ошибка, но она все равно оборачивается в исключение.
В некоторых своих библиотеках делал по 2 класса: первый - использующий расширение, а второй - симулирующий его функционал. Так и код компактнее и кучи проверок не надо, но это уже флуд :)
Пропустили? Хм. У меня без такой проверки уже давно перестали пропускать .:)
Я наступал на грабли с отсутствующими расширениями не теоретически, а на практике. :-/ Человек на тестовой машине все сконфигурировал, перенес на хостинг и всё перестало работать