CoolFiles.RU 0 Опубликовано: 10 сентября 2007 Рассказать Опубликовано: 10 сентября 2007 Доброго всем времени суток! В кратком и в полном содержании новости, есть замечательная вещь - {link-category}. У меня на сайте есть главная категория к примеру фильмы и подкатегории например боевик. Если для новости выбрать только одну категорию например боевик, то результат {link-category} будет такой Фильмы » Боевик, а если несколько, например боевик и комедия то, результат такой Боевик, Комедия. А мне хотелось бы чтобы главная категория сохранялась, т.е. чтобы выглядело вот так Фильмы » Боевик, Комедия. Реально сделать так? Помогите плиз Заранее благодарен. Сайт CoolFiles.RU Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 11 сентября 2007 Рассказать Опубликовано: 11 сентября 2007 Автор Помогите плиз, так и не смог сделать Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 11 сентября 2007 Рассказать Опубликовано: 11 сентября 2007 А что вы делали, пробывали? Показывайте Цитата Ссылка на сообщение Поделиться на других сайтах
kolyma 2 Опубликовано: 11 сентября 2007 Рассказать Опубликовано: 11 сентября 2007 CoolFiles.RU, так тебе что надо, разделитель поменять между категориями? и как понять "чтобы главная категория сохранялась"? Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 11 сентября 2007 Рассказать Опубликовано: 11 сентября 2007 (изменено) Автор Я пробывал изменять вот этот код : 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. Пробывал изменять методом научного тыка слабоват я в 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>"; А вот как, так и не понял. Повторюсь, что мне нужно: При выборе одной подкатегории выводится и категория и подкатегория, например Фильмы » Боевик, а при выборе нескольких подкатегорий, выводятся только подкатегории, например Боевик, Комедия, а мне нужно сделать чтобы при выборе нескольких подкатегорий выводилась сама категория и все подкатегории, например Фильмы » Боевик, Комедия. Изменено 11 сентября 2007 пользователем CoolFiles.RU Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 12 сентября 2007 Рассказать Опубликовано: 12 сентября 2007 <engine/modules/functions.php> Функция get_categories ($id) Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 12 сентября 2007 Рассказать Опубликовано: 12 сентября 2007 Автор lifestar, я так понял что, это функция отвечает за вывод категорий в speedbar. А мне нужно изменить тег {link-category} в кратком и полном содержании статьи. Если не прав, извини, поправляй. Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 22 сентября 2007 Рассказать Опубликовано: 22 сентября 2007 Автор Я так понял что помощи здесь не дождусь Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 22 сентября 2007 Рассказать Опубликовано: 22 сентября 2007 CoolFiles.RU, я же тебе написал где копать Цитата Ссылка на сообщение Поделиться на других сайтах
Старпер C 0 Опубликовано: 23 сентября 2007 Рассказать Опубликовано: 23 сентября 2007 Этот хак подсказал в свое время 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 ] Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 23 сентября 2007 Рассказать Опубликовано: 23 сентября 2007 Автор lifestar, то что ты подсказал изменяет speedbar, но все равно спасибо, пригодилось Старпер C, спасибо дружище, теперь вроде врубился, а то уже отчаился. Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 23 сентября 2007 Рассказать Опубликовано: 23 сентября 2007 Автор Друзья, подскажите как узнать главную(основную) категорию новости. Желательно без дополнительных запросов к базе. PS: Извинитие если достал уже этой темой Это финальный вопрос Цитата Ссылка на сообщение Поделиться на других сайтах
KillerHT 1 Опубликовано: 15 октября 2007 Рассказать Опубликовано: 15 октября 2007 (изменено) Друзья, подскажите как узнать главную(основную) категорию новости. Желательно без дополнительных запросов к базе. PS: Извинитие если достал уже этой темой Это финальный вопрос stripslashes(implode (', ', $my_cat_link)); - так выводит полностью все категории новости stripslashes(end ($my_cat_link)); - так только последнюю stripslashes(reset ($my_cat_link)); - так только первую А как сделать так чтобы выводил все категории кроме первой (корневой)? т.е. чтобы выводил только подкатегории (без корневой категории) Подскажите пожалуйста.. Изменено 15 октября 2007 пользователем KillerHT Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 15 октября 2007 Рассказать Опубликовано: 15 октября 2007 (изменено) Автор 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)); А вот кто бы мне помог, как же все-таки вывести, только главную категорию? Подскажите пожалуйста, перерыл везде ну нигде не нашел, во всяких различных модах запрос к базе делается, на скока я понял, или узнать главную категорию без запроса к базе не реально? ПОМОГИТЕ ПЛИИИИЗ!!!!!! Изменено 15 октября 2007 пользователем CoolFiles.RU Цитата Ссылка на сообщение Поделиться на других сайтах
KillerHT 1 Опубликовано: 16 октября 2007 Рассказать Опубликовано: 16 октября 2007 stripslashes(implode (', ', $my_cat_link)); - воводит только все подкатегории, если новость находится в нескольких категориях. Т.е в моем случае не помогло. На твой вопрос ответ супер прост, если несколько категорий, то: stripslashes(implode (', ', $my_cat_link)); если одна категория то: stripslashes(end ($my_cat_link)); А вот кто бы мне помог, как же все-таки вывести, только главную категорию? Подскажите пожалуйста, перерыл везде ну нигде не нашел, во всяких различных модах запрос к базе делается, на скока я понял, или узнать главную категорию без запроса к базе не реально? ПОМОГИТЕ ПЛИИИИЗ!!!!!! Ты читать умеешь?? Мне нужно выводить не все категории а все подкатегории - т.е. все кроме корневой. А для вывода всех категорий в которой находится новость используется stripslashes(implode (', ', $my_cat_link)); Если для тебя это не работает - либо проблема в версии движка - либо у тебя руки кривые. Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 16 октября 2007 Рассказать Опубликовано: 16 октября 2007 Автор Ты читать умеешь?? Мне нужно выводить не все категории а все подкатегории - т.е. все кроме корневой. А для вывода всех категорий в которой находится новость используется stripslashes(implode (', ', $my_cat_link)); Если для тебя это не работает - либо проблема в версии движка - либо у тебя руки кривые. А ты читать умеешь?! stripslashes(implode (', ', $my_cat_link)); - воводит только все подкатегории, если новость находится в нескольких категориях. Это однозначно, покрайней мере в 6.2 stripslashes(end ($my_cat_link)); - так как вот этот код выводит только последнию категорию, то если новость находится ну скажем в категории Фильмы » Комедия то этот код и выведет тебе только твою подкатегорию в данном случае Комедия. Если для тебя это не работает - либо проблема в версии движка - либо у тебя руки кривые. Кажется ручки то кривые у тебя, раз не можешь сделать, то что уже есть в движке. И с движком у меня все нормально, просто мне нужно узнать код, который выводит только главную категорию, без запроса к базе. Вот например если новость в категориях Фильмы » Комедия, Боевик то вывести категорию Фильмы. Цитата Ссылка на сообщение Поделиться на других сайтах
KillerHT 1 Опубликовано: 16 октября 2007 Рассказать Опубликовано: 16 октября 2007 (изменено) И с движком у меня все нормально, просто мне нужно узнать код, который выводит только главную категорию stripslashes(reset ($my_cat_link)); Вот это выводит только корневую категорию новости. раз не можешь сделать, то что уже есть в движке. Это тебе приснилось? Ну-ка покажи мне встроенную тему которая выводит только подкатегории. Изменено 16 октября 2007 пользователем KillerHT Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 16 октября 2007 Рассказать Опубликовано: 16 октября 2007 Автор Цитата(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)); - НЕ ВЫВОДИТ ТОЛЬКО КОРНЕВУЮ КАТЕГОРИЮ НОВОСТИ ЕСЛИ ОНА В НЕСКОЛЬКИХ ПОДКАТЕГОРИЯХ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Я не знаю как еще вопрос задать, попробую так: Есть ли код, который выводит только главную(корневую) категорию, если новость в нескольких подкатегориях, без дополнительного запроса к базе? Цитата Ссылка на сообщение Поделиться на других сайтах
KillerHT 1 Опубликовано: 16 октября 2007 Рассказать Опубликовано: 16 октября 2007 (изменено) На моем сайте есть главные категории, возьмем одну из них, например Фильмы. У нее есть подкатегории, например Комедия, Боевик, Ужасы. Дак вот чтобы в моем случае вывести только подкатегории, нужно в У меня так же, главная категория "Клипы" а подкатегории - жанры, ну так у меня {category} выводит только корневую, а {category_link} должна выводить все жанры, но сейчас пока только один выводит, пытаюсь сделать чтобы все выводила.. Соответственно: $my_cat = stripslashes(reset($my_cat)); и $my_cat_link = stripslashes(end ($my_cat_link)); Изменено 16 октября 2007 пользователем KillerHT Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 16 октября 2007 Рассказать Опубликовано: 16 октября 2007 Автор У меня так же, главная категория "Клипы" а подкатегории - жанры, ну так у меня {category} выводит только корневую, а {category_link} должна выводить все жанры, но сейчас пока только один выводит, пытаюсь сделать чтобы все выводила.. Соответственно: $my_cat = stripslashes(reset($my_cat)); и $my_cat_link = stripslashes(end ($my_cat_link)); У меня если новость в нескольких категориях, то {category} выводит только подкатегории без ссылки на них, а {link-category} то же самое только с сылками. А если в одной то {category} выводит подкатегорию, а {link-category} выводит корневую и подкатегорию. Люди ну будте поотзывчивее, помогите. Цитирую свой вопрос, уж миллионый раз: Есть ли код, который выводит только главную(корневую) категорию, если новость в нескольких подкатегориях, без дополнительного запроса к базе? Цитата Ссылка на сообщение Поделиться на других сайтах
CoolFiles.RU 0 Опубликовано: 17 октября 2007 Рассказать Опубликовано: 17 октября 2007 Автор Поддержка млин Цитата Ссылка на сообщение Поделиться на других сайтах
KillerHT 1 Опубликовано: 27 октября 2007 Рассказать Опубликовано: 27 октября 2007 Подскажите пожалуйста как сделать чтобы stripslashes(implode (', ', $my_cat_link)); Выводило все подкатегории категории кроме первой (корневой). Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.