Bullet Energy 1.3: Мастхевные хаки от RDN TEAM
+1
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM
Если вы являетесь вебмастером администрирующим форум Bullet Energy эта информация будет для вас очень полезна:)


Всем привет, сегодня с выходом версии 1.3 я хочу обрадовать вас нужными фичами lol
Первый хак простой и очень нужный: авто-закрепление первого поста форума на верху как шапка
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Открываем файл находим: newtopic.php

parent::$db->query("INSERT INTO " . DBNAME . "." . PREFIX . "_be_topic (id,id_parent,title,reply_count,view_count,autor_id,autor,post_date,last_reply_date,last_reply_info,rating,topic_fixed,topic_type,topic_private_user,topic_descr_site,topic_approve,topic_meta,vote_id) VALUES (NULL," . parent::$globalParam['id'] . ",'{$option['topicName']}',0,0," . parent::$member_id['user_id'] . ",'" . parent::$member_id['name'] . "'," . parent::$timeParameters['time'] . "," . parent::$timeParameters['time'] . ",0,0,0,{$option['topicType']},'{$option['topicIsPrivateUser']}','{$option['topicDescription']}',{$option['aprove']},'{$option['meta']}', {$option['poll']})") ;

Заменяем на:

//
// first post auto pinned hack by RDN TEAM
// parent::$db->query("INSERT INTO " . DBNAME . "." . PREFIX . "_be_topic (id,id_parent,title,reply_count,view_count,autor_id,autor,post_date,last_reply_date,last_reply_info,rating,topic_fixed,topic_type,topic_private_user,topic_descr_site,topic_approve,topic_meta,vote_id) VALUES (NULL," . parent::$globalParam['id'] . ",'{$option['topicName']}',0,0," . parent::$member_id['user_id'] . ",'" . parent::$member_id['name'] . "'," . parent::$timeParameters['time'] . "," . parent::$timeParameters['time'] . ",0,0,0,{$option['topicType']},'{$option['topicIsPrivateUser']}','{$option['topicDescription']}',{$option['aprove']},'{$option['meta']}', {$option['poll']})") ;
parent::$db->query("INSERT INTO " . DBNAME . "." . PREFIX . "_be_topic (id,id_parent,title,reply_count,view_count,autor_id,autor,post_date,last_reply_date,last_reply_info,rating,topic_fixed,topic_type,topic_private_user,topic_descr_site,topic_approve,topic_meta,vote_id,is_fixed_count) VALUES (NULL," . parent::$globalParam['id'] . ",'{$option['topicName']}',0,0," . parent::$member_id['user_id'] . ",'" . parent::$member_id['name'] . "'," . parent::$timeParameters['time'] . "," . parent::$timeParameters['time'] . ",0,0,0,{$option['topicType']},'{$option['topicIsPrivateUser']}','{$option['topicDescription']}',{$option['aprove']},'{$option['meta']}', {$option['poll']}, '1')") ;
//

