cotonti.com : Использование плагинов в других шаблонах https://www.cotonti.com Последние сообщения в теме Cotonti en Thu, 20 Nov 2025 11:03:12 -0000 meverikxp Спасибо. все получилось!

]]>
чт, 01 ноя 2012 08:01:23 -0000
Yusupov Во-первых вам нужно создать не отдельную страницу а встроить свою форму в существующую страницу. Для этого вместо хука standalone используйте тот хук, который находится в том месте, куда вы хотите вставить свой фрагмент. То есть в вашем случае это страница списка пользователей, соответственно, это раздел users.inc.php, хук называется users.tags

Получается такой файл: top_freelance.users.tags.php c с кодом:

<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=top_freelance
Part=users
File=top_freelance.users.tags
Hooks=users.tags
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */
 
defined('SED_CODE') or die("Wrong URL.");
 
$plugin_title = 'Пример плагина'; //Заголовок плагина
$plugin_subtitle = 'Мы все чему нибудь учились ...'; //Подзаголовок плагина
$plugin_body  .= <<<EOT
<form name="form1"  method="post" action="">                       
    Введите первое число: <input type="text" name="formtext1"><br><br>
    Введите второе число: <input type="text" name="formtext2"><br><br>
    <input type="submit" name="formbutton1"><br><br>
</form>
EOT;
 
$plugin_body  .= '<b>Произведение ваших чисел = '.$_POST[formtext1]*$_POST[formtext2].'</b>';
?>

Чтобы перенести форму в шаблон надо ее поместить в свой тэг, то есть создаем тэг для формы:

$t->assign('MYFORM', $plugin_body);

Соответственно, созданный тэг {MYFORM} помещаем в шаблон users.tpl (или в вашем случае для биржи users.freelancers.tpl). 

Добавлено 3 минуты спустя:

В итоге получается такой код: 

<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=top_freelance
Part=users
File=top_freelance.users.tags
Hooks=users.tags
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */
  
defined('SED_CODE') or die("Wrong URL.");
  
$plugin_title = 'Пример плагина'; //Заголовок плагина
$plugin_subtitle = 'Мы все чему нибудь учились ...'; //Подзаголовок плагина
$plugin_body  .= <<<EOT
<form name="form1"  method="post" action="">                       
    Введите первое число: <input type="text" name="formtext1"><br><br>
    Введите второе число: <input type="text" name="formtext2"><br><br>
    <input type="submit" name="formbutton1"><br><br>
</form>
EOT;
  
$plugin_body  .= '<b>Произведение ваших чисел = '.$_POST[formtext1]*$_POST[formtext2].'</b>';

$t->assign('MYFORM', $plugin_body);

?>

 

]]>
чт, 01 ноя 2012 06:50:51 -0000
meverikxp еще один вопрос, как в моем файле users.details.employers.tpl вывести созданый мною простой плагин, код плагина привожу ниже

<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=top_freelance
Part=main
File=top_freelance
Hooks=standalone
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */

defined('SED_CODE') or die("Wrong URL.");

$plugin_title = 'Пример плагина'; //Заголовок плагина
$plugin_subtitle = 'Мы все чему нибудь учились ...'; //Подзаголовок плагина
$plugin_body  .= <<<EOT
<form name="form1"  method="post" action="">                       
    Введите первое число: <input type="text" name="formtext1"><br><br>
    Введите второе число: <input type="text" name="formtext2"><br><br>
    <input type="submit" name="formbutton1"><br><br>
</form>
EOT;

$plugin_body  .= '<b>Произведение ваших чисел = '.$_POST[formtext1]*$_POST[formtext2].'</b>';
?>

что сейчас я должен сделать что бы в своем файле вывести форму созданую в плагине

]]>
ср, 31 окт 2012 20:31:35 -0000
Dayver

