| Виктор |
|
|---|---|
|
Не могу разобратся как получить данные с запроса у меня есть плагин который имеет функционал как отдельно сам так и на странице отдельного модуля тоесть файл плагина 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] ==================== */ и еще вопрос какой файл принимает данные, если в плагине нет Відредаговано: Виктор (10.11.2018 18:44, 6 років тому) |
| 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оответственно файлы, теперь не нужно "всовывать" все в один файл, все параметры принимаются обрабатываются и выводятся, всем спасибо за помощь
|