Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2011-02-28 21:46:09

mittus
Участник
Зарегистрирован: 2010-01-24
Сообщений: 155
Рейтинг :   

Нужен очень грязный хак, выручайте

Дефолтный {category} в моем случае выдает следующее:

<a href="{category_url}">{category_name}</a>, <a href="{dop_category_url}">{dop_category_name}</a>, <a href="{dop_category_url}">{dop_category_name}</a>, <a href="{dop_category_url}">{dop_category_name}</a>

Нужно привести шаблон краткой новости, который будет действенен только для одной категории {category_name} к следующему виду:

<a rel="#/{dop_category_url}/{dop_category_url}/{dop_category_url}/{altname}"  title="{dop_category_name} → {dop_category_name} → {dop_category_name} → {news_title}"  href="{altname}">текст новости</a>

где:
{dop_category_url} - ссылка на дополнительную категорию.
{altname} - ссылка на новость.
{news_title} - Заголовок новости.
{dop_category_name} - имя дополнительной категории.
{category} (по дефолту: <a href="{category_url}">{category_name}</a>) - категория, где будут отображаться новости - ее отображения в rel и title самих новостей нужно избежать.

Изменено mittus (2011-02-28 22:47:18)

Не в сети

#2 2011-03-01 03:10:44

mittus
Участник
Зарегистрирован: 2010-01-24
Сообщений: 155
Рейтинг :   

Re: Нужен очень грязный хак, выручайте

Задача упростилась big_smile

Теперь нужно всего навсего:

 <a rel="#/{dop_category_url}/{dop_category_url}/{dop_category_url}" title="{news_title}" href="{altname}">текст новости</a>

Не в сети

#3 2011-03-01 12:10:26

mittus
Участник
Зарегистрирован: 2010-01-24
Сообщений: 155
Рейтинг :   

Re: Нужен очень грязный хак, выручайте

Подскажите тогда хоть, как из нижеприведенной функции сделать еще одну функцию, с тегом {simple_category}, что-бы она через дробь выдавала ссылки на подкатегории новостей

function GetCategories($catid, $plain = false) {
	global $catz, $catmap;

	$catline = array();
	$cats = is_array($catid)?$catid:explode(",", $catid);
	foreach ($cats as $v) {
		if (isset($catmap[$v])) {
			$row = $catz[$catmap[$v]];
			$catline[] = ($plain) ? $row['name'] : "<a href=\"".generateLink('news', 'by.category', array('category' => $row['alt'], 'catid' => $row['id']))."\">".$row['name']."</a>";
		}
	}

	return ($catline ? implode(", ", $catline) : '');
}
//парам-пам-пам и куча кода, а далее тег {category}
$tvars['vars']['category']	=	@GetCategories($row['catid']);

Т.е. на выходе от этой функции нужно: {ссылка на подкатегорию 1}/{ссылка на подкатегорию 2}/{ссылка на подкатегорию 3}/{и так далее} - в конце без слеша, в начале всё-равно.
Я в php не алле просто neutral

Изменено mittus (2011-03-01 12:14:47)

Не в сети

#4 2011-03-02 02:20:47

mittus
Участник
Зарегистрирован: 2010-01-24
Сообщений: 155
Рейтинг :   

Re: Нужен очень грязный хак, выручайте

Всем спасибо за помощь, решение наковырял методом тыка, если кому интересно будет:

function GetRelCategories($catid, $plain = false) {
	global $catz, $catmap;
	$catline = array();
	$replArray = array("/", "catalog");
	$cats = is_array($catid)?$catid:explode(",", $catid);
	foreach ($cats as $v) {
		if (isset($catmap[$v])) {
			$row = $catz[$catmap[$v]];
			$catline[] = generateLink('news', 'by.category', array('category' => $row['alt']));
		}
	}

	return ($catline ? implode("/", str_replace($replArray,'',$catline)) : '');
}

	$tvars['vars']['rel_category']	=	@GetRelCategories($row['catid']);

Не в сети

Подвал раздела

Работает на FluxBB