Блин, извините что мучил вас так долго, проблема была настолько мелкая что просто стыдно. Оказалось что в файле freelancers.users.tags.php нужно было убрать if ($gm == 4) хотя пока не разобрался на что именно проверка, но каталог фрилансеров уже выводится. Спасибо еще раз

Самое интересно что данный кусок кода ни разу не фигурировал в этом топике вопросе - в следующий раз не упускайте таких важных мелочей

]]>
вт, 30 окт 2012 01:34:19 -0000
meverikxp итак что я выяснил, когда вставил код $t->assign("FREELANCERS_CATALOG", sed_showfcat().'+++'); в freelancers.index.php плюсики вывелись только на главной странице. Далее я нашел еще один файлик в плагине freelancers.users.tags.php и внем изменил код 

$t->assign(array(

"FREELANCERS_CATALOG" => sed_showfcat($c).'+++',
"CATTITLE" => (!empty($c)) ? ' / '.$sed_fcat[$c]['title'] : '',
"CATTEXT" => $sed_fcat[$c]['text'],
));

После чего уже на странице users.freelancers.tpl начали отображатся плюсики, а на странице users.employers.tpl так и ничего и не отобразилось. Внизу привожу код freelancers.users.tags.php мож его нужно комстомайзить

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=users
File=freelancers.users.tags
Hooks=users.tags
Tags=users.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

if($gm == 4)
{
	$t->assign(array(
		"FREELANCERS_CATALOG" => sed_showfcat($c).'+++',
		"CATTITLE" => (!empty($c)) ? ' / '.$sed_fcat[$c]['title'] : '',
		"CATTEXT" => $sed_fcat[$c]['text'],
	));
}

// ==============================================

list($select_country, $select_region, $select_city) = sed_select_location('', $country, $region, $city);

$t->assign(array(
	"SEARCH_ACTION_URL" => sed_url('users', "gm=".$gm."&c=".$c, '', true),
	"SEARCH_COUNTRY" => $select_country,
	"SEARCH_REGION" => $select_region,
	"SEARCH_CITY" => $select_city,
));

$t->parse("MAIN.SEARCH");
// ==============================================

?>

И выяснил еще один фажный факт, это не чистый cotonti, а переделаный для биржи фриланса, как таковой поддержки нет у них. так что уже мучу вас, извините конечно, но очень нужна ваша помощь. Спасибо!

Added 26 minutes later:

Блин, извините что мучил вас так долго, проблема была настолько мелкая что просто стыдно. Оказалось что в файле freelancers.users.tags.php нужно было убрать if($gm== 4) хотя пока не разобрался на что именно проверка, но каталог фрилансеров уже выводится. Спасибо еще раз

]]>
пн, 29 окт 2012 23:46:06 -0000
Dayver #35998 meverikxp:

если честно не знаю за каким адресом доступна эта страница. Тестово удалил весь код с users.details.tpl и перешел на страничку пользователя но она открылась без проблем, попробовал редактировать данные все так же осталось без изменений.

Заметил интересный факт, что на странице users.freelancers.tpl {FREELANCERS_CATALOG} отображается, но почему его нет в users.employers.php не пойму

1) в движке есть файловый кеш шаблонов - потому если сразу нет реакции на изменение шаблона то возможно стоит попробовать очистить кеш

2) проверте как я уже писал выше выводится ли тег {FREELANCERS_CATALOG} во все шаблоны строчкой $t->assign("FREELANCERS_CATALOG", sed_showfcat().'+++'); и если плюсики будут видны и в users.freelancers.tpl и в users.employers.php то тут уже будет понятно что функция sed_showfcat дает разный контент для разных шаблонов и потому нужно разбиратся с нею ... а вообще думаю вам стоит обратится к разработчику того функционала который у вас стоит (видимо стороння сборка движка или плагин(ы) добавили возможность кастомизации шаблонов модуля users для разных групп)

]]>
пн, 29 окт 2012 23:13:30 -0000
meverikxp если честно не знаю за каким адресом доступна эта страница. Тестово удалил весь код с users.details.tpl и перешел на страничку пользователя но она открылась без проблем, попробовал редактировать данные все так же осталось без изменений.

