Форумы / National / Russian / Тех. поддержка / Получение данных получаемых через GET/POST запросы

Виктор
#1 10.11.2018 10:01

Не могу разобратся как получить данные с запроса

у меня есть плагин который имеет функционал как отдельно сам так и на странице отдельного модуля

тоесть файл плагина 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
#2 10.11.2018 17:10

Не совсем понятно что имеете ввиду. Что значит отправляются данные?

Если имеется ввиду переход по ссылке  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
Виктор
#3 10.11.2018 18:06

Да правильно, имеется ввиду переход по ссылке и прием 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]
==================== */

и еще вопрос какой файл принимает данные, если в плагине нет  standalone

Отредактировано: Виктор (10.11.2018 18:44, 5 лет назад)
Roffun
#4 11.11.2018 00:45
#43844 Виктор:    и еще вопрос какой файл принимает данные, если в плагине нет  standalone

Файл pluginname.ajax.php, Hooks=ajax, например плагин ratings, или какой-нибудь из плагинов биржи для оплаты посмотрите код, там как раз взаимодействие плагина с модулем и передача параметров (post).

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Dr2005alex
#5 11.11.2018 03:18

так как и вы подсказали выводил что получаю через echo

в test.module.tags.php я не получаю ничего, пустая переменная

а в test.php принимает $act = 'simile'

теперь более менее ясно. Вы ссылаетесь на некий модуль я так понял. Вернее 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
#6 11.11.2018 13:40
#43846 Dr2005alex: То тогда ссылка должна увас быть на модуль.

Или же принимать данные на хук ajax или standalone, и с помощью cot_redirect перенаправлять на страницу модуля.

 

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Dayver
#7 11.11.2018 21:13
#43844 Виктор:

и еще вопрос какой файл принимает данные, если в плагине нет  standalone

Вообще плагины могут быть такими что бы ничего и не принимать тоесть и без  ajax и без standalone - плагины которые как бы расширяют функционал других модулей или плагинов. Если же вы делаете свой плагин и у него должна быть возможность вывести информацию на свою страницу то тут у вас выбор между standalone (полноценная страничка), ajax (то же что и standalone но без шапки и подвала если утрировать) и tools (как бы standalone в админке). 

А вообще если мы вас тут все правильно поняли то Dr2005alex вам уже ответил наиболее корректно и развернуто, если нет то объясните более подробно, а то задача поставленна размыто очень.

Pavlo Tkachenko aka Dayver
Виктор
#8 12.11.2018 14:46

Вопрос размыт, так как пошел не тем путем что нужно.., я далеко не спец так что извиняюсь!

Вопрос решен, сделал немного иначе, посмотрел код как реализованы другие расширения, и сделал так - если код плагина выполнается на странице модуля то подставляю в ссылку довольный параметр &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оответственно файлы, теперь не нужно "всовывать" все в один файл, все параметры принимаются обрабатываются и выводятся,  всем спасибо за помощь