Находим:
parent::$db->query("INSERT INTO " . DBNAME . "." . PREFIX . "_be_message (id,id_topic,autors_id,message_autor,message_autor_ip,message_date,message_text,
message_approve,tree_id,attachment,user_thanks) VALUES (NULL,{$option['topicInsertId']}," . parent::$member_id['user_id'] . ",'" . parent::$member_id['name'] . "',{$option['ipUser']}," . parent::$timeParameters['time'] . ",'{$option['topicOneMessage']}',{$option['a
prove']}," . parent::$globalParam['id'] . ",0,'')") ;

Заменяем на:
//    parent::$db->query("INSERT INTO " . DBNAME . "." . PREFIX . "_be_message (id,id_topic,autors_id,message_autor,message_autor_ip,message_date,message_text,
message_approve,tree_id,attachment,user_thanks) VALUES (NULL,{$option['topicInsertId']}," . parent::$member_id['user_id'] . ",'" . parent::$member_id['name'] . "',{$option['ipUser']}," . parent::$timeParameters['time'] . ",'{$option['topicOneMessage']}',{$option['a
prove']}," . parent::$globalParam['id'] . ",0,'')") ;
parent::$db->query("INSERT INTO " . DBNAME . "." . PREFIX . "_be_message (id,id_topic,autors_id,message_autor,message_autor_ip,message_date,message_text,
message_approve,tree_id,attachment,user_thanks,fixap_msg) VALUES (NULL,{$option['topicInsertId']}," . parent::$member_id['user_id'] . ",'" . parent::$member_id['name'] . "',{$option['ipUser']}," . parent::$timeParameters['time'] . ",'{$option['topicOneMessage']}',{$option['a
prove']}," . parent::$globalParam['id'] . ",0,'',1)") ;



Второй хак не менее нужный, подойдет для форумов, решает проблему не красивых спидбаров:
Суть его работы в убирании дублирующего заголовка открытого топика

Было:
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Стало:
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Откройте файл: primary.php
Найдите:

$speedbar .= $this->getPosotionUserTree($data['idTree'], false) . '<li class="last"><a class="no_linck">' . $data['titlAction'] . '</a><span class="arrow"><span></span></span></li>' ;

Замените на:

// hack hack small speedbar by RDN TEAM!
//$speedbar .= $this->getPosotionUserTree($data['idTree'], false) . '<li class="last"><a class="no_linck">' . $data['titlAction'] . '</a><span class="arrow"><span></span></span></li>' ;
$speedbar .= $this->getPosotionUserTree($data['idTree'], false) ;
//



Третий хак обрежет большие заголовки длинных топиков, но не бойтесь, смысл заголовка не будет утерян потому что при наведении на заголовок мышкой мы получим его полную длинну.
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Наша цель: файл categories.php

Найти:

parent::$tpl->set('{title}', $data['title']) ;

Заменить на:

// hack topics text-limit by RDN TEAM
if( strlen($data['title']) > 40 ) {
parent::$tpl->set('{title}', "<span title=\"".$data['title']."\">".substr( $data['title'], 0, 40 ). " ...</span>");
} else {
parent::$tpl->set('{title}', $data['title']) ;
}
//
// parent::$tpl->set('{title}', $data['title']) ;
//



В дополние к этому хаку могу предложить так-же обрезание заголовков топиков при выводе топиков в блоке на сайте "Последние новости на форуме"
Файл: bullet_api.class.php

Найти:

$this->tpl->set('{title}', $row['title'] );

Заменить на:

// hack text limit by RDN TEAM
if( strlen($row['title']) > 55 ) {
$this->tpl->set('{title}', substr( $row['title'], 0,55 ). " ...");
} else {
$this->tpl->set('{title}', stripslashes($row['title']) );
}
//


В завершении исправим досадную ошибку с точкой рядом с аватарой при предпросмотре вашего поста:
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Откроем: preview_topic_new.tpl

Найдем:
<li class="msg">

Заменим на:
<li class="msg" style="list-style-type: none;">



UPD:
Фиксы для функции обсудить на форуме:
1) Убирает автосмену регистра первого символа.
2) Убирает пробел перед темой если префикс в шаблоне "обсуждение" пустой.

Файл: /engine/bullet_energy/action/site/discussion.php
$option = array( ... );

Заменить на:
    // hack disabled prefix by RDN TEAM
if ( parent::$cache['template']['discussion']['prefix'] == "" ) parent::$cache['template']['discussion']['prefix'] = null;
else parent::$cache['template']['discussion']['prefix'] = parent::$cache['template']['discussion']['prefix'] . " ";
// hack disabled prefix by RDN TEAM

$option = array(
'foto' => parent::$member_id['foto'] ? parent::$member_id['foto'] : '',
'ipUser' => ip2long($_SERVER['REMOTE_ADDR']),
'meta' => parent::$db->safesql(serialize(array(
parent::$cache['template']['discussion']['prefix'] . $row['post']['title'],
'',
''))),
// hack hack no first symbol change register by RDN TEAM
// 'title' => parent::$helper->ucfirs(parent::$helper->dle_substr(parent::$cache['template']['discussion']['prefix'] . ' ' . $row['post']['title'], 0, 250, parent::$config['DLE']['charset']), parent::$config['DLE']['charset'])) ;
'title' => parent::$helper->dle_substr(parent::$cache['template']['discussion']['prefix'] . $row['post']['title'], 0, 250, parent::$config['DLE']['charset']), parent::$config['DLE']['charset']);
//



ADD: Сделаем наш форум более полным, теперь "статистика форума" выводиться и в топиках тоже!
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Файл: /engine/bullet_energy/action/site/showtopic.php
Найти:
'titlTree' => parent::$cache['tree'][$row['id_parent']]['tree_title']), 'widget' => $option['widget'])) ;

Заменить на:
// hack: show statistics in topic page by RDN TEAM
// 'titlTree' => parent::$cache['tree'][$row['id_parent']]['tree_title']), 'widget' => $option['widget'])) ;
'titlTree' => parent::$cache['tree'][$row['id_parent']]['tree_title']),
'widget' => $option['widget'] = parent::$helper->getSidebar() )) ;
//


