0 Пользователей и 1 Гость просматривают эту тему.
  • 16 Ответов
  • 18777 Просмотров
*

e-life

  • Осваиваюсь на форуме
  • 26
  • 0 / 1
Задача такая - есть несколько разделов на сайте.
Я хочу в зависимости от раздела вывести определенные картинки.

Нужно сделать это в шаблоне - в зависимости от текущего раздела вывести соответствующий кусок HTML.

На данный момент имею вот что:
ИД материала получаю через $menu = & JSite::getMenu(); далее через запрос в БД получаю ИД раздела.
Но это работает только если текущий материал есть в меню, а если сделать пункт меню категории (новости) и перейти на страницу новости, то этой страницы уже нет в меню.

То, что находил тут и вообще в инете не устроило. Так и не смог найти как получить ИД материала, категории и раздела прямо в шаблоне.
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Не надо в меню лазать. Все получается прямо из запроса.
Нечто вроде такого:
Код: php
$option = JRequest::getString('option');
if($option == 'com_content')
{
  $cid = JRequest::getInt('catid');
  $id = JRequest::getInt('id');
}
*

e-life

  • Осваиваюсь на форуме
  • 26
  • 0 / 1
$cid = JRequest::getInt('catid'); - это ИД категории?
выдает 0.
И всетаки - как получить ИД раздела, скажем на странице со списком новостей, т.е. на странице категории?

Приведенный пример нерабочий. Кто сможет привести более внятный ответ. Думаю вопрос довольно конкретный задал.
« Последнее редактирование: 10.01.2010, 15:04:18 от e-life »
*

e-life

  • Осваиваюсь на форуме
  • 26
  • 0 / 1
тут http://forum.joomla.org/viewtopic.php?f=466&t=302292
нашел вот такое решение:
Код
function getSection($iId) {
      $database = &JFactory::getDBO();
      if(JRequest::getVar( 'view', 'NONE') == "frontpage"){
         return 1;
      }else if(JRequest::getVar( 'view', 'NONE') == "section"){
         return JRequest::getVar( 'id', 'NONE');
      }else if(Jrequest::getVar( 'view', 'NONE') == "category"){
         //echo 'hit category';
         $sql = "SELECT section FROM #__categories WHERE id = $iId ";
         $database->setQuery( $sql );
         $row=$database->loadResult();
         return $row;
      }else if(Jrequest::getVar( 'view', 'NONE') == "article"){
         //echo 'hit article';
         $sql = "SELECT sectionid FROM #__content WHERE id = $iId ";
         $database->setQuery( $sql );
         $row=$database->loadResult();
         return $row;
      }
   }
   $sectionID=getSection(JRequest::getInt('id', 'NONE'));

здесь я его немного подправил, чтобы на главной странице выдавало первый раздел.

ПС пока что вроде решение устраивает, но, думаю, что в дальнейшем понадобится больше разбираться в этом вопросе.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
:) оригинальное решение. Делать лишний запрос к БД.
Хотя поторопился. Почитал тему думал id материала только нужно.
*

archer1981

  • Захожу иногда
  • 286
  • 13 / 0
Нужно решить именно такую задачу. Как при помощи означенной функции в условие вносить id категории?
http://walkspb.ru - Энциклопедия Санкт-Петербурга
*

4Fun

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Сейчас мучаюсь, нужно получить id категории
вырос вот такой код, но он не работает если мы включаем ЧПУ, это из-за того что там не передаётся catid.
Код: php
$id=JRequest::getVar( 'id','' );
$catid=JRequest::getVar( 'catid','' );
$this->params->catid=$id;
if ($catid)
{$this->params->catid=$catid;}
else
{$this->params->catid=$id;}
*

4Fun

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Вот кстати финальная версия. Принцып работы очень прост, что позволяет работать даже с ЧПУ.
При желании её несложно доработать..
Код: php
	$id=JRequest::getVar( 'id','' );