Заметил интересный факт, что на странице users.freelancers.tpl {FREELANCERS_CATALOG} отображается, но почему его нет в users.employers.php не пойму

]]>
пн, 29 окт 2012 22:16:43 -0000
Dayver #35992 meverikxp:
вставить в файл users.details.tpl {FREELANCERS_CATALOG}

вставил, что дальше?

И каков результат то? Что можно советовать дальше не зная что произошло после выполнения рекомендаций?

]]>
пн, 29 окт 2012 22:00:34 -0000
meverikxp Извините, я просто не знаю что куда и не понимаю почему не получается, почему мой файл отличается от остальных, как заставить делать то что мне нужно. Спасибо за ваше терпение

]]>
пн, 29 окт 2012 21:10:11 -0000
Dayver #35992 meverikxp:
вставить в файл users.details.tpl {FREELANCERS_CATALOG}

вставил, что дальше?

Диалог приобретает форму неформального разговора вне формата форума с элементами экстрасенсорики

]]>
пн, 29 окт 2012 20:56:44 -0000
meverikxp #35989 Yusupov:

Все работает. 

Создайте файл: freelancers.users.details.tags.php:

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=users
File=freelancers.users.details.tags
Hooks=users.details.tags
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

$t->assign(array(
	"FREELANCERS_CATALOG" => sed_showfcat()
));

?>

Установите тэг {FREELANCERS_CATALOG}  в шаблон пользователя. 

Переустановите плагин freelancers

{FREELANCERS_CATALOG} нужно установить в users.employers.tpl?

Added 10 minutes later:

#35991 Dayver:
#35990 meverikxp:
#35988 Dayver:

можно подробнее, что сделать? файл users.details.tpl я открыл, а что дальше? Как сделать вывод sed_showfcat()?

 

вставить в файл users.details.tpl {FREELANCERS_CATALOG}

вставил, что дальше?

]]>
пн, 29 окт 2012 20:23:06 -0000
Dayver #35990 meverikxp:
#35988 Dayver:

можно подробнее, что сделать? файл users.details.tpl я открыл, а что дальше? Как сделать вывод sed_showfcat()?

 

вставить в файл users.details.tpl {FREELANCERS_CATALOG}

]]>
пн, 29 окт 2012 20:22:14 -0000
meverikxp #35988 Dayver:

вы сделайте для начала вывод  sed_showfcat() в users.details.tpl а потом сделаем отличие для employers

можно подробнее, что сделать? файл users.details.tpl я открыл, а что дальше? Как сделать вывод sed_showfcat()?

 

]]>
пн, 29 окт 2012 20:11:01 -0000
Yusupov Все работает. 

Создайте файл: freelancers.users.details.tags.php:

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=users
File=freelancers.users.details.tags
Hooks=users.details.tags
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

$t->assign(array(
	"FREELANCERS_CATALOG" => sed_showfcat()
));

?>

Установите тэг {FREELANCERS_CATALOG}  в шаблон пользователя. 

Переустановите плагин freelancers

]]>
пн, 29 окт 2012 20:02:50 -0000
Dayver вы сделайте для начала вывод  sed_showfcat() в users.details.tpl а потом сделаем отличие для employers

]]>
пн, 29 окт 2012 20:01:06 -0000
meverikxp так я не понял, это не возможно сделать или что? Или как мне это возможно реализовать?

]]>
пн, 29 окт 2012 19:48:47 -0000
Dayver И вообще будет полезно почитать http://www.cotonti.com/docs/ru/plugins/Format_failov_plaginov

