Forums / National / Russian / Тех. поддержка / Соображения по Genoa 0.6.x

Предлагаю внести некоторые изменения в Genoa 0.6.x (новые хуки и хаки)

Yusupov
#1 2012-10-01 15:29

Предлагаю добавить новый хук в system/core/users/users.inc.php для изменения запроса в БД, формирующего список пользователей.
Назвать его например users.query и добавить вместо строк 153-155:

$sql = sed_sql_query("SELECT COUNT(*) FROM $db_users $sqlmask");
$totalusers = sed_sql_result($sql, 0, "COUNT(*)");
$sql = sed_sql_query("SELECT * FROM $db_users $sqlmask $sqlorder LIMIT $d,{$cfg['maxusersperpage']}");

Следующий код:

/* === Hook === */
$extp = sed_getextplugins('users.query');
if (is_array($extp))
{
	foreach($extp as $k => $pl) include_once($cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php');
}
/* ===== */
else
{
	$sql = sed_sql_query("SELECT COUNT(*) FROM $db_users $sqlmask");
	$totalusers = sed_sql_result($sql, 0, "COUNT(*)");
	$sql = sed_sql_query("SELECT * FROM $db_users $sqlmask $sqlorder LIMIT $d,{$cfg['maxusersperpage']}");
}

Также было бы очень удобно сделать разные шаблоны для списков пользователей в зависимости от выбранной группы. То есть в том же файле users.inc.php в строке 81 вместо 

$localskin = sed_skinfile('users');

добавить алиас группы:

$localskin = sed_skinfile(array('users',$sed_groups[$gm]['alias']));

 

Аналогично можно поступить и для страниц пользователей: users.details.inc.php

В строке 80, вместо: 

$mskin = sed_skinfile(array('users', 'details'));

вставить код:

$mskin = sed_skinfile(array('users', 'details', $sed_groups[$urr['user_maingrp']]['alias']));

 

esclkm
#2 2012-10-01 16:40

я противник) пусть доживает 06

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Yusupov
#3 2012-10-01 17:32
#35697 esclkm:

я противник) пусть доживает 06

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

Кстати, указанные дополнения не помешает и в сиену добавить. Для нее это тоже актуально.

Sergey
#4 2012-10-01 19:41

Мое мнение сиена это только клон Генуи. Ничего нового, функционального в Сиене нет. Кроме как сомнительного установщика. Закончится Сиена, начнется новый вариант. И опять переделывать плагины. Пустые годы работы.

www.cotonti.mobi
Trustmaster
#5 2012-10-01 19:52

Хук не помешает, только реализовать его надо немного по-другому. Вместо условных выражений сделать запросы переменными, которые можно перепределить выше в хуке. А так можно тикеты для обеих веток создавать.

May the Source be with you!
Sergey
#6 2012-10-01 20:11

В общем все уже решено. Имеется следующий прием:

Открывется дополнительный темплейт для группы:

$group_content = new XTemplate($mskin_group_content)

Далее в полученый $group_content, как обычно вводится все то, что вам нужно для этой отдельной группы:

потом:

$group_content->parse("MAIN_CONTENT");

где "MAIN_CONTENT это имя основного блока вашего контента для вашей групппы.

Далее заганяем парсинг в отдельный тег, например, в тег RESULT_CONTENT :

$main->assign('RESULT_CONTENT', $group_content->text("MAIN_CONTENT"));
и парсим все обычным образом для модуля.

www.cotonti.mobi