if (JRequest::getVar('view')=='category')
{$this->params->catid=$id;}
if (JRequest::getVar('view')=='article') {
         $sql = "SELECT catid FROM #__content WHERE id = .$database->Quote($id) ";
         $database->setQuery( $sql );
         echo($database->loadResult());
}
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Сейчас мучаюсь, нужно получить id категории
вырос вот такой код, но он не работает если мы включаем ЧПУ, это из-за того что там не передаётся catid.
это как, не передается? :)
Цитировать
{$this->params->catid=$id;}
вообще не понятная строчка. Чего этим хотели добиться?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Вот кстати финальная версия. Принцып работы очень прост, что позволяет работать даже с ЧПУ.
При желании её несложно доработать..
Код: php
	$id=JRequest::getVar( 'id','' );
if (JRequest::getVar('view')=='category')
{$this->params->catid=$id;}
if (JRequest::getVar('view')=='article') {
         $sql = "SELECT catid FROM #__content WHERE id = .$database->Quote($id) ";
         $database->setQuery( $sql );
         echo($database->loadResult());
}
код вообще бредовый :)
Код: php
if (JRequest::getVar('view') == 'category') {
  $id=JRequest::getInt('id');
} else if (JRequest::getVar('view')=='article') {
  $id=JRequest::getInt('catid');
}
echo 'ID category - '.$id;
*

maestra

  • Захожу иногда
  • 80
  • 6 / 1
Мучает аналогичная проблема. Разница в том, что надо в заголовке статьи публиковать ее ID, но только в том случае если она находится в определенной категории (идентифицировать тоже надо по ID`у категории).

Думаю, что делать это надо не в шаблоне, а непосредственно в com_content. Проблема в том, что не знаю как получить IDы статьи и категории (пытаюсь изучать API Joomla 1.5, но из-за слабости знания английского языка дело продвигается очень медленно...)

Поможете?
*

e-life

  • Осваиваюсь на форуме
  • 26
  • 0 / 1
Код: php
  $id=JRequest::getInt('catid');

При включеном СЕО не работает!
А очень хотелось бы.
Получается только через БД чтоли?
*

vovchikku

  • Захожу иногда
  • 406
  • 1 / 0
парни, удалось решить проблему вывода разных модулей для разного материала если SEO включено?

smokerman, скажите ваш код подойдет для этой задачи? если да, то куда и как вставить вывод определенного модуля?
Цитировать
if (JRequest::getVar('view') == 'category') {
  $id=JRequest::getInt('id');
} else if (JRequest::getVar('view')=='article') {
  $id=JRequest::getInt('catid');
}
echo 'ID category - '.$id;
 
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
vovchikku может это поможет, но не уверен :)
http://joomlaforum.ru/index.php/topic,132312.0.html
*

format1981

  • Новичок
  • 4
  • 0 / 0
Если еще не разобрались с проблемой, то вот ответ

echo $_GET['id'];
echo $_GET['catid'];

работает с seo

вот источник http://forum.joomla.org/viewtopic.php?f=431&t=320868
*

vovchikku

  • Захожу иногда
  • 406
  • 1 / 0
проще поставить advanced module manager
*

LadaDed

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Это нужно делать в default.php в category или куда там переадресация
$this->category->id
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как через AJAX запрос получить только данные из функции, без HTML кода?

Автор lottis

Ответов: 7
Просмотров: 3089
Последний ответ 26.03.2012, 02:40:54
от lottis
Как получить ID для каждого выводимого модуля на странице

Автор enshtein

Ответов: 6
Просмотров: 4999
Последний ответ 12.01.2012, 08:54:19
от enshtein
Параметры материала вызвать в модуле.

Автор SnowB

Ответов: 1
Просмотров: 1172
Последний ответ 07.07.2011, 19:56:32
от Виталик
Событие в плагине перед удалением материала (статьи)

Автор enshtein

Ответов: 4
Просмотров: 1912
Последний ответ 29.05.2010, 01:32:58
от zxs
Как в модели получить объект другой модели?

Автор Виталик

Ответов: 2
Просмотров: 1576
Последний ответ 05.01.2010, 21:31:48
от Виталик