Виктор |
|
---|---|
Не могу разобратся как получить данные с запроса у меня есть плагин который имеет функционал как отдельно сам так и на странице отдельного модуля тоесть файл плагина test.php Hooks=standalone и файл для модуля test.module.tags.php Hooks=module.tags c которого отправляются данные для обработки - 'TPC_ACTION' => cot_url('plug', 'e=test&act=simile&id=' . $id), Вопрос как получить $act = cot_import('act','G','TXT'); в файле test.module.tags.php,
|
Dr2005alex |
|
---|---|
Не совсем понятно что имеете ввиду. Что значит отправляются данные? Если имеется ввиду переход по ссылке cot_url('plug', 'e=test&act=simile&id=' . $id), то получение данных из ссылки будет методом GET $act = cot_import('act','G','ALP'); $id = cot_import('id','G','INT'); если хук Hooks=module.tags находится в самом test.php, то подключенный файл test.module.tags.php как бы внутри test.php. тоесть любая переменная будет видна. к примеру переменная $a = 'test'; в файле test.module.tags.php . Будет видна в test.php. просто выводим значение для теста. echo $a; в test.php ниже в коде после подключения хука. WebKaa.ru - Cotonti Relax
|
Виктор |
|
---|---|
Да правильно, имеется ввиду переход по ссылке и прием simile для обработки в файле test.module.tags.php В общем извиняюсь, вопрос думаю простой но хочу разобратся есть файл test.php в нем весь код который нужен на самой странице плагина (например вибираем два товара и сравниваем) Пример: /* ==================== * [BEGIN_COT_EXT] * Hooks=standalone * [END_COT_EXT] ==================== */ defined('COT_CODE') or die('Wrong URL.'); // Requirements require_once cot_incfile('test', 'plug'); и файл test.module.tags.php выводится на странице товара со своим шаблоном (выбираем иной товар и сравниваем), логика сравнения отличается от первого /* ==================== * [BEGIN_COT_EXT] * Hooks=module.tags * [END_COT_EXT] ==================== */ defined('COT_CODE') or die('Wrong URL.'); // Requirements require_once cot_incfile('test', 'plug'); require_once cot_langfile('module', 'module'); global $cfg, $db_cpu, $db_gpu, $db_test; $t1 = new XTemplate(cot_tplfile('test.module', 'plug')); $act = cot_import('act','G','ALP'); if ($act == 'simile'){ код} $t1->parse('MAIN'); $t->assign('HARD_DISPLAY', $t1->text('MAIN')); так как и вы подсказали выводил что получаю через echo в test.module.tags.php я не получаю ничего, пустая переменная а в test.php принимает $act = 'simile'
Додано 38 хвилин потому: Сделал так в файле прописал test.php /* === Hook === */ foreach (cot_getextplugins('test.main') as $pl) { include $pl; } /* ===== */ в test.module.tags.php /* ==================== * [BEGIN_COT_EXT] * Hooks=module.tags,test.main * [END_COT_EXT] ==================== */ и еще вопрос какой файл принимает данные, если в плагине нет |
|
This post was edited by Виктор (2018-11-10 18:44, 6 years ago) |
Roffun |
|
---|---|
#43844 Виктор: и еще вопрос какой файл принимает данные, если в плагине нет
Файл pluginname.ajax.php, Hooks=ajax, например плагин ratings, или какой-нибудь из плагинов биржи для оплаты посмотрите код, там как раз взаимодействие плагина с модулем и передача параметров (post). Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
Dr2005alex |
|
---|---|
теперь более менее ясно. Вы ссылаетесь на некий модуль я так понял. Вернее test.module.tags.php подключается через хук в код модуля. То тогда ссылка должна увас быть на модуль. Вот к примеру test.module.tags у вас подключается к модулю page через хук page.tags. то для передачи данных для вашего кода надо ссылаться на page. cot_url('page', 'act=simile&id=' . $id) Все это абстрактно для примера. Тогда ваш подключенный код сможет получить данные act через import что писал в своем первом посте. WebKaa.ru - Cotonti Relax
|
Roffun |
|
---|---|
#43846 Dr2005alex: То тогда ссылка должна увас быть на модуль. Или же принимать данные на хук ajax или standalone, и с помощью cot_redirect перенаправлять на страницу модуля.
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
Dayver |
|
---|---|
#43844 Виктор: Вообще плагины могут быть такими что бы ничего и не принимать тоесть и без ajax и без standalone - плагины которые как бы расширяют функционал других модулей или плагинов. Если же вы делаете свой плагин и у него должна быть возможность вывести информацию на свою страницу то тут у вас выбор между standalone (полноценная страничка), ajax (то же что и standalone но без шапки и подвала если утрировать) и tools (как бы standalone в админке). А вообще если мы вас тут все правильно поняли то Dr2005alex вам уже ответил наиболее корректно и развернуто, если нет то объясните более подробно, а то задача поставленна размыто очень. Pavlo Tkachenko aka Dayver
|
Виктор |
|
---|---|
Вопрос размыт, так как пошел не тем путем что нужно.., я далеко не спец так что извиняюсь! Вопрос решен, сделал немного иначе, посмотрел код как реализованы другие расширения, и сделал так - если код плагина выполнается на странице модуля то подставляю в ссылку довольный параметр &m=mod если на странице плагина то пример &m=plu и в файле плагина test.php if($m == 'mod'){ require_once cot_incfile('test', 'plug', 'mod'); } elseif($m == 'plug'){ require_once cot_incfile('test', 'plug', 'plu'); } else{} и в папке inc cоответственно файлы, теперь не нужно "всовывать" все в один файл, все параметры принимаются обрабатываются и выводятся, всем спасибо за помощь
|