Искать  
 
   
 
Как вытащить id категории из url_title
Отправлено: 16 Май 2010 10:15 P.M.   [ Игнорировать ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Есть вывод новости с url http://***.ru/news/nazvanie_novosti/, как от сюда вытянуть id категории? нужно для того, чтобы реализовать “Похожие записи”.

 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 16 Май 2010 11:09 P.M.   [ Игнорировать ]   [ # 1 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

плагин Entry Id

 Подпись 

booooring…

Профиль
 
 
Отправлено: 16 Май 2010 11:23 P.M.   [ Игнорировать ]   [ # 2 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Что то не понятно, как с ним работать.
Вот что есть и как надо сделать:

{exp:weblog:entries weblog="news" limit="1"}
{title}
{
/exp:weblog:entries}

Читайте также
:
{exp:weblog:entries weblog="news" limit="5" category="параметр"}
{title}
<br/>
{/exp:weblog:entries} 

Вот такая схемка, если в плагине можно это реализовать, то как? ничего не понял там :(

 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 17 Май 2010 12:43 A.M.   [ Игнорировать ]   [ # 3 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

Вариант 1:
внутри вывода записи можно сделать

{categories}{category_id}{/categories} 

Вариант 2:
Как всегда запросик:)

{exp:query sql="
SELECT cp.cat_id
FROM exp_weblog_titles AS wt
LEFT JOIN exp_category_posts AS cp ON cp.entry_id = wt.entry_id
WHERE wt.url_title = '{segment_3}' LIMIT 1"
}
{cat_id}
{
/exp:query} 
Профиль
 
 
Отправлено: 17 Май 2010 08:23 A.M.   [ Игнорировать ]   [ # 4 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Так если я сделаю внутри записи {categories}{category_id}{/categories} , то я просто узнаю id категории первой записи, а как вставить этот id в похожие записи то? в этом и заключается вопрос smile

 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 17 Май 2010 11:09 A.M.   [ Игнорировать ]   [ # 5 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Проблему решил вот таким венегретом smile

{exp:query sql="SELECT entry_id FROM exp_weblog_titles WHERE url_title = '{segment_2}'"}
{entry_id}
{exp
:query sql="SELECT cat_id FROM exp_category_posts WHERE entry_id = '{entry_id}'"}
{cat_id}

{exp
:weblog:categories show="{cat_id}"}
{category_name}
{
/exp:weblog:categories}

{exp
:weblog:entries limit="4" weblog="news" disable="trackbacks|pagination|member_data|category_fields|categories" category="{cat_id}" dynamic="off"}
{title}
<br/>
{/exp:weblog:entries}      

{
/exp:query}  
{
/exp:query} 
 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 17 Май 2010 11:26 A.M.   [ Игнорировать ]   [ # 6 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27
{exp:query sql="
SELECT cp.cat_id
FROM exp_weblog_titles AS wt
LEFT JOIN exp_category_posts AS cp ON cp.entry_id = wt.entry_id
WHERE wt.url_title = '{segment_3}' LIMIT 1"

Почему этот запрос не подешл? Он же лучше и всего один, чем твоих два

Профиль
 
 
Отправлено: 17 Май 2010 11:29 A.M.   [ Игнорировать ]   [ # 7 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Он не заработал, просто пусто было, когда вводил cat_id.
Пришлось написать свой, простой и элементарный запросег smile

 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 17 Май 2010 11:37 A.M.   [ Игнорировать ]   [ # 8 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

segment_3 может потому что стоит=)
Я по памяти писал

Профиль
 
 
Отправлено: 17 Май 2010 11:38 A.M.   [ Игнорировать ]   [ # 9 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Я менял на 2 smile

 Подпись 

Я в космосе

Профиль