RewriteRule ^articles\.html$ index.php?articles=yes [L] RewriteRule ^show_articles_([0-9]+)\.html$ index.php?fullarticles=$1 [L]Обрати внимание на articles и fullarticles. Дальше ты их увидишь.
2. Создаем в БД таблицу аналогичную по структуре новостям (news_table) articles_table (не забываем о префиксе БД).
-- Структура таблицы `articles_articles` DROP TABLE IF EXISTS `articles_table`; CREATE TABLE IF NOT EXISTS `articles_table` ( `NID` int(11) NOT NULL AUTO_INCREMENT, `add_date` date DEFAULT NULL, `title` text, `textToPrePublication` text, `textToPublication` mediumtext, `textToMail` text, `add_stamp` int(11) DEFAULT NULL, PRIMARY KEY (`NID`) ) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=0 ; COMMIT;3. Вносим изменения в файл core/config/tables.inc.php: находим
if ( !defined('NEWS_TABLE') ) { define('NEWS_TABLE', 'sun_news_table'); и копируем - меняем - добавляем, и получаем if(!defined('ARTICLES_TABLE')) { define('ARTICLES_TABLE', 'articles_table'); }4. core/languages/russian.php - тут все копируем, что касалось новостей и переименовываем, например: define('ADMIN_ARTICLES', 'Статьи');
5. setting_constants.sql добавляем
insert into SETTINGS_TABLE (settings_groupID, settings_constant_name, settings_value, settings_title, settings_description, settings_html_function, sort_order) VALUES (2, 'CONF_ARTICLES_COUNT_IN_CUSTOMER_PART', '3', 'Количество записей в блоках статей', 'Пожалуйста, укажите, сколько ссылок показывать в блоках статей магазина.', 'setting_TEXT_BOX(2,', 11); insert into SETTINGS_TABLE (settings_groupID, settings_constant_name, settings_value, settings_title, settings_description, settings_html_function, sort_order) VALUES (2, 'CONF_ARTICLES_COUNT_IN_ARTICLES_PAGE', '10', 'Количество записей на странице статей', 'Пожалуйста, укажите, сколько последних статей показывать на странице с аннотациями', 'setting_TEXT_BOX(2,', 12); insert into BLOCKS_TABLE (title, content, bposition, active, which, sort, html, url, admin, about, pages, dpages, categories, products) VALUES ('Статьи', '', 4, 1, 0, 9, 1, 'articles.tpl.html', 0, 'Краткий блок статей. Без вывода краткого текста статьи.', 'a:0:{}', 'a:0:{}', 'a:0:{}', 'a:0:{}'); insert into BLOCKS_TABLE (title, content, bposition, active, which, sort, html, url, admin, about, pages, dpages, categories, products) VALUES ('Обзор статей', '', 2, 0, 1, 17, 1, 'articles_center.tpl.html', 0, 'Центральный блок статей. Выводит заголовок и краткое описание статьи.', 'a:1:{i:0;s:13:"home.tpl.html";}', 'a:0:{}', 'a:0:{}', 'a:0:{}');
6. core/functions/news_function.php копируем в core/functions/articles_function.php
В нем хранятся все функции по работе с новостями(для нас уже будут для работы со статьями), в этом файле (articles_function.php) переименовываем функции, например так:
было function newsGetNewsToCustomer() стало articlesGetArticlesToCustomer(), не забываем также о константах в файле, их нужно так же переименовать, например, NEWS_TABLE переименовываем на ARTICLES_TABLE (эта константа у нас нами была прописана в core/config/tables.inc.php). В принципе, во всех файлах, что я правил я заменял news на articles, для унификации так сказать.
7. Копируем core/includes/news.php в core/includes/articles.php . Правим его (переименовываем функции, константы, переменные). Именно этот скрипт и отвечает за обработку темплейтов статей (потом скопируем и их show_articles.tpl.html, show_full_articles.tpl.html). В этом же скрипте указаны имена GET POST переменных (см. выше .htaccess)!!!!!!! они сквозные по всему движку (articles, fullarticles)
ну и т.д.
8. И чтоб добавить в админку - core/tpl/admin/menu.tpl.html
после 501 строчки (примерно так <div class="dvmenu">
<table class="adn"><tbody><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="%7B$smarty.const.ADMIN_FILE%7D?dpt=modules&sub=news">{$smarty.const.ADMIN_NEWS}</a></td></tr></tbody></table> ) добавляем
<table class="adn"><tbody><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="%7B$smarty.const.ADMIN_FILE%7D?dpt=modules&sub=articles">{$smarty.const.ADMIN_ARTICLES}</a></td></tr></tbody></table>9. core/includes/admin/modules.php добавляем так чтоб получилось:
$admin_dpt = array( "id" => "modules", //department ID "sort_order" => 40, //sort order (less `sort_order`s appear first) "name" => ADMIN_MODULES, //department name "sub_departments" => array ( array("id"=>"news", "name"=>ADMIN_NEWS), array("id"=>"articles", "name"=>ADMIN_ARTICLES), array("id"=>"survey", "name"=>ADMIN_VOTING), array("id"=>"shipping", "name"=>ADMIN_STRING_SHIPPING_MODULES), array("id"=>"payment", "name"=>ADMIN_STRING_PAYMENT_MODULES), array("id"=>"linkexchange", "name"=>ADMIN_STRING_MODULES_LINKEXCHANGE), array("id"=>"yandex", "name"=>"Яндекс.Маркет" ) ) ); add_department($admin_dpt);В темплайтах тоже самое творим.
10. core\tpl\admin\modules_articles.tpl.html
11. core\includes\head.php после строки 25
elseif (isset($_GET["fullnews"])) // fullnews => get title ....
добавить по аналогии
elseif (isset($_GET["fullarticles"])) // fullarticles => get title { $fullnews_array_head = articlesGetFullArticlesToCustomer($_GET["fullarticles"]); if ($fullnews_array_head["title"]) $page_title = $fullnews_array_head["title"].". ".CONF_SHOP_NAME; else $page_title = CONF_DEFAULT_TITLE.". ".CONF_SHOP_NAME; $meta_tags = ""; if ( CONF_HOMEPAGE_META_DESCRIPTION != "" ) $meta_tags .= "<meta name="\"description\"" content="\"".CONF_HOMEPAGE_META_DESCRIPTION."\"/">\n"; if ( CONF_HOMEPAGE_META_KEYWORDS != "" ) $meta_tags .= "<meta name="\"keywords\"" content="\"".CONF_HOMEPAGE_META_KEYWORDS."\"/">\n"; }