DLE Hide by Day



Хак DLE Hide by Day 9.x - 10.x на dle9.com, чтобы скрывать важный текст новым тегом для пользователей зарегистрированных меньше указанного времени. Обратите внимание на то, что установку нужно делать для версии дле 9.8 и ниже и 10.x и выше разными методами.

Установка хак Hide by Day [DLE 9.x - 10.x]:
Для DLE 10.0 и Выше

Открыть /engine/classes/templates.class.php найти :

if (strpos ( $this->template, "[aviable=" ) !== false) {


Выше вставить:

if (strpos ( $this->template, "[show_user=" ) !== false) {
$this->template = preg_replace_callback ( "#\\[(show_user)=(.+?)\\](.*?)\\[/show_user\\]#is", array( &$this, 'show_user'), $this->template );
}


Далее найти :

if (strpos ( $template, "[aviable=" ) !== false) {


Выше вставить :

if (strpos ( $template, "[show_user=" ) !== false) {
$template = preg_replace_callback ( "#\\[(show_user)=(.+?)\\](.*?)\\[/show_user\\]#is", array( &$this, 'show_user'), $template );
}


Далее найти :

function check_module( $matches=array() ) {


Выше вставить :

function show_user( $matches=array() ) {
		global $member_id;

		$show_user = $matches[2]; $block = $matches[3];
		if(count(explode('|', $show_user)) > 1)
		{
			$show_user = explode('|', $show_user);
			$show_user[0] = (int)$show_user[0];
			$show_user[1] = trim(strip_tags(stripslashes($show_user[1])));
		}
		else
			$show_user = (int)$show_user;
		
		if ($matches[1] == "show_user") $action = true; else $action = false;
		$date = langdate("Y-m-d", $member_id['reg_date']);

		if( $action AND (int)$member_id['user_group'] != 5) {
			if((floor((strtotime(date('Y-m-d'))-strtotime($date))/(3600*24))) <= (!empty($show_user[0]) ? $show_user[0] : $show_user)) return !empty($show_user[1]) ? $show_user[1] : '';
			else return $block;
		} 
		else
			return !empty($show_user[1]) ? $show_user[1] : '';
	}


Для DLE 9.8 и Ниже

Открыть /engine/classes/templates.class.php найти :

if (strpos ( $this->template, "[aviable=" ) !== false) {


Выше вставить:

if (strpos ( $this->template, "[show_user=" ) !== false) {
$this->template = preg_replace ( "#\\[show_user=(.+?)\\](.*?)\\[/show_user\\]#ies", "\$this->show_user('\\1', '\\2')", $this->template );
}


Далее найти :

if (strpos ( $template, "[aviable=" ) !== false) {


Выше вставить :

if (strpos ( $template, "[show_user=" ) !== false) {
$template = preg_replace ( "#\\[show_user=(.+?)\\](.*?)\\[/show_user\\]#ies", "\$this->show_user('\\1', '\\2')", $template );
}


Далее найти :

function check_module($aviable, $block, $action = true) {


Выше вставить :

function show_user( $show_user, $block, $action = true ) {
		global $member_id;

		if(count(explode('|', $show_user)) > 1)
		{
			$show_user = explode('|', $show_user);
			$show_user[0] = (int)$show_user[0];
			$show_user[1] = trim(strip_tags(stripslashes($show_user[1])));
		}
		else
			$show_user = (int)$show_user;
		
		$date = langdate("Y-m-d", $member_id['reg_date']);

		if( $action AND (int)$member_id['user_group'] != 5) {
			if((floor((strtotime(date('Y-m-d'))-strtotime($date))/(3600*24))) <= (!empty($show_user[0]) ? $show_user[0] : $show_user)) return !empty($show_user[1]) ? $show_user[1] : '';
			else return $block;
		} 
		else
			return !empty($show_user[1]) ? $show_user[1] : '';
	}


В любом tpl файле использовать тег [show_user=1] - где 1 сколько нужно быть зарегистрированным на сайте в днях. Так же можно сделать вывод почему нельзя видеть, просто прописав [show_user=25|Вы еще мало дней на сайте]текст[/show_user]

Название: Hide by Day
Автор: Gameer
CMS: DataLife Engine 9.x - 10.x
Скачать хаки для DLE у нас можно без регистрации, как хак Hide by Day [DLE 9.x - 10.x] по следующей ссылке

Hide-by-Day-DLE-9.x-10.x.rar [55,23 Kb] (cкачиваний: 58)
  • 80

Комментарии 2

dle9.com от 11 мая 2017 17:41
Если не получается в новой версии движка найти код в файлах DLE, то поступаем так скачиваем версию для той версии движка, речь о которой идет в установке модуля или хака, и там ищем (в данном случаи это 10.0), вот примерно там и ставим нужный код вставки на DLE 11.3 .
выше этой сточки теперь на DLE 11.3
if (strpos ( $this->template, "{*" ) !== false) {
Dartus от 11 мая 2017 13:24
Далее найти :

if (strpos ( $template, "[aviable=" ) !== false) {

В 11.3 такого нету

Далее найти :

function check_module($aviable, $block, $action = true) {


Тут только такое есть

function check_module($matches) {



И доработка не работает. Починить можно?
Добавить комментарий

Оставить комментарий

    • 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