Forums / National / Russian / Сборка «Фриланс-биржа» / Использование плагинов в других шаблонах

12>>>

meverikxp
#1 2012-10-29 13:40

Здравствуйте, только начинаю зазбиратся с даной cmf, так что прошу давать ответы как для чайника. У меня есть вывод категорий для пользователей на главной странице вызывается следующей вставкой 

{FREELANCERS_CATALOG}

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

Dayver
#2 2012-10-29 15:12
Зависит от того что у вас генуя или сиена. Но схема решения простая в любом случае. Суть в том что в файле плагина который генерирует содержимое {FREELANCERS_CATALOG} указана привязка к хуку index.tags - решение если генуя то продублировать этот файл изменив в его имени часть index на что либо другое, а в нем указать хук users.details.tags ... если сиена то в его копировать не нужно, а просто этом файле в к хуку index.tags добавить через запятую еще один хук что б было так: index.tags,users.details.tags
Pavlo Tkachenko aka Dayver
meverikxp
#3 2012-10-29 15:49

Спасибо, но ничего не поличилось :(, я нашел файл где у меня генерится хук

{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="images/pro.png" align="absmiddle">' : ''
	));
	$t->parse("MAIN.TOPUSERS.TUR_ROWS");
}
$t->parse("MAIN.TOPUSERS");

?>

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

Dayver
#4 2012-10-29 16:06
1) У вас судя по коду генуя - потому мультихукность (то что хуки указываются в строке
Hooks=index.tags,users.employers.tags
через запятую и называется мультихукность или как то так) не работает тут. Потому как я уже писал нужно копировать файл freelancers.index.php в файл например freelancers.users.php и в нем менять хук

2) менять хук ..... но что за хук такой вы написали? users.employers.tags - не помню что бы двиг такое поддерживал. Вам нужно указывать просто users.details.tags
Pavlo Tkachenko aka Dayver
meverikxp
#5 2012-10-29 17:08

Спасибо, но еще не получается, итак по порядку что я сделал, 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="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 работаю впервые. так что прошу прощения за элементарные вобросы. Спасибо!

 

Moool13
#6 2012-10-29 17:47

Если не ошибаюсь, Tags=index.tpl: замени на Tags=users.details.employers.tpl:

meverikxp
#7 2012-10-29 18:26

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]
==================== */

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

Yusupov
#8 2012-10-29 19:12

Попробуйте так:

<?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()
));

 

Dayver
#9 2012-10-29 19:16
в файле freelancers.users.php вот такое
/* ====================
[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().'+++');
...
остальное как и было


деинсталировать а потом опять установить плагин в админке и посмотреть появились ли +++ там где надо
Pavlo Tkachenko aka Dayver
meverikxp
#10 2012-10-29 19:28

да я вижу, давайте попорядку мож что не так объяснил. Есть файл 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]
==================== */

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

Dayver
#11 2012-10-29 19:32

И вообще будет полезно почитать 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

Pavlo Tkachenko aka Dayver
meverikxp
#12 2012-10-29 19:48

так я не понял, это не возможно сделать или что? Или как мне это возможно реализовать?

Dayver
#13 2012-10-29 20:01

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

Pavlo Tkachenko aka Dayver
Yusupov
#14 2012-10-29 20:02

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

Создайте файл: 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

meverikxp
#15 2012-10-29 20:11
#35988 Dayver:

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

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

 

12>>>