вопрос
Суть проблемы такова DLE изменили логику работы страницы addnews.php раньше можно было создать страницу для разных категорий и показывать сейчас ссылка зависит от выбранных категорий. Вот так они описывают функционал:
Имеется также возможность передавать в URL браузера категории, которые необходимо сделать выбранными по умолчанию. Для этого используется URL http://вашсайт.ru/index.php?do=addnews&category=X где "X" это ID нужных вам категорий, перечисленные через запятую. Например, по адресу http://вашсайт.ru/index.php?do=addnews&category=3,4,5 в форме добавления новости на сайте будут выбраны по умолчанию категории с ID 1, 2 и 3. Данное нововведение будет полезно для сайтов, которые используют доп. поля для публикаций назначенные разным категориям, и хотят дать пользователям при добавлении публикаций несколько уже предустановленных форм добавления публикации, для различных категорий.
создал условие чтобы эти теги работали в шаблонах addnews.tpl, [not-category][/category] отрабатывает а вот [category][/category] нет. Хотя должно было вывести значение [category][/category]
Сам код
Имеется также возможность передавать в URL браузера категории, которые необходимо сделать выбранными по умолчанию. Для этого используется URL http://вашсайт.ru/index.php?do=addnews&category=X где "X" это ID нужных вам категорий, перечисленные через запятую. Например, по адресу http://вашсайт.ru/index.php?do=addnews&category=3,4,5 в форме добавления новости на сайте будут выбраны по умолчанию категории с ID 1, 2 и 3. Данное нововведение будет полезно для сайтов, которые используют доп. поля для публикаций назначенные разным категориям, и хотят дать пользователям при добавлении публикаций несколько уже предустановленных форм добавления публикации, для различных категорий.
создал условие чтобы эти теги работали в шаблонах addnews.tpl, [not-category][/category] отрабатывает а вот [category][/category] нет. Хотя должно было вывести значение [category][/category]
Сам код
$tempo_array = $categories_default;
if (stripos ( $tpl->copy_template, "[category=" ) !== false) {
$tpl->copy_template = preg_replace_callback ( "#\\[(category)=(.+?)\\](.*?)\\[/category\\]#is",
function ($matches=array(),$tempo_array) {
$block = $matches[3];
$category = $tempo_array;
$temp_array = array();
$matches[2] = str_replace(" ", "", $matches[2] );
$matches[2] = explode (',', $matches[2]);
foreach ($matches[2] as $value) {
if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
else $temp_array[] = intval($value);
}
$temp_array = implode(',', $temp_array);
if ($matches[1] == "category") $action = true; else $action = false;
$cats = explode( ',', $temp_array );
$found = false;
foreach ( $category as $element ) {
if( $action ) {
if( in_array( $element, $cats ) ) {
return $block;
}
} else {
if( in_array( $element, $cats ) ) {
$found = true;
}
}
}
if ( !$action AND !$found ) {
return $block;
}
return "";
}
,
$tpl->copy_template );
}
if (stripos ( $tpl->copy_template, "[not-category=" ) !== false) {
$tpl->copy_template = preg_replace_callback ( "#\\[(not-category)=(.+?)\\](.*?)\\[/not-category\\]#is",
function ($matches=array(),$tempo_array) {
$block = $matches[3];
$category = $tempo_array;
$temp_array = array();
$matches[2] = str_replace(" ", "", $matches[2] );
$matches[2] = explode (',', $matches[2]);
foreach ($matches[2] as $value) {
if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
else $temp_array[] = intval($value);
}
$temp_array = implode(',', $temp_array);
if ($matches[1] == "category") $action = true; else $action = false;
$cats = explode( ',', $temp_array );
$found = false;
foreach ( $category as $element ) {
if( $action AND in_array( array($element), $cats ) ) {
if( in_array( $element, $cats ) ) {
return $block;
}
} else {
if( in_array( $element, $cats ) ) {
$found = true;
}
}
}
if ( !$action AND !$found ) {
return $block;
}
return "";
},
$tpl->copy_template );
}