Перейти к публикации

{link-category} Подправить бы немного


CoolFiles.RU

Рекомендованные сообщения

Доброго всем времени суток!

В кратком и в полном содержании новости, есть замечательная вещь - {link-category}.

У меня на сайте есть главная категория к примеру фильмы и подкатегории например боевик.

Если для новости выбрать только одну категорию например боевик, то результат {link-category}

будет такой Фильмы » Боевик, а если несколько, например боевик и комедия то, результат

такой Боевик, Комедия. А мне хотелось бы чтобы главная категория сохранялась, т.е. чтобы

выглядело вот так Фильмы » Боевик, Комедия. Реально сделать так? Помогите плиз :unsure:

Заранее благодарен.

Сайт CoolFiles.RU

Ссылка на сообщение
Поделиться на других сайтах

CoolFiles.RU,

так тебе что надо, разделитель поменять между категориями? и как понять "чтобы главная категория сохранялась"?

Ссылка на сообщение
Поделиться на других сайтах

Я пробывал изменять вот этот код :


	if (!$row['category']) { $my_cat = "---"; $my_cat_link = "---";} else {


		$my_cat = array (); $my_cat_link = array ();

		$cat_list = explode (',', $row['category']);


		if (count($cat_list) == 1) {


			$my_cat[] = $cat_info[$cat_list[0]]['name'];


			$my_cat_link = get_categories ($cat_list[0]);


		} else {


			foreach ($cat_list as $element) {

				if ($element) { $my_cat[] = $cat_info[$element]['name']; if ($config['ajax']) $go_page = "onclick=\"DlePage('do=cat&category={$cat_info[$element]['alt_name']}'); return false;\" "; else $go_page = "";

						if ($config['allow_alt_url'] == "yes")

								$my_cat_link[] = "<a {$go_page}href=\"".$config['http_home_url'].get_url($element)."/\">{$cat_info[$element]['name']}</a>";

						else

								$my_cat_link[] = "<a {$go_page}href=\"$PHP_SELF?do=cat&category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";

				}

			}


		$my_cat_link = stripslashes(implode (', ', $my_cat_link));

		}


		$my_cat = stripslashes(implode (', ', $my_cat));

	}


		$row['category'] = intval ($row['category']);


		if (isset($view_template) AND $view_template == "rss") $row['title'] = htmlspecialchars ( $row['title'], ENT_QUOTES);


		$news_find = array(

		 '{date}'				=> langdate($config['timestamp_active'], $row['date']),

		 '{comments-num}'		=> $row['comm_num'],

		 '{views}'				=> $row['news_read'],

		 '{category}'			=> $my_cat,

		 '{link-category}'		=> $my_cat_link,

		 '{category-icon}'		=> $cat_info[$row['category']]['icon'],

		 '{news-id}'			=> $row['id'],

		 '{PAGEBREAK}'			=> '',

		 '{rssdate}'			=> date("r", $row['date']),

		 '{rssauthor}'			=> $row['autor'],

		 );

Он одинаковый для show.full.php, show.short.php, search.php. Пробывал изменять методом научного тыка :rolleyes: слабоват я в php но по опыту программирования на delphi предполагаю что менять надо вот эту строку(Хотя могу ошибаться):
								$my_cat_link[] = "<a {$go_page}href=\"".$config['http_home_url'].get_url($element)."/\">{$cat_info[$element]['name']}</a>";

						else

								$my_cat_link[] = "<a {$go_page}href=\"$PHP_SELF?do=cat&category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";

А вот как, так и не понял. Повторюсь, что мне нужно:

При выборе одной подкатегории выводится и категория и подкатегория, например Фильмы » Боевик,

а при выборе нескольких подкатегорий, выводятся только подкатегории, например Боевик, Комедия,

а мне нужно сделать чтобы при выборе нескольких подкатегорий выводилась сама категория и все подкатегории,

например Фильмы » Боевик, Комедия.

Ссылка на сообщение
Поделиться на других сайтах

lifestar, я так понял что, это функция отвечает за вывод категорий в speedbar.

А мне нужно изменить тег {link-category} в кратком и полном содержании статьи.

Если не прав, извини, поправляй.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Этот хак подсказал в свое время celsoft - выводит последнюю субкатегорию

/engine/modules/show.short.php

Код

 $my_cat_link = stripslashes(implode (', ', $my_cat_link));
заменить на Код
$my_cat_link = stripslashes(end($my_cat_link));

тоже самое и для /engine/modules/show.full.php

]

Ссылка на сообщение
Поделиться на других сайтах

lifestar, то что ты подсказал изменяет speedbar, но все равно спасибо, пригодилось ;)

Старпер C, спасибо дружище, теперь вроде врубился, а то уже отчаился.

Ссылка на сообщение
Поделиться на других сайтах

Друзья, подскажите как узнать главную(основную) категорию новости. Желательно без дополнительных запросов к базе.

PS: Извинитие если достал уже этой темой :rolleyes: Это финальный вопрос :)

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

Друзья, подскажите как узнать главную(основную) категорию новости. Желательно без дополнительных запросов к базе.