ADD: Решено полностью выпилить систему автосмены регистра у топиков, ибо эта шляпа не работает или работает, но делает любой регистр => маленьким. Выпиливал самым простым способом, обнулением функции (я ленивый).
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Файл: /engine/bullet_energy/helper/
Находим:
public function ucfirs($value = '', $charset = '') {
...
}

Заменяем на:
  // RDN TEAM
public function ucfirs($value = '', $charset = '')
{
return $value;
// fuck this holy shit!
/*
$value = $this->element_strtolower($value) ;
if($this->element_strtolower($charset) == "utf-8") {
$value = mb_ereg_replace("^[\ ]+", "", $value) ;
return mb_strtoupper(mb_substr($value, 0, 1, "UTF-8"), "UTF-8") . mb_substr($value, 1, mb_strlen($value), "UTF-8") ;
} else
return ucfirst($value) ;
*/
// fuck this holy shit!
}
// RDN TEAM



UPD: Добавлен лимит текста в блоке "последние сообщения" при просмотре форумов. Стандартно окончание темы просто скрывается средствами css.
До:
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

После:
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Фыксить будем файл: /engine/bullet_energy/action/site/category.php
Найти:
parent::$tpl->set('{lastTopicName}', $last[2]) ;

Заменим на:
// hack last topics text-limit in forums by RDN TEAM
if( strlen(htmlspecialchars($last[2])) > 20 ) {
parent::$tpl->set('{lastTopicName}', "<span title=\"".htmlspecialchars($last[2])."\">".substr( htmlspecialchars($last[2]), 0, 20 ). " ...</span>");
} else {
parent::$tpl->set('{lastTopicName}', htmlspecialchars($last[2])) ;
}
//
// parent::$tpl->set('{lastTopicName}', $last[2]) ;


Продолжение фикса:
файл: /engine/bullet_energy/action/site/index.php

Найти:
parent::$tpl->set('{lastTopicName}', stripslashes($element['tree_last_info'][2])) ;

Заменить на:
    // hack last topics text-limit in forums by RDN TEAM
if( strlen(stripslashes($element['tree_last_info'][2])) > 20 ) {
parent::$tpl->set('{lastTopicName}', "<span title=\"".stripslashes($element['tree_last_info'][2])."\">".substr( stripslashes($element['tree_last_info'][2]), 0, 20 ). " ...</span>");
} else {
parent::$tpl->set('{lastTopicName}', stripslashes($element['tree_last_info'][2])) ;
}
//
// parent::$tpl->set('{lastTopicName}', stripslashes($element['tree_last_info'][2])) ;
//


Опытным методом было выяснено оптимальное значение в 20 символов, в предыдущем посте тоже исправьте в двух местах его.


