-
Публикации
61 -
Зарегистрирован
-
Посещение
-
Дней в лидерах
3
Сообщения, опубликованные пользователем Xaker1493
-
-
Спасибо breine_seed за разработку модуля:
-
14 часов назад, Gameer сказал:
Ошибка в коде, $filecontents не объявлен в global
Поправил:
-
Вот ссылка на яндекс диск: https://yadi.sk/d/UyGkmakNoXSUEg
-
Есть плагин: Сode canyon, который я добавил в профиль и в регистрацию.
Но я без понятие как сделать так, чтобы загружал на сервер готовый файл после обработки(масштабирование/обрезание).
Нужна помощь по созданию файла php для загрузки на сервер готового файла.
-
Возрастное ограничение для новостей 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 - тег с тремя дополнительными полями пользователя day, month и 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.- 1
-
Для вывода картинки текущего пользователя я использую:
echo(preg_match( "/(?:background\|)([^\|$]+)/mi", $member_id['xfields'], $xfields))? $xfields[1] : 'img1.jpg'
Но если я изменю в профиле Доп.поле background, то измениться только после второго обновления страницы.
Можно ни сделать так чтобы сразу обновлялся вывод Доп.поле background?
-
2 часа назад, celsoft сказал:
Не работает, понятие растяжимое. В чем конкретно это заключается? Какой именно код некорректно вставляется именно со стороны DLE? Не работать у вас два плагина могут из за своих внутренних конфликтов, т.к. они вмешиваются и заменяют переменные.
Я проверил оба ваших плагина, все замены DLE произвел корректно, ровно так как указано в плагинах. Поэтому в данном случае вам нужно уже искать проблемы уже в конфликтах между кодами самих плагинов.
Конфликта не обнаружил, наверно кэш не почистил.
-
В 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>
-
Тут такая проблема, если 2 плагина имеют одно схожее условие, например:
1 Плагин:
Найти: $tpl->compile( 'content' );
Добавить выше: $tpl->set('{avatar}', $avatar['foto']);
2 Плагин:
Найти: $tpl->compile( 'content' );
Добавить выше: $tpl->set('{Text}', 'Text']);
Один из плагинов перестаёт работать, так как один заменяет другой.
Можно как нибудь решить это, или только объединить 2 плагина?
-
Версия: 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>
-
Возрастное ограничение для новостей.
Для версий: 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
-
В 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>
-
6 минут назад, alukardua сказал:
У тебя код проверяет по дате рождения?
Да.
-
У меня есть готовый код:
<?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]
Помогите реализовать данную задумку.
-
1 час назад, filippst сказал:
Да, файлы меняются плагином шаблона...
Разбираюсь будут ли они оба работать, если поменять необходимые строки кода на свои)
Если все грамотно сделать, то да.
-
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?
Изменить тему не могу. Только перезалить с разрешением Администратора.
-
16 часов назад, webair сказал:
Ссылка битая
Яндекс диск обновил ссылки.
Файл SimpleBB v2.3.2 для DLE 13.0.zip перекинул на mega.co.nz
-
Данный хак добавляет тег [xfvalue_X limit="X2" src], который выводит только URL для полноразмерной выбранной картинки "Галереи".
Сам тег работает в custom, fullstory, 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
-
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, после этого создайте подкатегории в том порядке как на Скриншоте:
в дальнейшем вы можете дополнить или изменить подкатегории;
3) В подкатегории необходимо указать путь к шаблонам: короткой и полных новости, заходим в настройки и прописываем путь:
- Шаблон короткой новости: forum/threads
- Шаблон полной новости: forum/post
Установка (для 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
-
-
Помогите реализовать возможность добавлять теги fullstory и userinfo в main.tpl?
-
1 час назад, celsoft сказал:
тег в шаблоне с выборкой по автору. Автора можно получить тегом {usertitle}
Не ужели настолько не понятно?
У меня есть новости (стати, файлы и т.д.):
И есть профиль пользователя:
А я хотел чтобы в профиле пользователя отображались его новости (стати, файлы и т.д.):
-
10 минут назад, Captain сказал:
userinfo.tpl
{news}
Выводит ссылку на просмотр всех новостей данного пользователя
{comments}
Выводит ссылку на все комментарии этого пользователя
Этого мало?
Это ссылки.
А мне нужно чтобы был не переход, а список новостей данного пользователя на странице профиля.
Ну чтобы не было перехода, а сразу отображался список.
-
В 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>
Загрузка аватара и изменение размеров изображения
в Запросы на создание модификаций
Опубликовано:
Да. По просьбе breine_seed.