Небольшие, но вкусные плюшки для DLE

Небольшие, но вкусные плюшки для DLE
Мне нравится своей простотой этот движок, то биш DLE. Но иногда хочется видеть в нем то, что хочется только мне, как конечному юзеру и не особо нужно остальному обществу. Возможно и вам что-то пригодиться из моих несложных поправок. Данная информация действительна для актуальной (читай свежей) версии движка, если что-то изменится, то я внесу поправки с учетом изменений новой версии. Сейчас версия DLE 10.6
 
 

Редактирование bb редактора DLE. Добавляем кнопки


/engine/inc/include/inserttag.php -вывод редактора в админке, отображение наших кнопочек

после блока

	<div class="btn-group more-size">
		<button type="button" class="btn btn-default btn-sm btn-small" rel="tooltip" title="{$lang['bb_t_hide']}" onclick="simpletag('hide'); return false;"><span class="editoricon-eye-blocked"></span></button>
		<button type="button" class="btn btn-default btn-sm btn-small" rel="tooltip" title="{$lang['bb_t_quote']}" onclick="simpletag('quote'); return false;"><span class="editoricon-quotes-left"></span></button>
		<button type="button" class="btn btn-default btn-sm btn-small" rel="tooltip" title="{$lang['bb_t_code']}" onclick="simpletag('code'); return false;"><span class="editoricon-code"></span></button>
	</div>
	<div style="clear:both;"></div>

добавляем свои кнопочки

	<div class="btn-group more-size">
		<button type="button" class="btn btn-default btn-sm btn-small" rel="tooltip" data-placement="bottom" title="{$lang['bb_t_Lj']}" onclick="simpletag('otstup'); return false;">Otstup</button>
		<button type="button" class="btn btn-default btn-sm btn-small" rel="tooltip" data-placement="bottom" title="{$lang['bb_t_Lj']}" onclick="simpletag('avtor-txt'); return false;">Avtor-txt</button>
		<button type="button" class="btn btn-default btn-sm btn-small" rel="tooltip" data-placement="bottom" title="{$lang['bb_t_Lj']}" onclick="simpletag('podzagolovok'); return false;">Podzagolovok</button>
		<button type="button" class="btn btn-default btn-sm btn-small" rel="tooltip" data-placement="bottom" title="{$lang['bb_t_Lj']}" onclick="simpletag('bible-number'); return false;">Bible-N</button>
	</div>


/engine/classes/parse.class.php - скрипт-обработчик

для превращения записей из [ otstup] в < div class... после строчки

$source = preg_replace( "#\[(left|right|center|justify)\](.+?)\[/\\1\]#is", "<div style=\"text-align:\\1;\">\\2</div>", $source );

вставляем свои обработчики

$source = preg_replace( "#\[(bible-number|otstup|podzagolovok|avtor-txt)\](.+?)\[/\\1\]#is", "<div class=\"\\1\">\\2</div>", $source );


для отображения в bb редакторе вместо <div class... в [ otstup] после строчки

        $txt = preg_replace( "#<div align=['\"](left|right|center|justify)['\"]>(.+?)</div>#is", "[\\1]\\2[/\\1]", $txt );
	$txt = preg_replace( "#<div style=['\"]text-align:(left|right|center|justify);['\"]>(.+?)</div>#is", "[\\1]\\2[/\\1]", $txt );

вставляем

        $txt = preg_replace( "#<div class=['\"](bible-number|otstup|podzagolovok|avtor-txt)['\"]>(.+?)</div>#is", "[\\1]\\2[/\\1]", $txt );


настройка плеера YouTube для DLE


Вероятно, что многим из вас известно, что вид плеера youtube, который встраиваете себе на сайт, можете изменять в определенных пределах. Я, в частности, использую следущие параметры:
showinfo=0 – скрывает название и информацию о видео в верхней части theme=light — делает панель управления светло-серой.
для чего в файле: engine\classes\parse.class.php я заменяю первую строку кода на вторую

} else return '<!--dle_media_begin:'.$decode_url.'--><iframe title="YouTube video player" width="'.$width.'" height="'.$height.'" src="https://www.youtube.com/embed/'.$video_link.'?rel='.intval($this->video_config['tube_related']).'&amp;wmode=transparent" frameborder="0" allowfullscreen></iframe><!--dle_media_end-->';


} else return '<!--dle_media_begin:'.$decode_url.'--><iframe title="YouTube video player" width="'.$width.'" height="'.$height.'" src="https://www.youtube.com/embed/'.$video_link.'?rel='.intval($this->video_config['tube_related']).'&amp;wmode=transparent&showinfo=0&theme=light" frameborder="0" allowfullscreen></iframe><!--dle_media_end-->';


внешний вид редактора DLE


редактируем файл: \engine\inc\editnews.php и вносим некоторые изменения

HTML;
	if( $config['allow_admin_wysiwyg'] ) {

		include (ENGINE_DIR . '/editor/fullnews.php');

	} else {

		echo "{$bb_panel}<textarea style=\"width:700px; height:2619px; font-family: verdana; font-size: 11px; line-height: 110%; background: url(http://..../bb-editor.jpg);\" onfocus=\"setFieldName(this.name)\" name=\"full_story\" id=\"full_story\">{$row['full_story']}</textarea>";
	}


