Тег [category=X]текст[/category] с учетом подкатегорий

Тег [category=X]текст[/category] с учетом подкатегорий
Ну прям очень не нравится перечислять все вновь добавленные категории. Никакой динамики! Добавил значит пользователь новую категорию. И что? Её нигде нет, так как она не описана в main.tpl в теге [category=X]текст[/category]. Решил оставить для вас заметку как это дополнить.

Идем в /engine/functions.php и перед:
function check_category( $matches=array() ) {

Вставляем:
### IDteam.info Субкатегории ###
function check_sub( $matches=array() ) {
	global $category_id;

	if(!preg_match("#[0-9,]+#is", $matches[2]) || ($matches[1] != "subcategory" && $matches[1] != "subcatlist" && $matches[1] != "not-subcategory" && $matches[1] != "not-subcatlist")) return $matches[0];

	$thiscategory = explode(",", $category_id)[0];
	$cats = explode(',', $matches[2]);

	$withsub = array();
	foreach ($cats as $one) {
		$a = explode("|", get_sub_cats($one));
		$withsub = array_merge($withsub, $a);
	}

	if(strpos($matches[1], "not-") === false) {
		if(in_array($thiscategory, $withsub)) {
			return $matches[3];
		}
	} else {
		if(!in_array($thiscategory, $withsub)) {
			return $matches[3];
		}
	}

	return "";
}

Идем в /engine/main.php и перед:
if (stripos ( $tpl->copy_template, "[category=" ) !== false) {

Вставляем:
### IDteam.info Субкатегории ###
if (stripos ( $tpl->copy_template, "[subcategory=" ) !== false) {
	$tpl->copy_template = preg_replace_callback ( "#\\[(subcategory)=(.+?)\\](.*?)\\[/subcategory\\]#is", "check_sub", $tpl->copy_template );
}
if (stripos ( $tpl->copy_template, "[not-subcategory=" ) !== false) {
	$tpl->copy_template = preg_replace_callback ( "#\\[(not-subcategory)=(.+?)\\](.*?)\\[/not-subcategory\\]#is", "check_sub", $tpl->copy_template );
}

Идем в /engine/show.short.php, /engine/show.full.php, /engine/show.custom.php и перед:
if( strpos( $tpl->copy_template, "[catlist=" ) !== false ) {

Вставляем:
### IDteam.info Субкатегории ###
if (stripos ( $tpl->copy_template, "[subcategory=" ) !== false) {
	$tpl->copy_template = preg_replace_callback ( "#\\[(subcategory)=(.+?)\\](.*?)\\[/subcategory\\]#is", "check_sub", $tpl->copy_template );
}
if (stripos ( $tpl->copy_template, "[not-subcategory=" ) !== false) {
	$tpl->copy_template = preg_replace_callback ( "#\\[(not-subcategory)=(.+?)\\](.*?)\\[/not-subcategory\\]#is", "check_sub", $tpl->copy_template );
}
if( strpos( $tpl->copy_template, "[subcatlist=" ) !== false ) {
	$tpl->copy_template = preg_replace_callback ( "#\\[(subcatlist)=(.+?)\\](.*?)\\[/subcatlist\\]#is", "check_sub", $tpl->copy_template );
}
if( strpos( $tpl->copy_template, "[not-subcatlist=" ) !== false ) {
	$tpl->copy_template = preg_replace_callback ( "#\\[(not-subcatlist)=(.+?)\\](.*?)\\[/not-subcatlist\\]#is", "check_sub", $tpl->copy_template );
}

Тепеть в шаблонах вы можете использовать теги:
[subcategory=X]текст[/subcategory]
[not-subcategory=X]текст[/not-subcategory]
[subcatlist=X]текст[/subcatlist]
[not-subcatlist=X]текст[/not-subcatlist]

Данные теги проверят саму категорию и все подкатегории. Категории можно перечислять через запятую и для каждой будет произведена проверка по субкатегориям! Удачного дня.
Отредактированно:
Исправлена ошибка при перечислении через запятую категорий родителей
  • 0

Комментарии (10)

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Для того, чтобы оставлять комментарии, нужно авторизироваться.
    • akaha
      • 0
    [url=http://cellin-suppl.com/de/]http://cellin-suppl.com[/url]
    • ahuxuza
      • 0
    [url=http://eleverlash2.com/]eleverlash[/url]
    • elylyla
      • 0
    [url=http://xtra-pills.com/fi/]suurempi penis[/url]
    • usecosy
      • 0
    [url=http://Trichovell2.com]Trichovell buy[/url]
    • osohi
      • 0
    [url=http://Aqua-Dis.com]Aqua Disiac[/url]
    • ivynaf
      • 0
    34 year old Occupational Health and Protection Adviser Rey Nicole from Schomberg, has many pursuits which include physical exercise (aerobics weights), [url=https://tonybelmont.blogspot.com/2019/10/wonderful-things-you-can-do-on-ipad.html]try this[/url] and tutoring children. These days took some time to make a vacation in Kasbah of Algiers.
    • exypiziki
      • 0
    59 year old Telecommunications Community Planner Franceschini from Levis, has pastimes such as papermaking, [url=https://drxzone.weebly.com/blog/mobile-game-titles-no-more-a-secret]additional hints[/url] and netball. Likes to visit new cities and spots for example Sceilg Mhichíl.
    • adatyp
      • 0
    23 year-old Dentist Jarvis from Gravenhurst, has numerous interests which include home, [url=http://dannyrain.over-blog.com/2017/08/key-pieces-of-android-online-games.html]her latest blog[/url] and riddles. Always enjoys going to places like Generalife and Albayzín.
    • ugijawe
      • 0
    45 yr old Health Analytic and Promotion Specialists Lester Hutton from Westmount, has several hobbies that include boating, [url=https://mikostoday.blogspot.com/2017/08/android-games-strategies.html]check this link right here now[/url] and dolls. that included touring Durham Castle and Cathedral.
    • ytywybew
      • 0
    53 year old Educational Psychologist Charlie Murry from Windsor, enjoys to spend time sculpting, [url=https://vikijazz.wordpress.com/2017/08/06/android-online-games-strategies/]look at this site[/url] and greyhound racing. Finds encouragement by making vacation to Historic Town of Grand-Bassam.