Да и к тому же почему все решили что шаблон users.details.XXX.tpl в конкретном примере - users.details.employers.tpl, где XXX - код группы или ник пользователя либо что то другое - будет работать? только users.details.tpl ибо в /system/core/users/users.details.inc.php нет поддержки кастомизации шаблонов как это реализованно в list

]]>
пн, 29 окт 2012 19:32:34 -0000
meverikxp да я вижу, давайте попорядку мож что не так объяснил. Есть файл users.employers.tpl в нем нужно вызвать {FREELANCERS_CATALOG}. Создал копию файла freelancers.index.php назвал его freelancers.users.php и в нем сделал следующие изменения 

/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=users
File=freelancers.users
Hooks=users.details.tags
Tags=users.details.employers.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */

но так и ничего и не выводится на сайте.

]]>
пн, 29 окт 2012 19:28:57 -0000
Dayver /* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=users
File=freelancers.users
Hooks=users.details.tags
Tags=users.details.tpl:
[END_SED_EXTPLUGIN]
==================== */
defined('SED_CODE') or die('Wrong URL.');

$t->assign("FREELANCERS_CATALOG", sed_showfcat().'+++');
...
остальное как и было


деинсталировать а потом опять установить плагин в админке и посмотреть появились ли +++ там где надо ]]>
пн, 29 окт 2012 19:16:09 -0000
Yusupov Попробуйте так:

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=users
File=freelancers.users
Hooks=users.details.tags
Tags=users.details.employers.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */
 
if (!defined('SED_CODE')) { die('Wrong URL.'); }
 
$t->assign(array(
    "FREELANCERS_CATALOG" => sed_showfcat()
));

 

]]>
пн, 29 окт 2012 19:12:19 -0000
meverikxp sad не получается делал так:

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=homepage
File=freelancers.users
Hooks=users.details.tags
Tags=users.details.employers.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

$t->assign(array(
	"FREELANCERS_CATALOG" => sed_showfcat()
));

и так:

/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=homepage
File=freelancers.index
Hooks=users.details.tags
Tags=users.details.employers.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */

и так 

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=homepage
File=freelancers.index
Hooks=users.details.tags
Tags=users.employers.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */

но никак не угадаю как нужно, что делаю не так? Подскажите пожалуйста.

]]>
пн, 29 окт 2012 18:26:59 -0000
Moool13 Если не ошибаюсь, Tags=index.tpl: замени на Tags=users.details.employers.tpl:

]]>
пн, 29 окт 2012 17:47:50 -0000
meverikxp Спасибо, но еще не получается, итак по порядку что я сделал, 1. Скопировал файл freelancers.index.php и назвал его freelancers.users.php. 2. Переделал хук показываю в коде ниже: 

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=homepage
File=freelancers.index
Hooks=users.details.tags
Tags=index.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

$t->assign(array(
	"FREELANCERS_CATALOG" => sed_showfcat()
));

$sql = sed_sql_query("SELECT * FROM sed_users WHERE user_toptodate>".$sys['now_offset']." ORDER BY user_toptodate DESC");
while($tur = sed_sql_fetcharray($sql))
{
	$t->assign(array(
		"TUR_ROW_NAME" => (empty($tur['user_fname']) && empty($tur['user_sname'])) ? sed_build_user($tur['user_id'], htmlspecialchars($tur['user_name'])) : sed_build_uname($tur['user_id'], htmlspecialchars($tur['user_name']), htmlspecialchars($tur['user_fname']." ".$tur['user_sname'])),
		"TUR_ROW_URL" => sed_url('users', 'm=details&id='.$tur['user_id'].'&u='.$tur['user_name']),
		"TUR_ROW_AVATAR" => sed_build_avatar($tur['user_avatar'], 'thumbs'),
		"TUR_ROW_STATUS" => (!empty($tur['user_status'])) ? $tur['user_status'] : $sed_fcat[$tur['user_cat']]['title'],
		"TUR_ROW_PRO" => (sed_ispro($tur['user_protodate'])) ? '<img src="https://www.cotonti.com/images/pro.png" align="absmiddle">' : ''
	));
	$t->parse("MAIN.TOPUSERS.TUR_ROWS");
}
$t->parse("MAIN.TOPUSERS");

