Хочу сделать каталог статей. Как?
Хочу сделать каталог статей. Как?
Собственно первым делом мне пришла в голову мысль установить модуль Articles, что я и сделал.
Модуль появился в админке и когда я перехожу по ссылке "Add articles" - выскакивает ошибка:
Fatal error: Call to a member function on a non-object in /home/..../www/modules/Articles/action.manage.php on line 415
А в самих модулях сказано что "Максимальная поддерживаемая версия CMSMS = 1.1.2" для этого модуля, а у меня стоит версия 1.4.1
Может есть какой-то другой модуль для добавления статей?
Или может как-то можно вылечить эту ошибку?
Спасибо.
Модуль появился в админке и когда я перехожу по ссылке "Add articles" - выскакивает ошибка:
Fatal error: Call to a member function on a non-object in /home/..../www/modules/Articles/action.manage.php on line 415
А в самих модулях сказано что "Максимальная поддерживаемая версия CMSMS = 1.1.2" для этого модуля, а у меня стоит версия 1.4.1
Может есть какой-то другой модуль для добавления статей?
Или может как-то можно вылечить эту ошибку?
Спасибо.
- Il_Burbero
- Forum Members
- Posts: 128
- Joined: Tue Apr 15, 2008 10:36 am
Re: Хочу сделать каталог статей. Как?
Статьи это Контент. Зачем городить модуль для добавления Контента? Создавайте Контент и каталогизируйте его как хотите.
Делаете Контент "Статьи"(http://wiki.cmsmadesimple.org/index.php/User_Handbook/Getting_Started/Editor/Add_Content), делаете нужные разделы, в Контенте "Статьи" делаете меню или ставите вручную ссылки на нужные разделы где добавляете меню - создаете в Менеджере меню (http://wiki.cmsmadesimple.org/index.php/User_Handbook/Admin_Panel/Layout/Menu_Manager) нужный вам шаблон и пишете вызов меню.
Например у меня такая иерархия
Секция заголовка "Статьи"
Секция заголовка "Тема 1"
Статья 1
Статья 2
Секция заголовка "Тема 2"
Статья 1
Статья 2
Все это красиво подбирается меню с шаблончиком и получается красивая менюшка где щелкаешь на Статьи появляются секции заголовков Тема1 и Тема2, а при щелчке на Тема1 раскрывается список статей.
"Максимальная поддерживаемая версия" не всегда актуальна, некоторые модули работают несмотря на то что текущяя версия выше максимума.
В вашем случае увы. Налицо конфликт. Надо лезть в код и смотреть что там написано. Но я лично не вижу смысла в установке модуля Articles все решается встроенным Content.
Делаете Контент "Статьи"(http://wiki.cmsmadesimple.org/index.php/User_Handbook/Getting_Started/Editor/Add_Content), делаете нужные разделы, в Контенте "Статьи" делаете меню или ставите вручную ссылки на нужные разделы где добавляете меню - создаете в Менеджере меню (http://wiki.cmsmadesimple.org/index.php/User_Handbook/Admin_Panel/Layout/Menu_Manager) нужный вам шаблон и пишете вызов меню.
Например у меня такая иерархия
Секция заголовка "Статьи"
Секция заголовка "Тема 1"
Статья 1
Статья 2
Секция заголовка "Тема 2"
Статья 1
Статья 2
Все это красиво подбирается меню с шаблончиком и получается красивая менюшка где щелкаешь на Статьи появляются секции заголовков Тема1 и Тема2, а при щелчке на Тема1 раскрывается список статей.
"Максимальная поддерживаемая версия" не всегда актуальна, некоторые модули работают несмотря на то что текущяя версия выше максимума.
В вашем случае увы. Налицо конфликт. Надо лезть в код и смотреть что там написано. Но я лично не вижу смысла в установке модуля Articles все решается встроенным Content.
Re: Хочу сделать каталог статей. Как?
Эмм. Если я верно понял, то этот способ подразумевает под собой создание подкатегория в разделе "Статьи"... Т.е. если я в левой колонке нажму на статьи, откроется подменю со статьями - верно?
Если так, то статей будет добавляться много и не хотелось чтобы ссылка на каждую статью появлялась в подменю. Хочется чтобы я в левой колонке щелкнул на ссылке статьи, а в правой широкой колонке появился бы список статей (ссылки на них). http://firmaspb.ru/articles/ (сейчас там левый текст)
Можете показать ссылку на ваш сайт как это реализовано?
Если так, то статей будет добавляться много и не хотелось чтобы ссылка на каждую статью появлялась в подменю. Хочется чтобы я в левой колонке щелкнул на ссылке статьи, а в правой широкой колонке появился бы список статей (ссылки на них). http://firmaspb.ru/articles/ (сейчас там левый текст)
Можете показать ссылку на ваш сайт как это реализовано?
Re: Хочу сделать каталог статей. Как?
Так. Проблема отпала. Каталог статей я соорудил. Необходимо было добавить еще 1 модуль под названием "ModuleXtender". Каталог статей получился такой: http://firmaspb.ru/articles/
Но вот осталась еще 1 проблема... Урлы к статьям совсем не ЧПУ.
Т.е. такое совершенно не устраивает: http://firmaspb.ru/index.php?mact=Artic ... eturnid=51
Хочется примерно так: http://firmaspb.ru/articles/1/
Я реализовал такую возможность для всего сайта благодаря вот этому доку:
http://wiki.cmsmadesimple.org/index.php ... retty_URLs
Но вот на раздел "Статьи" почему-то mod_rewrite не распространяется. Похоже что надо редактировать .htaccess или config.php?
Подскажите, пожалуйста, что сделать?
Сейчас в .htaccess такой код:
Но вот осталась еще 1 проблема... Урлы к статьям совсем не ЧПУ.
Т.е. такое совершенно не устраивает: http://firmaspb.ru/index.php?mact=Artic ... eturnid=51
Хочется примерно так: http://firmaspb.ru/articles/1/
Я реализовал такую возможность для всего сайта благодаря вот этому доку:
http://wiki.cmsmadesimple.org/index.php ... retty_URLs
Но вот на раздел "Статьи" почему-то mod_rewrite не распространяется. Похоже что надо редактировать .htaccess или config.php?
Подскажите, пожалуйста, что сделать?
Сейчас в .htaccess такой код:
Code: Select all
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Re: Хочу сделать каталог статей. Как?
А я не понимаю зачем так мучится с дополнительными модулями. То, что у тебя стоит с правой стороны (список статей с ссылками) - это же меню и есть. Вставляешь туда {menu start_page="articles"} и все. И ЧПУ стандартно работает и список автоматически формируется.
- Il_Burbero
- Forum Members
- Posts: 128
- Joined: Tue Apr 15, 2008 10:36 am
Re: Хочу сделать каталог статей. Как?
Что ж вы ухватились за модуль Артиклес как за соломинку:)? Ессно не работает ЧПУ, не на всех модулях работает ЧПУ, я бы даже сказал на единицах. У этого модуля видно ЧПУ не работаетmetarad wrote: Так. Проблема отпала. Каталог статей я соорудил. Необходимо было добавить еще 1 модуль под названием "ModuleXtender". Каталог статей получился такой: http://firmaspb.ru/articles/
Но вот осталась еще 1 проблема... Урлы к статьям совсем не ЧПУ.
Т.е. такое совершенно не устраивает: http://firmaspb.ru/index.php?mact=Artic ... eturnid=51
Хочется примерно так: http://firmaspb.ru/articles/1/
Я реализовал такую возможность для всего сайта благодаря вот этому доку:
http://wiki.cmsmadesimple.org/index.php ... retty_URLs

Ввиду сложности (вернее громоздкости запроса"Articles,cntnt01,details,0&cntnt01documentid=1&cntnt01returnid=51") реализации вызова модуля и его функций хтаксесс вам не поможет, замучаетесь правила писать да и все равно основное правило (для ЧПУ ядра"RewriteRule ^(.+)$ index.php?page=$1 [QSA]") перекроет все.
Видно вы плохо изучили доки по ядру, а именно Контенту и Менеджеру меню. Все можно ограничить и все можно настроить.
Никто не запрещает вам запретить в основном меню пробегание по подкаталгу Статьи и никто не запрещает вам использовать для этого подкаталога свой шаблон и выводить подменю (опять же со своим шаблоном!) куда, где и как угодно.
Например основной шаблон и главное меню дает ссылку на подкаталог Статьи и все что находится в подкаталоге не выводит (читайте http://wiki.cmsmadesimple.org/index.php ... nu_Manager). Подкаталог Статьи это страница (обычная) и на ней делаете вызов меню где ограничиваете выведение только содержимого этого подкаталога (см. пост Сони), а использовав какой то другой шаблон для меню вы можете значительно украсить внешний вид каталога. Напихать на страничку пять меню тоже никто не запрещает (по меню на раздел подкаталога, напр на стр. Статьи выводится раздел Компьютеры (алиас computery) (или ставится ссылка) и под ним пишется вызов меню {menu start_page="computery"}.
А еще в шаблон меню можно воткнуть подхват инфы из description и получится ссылка с описанием - красота, юзабилити и SEO!
Конечно при большом нагромождении вы теряете в автоматизации, но выигрываете в полном контроле содержимого!
Сие дает куда как больше возможностей чем возня с дополнительными модулями. И самое главное вы получаете красивую SEO оптимальную структуру для страниц (робот видит ссылку на главной странице переходит и индексирует все ваши статьи кушая грамотные анкоры, ой отвлекся, СЕО мой конек

Вы просили мой сайт, дык он в профайле, смотрите. Мне там статьи не мешают:) Можно оставить для роботов ссылки на главной странице на все страницы сайта и при помощи встроенных возможностей сделать красивое меню. Да и яву или ява фрэймворки цеплять никто не мешает, только заключайте их в специальные теги (см Smarty руководство).
И запомните, у КМС встроенных возможностей тьма, прежде чем искать модуль попробуйте посмотреть на задачу нетривиально и возможно модуль вам не понадобится.
Re: Хочу сделать каталог статей. Как?
Спасибо большое Il_Burbero и Sonya за ответы. Реализовал по вашему совету... Модуль Articles удалил 
Осталась лишь проблема с title в новостях... Т.е. когда я добавляю новость - ее заголовок не идет в title, что плохо для SEO. А может есть какой-то SEO-модуль, при помощи которого можно редактировать любой любой страницы?
Спасибо.

Осталась лишь проблема с title в новостях... Т.е. когда я добавляю новость - ее заголовок не идет в title, что плохо для SEO. А может есть какой-то SEO-модуль, при помощи которого можно редактировать любой любой страницы?
Спасибо.
- Il_Burbero
- Forum Members
- Posts: 128
- Joined: Tue Apr 15, 2008 10:36 am
Re: Хочу сделать каталог статей. Как?
Я написал плагинчик http://forum.cmsmadesimple.org/index.php/topic,23490.0.html. Можете потестить.
Правда он не решает всех проблем (т.к. тайтлы и описания все же дублируются в некоторых местах, но это не так критично как их полное отстутсвие
ну и механизм генерации кейвордов немного неточен т.к. не хотелось особо напрягать сервер с анализом и извлечением ключевиков из русского текста, так примитивная схема наибольшего употребительного слова ну и еще я не особо заморачивался потому что поисковики (крупные) на кейворды вообще не реагируют).
Если будет глючить или что не понятно спрашивайте сразу там же.
Ну и поройтесь по русской ветке, тема поднималась уже.
Правда он не решает всех проблем (т.к. тайтлы и описания все же дублируются в некоторых местах, но это не так критично как их полное отстутсвие

Если будет глючить или что не понятно спрашивайте сразу там же.
Ну и поройтесь по русской ветке, тема поднималась уже.
Re: Хочу сделать каталог статей. Как?
Спасибо... Но не совсем то. Генерация мне в принципе не нужна... Хотя бы для каждой страницы имелась бы возможность задать жесткий title и того бы хватило... Допустим в админке появилось бы новое поле для каждой существующей страницы. Оперировать общим тайтлом и заголовками не удобно. А description и уж тем более keywords в век современного развития поисковых систем практически не играют роли.
- Il_Burbero
- Forum Members
- Posts: 128
- Joined: Tue Apr 15, 2008 10:36 am
Re: Хочу сделать каталог статей. Как?
metarad нужно просто разделить что ты хочешь тайтлы для Новостей или тайтлы для простых страниц Контента?
Дело в том что блок News работает так: генерируется согласно заданным параметрам по шаблону превью со ссылками на полную новость. При нажатии на ссылку генерится полная новость по заданному шаблону. Модуль не создает отдельных страниц для каждой новости, он их генерит из БД на лету, динамически либо при вызове конкретного URL новости (URL содержит команду вызова модуля и адрес (ID) конкретной новости). Я просто пытаюсь попонятнее объяснить
. В общем ты как бы остаешься постоянно на странице где вызывается модуль, отсюда такие траблы с тайтлам. Заголовок остается неизменным и генерится до того как генерится модуль News.
Еще могу подсказать теоретический метод. Не пробовал но должен работать.
Создаете основной пустой шаблон типа:
На нужной Вам странице делаете вызов модуля типа:
и выбираете "пустой" шаблон (detailpage='pagealias' это алиас страницы где вызывается News, т.е. там где делаете вызов модуля).
Затем шаблоны summary и detail преобразуете к полному ХТМЛ (можно скопировать шаблон по умолчанию и заменить {title} и {content} и еще чего нить на нужное вам) с хедером и контентом где переменные берете из модуля News. Например шаблон summary делаете такой (грубая схема доработать надо):
Шаблон detail делаете подобным только указываете все нужные фишки для полной новости.
Поясню что вы делаете, вы вызываете пустой шаблон с {content} и в нем уже выстраиваете HTML страницу, т.е. можете контролировать и даже при желании ТИП документа (для этого правда нужен мини плугин где будет перехват заголовков).
Подобным методом я реализовал выдачу валидного RSS на отдельной странице с добавлением цитаты последней измененной страницы. Т.е. у меня выдается чистый ХМЛ причем с содержанием которое мне нужно и на отдельной странице Контента, а не генерится чертиче через модуль Ньюс.
А обычная страница (что в админке на вкладке КОнтент) там же есть тайтл - тегу {title} соотвествует содержимое поля "Заголовок".
Дело в том что блок News работает так: генерируется согласно заданным параметрам по шаблону превью со ссылками на полную новость. При нажатии на ссылку генерится полная новость по заданному шаблону. Модуль не создает отдельных страниц для каждой новости, он их генерит из БД на лету, динамически либо при вызове конкретного URL новости (URL содержит команду вызова модуля и адрес (ID) конкретной новости). Я просто пытаюсь попонятнее объяснить

Еще могу подсказать теоретический метод. Не пробовал но должен работать.
Создаете основной пустой шаблон типа:
Code: Select all
{content}
Code: Select all
{news number="5" detailpage='pagealias' summarytemplate='summary' detailtemplate="detail"}
Затем шаблоны summary и detail преобразуете к полному ХТМЛ (можно скопировать шаблон по умолчанию и заменить {title} и {content} и еще чего нить на нужное вам) с хедером и контентом где переменные берете из модуля News. Например шаблон summary делаете такой (грубая схема доработать надо):
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<__html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
{foreach from=$items item=entry}
<title>{$entry->title}</title>
</head>
</__body>
{if $entry->summary}{eval var=$entry->summary}
{elseif $entry->content}{eval var=$entry->content}
{/if}
<__body>
</__html>
{/foreach}
Поясню что вы делаете, вы вызываете пустой шаблон с {content} и в нем уже выстраиваете HTML страницу, т.е. можете контролировать и даже при желании ТИП документа (для этого правда нужен мини плугин где будет перехват заголовков).
Подобным методом я реализовал выдачу валидного RSS на отдельной странице с добавлением цитаты последней измененной страницы. Т.е. у меня выдается чистый ХМЛ причем с содержанием которое мне нужно и на отдельной странице Контента, а не генерится чертиче через модуль Ньюс.
А обычная страница (что в админке на вкладке КОнтент) там же есть тайтл - тегу {title} соотвествует содержимое поля "Заголовок".
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Хочу сделать каталог статей. Как?
Я немного не так извернулся... Когда мне нужны были тайтлы динамических блоков я делал следующим образом:
1. в моем модуле добавлял новую переменную для основного класса
2. создал плугин для смарти (/plugins/function.my_title.php):
3. В шаблоне: Сайт - {my_title}
ЗЫ... Понимаю, что заплатка, зато быстро и просто
1. в моем модуле добавлял новую переменную для основного класса
Code: Select all
$gCms->MyTitle = 'MyTitle'; // в зависимости от того, когда и что мне нужно - свой текст...
Code: Select all
...
function smarty_cms_function_my_title($params, &$smarty) {
global $gCms;
return isset($gCms->MyTitle) ? ' - ' . $gCms->MyTitle : '';
}
...
ЗЫ... Понимаю, что заплатка, зато быстро и просто
