Перейти к содержимому


Модуль статьи


  • Закрытая тема Тема закрыта
Сообщений в теме: 9

#1 vsupport

    Продвинутый пользователь

  • Администраторы
  • 758 сообщений
Репутация: 31
Ассистент

Отправлено 21 June 2011 - 11:08 AM

1. Файл .htaccess, добавляем строчки:
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&amp;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&amp;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="\&quot;description\&quot;" content="\&quot;&quot;.CONF_HOMEPAGE_META_DESCRIPTION.&quot;\&quot;/">\n";
								if  ( CONF_HOMEPAGE_META_KEYWORDS != "" )
										$meta_tags .= "<meta name="\&quot;keywords\&quot;" content="\&quot;&quot;.CONF_HOMEPAGE_META_KEYWORDS.&quot;\&quot;/">\n";
		}

  • 0

#2 Robby

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 162 сообщений
Репутация: 75
Продвинутый

Отправлено 22 July 2011 - 09:46 PM

В версии ShopCMS 3.1.2 сделанное по данной инструкции работать не будет. Чтобы заработало нужно еще!!! в core\includes\admin\sub\ создать файл modules_articles.php скопировать в него содержимое файла modules_news.php из этого же каталога, провести замену всех news на articles (рекомендую пользоваться редакторами сохраняющими регистр текста, например "Blumentals WeBuilder 2011" ). В пункте 8 чтоб добавить в админку - core/tpl/admin/menu.tpl.html ... вставлять нужно так <table class="adn topj"> а не так <table class="adn"> иначе будет криво отображаться (класс для первого элемента, если вставить такой же дальше, нижний элемент будет прилипать к верхнему, смотриться не красиво).
<table class="adn topj"><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&amp;sub=articles">{$smarty.const.ADMIN_ARTICLES}</a></td></tr></table>

  • 0

#3 otrubin

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений
Репутация: 0
Начинающий

Отправлено 15 August 2011 - 01:47 PM

Админ, подскажи, пожалуйста, этот модуль статьи тоже самое что и здесь ?
  • 0

#4 vsupport

    Продвинутый пользователь

  • Администраторы
  • 758 сообщений
Репутация: 31
Ассистент

Отправлено 15 August 2011 - 01:56 PM

Админ, подскажи, пожалуйста, этот модуль статьи тоже самое что и здесь ?

ДА!
  • 0

#5 Robby

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 162 сообщений
Репутация: 75
Продвинутый

Отправлено 15 August 2011 - 06:42 PM

Админ, подскажи, пожалуйста, этот модуль статьи тоже самое что и здесь ?


Скорее всего это не совсем тоже самое. Например в том модуле статей можно задавать META-теги description и keywords, здесь это не возможно. Это описание того как в принципе можно сделать модуль статьи. Но эта инструкция не совсем точная и как я уже говорил не совсем рабочая. Кроме всего что здесь описано, нужны еще в таблице ваш_префикс_settings создать две таблицы по аналогии с CONF_NEWS_COUNT_IN_CUSTOMER_PART и CONF_NEWS_COUNT_IN_NEWS_PAGE заменив соответственно NEWS на ARTICLES, и "новости" на "статьи". Только после этого это все заработает. Но будет еще недостаток - количество статей будет ограниченно также как и новостей настройками в админке и не будет постраничной разбивки статей. В том модуле это все есть. Но как вариант экономии 25 WMZ можно сделать и по этой инструкции.
  • 0

#6 otrubin

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений
Репутация: 0
Начинающий

Отправлено 15 August 2011 - 08:34 PM

Скорее всего это не совсем тоже самое.

Да, я тоже когда внимательно посмотрел пришёл к такому выводу. Сейчас вот думаю чего делать. Статьи для SEO нужны. Может тот модуль купить. Вот ещё ShopKod - модули для ShopCMS но уж сильно дорого.
  • 0

#7 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 18 August 2011 - 09:09 AM

Может кто-то подскажет как сделать так чтобы была возможность в админке прикрепить статьи к категории или товару на выбор
  • 0

#8 websat

    Пользователь

  • Пользователи
  • PipPip
  • 11 сообщений
Репутация: 1
Начинающий

Отправлено 01 September 2011 - 04:55 PM

Скорее всего это не совсем тоже самое. Например в том модуле статей можно задавать META-теги description и keywords, здесь это не возможно. Это описание того как в принципе можно сделать модуль статьи. Но эта инструкция не совсем точная и как я уже говорил не совсем рабочая. Кроме всего что здесь описано, нужны еще в таблице ваш_префикс_settings создать две таблицы по аналогии с CONF_NEWS_COUNT_IN_CUSTOMER_PART и CONF_NEWS_COUNT_IN_NEWS_PAGE заменив соответственно NEWS на ARTICLES, и "новости" на "статьи". Только после этого это все заработает. Но будет еще недостаток - количество статей будет ограниченно также как и новостей настройками в админке и не будет постраничной разбивки статей. В том модуле это все есть. Но как вариант экономии 25 WMZ можно сделать и по этой инструкции.

Вопрос... Где находится "таблица ваш_префикс_settings"?
  • 0

#9 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 01 September 2011 - 05:07 PM

Вопрос... Где находится "таблица ваш_префикс_settings"?


Лезешь в свою таблицу например через phpMyAdmin и находишь таблицу SETTINGS
  • 0

#10 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 13 April 2012 - 09:07 AM

Более актуальная версия модуля "Статьи" >> Модуль статьи
  • 0