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

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


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

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

В кратком и в полном содержании новости, есть замечательная вещь - {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>";

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

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

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

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

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

Изменено пользователем CoolFiles.RU
Ссылка на сообщение
Поделиться на других сайтах

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)); - так только первую

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

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

Изменено пользователем KillerHT
Ссылка на сообщение
Поделиться на других сайтах

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));

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

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

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

Изменено пользователем CoolFiles.RU
Ссылка на сообщение
Поделиться на других сайтах

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));

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

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

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

Изменено пользователем KillerHT
Ссылка на сообщение
Поделиться на других сайтах

Цитата(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));

Изменено пользователем KillerHT
Ссылка на сообщение
Поделиться на других сайтах

У меня так же, главная категория "Клипы" а подкатегории - жанры, ну так у меня {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));

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

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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