?>

3. в файле users.employers.tpl вызываю хук таким способом: <div class="lSide">

<div id="cmenu">
        {PHP.cfg.menu2}
{FREELANCERS_CATALOG}
    </div>
</div>

Подскажите что делаю не так? Раньше работал с джумлой с этой cmf работаю впервые. так что прошу прощения за элементарные вобросы. Спасибо!

 

]]>
пн, 29 окт 2012 17:08:07 -0000
Dayver Hooks=index.tags,users.employers.tags
через запятую и называется мультихукность или как то так) не работает тут. Потому как я уже писал нужно копировать файл freelancers.index.php в файл например freelancers.users.php и в нем менять хук

2) менять хук ..... но что за хук такой вы написали? users.employers.tags - не помню что бы двиг такое поддерживал. Вам нужно указывать просто users.details.tags]]>
пн, 29 окт 2012 16:06:07 -0000
meverikxp Спасибо, но ничего не поличилось :(, я нашел файл где у меня генерится хук

{FREELANCERS_CATALOG}

мне нужно вывести этот плагин на странице users.details.employers.tpl, внизу код который находится в файле freelancers.index.php и именно он как я понял генерит мой хук.

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=freelancers
Part=homepage
File=freelancers.index
Hooks=index.tags,users.employers.tags
Tags=index.tpl:
Order=10
[END_SED_EXTPLUGIN]
==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

$t->assign(array(
	"FREELANCERS_CATALOG" => sed_showfcat()
));

$sql = sed_sql_query("SELECT * FROM sed_users WHERE user_toptodate>".$sys['now_offset']." ORDER BY user_toptodate DESC");
while($tur = sed_sql_fetcharray($sql))
{
	$t->assign(array(
		"TUR_ROW_NAME" => (empty($tur['user_fname']) && empty($tur['user_sname'])) ? sed_build_user($tur['user_id'], htmlspecialchars($tur['user_name'])) : sed_build_uname($tur['user_id'], htmlspecialchars($tur['user_name']), htmlspecialchars($tur['user_fname']." ".$tur['user_sname'])),
		"TUR_ROW_URL" => sed_url('users', 'm=details&id='.$tur['user_id'].'&u='.$tur['user_name']),
		"TUR_ROW_AVATAR" => sed_build_avatar($tur['user_avatar'], 'thumbs'),
		"TUR_ROW_STATUS" => (!empty($tur['user_status'])) ? $tur['user_status'] : $sed_fcat[$tur['user_cat']]['title'],
		"TUR_ROW_PRO" => (sed_ispro($tur['user_protodate'])) ? '<img src="https://www.cotonti.com/images/pro.png" align="absmiddle">' : ''
	));
	$t->parse("MAIN.TOPUSERS.TUR_ROWS");
}
$t->parse("MAIN.TOPUSERS");

?>

в нем я сделал изменения но видимо не так как нужно. подскажите что я сделал не так. Подозреваю что дела с закомментироваными строками, но хз, посткажите пожалуйста. Спасибо!

]]>
пн, 29 окт 2012 15:49:41 -0000
Dayver пн, 29 окт 2012 15:12:52 -0000 meverikxp Здравствуйте, только начинаю зазбиратся с даной cmf, так что прошу давать ответы как для чайника. У меня есть вывод категорий для пользователей на главной странице вызывается следующей вставкой 

{FREELANCERS_CATALOG}

и сейчас нужно вывести этот каталог на странице пользователя, но если вставляю эту вставку ничего не происходит, подскажите пожалуйста что может быть и как с этим боротся, спасибо всем за ответы!

]]>
пн, 29 окт 2012 13:40:20 -0000