PS: Извинитие если достал уже этой темой :rolleyes: Это финальный вопрос :)

stripslashes(implode (', ', $my_cat_link)); - так выводит полностью все категории новости

stripslashes(end ($my_cat_link)); - так только последнюю

stripslashes(reset ($my_cat_link)); - так только первую

А как сделать так чтобы выводил все категории кроме первой (корневой)? т.е. чтобы выводил только подкатегории (без корневой категории)

Подскажите пожалуйста..

Ссылка на сообщение
Поделиться на других сайтах

stripslashes(implode (', ', $my_cat_link)); - так выводит stripslashes(implode (', ', $my_cat_link)); - так выводит полностью все категории новости

stripslashes(end ($my_cat_link)); - так только последнюю

stripslashes(reset ($my_cat_link)); - так только первую

А как сделать так чтобы выводил все категории кроме первой (корневой)? т.е. чтобы выводил только подкатегории (без корневой категории)

Подскажите пожалуйста..

stripslashes(implode (', ', $my_cat_link)); - воводит только все подкатегории, если новость находится в нескольких категориях. Т.е в моем случае не помогло. :(

На твой вопрос ответ супер прост, если несколько категорий, то:

stripslashes(implode (', ', $my_cat_link));

если одна категория то:

stripslashes(end ($my_cat_link));

А вот кто бы мне помог, как же все-таки вывести, только главную категорию? Подскажите пожалуйста, перерыл везде

ну нигде не нашел, во всяких различных модах запрос к базе делается, на скока я понял, или узнать главную категорию

без запроса к базе не реально? ПОМОГИТЕ ПЛИИИИЗ!!!!!!

Ссылка на сообщение
Поделиться на других сайтах

stripslashes(implode (', ', $my_cat_link)); - воводит только все подкатегории, если новость находится в нескольких категориях. Т.е в моем случае не помогло. :(

На твой вопрос ответ супер прост, если несколько категорий, то:

stripslashes(implode (', ', $my_cat_link));

если одна категория то:

stripslashes(end ($my_cat_link));

А вот кто бы мне помог, как же все-таки вывести, только главную категорию? Подскажите пожалуйста, перерыл везде

ну нигде не нашел, во всяких различных модах запрос к базе делается, на скока я понял, или узнать главную категорию

без запроса к базе не реально? ПОМОГИТЕ ПЛИИИИЗ!!!!!!

Ты читать умеешь?? Мне нужно выводить не все категории а все подкатегории - т.е. все кроме корневой.

А для вывода всех категорий в которой находится новость используется

stripslashes(implode (', ', $my_cat_link));

Если для тебя это не работает - либо проблема в версии движка - либо у тебя руки кривые.

Ссылка на сообщение
Поделиться на других сайтах

Ты читать умеешь?? Мне нужно выводить не все категории а все подкатегории - т.е. все кроме корневой.

А для вывода всех категорий в которой находится новость используется

stripslashes(implode (', ', $my_cat_link));

Если для тебя это не работает - либо проблема в версии движка - либо у тебя руки кривые.

А ты читать умеешь?! :angry:

stripslashes(implode (', ', $my_cat_link)); - воводит только все подкатегории, если новость находится в нескольких категориях.

Это однозначно, покрайней мере в 6.2

stripslashes(end ($my_cat_link)); - так как вот этот код выводит только последнию категорию, то если

новость находится ну скажем в категории Фильмы » Комедия то этот код и выведет тебе только твою подкатегорию в данном случае Комедия.

Если для тебя это не работает - либо проблема в версии движка - либо у тебя руки кривые.

Кажется ручки то кривые у тебя, раз не можешь сделать, то что уже есть в движке.

И с движком у меня все нормально, просто мне нужно узнать код, который выводит только главную категорию, без

запроса к базе. Вот например если новость в категориях Фильмы » Комедия, Боевик то вывести категорию Фильмы.

Ссылка на сообщение
Поделиться на других сайтах

И с движком у меня все нормально, просто мне нужно узнать код, который выводит только главную категорию

stripslashes(reset ($my_cat_link));

Вот это выводит только корневую категорию новости.

раз не можешь сделать, то что уже есть в движке.

Это тебе приснилось? Ну-ка покажи мне встроенную тему которая выводит только подкатегории.

Ссылка на сообщение
Поделиться на других сайтах

Цитата(CoolFiles.RU @ 16.10.2007, 12:04)

И с движком у меня все нормально, просто мне нужно узнать код, который выводит только главную категорию

stripslashes(reset ($my_cat_link));

Вот это выводит только корневую категорию новости.

раз не можешь сделать, то что уже есть в движке.

Это тебе приснилось? Ну-ка покажи мне встроенную тему которая выводит только подкатегории.

Хватит е..т со мной разговаривать как-будто я мальчик какой-то. Мне ничего не снилось, если ты не можешь разобраться в таких простейших вещах, то я даже не знаю что сказать...

Так ладно дружище давай выясним, про одно и тоже ли мы говорим. Рассказываю подробно:

На моем сайте есть главные категории, возьмем одну из них, например Фильмы. У нее есть подкатегории, например

Комедия, Боевик, Ужасы. Дак вот чтобы в моем случае вывести только подкатегории, нужно в show.full.php вот этот код:

		if (count($cat_list) == 1) {


			if ($allow_list[0] != "all" AND !in_array ($cat_list[0], $allow_list)) $perm = 0;


			$my_cat[] = $cat_info[$cat_list[0]]['name'];


			$my_cat_link = get_categories ($cat_list[0]); 


		} else {


			foreach ($cat_list as $element) {


				if ($allow_list[0] != "all" AND !in_array ($element, $allow_list)) $perm = 0;


				if ($element) { $my_cat[] = $cat_info[$element]['name']; if ($config['ajax']) $go_page = "onclick=\"DlePage('do=cat&category={$cat_info[$element]['alt_name']}'); return false;\" "; else $go_page = "";

						if ($config['allow_alt_url'] == "yes")

								$my_cat_link[] = "<a {$go_page}href=\"".$config['http_home_url'].get_url($element)."/\">{$cat_info[$element]['name']}</a>";

						else

								$my_cat_link[] = "<a {$go_page}href=\"$PHP_SELF?do=cat&category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";

				}

			}


		$my_cat_link = stripslashes(implode (', ', $my_cat_link));

		}


		$my_cat = stripslashes(implode (', ', $my_cat));

	}


		$category_id = intval ($row['category']);
поменять на:
		if (count($cat_list) == 1) {


			if ($allow_list[0] != "all" AND !in_array ($cat_list[0], $allow_list)) $perm = 0;


			$my_cat[] = $cat_info[$cat_list[0]]['name'];


			$my_cat_link = $cat_info[$cat_list[0]]['name'];


		} else {


			foreach ($cat_list as $element) {


				if ($allow_list[0] != "all" AND !in_array ($element, $allow_list)) $perm = 0;


				if ($element) { $my_cat[] = $cat_info[$element]['name']; if ($config['ajax']) $go_page = "onclick=\"DlePage('do=cat&category={$cat_info[$element]['alt_name']}'); return false;\" "; else $go_page = "";

						if ($config['allow_alt_url'] == "yes")

								$my_cat_link[] = "<a {$go_page}href=\"".$config['http_home_url'].get_url($element)."/\">{$cat_info[$element]['name']}</a>";

						else

								$my_cat_link[] = "<a {$go_page}href=\"$PHP_SELF?do=cat&category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";

				}

			}


		$my_cat_link = stripslashes(implode (', ', $my_cat_link));

		}


		$my_cat = stripslashes(implode (', ', $my_cat));

	}


		$category_id = intval ($row['category']);