Видел на оффициальном форуме многие жаждут модуль репутации на форуме, вот реализовал :)
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Интеграция модуля репутация + количество благодарностей за новости на сайте:
+ Стандартные иконки плюс\минус у репутации имеют пути: {THEME}/images/repa_up.gif и {THEME}/images/repa_dn.gif (в инструкции ниже, я юзаю стандартные иконки DLE)
+ Репутация обновляется при изменении (AJAX FIXED)
+ Нулевая нагрузка, никаких посторонних запросов.
+ Поддержка стилей вывода: расскоментируйте нужный вам визуальный тип репутации (0|0) (0|0|0) (0)

Приступим к модифицированию: Файл: /engine/bullet_energy/action/site/showtopic.php

Найдём строку:
parent::$tpl->set('{messageAutorIp}', parent::$helper->ckeckModulesConfig('be_moder_ip_view') ? long2ip($row['message_autor_ip']) : '') ;

После неё добавим:
      
// repa&thanx hack by RDN TEAM
if($row['repa_off'] == 0) {
$option['repa'] = explode('|',$row['repa_mod']);
// тип репутации (0|0) раскоментируйте по необходимости
//$option['view'] = "<span id=\"repa-{$row['autors_id']}-".$row['id']."\"><a href=\"/user/reputation/" . urlencode($row['message_autor']) . "/\"><strong>(<font color=green>".$option['repa'][0]."</font>|<font color=red>".$option['repa'][1]."</font>)</strong></a></span>";
// тип репутации (0|0|0) используется по умолчанию
$option['view'] = "<span id=\"repa-{$row['autors_id']}-".$row['id']."\"><a href=\"/user/reputation/" . urlencode($row['message_autor']) . "/\"><strong>(<font color=green>".$option['repa'][0]."</font>|".$row['repa']."|<font color=red>".$option['repa'][1]."</font>)</strong></a></span>";
// тип репутации (0) раскоментируйте по необходимости
//$option['view'] = "<span id=\"repa-{$row['autors_id']}-".$row['id']."\"><a href=\"/user/reputation/" . urlencode($row['message_autor']) . "/\"><strong>(<".$row['repa'].")</strong></a></span>";

parent::$tpl->set('{repa}', "<a href=\"/user/reputation/" . urlencode($row['message_autor']) . "/plus/\" onclick=\"repa_global('form', '1', '{$row['autors_id']}', '".$row['id']."'); return false;\" >
<img title=\"Повысить репутацию\" src=\"{THEME}/dleimages/up.gif\" border=\"0\" /></a>".$option['view']."
<a href=\"/user/reputation/" . urlencode($row['message_autor']) . "/minus/\" onclick=\"repa_global('form', '0', '{$row['autors_id']}', '".$row['id']."'); return false;\" >
<img title=\"Понизить репутацию\" src=\"{THEME}/dleimages/down.gif\" border=\"0\" /></a>") ;
} else {
parent::$tpl->set('{repa}','Репутация отключена');
}

if(!$row['thx_num']) parent::$tpl->set('{thxnum}', '0');
else parent::$tpl->set('{thxnum}', $row['thx_num']);

// repa&thanx hack by RDN TEAM


Для вывода репутации на форуме добавьте в файл шаблона: short_message.tpl
в нужное вам место:
{repa}

Для вывода благодарностей за статьи на форуме добавьте в файл шаблона: short_message.tpl
в нужное вам место:
{thxnum}


UPD: Ещё исправление по репутации, пути к файлам изображений указывайте статичные, с именем темы и тд.. + теже самые изменения необходимо применить к файлу: /engine/bullet_energy/action/site/newpost.php

UPD: Сделал фикс позволяющий оформлять первый пост темы как шапку своим дизайном:
UPD2: Внесены существенные исправления!
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM



