Перейти к публикации

Xaker1493

местные
  • Публикации

    61
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    3

Сообщения, опубликованные пользователем Xaker1493

  1. Есть плагин: Сode canyon, который я добавил в профиль и в регистрацию.

    Но я без понятие как сделать так, чтобы загружал на сервер готовый файл после обработки(масштабирование/обрезание).

    Нужна помощь по созданию файла php для загрузки на сервер готового файла.

     

     

     

     

     

  2. Возрастное ограничение для новостей 0.4

     

     

    Версия DLE: 13.0

     

    Описание:

    Обновленная версия хака Возрастное ограничение для новостей, устанавливаемого через систему управления плагинами, выводит или скрывает текст если возраст пользователя не соответствует возрастному ограничению заданной определённой статье (shortstory.tpl, fullstory.tpl).

     

    Используемые теги:
    Вариант 1 - тег с одним дополнительным полем пользователя birthday:

    [agelimit birthday="birthday" limit="age"]текст[/agelimit] - выводит текст указанный в них если возраст больше или равен возрастному ограничению. Где 
    [not-agelimit birthday="birthday" limit="age"]текст[/not-agelimit] - выводит  текст указанный в них если возраст меньше или равен возрастному ограничению.


    Вариант 2 - тег с тремя дополнительными полями пользователя daymonth и year:

    [agelimit day="day" month="month" year="year" limit="age"]текст[/agelimit]
    [not-agelimit day="day" month="month" year="year" limit="age"]текст[/not-agelimit]


    Где birthday="birthday" - название доп.поля пользователя, обязательно дата вида 1.4.2000 c любым символом или пробелом. Также можно задать дату или возраст в виде текста, например birthday="1.4.2000" или birthday="16". (по умолчанию: birthday=0)

    Где day="day" month="month" year="year" - название доп.поля пользователя, обязательно: день, месяц и год в виде числа. Например day="1" month=4" year="2000". (по умолчанию: сегодняшняя дата)

    Где limit="age" - название доп.поля новостей, в котором задается возраст в виде числа, например limit="16". (по умолчанию: limit= 0)

    Важно: следует использовать один из вариантов - Вариант 1 или Вариант 2. В случае если будут использоваться совмещенный тег - 1 и 2, то обрабатываться будет только 1

     

    Скачатьvozrastnoe-ogranichenie-dlja-novostej-0_4.zip

    • Поддерживаю 1
  3. Для вывода картинки текущего пользователя я использую:

    echo(preg_match( "/(?:background\|)([^\|$]+)/mi", $member_id['xfields'], $xfields))? $xfields[1] : 'img1.jpg'

    Но если я изменю в профиле Доп.поле background, то измениться только после второго обновления страницы.

    Можно ни сделать так чтобы сразу обновлялся вывод Доп.поле background?

  4. 2 часа назад, celsoft сказал:

    Не работает, понятие растяжимое. В чем конкретно это заключается? Какой именно код некорректно вставляется именно со стороны DLE? Не работать у вас два плагина могут из за своих внутренних конфликтов, т.к. они вмешиваются и заменяют переменные.

     

    Я проверил оба ваших плагина, все замены DLE произвел корректно, ровно так как указано в плагинах. Поэтому в данном случае вам нужно уже искать проблемы уже в конфликтах между кодами самих плагинов.

    Конфликта не обнаружил, наверно кэш не почистил.

     

     

  5. В 20.09.2018 в 15:19, celsoft сказал:

    Никаких проблем в данном вопросе незафиксировано. Ничего не заменяет друг друга, проверил специально, потому как у вас действие "Добавить выше". А вот в строке  $tpl->set('{Text}', 'Text']); у вас явная синтаксическая ошибка. Что за лишняя квадратная скобка?

    Это просто пример (Написал на скорую руку).

     

    Вот 2 плагина. Если включен один из двух, то второй из двух не работает:

    1 Плагин:

    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
    	<name>Расширение функционала шаблонизатора новостей. Условия IF</name>
    	<description>Простой, но многофункциональный хак, позволяющий выводить заданный текст в зависимости от значения полей новости или доп. полей xfields.</description>
    	<icon></icon>
    	<version>0.1</version>
    	<dleversion>13.0</dleversion>
    	<versioncompare>greater</versioncompare>
    	<mysqlinstall><![CDATA[]]></mysqlinstall>
    	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
    	<mysqlenable><![CDATA[]]></mysqlenable>
    	<mysqldisable><![CDATA[]]></mysqldisable>
    	<mysqldelete><![CDATA[]]></mysqldelete>
    	<file name="engine/modules/functions.php">
    		<operation action="before">
    			<searchcode><![CDATA[?>]]></searchcode>
    			<replacecode><![CDATA[function parseIf($m){
    	global $row,$config;
    	$m[1] = trim($m[1]);
    	$m[2] = trim($m[2]);
    	preg_match("#^([0-9]+)\<(.+?)\>([0-9]+)?$#is",$m[1],$f);
    	if($f[3]){
    		$xf = explode("xfvalue_",$f[2]);
    		if($xf[1]) $v = floatval($row['xfields'][$xf[1]]);
    		else $v = floatval($row[$f[2]]);
    		if($v>=floatval($f[1]) AND $v<floatval($f[3])) return $m[2];
    		else return "";
    	}
    	preg_match("#^(.+?)(!~|~|!=|=|>=|<=|<|>)['\"]?(.*?)['\"]?$#is",$m[1],$f);
    	if(!$f[2]) return $m[0];
    	$xf = explode("xfvalue_",$f[1]);
    	if($xf[1]) $v = $row['xfields'][$xf[1]];
    	elseif($f[1]=='tags') $v = $row[$f[1]][0];
    	else $v = $row[$f[1]];
    	$v = strtolower(strip_tags($v));
    	$fval = strtolower($f[3]);
    	switch($f[2]){
    		case ">":
    			$v = floatval($v);
    			$fval = floatval($fval);
    			if($v>$fval) return $m[2];
    			break;
    		case "<":
    			$v = floatval($v);
    			$fval = floatval($fval);
    			if($v<$fval) return $m[2];
    			break;
    		case ">=":
    			$v = floatval($v);
    			$fval = floatval($fval);
    			if($v>=$fval) return $m[2];
    			break;
    		case "<=":
    			$v = floatval($v);
    			$fval = floatval($fval);
    			if($v<=$fval) return $m[2];
    			break;
    		case "!=":
    			if($v!=$fval) return $m[2];
    			break;
    		case "~":
    			if(dle_strrpos($v,$fval,$config['charset'])!==false) return $m[2];
    			break;
    		case "!~":
    			if(dle_strrpos($v,$fval,$config['charset'])===false) return $m[2];
    			break;
    		default:
    			if($v===$fval) return $m[2];
    	}
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.short.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if(!is_array($row['xfields'])) $row['xfields'] = xfieldsdataload( $row['xfields'] );
    $tpl->copy_template = preg_replace_callback("#\\[if (.+?)\\](.*?)\\[/if\\]#is","parseIf",$tpl->copy_template);]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.full.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if(!is_array($row['xfields'])) $row['xfields'] = xfieldsdataload( $row['xfields'] );
    $tpl->copy_template = preg_replace_callback("#\\[if (.+?)\\](.*?)\\[/if\\]#is","parseIf",$tpl->copy_template);]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.custom.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if(!is_array($row['xfields'])) $row['xfields'] = xfieldsdataload( $row['xfields'] );
    $tpl->copy_template = preg_replace_callback("#\\[if (.+?)\\](.*?)\\[/if\\]#is","parseIf",$tpl->copy_template);]]></replacecode>
    		</operation>
    		<operation action="before">
    			<searchcode><![CDATA[$global_news_count = 0;]]></searchcode>
    			<replacecode><![CDATA[global $row;]]></replacecode>
    		</operation>
    	</file>
    </dleplugin>

    2 Плагин:

    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
    	<name>Возрастное ограничение для новостей.</name>
    	<description>Данный модуль выводить или скрывает текст если возраст пользователя не соответствует возрастному ограничению заданной определённой статье.</description>
    	<icon></icon>
    	<version>0.2</version>
    	<dleversion>13.0</dleversion>
    	<versioncompare>greater</versioncompare>
    	<mysqlinstall><![CDATA[]]></mysqlinstall>
    	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
    	<mysqlenable><![CDATA[]]></mysqlenable>
    	<mysqldisable><![CDATA[]]></mysqldisable>
    	<mysqldelete><![CDATA[]]></mysqldelete>
    	<file name="engine/modules/functions.php">
    		<operation action="before">
    			<searchcode><![CDATA[?>]]></searchcode>
    			<replacecode><![CDATA[function age_limit($matches=array()){
    global $member_id, $is_logged,$member_id,$row;
      
    if(!count($matches))return "";
    if(preg_match( "#birthday=['\"](.*?)['\"]#i", $matches[2], $birthday)){
    	$birthday = preg_match( "#(".$birthday[1].")\|(.*)#i", $member_id['xfields'], $xfields)?$xfields[2]:$birthday[1];
    	if(preg_match( "#([0-9]{1,2})\.([0-9]{1,2}).([0-9]{1,4})#", $birthday, $date )){  
    		if($date[2] > date('m') || $date[2] == date('m') && $date[1] > date('d'))
    			$age = (date('Y') - $date[3] - 1);
            else
    			$age = (date('Y') - $date[3]);
    		if (!is_numeric($age)) $age = 0;
    	}else{
    		$age = 0;
    	}
    }else{
    	$age = 0;
    }
      
    if(preg_match("#limit=['\"](.*?)['\"]#i", $matches[2], $limit_match)){	
    	$xfieldsdata = xfieldsdataload($row['xfields']);
    	$limit = $xfieldsdata[$limit_match[1]]?$xfieldsdata[$limit_match[1]]:$limit_match[1];
      	if (!is_numeric($limit)) $limit = 0;
    }else{
    	$limit = 0;
    }
      
    if($matches[1] == "agelimit"){ 
    	if($is_logged and $age>=$limit) return $matches[3];  else return'';
    }elseif($matches[1] == "not-agelimit"){ 
    	if($age<$limit) return $matches[3]; else return'';
    }    
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.short.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.full.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.custom.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[$global_news_count = 0;]]></searchcode>
    			<replacecode><![CDATA[global $row;]]></replacecode>
    		</operation>
    	</file>
    </dleplugin>

     

  6. Тут такая проблема, если 2 плагина имеют одно схожее условие, например:

    1 Плагин:

    Найти: $tpl->compile( 'content' );

    Добавить выше: $tpl->set('{avatar}', $avatar['foto']);

     

    2 Плагин:

    Найти: $tpl->compile( 'content' );

    Добавить выше: $tpl->set('{Text}', 'Text']);

     

    Один из плагинов перестаёт работать, так как один заменяет другой.

     

    Можно как нибудь решить это, или только объединить 2 плагина?

     

     

  7. Версия: 0.2

    - мелкие исправления.

    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
    	<name>Возрастное ограничение для новостей.</name>
    	<description>Данный модуль выводить или скрывает текст если возраст пользователя не соответствует возрастному ограничению заданной определённой статье.</description>
    	<icon></icon>
    	<version>0.2</version>
    	<dleversion>13.0</dleversion>
    	<versioncompare>greater</versioncompare>
    	<mysqlinstall><![CDATA[]]></mysqlinstall>
    	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
    	<mysqlenable><![CDATA[]]></mysqlenable>
    	<mysqldisable><![CDATA[]]></mysqldisable>
    	<mysqldelete><![CDATA[]]></mysqldelete>
    	<file name="engine/modules/functions.php">
    		<operation action="before">
    			<searchcode><![CDATA[?>]]></searchcode>
    			<replacecode><![CDATA[function age_limit($matches=array()){
    	global $member_id, $is_logged,$member_id,$row;
      
      	if(!count($matches))return "";
      	if(preg_match( "#birthday=['\"](.*?)['\"]#i", $matches[2], $birthday)){
            $birthday = preg_match( "#(".$birthday[1].")\|(.*)#i", $member_id['xfields'], $xfields)?$xfields[2]:$birthday[1];
    		if(preg_match( "#([0-9]{1,2})\.([0-9]{1,2}).([0-9]{1,4})#", $birthday, $date )){  
                if($date[2] > date('m') || $date[2] == date('m') && $date[1] > date('d'))
                    $age = (date('Y') - $date[3] - 1);
              	else
                  	$age = (date('Y') - $date[3]);
          }else{
             $age = 0;
          }
        }else{
          	 $age = 0;
        }
    	if(preg_match("#limit=['\"](.*?)['\"]#i", $matches[2], $limit_match)){	
    		$xfieldsdata = xfieldsdataload($row['xfields']);
            $limit = $xfieldsdata[$limit_match[1]]?$xfieldsdata[$limit_match[1]]:$limit_match[1];
        }else{
        	$limit = 0;
        }
    	if($matches[1] == "agelimit"){ 
          	if($is_logged and $age>=$limit) return $matches[3];  else return'';
        }elseif($matches[1] == "not-agelimit"){ 
          	if($age<$limit) return $matches[3]; else return'';
        }    
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.short.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.full.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.custom.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[$global_news_count = 0;]]></searchcode>
    			<replacecode><![CDATA[global $row;]]></replacecode>
    		</operation>
    	</file>
    </dleplugin>

     

  8. Возрастное ограничение для новостей.

    Для версий: DLE 13.0

     

    Описание:

    Данный модуль выводить или скрывает текст если возраст пользователя не соответствует возрастному ограничению заданной определённой статье.

     

    Теги:

    [agelimit birthday="birthday" limit="age"] текст [/agelimit] - Выводят текст указанный в них если возраст больше или равен возрастному ограничению;
    [not-agelimit birthday="birthday" limit="age"] текст [/not-agelimit] - Выводят текст указанный в них если возраст меньше или равен возрастному ограничению;

    birthday="birthday" - Название доп. поля пользователя, обязательно дата виде: 01.04.2000. Также можно задать дату или возраст виде текста (birthday="01.04.2000или birthday="16" );

    limit="age" - Название доп. поля новостей, задаем число. Также можно задать возраст виде числа (limit="16"). 

    Если birthday или limit не указаны или отсутствую, то будут равный нулю.

     

    ПредупреждаюМодуль сырой, если есть предложения по улучшению или исправления с удовольствием вас выслушаю.

    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
    	<name>Возрастное ограничение для новостей.</name>
    	<description></description>
    	<icon></icon>
    	<version></version>
    	<dleversion></dleversion>
    	<versioncompare>less</versioncompare>
    	<mysqlinstall><![CDATA[]]></mysqlinstall>
    	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
    	<mysqlenable><![CDATA[]]></mysqlenable>
    	<mysqldisable><![CDATA[]]></mysqldisable>
    	<mysqldelete><![CDATA[]]></mysqldelete>
    	<file name="engine/modules/functions.php">
    		<operation action="before">
    			<searchcode><![CDATA[?>]]></searchcode>
    			<replacecode><![CDATA[function age_limit($matches=array()){
    	global $member_id, $is_logged,$member_id,$row;
      
      	if(!count($matches))return "";
       	$age = '0';
      	$limit = '0';
      	if(preg_match( "#birthday=['\"](.*?)['\"]#i", $matches[2], $birthday)){
          
          if(preg_match( "#(".$birthday[1].")\|(.*)#i", $member_id['xfields'], $xfields)){
            	$birthday = $xfields[2];
          }else{
          		$birthday = $birthday[1]; 
          } 
          if(preg_match( "#([0-9]{1,2})\.([0-9]{1,2}).([0-9]{1,4})#", $birthday, $date )){  
              if($date[2] > date('m') || $date[2] == date('m') && $date[1] > date('d'))
                  $age = (date('Y') - $date[3] - 1);
              else
                  $age = (date('Y') - $date[3]);
          }else{
             $age = $birthday[1];
          }
        }
    	if(preg_match("#limit=['\"](.*?)['\"]#i", $matches[2], $limit_match)){	
    		$xfieldsdata = xfieldsdataload($row['xfields']);
            if($xfieldsdata[$limit_match[1]])
    			$limit = $xfieldsdata[$limit_match[1]];
            else
              	$limit = $limit_match[1];
        }
    	if($matches[1] == "agelimit"){ 
          	if($is_logged and $age>=$limit) return $matches[3];  else return'';
        }elseif($matches[1] == "not-agelimit"){ 
          	if($age<=$limit) return $matches[3]; else return'';
        }    
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.short.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.full.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.custom.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[$global_news_count = 0;]]></searchcode>
    			<replacecode><![CDATA[global $row;]]></replacecode>
    		</operation>
    	</file>
    </dleplugin>

     

    • Нравится 2
  9. В 14.09.2018 в 20:29, alukardua сказал:

    тогда из template.class.php привел пример функции aviable

    на основании этой функции делай свою

    Спасибо.

    Смог создать модуль.

    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
    	<name>Возрастное ограничение для новостей.</name>
    	<description></description>
    	<icon></icon>
    	<version></version>
    	<dleversion></dleversion>
    	<versioncompare>less</versioncompare>
    	<mysqlinstall><![CDATA[]]></mysqlinstall>
    	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
    	<mysqlenable><![CDATA[]]></mysqlenable>
    	<mysqldisable><![CDATA[]]></mysqldisable>
    	<mysqldelete><![CDATA[]]></mysqldelete>
    	<file name="engine/modules/functions.php">
    		<operation action="before">
    			<searchcode><![CDATA[?>]]></searchcode>
    			<replacecode><![CDATA[function age_limit($matches=array()){
    	global $member_id, $is_logged,$member_id,$row;
      
      	if(!count($matches))return "";
       
      	if(preg_match( "#birthday=['\"](.*?)['\"]#i", $matches[2], $birthday)){
          
          if(preg_match( "#(".$birthday[1].")\|(.*)#i", $member_id['xfields'], $xfields)){
            	$birthday = $xfields[2];
          }else{
          		$birthday = $birthday[1]; 
          } 
          if(preg_match( "#([0-9]{1,2})\.([0-9]{1,2}).([0-9]{1,4})#", $birthday, $date )){  
              if($date[2] > date('m') || $date[2] == date('m') && $date[1] > date('d'))
                  $age = (date('Y') - $date[3] - 1);
              else
                  $age = (date('Y') - $date[3]);
          }else{
             $age = $birthday[1];
          }
        }else{
    		$age = '0';
    	}
    	if(preg_match("#limit=['\"](.*?)['\"]#i", $matches[2], $limit_match)){	
    		$xfieldsdata = xfieldsdataload($row['xfields']);
            if($xfieldsdata[$limit_match[1]])
    			$limit = $xfieldsdata[$limit_match[1]];
            else
              	$limit = $limit_match[1];
        }else{
    		$limit = '0';
    	}
    	if($matches[1] == "agelimit"){ 
          	if($is_logged and $age>=$limit) return $matches[3];  else return'';
        }elseif($matches[1] == "not-agelimit"){ 
          	if($age<=$limit) return $matches[3]; else return'';
        }    
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.short.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.full.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.custom.php">
    		<operation action="before">
    			<searchcode><![CDATA[$tpl->compile( 'content' );]]></searchcode>
    			<replacecode><![CDATA[if (strpos ( $tpl->copy_template, "[agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(agelimit) (.+?)\\](.*?)\\[/agelimit\\]#is", "age_limit", $tpl->copy_template );
    }
    if (strpos ( $tpl->copy_template, "[not-agelimit" ) !== false) {
    	$tpl->copy_template = preg_replace_callback ( "#\\[(not-agelimit) (.+?)\\](.*?)\\[/not-agelimit\\]#is", "age_limit", $tpl->copy_template );
    }]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[$global_news_count = 0;]]></searchcode>
    			<replacecode><![CDATA[global $row;]]></replacecode>
    		</operation>
    	</file>
    </dleplugin>

     

  10. У меня есть готовый код:

    <?php
    $date = explode ("||", $member_id['xfields']); //(дата виде: 12.04.1991 )
    $date = explode ("|", $date[1]);
    $date = explode (".", $date[1]);
    if($date[1] > date('m') || $date[1] == date('m') && $date[0] > date('d'))
    $Age = (date('Y') - $date[2] - 1);
    else
    $Age = (date('Y') - $date[2]);
    if($is_logged and !empty($date[1]) and $Age>'[xfvalue_age]'){ //([xfvalue_age] - список: +0,+16,+18 )
      
    }else{
    
    }

    Но я не знаю как вывести виде тегов, например:

    [agelimit=age]
    Если пользователь старше 18 лет.
    [/agelimit=age]
    
    [not-agelimit=age]
    Если пользователь младше 18 лет.
    [/not-agelimit=age]

    Помогите реализовать данную задумку.

  11. 2 часа назад, filippst сказал:

    Установил модуль, и на странице плагинов - "в работе данного плагина зафиксированы ошибки"

    ТС - перезалейте скриншоты.

    
    Имя плагина: SimpleBB
    Имя файла: engine/modules/show.short.php
    Ошибка: Не удалось найти код:
    else $tpl->load_template( 'shortstory.tpl' );
    Имя плагина: SimpleBB
    Имя файла: engine/modules/main.php
    Ошибка: Не удалось найти код:
    $tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

     

    Перед установкой редактировали файлы show.short.php и main.php?

     

    Изменить тему не могу. Только перезалить с разрешением Администратора.

  12. Данный хак добавляет тег [xfvalue_X limit="X2" src], который выводит только URL для полноразмерной выбранной картинки "Галереи".

    Сам тег работает в customfullstory,  shortstory.

    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
    	<name>Хак:[xfvalue_X image="Nr"] виде ссылки</name>
    	<description>Тег [xfvalue_X limit="X2" src] выводит только URL для полноразмерной выбранной картинки "Галереи"</description>
    	<icon></icon>
    	<version></version>
    	<dleversion></dleversion>
    	<versioncompare>greater</versioncompare>
    	<mysqlinstall><![CDATA[]]></mysqlinstall>
    	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
    	<mysqlenable><![CDATA[]]></mysqlenable>
    	<mysqldisable><![CDATA[]]></mysqldisable>
    	<mysqldelete><![CDATA[]]></mysqldelete>
    	<file name="engine/modules/show.short.php">
    		<operation action="after">
    			<searchcode><![CDATA[$gallery_single_image = array();]]></searchcode>
    			<replacecode><![CDATA[$gallery_single_image_src = array();]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[$gallery_single_image['[xfvalue_'.$value[0].' image="'.$xf_image_count.'"]'] = "<a href=\"{$img_url}\" class=\"highslide\" target=\"_blank\"><img class=\"xfieldimage {$value[0]}\" src=\"{$thumb_url}\" alt=\"\"></a>";]]></searchcode>
    			<replacecode><![CDATA[$gallery_single_image_src['[xfvalue_'.$value[0].' image="'.$xf_image_count.'" src]'] = "{$img_url}";	]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[if($single_need AND count($gallery_single_image) ) {
        foreach($gallery_single_image as $temp_key => $temp_value) $tpl->set( $temp_key, $temp_value);
    }]]></searchcode>
    			<replacecode><![CDATA[if($single_need AND count($gallery_single_image_src) ) {
        foreach($gallery_single_image_src as $temp_key => $temp_value) $tpl->set( $temp_key, $temp_value);
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.custom.php">
    		<operation action="after">
    			<searchcode><![CDATA[$gallery_single_image = array();]]></searchcode>
    			<replacecode><![CDATA[$gallery_single_image_src = array();]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[$gallery_single_image['[xfvalue_'.$value[0].' image="'.$xf_image_count.'"]'] = "<a href=\"{$img_url}\" class=\"highslide\" target=\"_blank\"><img class=\"xfieldimage {$value[0]}\" src=\"{$thumb_url}\" alt=\"\"></a>";]]></searchcode>
    			<replacecode><![CDATA[$gallery_single_image_src['[xfvalue_'.$value[0].' image="'.$xf_image_count.'" src]'] = "{$img_url}";]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[if($single_need AND count($gallery_single_image) ) {
        foreach($gallery_single_image as $temp_key => $temp_value) $tpl->set( $temp_key, $temp_value);
    }]]></searchcode>
    			<replacecode><![CDATA[if($single_need AND count($gallery_single_image_src) ) {
        foreach($gallery_single_image_src as $temp_key => $temp_value) $tpl->set( $temp_key, $temp_value);
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.full.php">
    		<operation action="after">
    			<searchcode><![CDATA[$gallery_single_image = array();]]></searchcode>
    			<replacecode><![CDATA[$gallery_single_image_src = array();]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[$gallery_single_image['[xfvalue_'.$value[0].' image="'.$xf_image_count.'"]'] = "<a href=\"{$img_url}\" class=\"highslide\" target=\"_blank\"><img class=\"xfieldimage {$value[0]}\" src=\"{$thumb_url}\" alt=\"\"></a>";]]></searchcode>
    			<replacecode><![CDATA[$gallery_single_image_src['[xfvalue_'.$value[0].' image="'.$xf_image_count.'" src]'] = "{$img_url}";]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[if($single_need AND count($gallery_single_image) ) {
        foreach($gallery_single_image as $temp_key => $temp_value) $tpl->set( $temp_key, $temp_value);
    }]]></searchcode>
    			<replacecode><![CDATA[if($single_need AND count($gallery_single_image_src) ) {
        foreach($gallery_single_image_src as $temp_key => $temp_value) $tpl->set( $temp_key, $temp_value);
    }]]></replacecode>
    		</operation>
    	</file>
    </dleplugin>

     

    • Спасибо 4
  13. 687474703a2f2f646c652e6e65742e74722f7570

    SimpleBB — это модуль для создания полноценного форума на сайте под управлением CMS DataLife Engine 12.0 - 13.0. Основное отличие модуля от движка форума в том, что модуль использует общую базу данных пользователей и тесно интегрирован с движком DLE.

     

    Разработчик: Mehmet Hanoglu

    Дизайн: Kadir Hanoğlu

    Сайт разработчика: dle.net.tr

    Дата последнего обновления: 21.02.2018

    Поддерживаемые версии DataLife Engine: 13.0, 12.1, 12.0
    Перевод: Английский (DLEStarter), Русский (mrB4el), Украинский (Corsair), Французский (Bashu)
    Лицензия: MIT License

     

    Демо: https://forum.dle.net.tr/

    Github: https://github.com/dlenettr/simplebb

     

    Подготовка:

    1) Перед тем как начать установку, сделайте бэкап вашего сайта;

    2) Создайте Категорию с альтернативным именем: forum, после этого создайте подкатегории в том порядке как на Скриншоте:

    png&tknv=v2&size=1920x974

    в дальнейшем вы можете дополнить или изменить подкатегории;

     

    3) В подкатегории необходимо указать путь к шаблонам: короткой и полных новости, заходим в настройки и прописываем путь:

    • Шаблон короткой новости: forum/threads
    • Шаблон полной новости: forum/post

    E0BImURKgiXPtigeqkSXxatF0xtFhKOig4acWnyVqy1gT9rtmGX0euIm_wq-nD26jqX4004yXuo0gDlntMOp3g%3D%3D?uid=0&filename=%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA2.PNG&disposition=inline&hash=&limit=0&content_type=image%2Fpng&tknv=v2&size=1920x974

     

    Установка (для DLE 12.1, 12.0):

    1) Скачиваем simplebb v2.3.2 для DLE;

    2) Распаковываем архив на ваш хостинг;

    3) Дублируем файл engine/modules/addnews.php  и переименуйте в addpost.php

    4) После распаковки в адресную строку вводим: Ваш_сайт.ru/Install_module.php

    5) Подтверждаем установку, ждем окончание установки (если что-то пошло не так, есть логи в папке install\logs\);

    6) Если установка прошла удачно удаляем файл Install_module.php.

     

    Установка (для DLE 13.0):

    1) Скачиваем SimpleBB v2.3.2 для DLE 13.0.zip

    2) Заходим Админ панельУтилиты > Управление плагинами и загружаем плагин и все.

     

    Настройка:

    * После установки заходим в Админ панель > Сторонние модули > MWS SimpleBB v2.3.2 и в поле Категория вашего форума выберите созданную заранее категорию.

    * В .htaccess находим:

    RewriteEngine On

    После ней вставить:

    RewriteRule ^addpost/([0-9]+)(/?)$ index.php?do=addpost&cat=$1 [L]

     

    * Добавьте часть кода в файл main.tpl (Не обязательно, если не планируете использовать шаблон SimpleBB):

    [forum]<link media="screen" href="{THEME}/forum/css/simplebb.css" type="text/css" rel="stylesheet" />[/forum]

     

    Форум на поддомене:

    * Если вам нужно чтобы форум запускался через поддомен (пример: forum.ваш_сайт.ru), включаем в настройке "Форум на поддомене" и в .htaccess находим:

    RewriteEngine On

    После ней вставить:

    Redirect 301 /forum http://Ваш_сайт.ru
    
    RewriteCond %{HTTP_HOST} ^forum\.Ваш-сайт\.ru$ [NC]
    RewriteRule ^$ index.php?do=cat&category=forum [L,NC]

    Не забудьте изменить .Ваш-сайт на ваш Домен.

     

    Теги:

    [forum:main]Отобразить только на главной странице Форума[/forum:main]
    [forum:cat] Отобразить только в Категориях[/forum:cat]
    [forum:forum]Отобразить только в Подфоруме[/forum:forum]
    [forum:inside]Отобразить только в Категориях или в Подфоруме[/forum:inside]
    [forum:thread]Отобразить только в Теме[/forum:thread]
    [forum]Отобразить в Форуме[/forum]
    [not-forum]На любой странице кроме Форума[/not-forum]
     
    {selected-cat} для addpost.tpl вывод категории к которой будет принадлежать категория
    
    {forum-stats} : Статистика форума (forum/stats.tpl);
    {category echo="id"} : Текущей категории ID  show.short - тег не будет работать);
    {category echo="name"} :  Название категории  show.short - тег не будет работать);
    {page-title} : show.full Заголовок страницы, также может быть использовано место {title};
    {count_all} : отображает количество созданных постов в категорий;
    {lastposter-foto} : [lastpost]  [/lastpost]  Ссылка на аватар пользователя создавший новый пост;
    {user-group} : show.full Группа пользователя;
    {avatar} : show.full  Ссылка на аватар пользователя;
    {user-group-icon} : show.full Значок в группе пользователей;
    {forum-cats} : отображает список пользователей в категорий.

     

    • Нравится 1
  14. 1 час назад, celsoft сказал:

    тег в шаблоне с выборкой по автору. Автора можно получить тегом {usertitle}

    Не ужели настолько не понятно?

     

    У меня есть новости (стати, файлы и т.д.):

    snimok.jpg

    И есть профиль пользователя:

     

    snimok1.png

     

    А я хотел чтобы в профиле пользователя отображались его новости (стати, файлы и т.д.):

    snimok2.png

  15. 10 минут назад, Captain сказал:

    userinfo.tpl

    {news}

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

    {comments}

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

     

    Этого мало?

    Это ссылки.

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

    Ну чтобы не было перехода, а сразу отображался список.

     

  16. В Default/main.tpl

     

    Ты можешь скопировать и вставить в любое место:

    <form onSubmit="javascript: showBusyLayer()" id="form_search" method="post">
        <input placeholder="Поиск по сайту..." type="search" name="story">
        <input type="hidden" name="do" value="search">
        <input type="hidden" name="subaction" value="search">
        <button type="submit" title="Найти" name="search">Найти</button>
    </form>
×
×
  • Создать...