в show.short.php он почти аналогичен.

stripslashes(reset ($my_cat_link)); - НЕ ВЫВОДИТ ТОЛЬКО КОРНЕВУЮ КАТЕГОРИЮ НОВОСТИ ЕСЛИ ОНА В НЕСКОЛЬКИХ ПОДКАТЕГОРИЯХ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Я не знаю как еще вопрос задать, попробую так:

Есть ли код, который выводит только главную(корневую) категорию, если новость в нескольких подкатегориях, без дополнительного запроса к базе?

Ссылка на сообщение
Поделиться на других сайтах

На моем сайте есть главные категории, возьмем одну из них, например Фильмы. У нее есть подкатегории, например

Комедия, Боевик, Ужасы. Дак вот чтобы в моем случае вывести только подкатегории, нужно в

У меня так же, главная категория "Клипы" а подкатегории - жанры, ну так у меня {category} выводит только корневую, а {category_link} должна выводить все жанры, но сейчас пока только один выводит, пытаюсь сделать чтобы все выводила..

Соответственно:

$my_cat = stripslashes(reset($my_cat));

и

$my_cat_link = stripslashes(end ($my_cat_link));

Ссылка на сообщение
Поделиться на других сайтах

У меня так же, главная категория "Клипы" а подкатегории - жанры, ну так у меня {category} выводит только корневую, а {category_link} должна выводить все жанры, но сейчас пока только один выводит, пытаюсь сделать чтобы все выводила..

Соответственно:

$my_cat = stripslashes(reset($my_cat));

и

$my_cat_link = stripslashes(end ($my_cat_link));

У меня если новость в нескольких категориях, то {category} выводит только подкатегории без ссылки на них, а {link-category} то же самое только с сылками. А если в одной то {category} выводит подкатегорию, а {link-category} выводит корневую и подкатегорию.

Люди ну будте поотзывчивее, помогите. Цитирую свой вопрос, уж миллионый раз:

Есть ли код, который выводит только главную(корневую) категорию, если новость в нескольких подкатегориях, без дополнительного запроса к базе?
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Подскажите пожалуйста как сделать чтобы

stripslashes(implode (', ', $my_cat_link));

Выводило все подкатегории категории кроме первой (корневой).

Ссылка на сообщение
Поделиться на других сайтах

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

×
×
  • Создать...