Открыть файл: /engine/bullet_energy/action/site/showtopic.php
Найти:
if(parent::$cache['title'][$row['forum_inseption']['title']]['title']) {

Выше вставить:
      // First have custom style? Hack by RDN TEAM v.1.1 / fix by white-master
if($this->_param['countPost'] == 0) { // $row['fixap_msg']
parent::$tpl->set_block("'\\[firstpost\\](.*?)\\[/firstpost\\]'si", "\\1") ;

} else {
parent::$tpl->set_block("'\\[firstpost\\](.*?)\\[/firstpost\\]'si", "") ;
}
// First have custom style? Hack by RDN TEAM v.1.1 / fix by white-master


Открыть файл: /engine/bullet_energy/action/site/newpost.php
Найти:
if(parent::$cache['title'][$row['forum_inseption']['title']]['title']) {

Выше вставить:
      // First have custom style? Hack by RDN TEAM v.1.1 / fix by white-master
parent::$tpl->set_block("'\\[firstpost\\](.*?)\\[/firstpost\\]'si", "") ;
// First have custom style? Hack by RDN TEAM v.1.1 / fix by white-master


Теперь если вы хотите оформить первый пост особенным стилем добавьте в файле шаблона short_message.tpl в нужное место:
[firstpost]ваш стиль который применится только к первому посту.[/firstpost]



ADDED: Хак "TopicStarter", позволяет выводить нужный вам текст(изображение) в каждом сообщении от автора темы.
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Открыть файл: /engine/bullet_energy/action/site/showtopic.php
Найти:
$row = parent::$db->super_query("SELECT topic . *  {$option['SQL']['readColum']}{$option['SQL']['columFeed']} FROM " . DBNAME . "." . PREFIX . "_be_topic AS topic {$option['SQL']['readJoin']} {$option['SQL']['feed']} WHERE topic.id = " . parent::$globalParam['id'] . " LIMIT 1") ;

Добавить ниже:
    // TopicStarter hack by RDN TEAM / thanx 2 white_master ;D
$this->_param['topic_autor'] = $row['autor_id'] ;
// TopicStarter hack by RDN TEAM

Найти:
if(parent::$cache['title'][$row['forum_inseption']['title']]['title']) {

Добавить выше:
      // TopicStarter hack by RDN TEAM / thanx 2 white_master ;D
if($this->_param['topic_autor'] == $row['autors_id']) {
parent::$tpl->set_block("'\\[topicstarter\\](.*?)\\[/topicstarter\\]'si", "\\1") ;
} else {
parent::$tpl->set_block("'\\[topicstarter\\](.*?)\\[/topicstarter\\]'si", "") ;
}
// TopicStarter hack by RDN TEAM


Открыть файл: /engine/bullet_energy/action/site/newpost.php

Найти:
$row['topic']['title'] = stripcslashes($row['topic']['title']) ;

Выше вставить:
    // TopicStarter hack by RDN TEAM / thanx 2 white_master ;D
$this->_param['topic_autor'] = $row['topic']['autor_id'] ;
// TopicStarter hack by RDN TEAM


Найти:
if(parent::$cache['title'][$row['forum_inseption']['title']]['title']) {

Добавить выше:
      // TopicStarter hack by RDN TEAM / thanx 2 white_master ;D
if($this->_param['topic_autor'] == $row['autors_id']) {
parent::$tpl->set_block("'\\[topicstarter\\](.*?)\\[/topicstarter\\]'si", "\\1") ;
} else {
parent::$tpl->set_block("'\\[topicstarter\\](.*?)\\[/topicstarter\\]'si", "") ;
}
// TopicStarter hack by RDN TEAM


Добавить в нужном месте в шаблоне: short_message.tpl
[topicstarter]<p style="color:red"><strong>Автор темы</strong></p>[/topicstarter]



Хак который позволяет добавить свой стиль оформления для постов администратора, модератора:
На примере этого скриншота хак используется для придания группе пользователей с id = 1 стиль текста красного цвета.
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM


Модифицировать будем файл: /engine/bullet_energy/action/site/showtopic.php и /engine/bullet_energy/action/site/newpost.php
Найдем:
parent::$tpl->set('{group-icon}', parent::$user_group[$row['user_group']]['icon']) ;

Добавим ниже:
      // custom usergroup style by RDN-TEAM
parent::$tpl->set('{group-id}', parent::$user_group[$row['user_group']]['id']) ;
// custom usergroup style by RDN-TEAM


Теперь используя {group-id} в файле шаблона short_message.tpl вы будете получать id группы автора сообщения.
Подключается вот так:
<div class="group-{group-id}">...</div>

В css соответственно:
.group-1 a {color:red !important;}
.group-2 a {color:blue !important;}
.group-3 a {color:green !important;}



Хак подключение стандартных полей из профиля DLE: icq, land, fullname, дата последнего посещения.
Редактируем файлы: /engine/bullet_energy/action/site/showtopic.php и /engine/bullet_energy/action/site/newpost.php
Найти:
parent::$tpl->set('{icq}', $row['icq']) ;

Заменить на:
      //parent::$tpl->set('{icq}', $row['icq']) ;
// extended user info by RDN TEAM
if( $row['icq'] ) {
parent::$tpl->set( '[icq]', "" );
parent::$tpl->set( '[/icq]', "" );
parent::$tpl->set( '{icq}', stripslashes( $row['icq'] ) );
parent::$tpl->set_block( "'\\[not-icq\\](.*?)\\[/not-icq\\]'si", "" );

} else {
parent::$tpl->set_block( "'\\[icq\\](.*?)\\[/icq\\]'si", "" );
parent::$tpl->set( '{icq}', "" );
parent::$tpl->set( '[not-icq]', "" );
parent::$tpl->set( '[/not-icq]', "" );
}

if( $row['land'] ) {
parent::$tpl->set( '[land]', "" );
parent::$tpl->set( '[/land]', "" );
parent::$tpl->set( '{land}', stripslashes( $row['land'] ) );
parent::$tpl->set_block( "'\\[not-land\\](.*?)\\[/not-land\\]'si", "" );

} else {
parent::$tpl->set_block( "'\\[land\\](.*?)\\[/land\\]'si", "" );
parent::$tpl->set( '{land}', "" );
parent::$tpl->set( '[not-land]', "" );
parent::$tpl->set( '[/not-land]', "" );
}

if( $row['fullname'] ) {
parent::$tpl->set( '[fullname]', "" );
parent::$tpl->set( '[/fullname]', "" );
parent::$tpl->set( '{fullname}', stripslashes( $row['fullname'] ) );
parent::$tpl->set_block( "'\\[not-fullname\\](.*?)\\[/not-fullname\\]'si", "" );

} else {
parent::$tpl->set_block( "'\\[fullname\\](.*?)\\[/fullname\\]'si", "" );
parent::$tpl->set( '{fullname}', "" );
parent::$tpl->set( '[not-fullname]', "" );
parent::$tpl->set( '[/not-fullname]', "" );
}

parent::$tpl->set( '{lastdate}', langdate( "j F Y, H:i", $row['lastdate'] ) );

// extended user info by RDN TEAM

Изменения провести в обоих файлах. Далее в файле шаблона short_message.tpl нам станут доступны теги:
<p>[icq]Аська: {icq}[/icq][not-icq]Аська: не указана![/not-icq]</p>
<p>[land]Город: {land}[/land][not-land]Город: не указан![/not-land]</p>
<p>[fullname]Имя: {fullname}[/fullname][not-fullname]Имя: не указано![/not-fullname]</p>
<p>Последнее посещение: {lastdate}</p>



При использовании оффициального хака "Кнопка обсудить на форуме в новостях" была найдена проблема:
- Не работает "версия статьи для печати"

в файле /engine/modules/show.full.php
найти:
$tpl->set('{forumDiscus}', $apiBullet->setLinckDiscus(array(
'idPost' => $row['id'],
'id' => $row['topic_id'],
'tree' => $category_id))) ;

заменить на:
		// discuss at forum hack fix! RDN-TEAM
if ( $view_template != "print") {
$tpl->set('{forumDiscus}', $apiBullet->setLinckDiscus(array(
'idPost' => $row['id'],
'id' => $row['topic_id'],
'tree' => $category_id))) ; }
// discuss at forum hack fix! RDN-TEAM


Исправление маленьких багов плюс расширение для системы работы с жалобами.
FIX: Исправленна проблема длинного текста жалобы, теперь окно всегда статичное, присутствует скроллбар.
FIX: Исправлена проблема отображения ника отправителя жалобы (там был включен url encoding)
Подробное описание проблемы:
http://white-master.ru/forum/showtopic-156...3/findpost-7836
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

ADD: При написании жалобы автоматически отправляется уведомление в ЛС администратору сайта. (или модератору, необходимо лишь изменить user_id в файле actions/site/complaint.php )
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Загрузка:
https://dl.dropbox.com/u/48649503/action.rar


NEW: Хак позволяющий определённым образом оформить ссылки на новые сообщения форума в блоке "последние сообщения с форума. По умолчанию отображает ваш блок если последний ответ в теме или дата создания поста сегодня\вчера. Для особо активных форумов можно оставить отображение метки только за "сегодня"

Bullet Energy 1.3: Мастхевные хаки от RDN TEAM


Наша цель: /engine/bullet_energy/api/bullet_api.class.php
Найти:
$this->tpl->set('{lastAutorName}', $row['last_reply_info'][0]) ;

Вставить выше:
// custom style or label for new posts by RDN-TEAM
if(date('Ymd', $row['last_reply_info'][1]) == date('Ymd', time()) OR date('Ymd', $row['last_reply_info'][1]) == date('Ymd', (time() - 86400))) {
// uncomment and delete previous string for active forum posting
// if(date('Ymd', $row['last_reply_info'][1]) == date('Ymd', time())) {
$this->tpl->set( '[new-post]', "" );
$this->tpl->set( '[/new-post]', "" );
} else {
$this->tpl->set_block( "'\\[new-post\\](.*?)\\[/new-post\\]'si"
, "" );
}
// custom style or label for new posts by RDN-TEAM


Изменения в шаблоне: last_topic_content.tpl
Добавьте в нужное место:
[new-post][НОВОЕ] [/new-post]

или
[new-post]ваш стиль оформления[/new-post]



Небольшой бонус: Оказывается целсофт не реализовал проверку редактирования новостей по времени. (для комментариев такая штука есть). Суть хака: У группы у которой включен лимит времени, в течение которого разрешено удалять или редактировать комментарии работает так-же лимит на редактирование своих новостей, но только если они не старше трёх дней. (по умолчанию)
Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Bullet Energy 1.3: Мастхевные хаки от RDN TEAM

Изменения производим в двух файлах:
сначала: /engine/ajax/editnews.php
Найти
if( ($member_id['user_group'] == 1) ) {
$have_perm = 1;
}

Добавить после:
// time to edit himself news by RDN-TEAM
if ( $user_group[$member_id['user_group']]['edit_limi
t'] AND ((strtotime($row['date']) + (86400 * 3)) < $_TIME) ) {
die( "<strong>Вы не можете редактировать этот материал.</strong><br/>С момента публикации статьи прошло уже более 3х дней!" );
}
//

Теперь добавим хак в админ-панель: /engine/inc/editnews.php
найти:
if( ($member_id['user_group'] == 1) ) {
$have_perm = 1;
}

Ниже добавить:
// time to edit himself news by RDN-TEAM
if ( $user_group[$member_id['user_group']]['edit_limi
t'] AND ((strtotime($row['date']) + (86400 * 3)) < $_TIME) ) {
msg( "error", $lang['addnews_denied'], "<strong>Вы не можете редактировать этот материал.</strong><br/>С момента публикации статьи прошло уже более 3х дней!","javascript:window.close();");
}
//

Для администраторов и модераторов предполагается ставить лимит редактирования комментариев 0, тогда лимита редактирования новостей так-же не будет.



Обнаружил ошибку в DLE при изменении email в профиле на тот, который уже есть в системе мускул вываливается с ошибкой о дубликации (ошибка 1062 в profile.php). Не понимаю почему разрабы не добавили простую проверку этой ситуации, ну да ладно, исправим это сами:

Фикс основан на уже пофиксенном от другой проблемы решении от MSW:
Файл: /engine/modules/profile.php
Найти:

if ( !$send_mail_log AND $email != $row['email']) $mailchange = " email='{$email}',";
else $mailchange = "";

Заменить на:
#****** FIX Subscribe Change EMail *** by MSW + RDN TEAM ******#
if ( !$send_mail_log AND $email != $row['email']) {

$checkdoblemail = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users where email='{$email}'" );
if ($checkdoblemail['count']) {
msgbox( $lang['all_err_1'], "Этот email уже используется другим участником!" );
} else {
$db->query("UPDATE ". PREFIX ."_subscribe SET email='{$email}' WHERE user_id='{$id}'");
$mailchange = " email='{$email}',";
}
} else $mailchange = "";
#****** FIX Subscribe Change EMail *** by MSW + RDN TEAM ******#


Более подробно о фиксе который применил MSW
http://0-web.ru/dle/hack-dle/261-fix-subsc...ange-email.html


Вот пожалуй и все дорогие комрады, ещё раз скажем спасибо автору за, то что сделал нам вкуснятину!$db-


Внимание! Данная статья была написана более полугода назад, актуальность материала и состояние жизни ссылок не гарантируется! Воспользуйтесь дополнительными параметрами для поиска необходимого вам контента! Приносим свои извинения...
Russian Federation  Комментарий #1, добавлен: 29 сентября 2012, 03:02 [2] [Q] [#]
0
В картинках "Второй хак" не уловил разницы think000

Cтатус: Ом Мани Падмэ Хум :: изменен: 2014-02-24 01:46:34
Канал по криптовалюте!
Russian Federation  Комментарий от Автора #3, добавлен: 10 ноября 2012, 08:07 [2] [Q] [#]
0
Множественное обновление темы. Добавил кучу новых хаков

Russian Federation  Комментарий от Автора #4, добавлен: 22 мая 2013, 02:27 [2] [Q] [#]
0
16 сохранённых страниц с форума white master из темы мастхевные хаки:
+ Как сделать форум на всю ширину
https://dl.dropboxusercontent.com/u/4864950...2.05.13-16).rar

Исправление глюка с бб-кодами в dle 9. 8
bbcodes.php закинуть по адресу \engine\bullet_energy\modules\
bbcode.css закинуть по адресу \engine\bullet_energy\library\bbcode\
https://dl.dropboxusercontent.com/u/4864950...s_fixdle9.8.rar

Adequatebbcode адекватный bbcode-редактор для DataLife Engine от ПафНутиЙ для bullet energy
https://dl.dropboxusercontent.com/u/4864950...BBcode_hack.rar

Russian Federation  Комментарий #5, добавлен: 9 сентября 2014, 22:41 [2] [Q] [#]
0
все сделала, только на форуме не отображается ни аська ни остальное


[icq]Аська: {icq}[/icq][not-icq]Аська: не указана![/not-icq]


[land]Город: {land}[/land][not-land]Город: не указан![/not-land]


[fullname]Имя: {fullname}[/fullname][not-fullname]Имя: не указано![/not-fullname]


Последнее посещение: {lastdate}



***добавлено через 1 минуту, 37 секунд***

не сочтите за рекламу, вот как отображается http://dinsk.su/forum/showtopic-136#message-249
делала как и вы написали, в двух файлах заменила

***добавлено через 1 минуту, 39 секунд***

помогите пожалуйста. Версия дле10, форум 1.3

Оставить комментарий / Добавление ссылок в комментариях разрешено