Тег [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

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

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Для того, чтобы оставлять комментарии, нужно авторизироваться.
    • ebywesy
      • 0
    [url=http://saszetki-zapachowe.pl/aptekakamagra.net]levitra[/url]
    • etywotaha
      • 0
    [url=http://saszetki-zapachowe.pl/apte24.pl/cialis.php]cialis w zelu[/url]
    • ifekyhuv
      • 0
    [url=http://mlodyjeczmienzielony.pl/man-spartanol.com/cz/]nejlepší testosteron[/url]
    • epovyguto
      • 0
    [url=http://mlodyjeczmienzielony.pl/man-spartanol.com/pt/formexplode.html]formexplode recenzia[/url]
    • obunageju
      • 0
    28 year-old Health Information Manager Harrold from Port Hawkesbury, spends time with interests including games, [url=https://gamejolt.com/@trade-island-hack]trade island android apk[/url] and soap making. Was recently visiting Three Parallel Rivers of Yunnan Protected Areas.
    • ywycuf
      • 0
    [url=http://mlodyjeczmienzielony.pl/man-spartanol.com/sk/]steroidy[/url]
    • ogarytab
      • 0
    [url=http://get2-lux.com/sv/femin-plus-hjalp-till-kvinnans-libido/]femin-plus[/url]
    • uwizor
      • 0
    [url=http://maxa-pills.com/hr/]http://maxa-pills.com[/url]
    • ymonyx
      • 0
    [url=http://vigr-pills.com/pt/]vigrax[/url]
    • inalubi
      • 0
    [url=http://maxa-pills.com/gb/]maxatin[/url]
    • ixusof
      • 0
    [url=http://maxa-pills.com/de/]Maxatin[/url]
    • yhazezuz
      • 0
    [url=http://maxa-pills.com/fi/]maxa-pills.com[/url]
    • imoqed
      • 0
    [url=http://vigr-pills.com/sk/]www.vigr-pills.com[/url]
    • emapefuc
      • 0
    [url=http://vigr-pills.com/lv/]http://vigr-pills.com[/url]
    • elicuga
      • 0
    [url=http://maxa-pills.com/dk/]http://maxa-pills.com[/url]
    • iwekawe
      • 0
    [url=http://super-eproduct.com/pt/miralash-condicionador-ativo-para-cilios-delicados-e-quebradicos-2/]PerleBleue[/url]
    • anojozox
      • 0
    [url=http://maxa-pills.com/hk/]tabletki maxatin[/url]
    • avylav
      • 0
    [url=https://zielonatabletka.pl]potencja[/url]
    • ozeweca
      • 0
    [url=https://bestviagra.pl/viagra.php]viagra bez recepty[/url]
    • ypiheneqy
      • 0
    [url=http://vigr-pills.com/nl/]Vigrax[/url]
    • aroticup
      • 0
    [url=http://e-product24.com/sk/sampon-vivese-senso-duo-zachranit-poskodene-vlasy/]Vivese Senso Shampoo[/url]
    • ihyvu
      • 0
    why [url=http://billiga-lan.com]http://billiga-lan.com[/url] When you discover the advance combination you are most interested in, ring up the bank directly to detect out upfront what the requirements are for the duration of allow eligibility.
    • ezory
      • 0
    [url=http://niebieska-apteka.pl/viagra.php]tania viagra[/url]
    • ekedu
      • 0
    [url=http://maxa-pills.com/gr/]tabletki maxatin[/url]
    • osumeqyc
      • 0
    [url=https://bestviagra.pl]kamagra[/url]
    • yjonosu
      • 0
    35 yrs old Gallery or Gallery Technician Elvin Stanforth from Haliburton, really likes quick cars, [url=https://tapas.io/world-war-rising]world war rising walkthrough[/url] and russian dolls collecting. Finds motivation by visiting Historic Centre (Old Town) of Tallinn.
    • isoxiz
      • 0
    [url=http://maxa-pills.com/gb/]tabletki maxatin[/url]
    • uviteb
      • 0
    45 yr old Electrical Engineer Malcolm Hutton from Happy Valley-Goose Bay, spends time with hobbies and interests like metal detection, [url=https://www.spreaker.com/user/flip-skater-hack]hack game flip skater[/url] and hot air balooning. Recently took some time to make a vacation to City of Potosí.
    • ulehujot
      • 0
    [url=http://femm-pills.com/ch/]femm-pills.com[/url]
    • acagygen
      • 0
    29 year old Fibrous Plasterer Rodger from Laurentiens, likes to spend some time wall art, [url=https://peatix.com/user/4274430]epic seven ios[/url] and sailing. Just had a family visit to Historic Centre of Salvador de Bahia.

Назад Вперед
Наверх