отдельная форма входа на сайт


* Сейчас возникла проблема неработоспособности данного хака в Chrome мобильной версии

редактируем файл: /engine/engine.php

после строки

switch ( $do ) {

вставляем


удаление адресов E-Mail после удаления пользователей


К сожалению, после удаления пользователей, которые "наследили" на сайте своими комментами, остаются следы в виде отображения ранее скрытых E-Mail Предложенный хак решает эту проблему.

редактируем файл engine/classes/comments.class.php

вместо строчки

$tpl->set( '{author}', "<a href=\"mailto:".htmlspecialchars($row['gast_email'], ENT_QUOTES, $config['charset'])."\">" . $row['gast_name'] . "</a>" );

пишем

if( $row['gast_email'] != "" ) $tpl->set( '{author}', "" . $row['gast_name'] );
if( $is_logged and $member_id['user_group'] == '1' )$tpl->set( '{author}', "<a href=\"mailto:".htmlspecialchars($row['gast_email'], ENT_QUOTES, $config['charset'])."\">" . $row['gast_name'] . "</a>" );

или

$tpl->set( '{author}', "" . $row['gast_name']  );


Разница состоит в том, что в первом случае админ, также как и прежде видит E-Mail удаленных юзеров, когда как для остальных они не отображаются.

уведомление автора о новых комментариях к его новости по E-Mail




файл /engine/modules/addcomments.php
после строки
include_once ENGINE_DIR . '/classes/mail.class.php';

вставить

//////////////// Уведомление автора новости о комментарии //////////////
        if ($config['autor_news']) {
             $rows  = $db->super_query("SELECT p.autor, p.title, c.id, c.text FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_comments c ON (p.id=c.post_id) WHERE c.post_id='$post_id' ORDER BY c.id DESC LIMIT 0,1" );  
			 
            $row        = $db->super_query("SELECT email, name, user_group FROM " . PREFIX . "_users WHERE name='{$rows['autor']}'");
            if ($row['user_group'] != 1 AND $member_id['name'] != $rows['autor']) {
                $mail      = new dle_mail($config, true);
                $mail_name = $row['email'];
                $mail->send($mail_name, "На сайте {$config['http_home_url']} к Вашей новости был добавлен комментарий!", "Здравствуйте <b>{$rows['autor']}!</b><br />На сайте <a href={$config['http_home_url']}>{$config['http_home_url']}</a> к Вашей новости <b>{$rows['title']}</b>, пользователь <b>{$member_id['name']}</b> добавил комментарий!<hr /><br />{$rows['text']}<br /><br /><hr />Вы можете его прочитать, пройдя по <a href={$config['http_home_url']}index.php?newsid={$post_id}#comment-id-{$rows['id']}>ссылке</a><br /><hr />Администрация сайта не несёт ответственности за содержание комментариев.<br />Если сочтёте текст комментария неуместным или оскорбительным, сообщите об этом <a href=mailto:{$config['admin_mail']}>администратору</a> сайта.");
            }
        }
        /////////////// Уведомление автора новости о комментарии //////////////////


для просмотра скрытого текста необходимо зарегистрироваться и войти под своим логином и паролем


файл /engine/inc/options.php
после строчки

showRow( $lang['opt_sys_cmail'], $lang['opt_sys_cmaild'], makeCheckBox( "save_con[mail_comments]", "{$config['mail_comments']}" ) );

вставить

showRow( $lang['opt_sys_autor_news'], $lang['opt_sys_autor_new_s'], makeCheckBox( "save_con[autor_news]", "{$config['autor_news']}" ) );

и еще, после

$save_con['mail_comments'] = intval($save_con['mail_comments']);

вставить

$save_con['autor_news'] = intval($save_con['autor_news']);


но и это не совсем все
файл /language/Russian/adminpanel.lng добавить после первой строки две следующих

'opt_sys_cmail'			=>	"Отсылать E-Mail уведомление администратору при добавлении комментариев",

'opt_sys_autor_news'	=>	"Уведомление автору",
'opt_sys_autor_new_s'	=>	"Отсылать ли автору новости уведомление о новом комментарии в его публикации",

После этого не забудьте зайти в панель управления и отметить новый чекбокс

Принудительная подписка пользователей на комментарии к своим комментариям


файл: /engine/modules/bbcode.php
удаляем две строки (имеется ввиду, что эта строчка встречается в файле в двух местах)

if ( isset($allow_subscribe) AND $allow_subscribe ) $code .= "<br /><input type=\"checkbox\" name=\"allow_subscribe\" id=\"allow_subscribe\" value=\"1\" /><label for=\"allow_subscribe\">&nbsp;" . $lang['c_subscribe'] . "</label><br />";

в шаблон addcomments.tpl прописываем новую строку

<input style="display:none" type="checkbox" value="1" id="allow_subscribe" name="allow_subscribe" checked />


для просмотра скрытого текста необходимо зарегистрироваться и войти под своим логином и паролем
 
 
 
  ваше имя:
 
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
 
 
 

при использовании материалов с сайта, гиперссылка желательна  /  контакты