Forums / National / Russian / Тех. поддержка / Как выводить вновь создаваемую страницу tpl

Yusupov
#40071 2014-10-10 06:35

1) Порядок создания раздельной страницы регистрации для биржи описан тут. Вы пытались сделать также, прежде чем здесь спрашивать? 

2) Macik правильно вам ответил, в Cotonti не предусмотрено, чтобы страницы создавались простым созданием шаблона, поэтому, то как вы это делаете не сработает. Надо смотреть логику модуля и если вы ее действительно смотрели, то должны были увидеть, что также как и в модуле Page для просмотра элемента, списков элементов, их создания и редактирования есть определенные части кода, которые срабатывают только при определенных значениях параметра $m. В этой логине не предусмотрено, что вы сможете создать шаблон и он будет работать как отдельная независимая страница внутри этого модуля. Хотите его переделать, пожалуйтса, пишите плагин под имеющиеся хуки в этом модуле и расширяйте его возможности, для этого они и предусмотрены, как и во всем Cotonti.

Либо вариант, просто переделать модуль под себя, то есть переписать файл modules/market/market.php и дописать логику, чтобы при значении $m = 'search' вызывался ваш фрагмент кода из поддиректории inc/. 

К примеру в файле market.php есть такой фрагмент кода (логика):

if (!in_array($m, array('add', 'edit', 'preview')))
{
	if (isset($_GET['id']) || isset($_GET['al']))
	{
		$m = 'main';
	}
	else
	{
		$m = 'list';
	}
}

require_once cot_incfile('market', 'module', $m);

Добавьте в него ваше значение для $m, так:

if (!in_array($m, array('add', 'edit', 'preview', 'search')))
{
	if (isset($_GET['id']) || isset($_GET['al']))
	{
		$m = 'main';
	}
	else
	{
		$m = 'list';
	}
}

require_once cot_incfile('market', 'module', $m);

И в папке modules/market/inc/ создайте файл market.search.php с таким кодом:

<?php

defined('COT_CODE') or die('Wrong URL');

list($usr['auth_read'], $usr['auth_write'], $usr['isadmin']) = cot_auth('market', 'any', 'RWA');
cot_block($usr['auth_read']);

$mskin = cot_tplfile(array('market', 'search'));
$t = new XTemplate($mskin);

Тогда ваш шаблон market.search.tpl будет работать.

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

This post was edited by Yusupov (2014-10-10 06:43, 9 years ago)