Ответить
лучше в админку скопировать фаил настроик новостей и подставить свои данные
это будет великий момент в истории Фапоса!!!!!!!
Я еще думаю над тем как избежать кучи манипуляций с шаблоном, конфигом, админкй и базой. Хотелось бы, чтобы можно было просто добавить новый модуль и он сам везде проинициализировался. Ну допустим с шаблоном еще понятно, если нет папки под конкретный модуль, юзаются шаблоны из каталога default, с конфигом тоже можно что-то придумать. Пока самое сложное это админка. Там очень многое захардкожено(прописано жестко).
Может написать некий регистратор модулей. Я пока в раздумии. Задача довольно объемная и светлых идей пока нет.
1 2
Клонируем модуль.
Отправлено: 23 Dec 2011#1
И так пришла мне в голову идея запилить модуль блог, за основу я брал модуль новостей.
Что же нужно.
1. Идем в папку с шаблоном клонируем папку 12/html/news и переименовываем склонированную папку в blog.
2. Идем в папку /modules и так клонируем папку news, после чего переименовываем её в blog
3. Открываем файл /modules/blog/index.php (я открывал через Adobe Dreamweawer) и заменяем в файле все news на blog(В Dreamweawer'e это делается достаточно просто, наживаем Ctrl+F в первое текстовое поле вводим "news" без кавычек, во второе "blog" тоже без кавычек и далее нажимаем на кнопку заменить все)
После того как операция выполнена сохраняем файл и выполняем следующие запросы к базе данных. Внимание не забудьте сделать бекап БД перед выполнением запросов.
Запрос №1
Запрос №2
Запрос №3
Запрос №4
Запрос №5
Запрос №6
Далее идем в /sys/settings/config.php
После строк
Добавляем эти строки:
И всё, наш модуль блог готов.
В нем есть несколько недостатков.
- Отсутствие управления из админки
- Отсутствие комментариев
- Отсутствие загрузки изображений.
Что же нужно.
1. Идем в папку с шаблоном клонируем папку 12/html/news и переименовываем склонированную папку в blog.
2. Идем в папку /modules и так клонируем папку news, после чего переименовываем её в blog
3. Открываем файл /modules/blog/index.php (я открывал через Adobe Dreamweawer) и заменяем в файле все news на blog(В Dreamweawer'e это делается достаточно просто, наживаем Ctrl+F в первое текстовое поле вводим "news" без кавычек, во второе "blog" тоже без кавычек и далее нажимаем на кнопку заменить все)
После того как операция выполнена сохраняем файл и выполняем следующие запросы к базе данных. Внимание не забудьте сделать бекап БД перед выполнением запросов.
Запрос №1
Code:
CREATE TABLE IF NOT EXISTS `blog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`main` text NOT NULL,
`views` int(11) DEFAULT '0',
`date` datetime DEFAULT NULL,
`category_id` int(11) NOT NULL,
`author_id` int(11) NOT NULL,
`comments` int(11) NOT NULL DEFAULT '0',
`tags` varchar(255) NOT NULL,
`description` text NOT NULL,
`sourse` varchar(255) NOT NULL,
`sourse_email` varchar(255) NOT NULL,
`sourse_site` varchar(255) NOT NULL,
`commented` enum('0','1') NOT NULL DEFAULT '1',
`available` enum('0','1') NOT NULL DEFAULT '1',
`view_on_home` enum('0','1') NOT NULL DEFAULT '1',
`on_home_top` enum('0','1') NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`main` text NOT NULL,
`views` int(11) DEFAULT '0',
`date` datetime DEFAULT NULL,
`category_id` int(11) NOT NULL,
`author_id` int(11) NOT NULL,
`comments` int(11) NOT NULL DEFAULT '0',
`tags` varchar(255) NOT NULL,
`description` text NOT NULL,
`sourse` varchar(255) NOT NULL,
`sourse_email` varchar(255) NOT NULL,
`sourse_site` varchar(255) NOT NULL,
`commented` enum('0','1') NOT NULL DEFAULT '1',
`available` enum('0','1') NOT NULL DEFAULT '1',
`view_on_home` enum('0','1') NOT NULL DEFAULT '1',
`on_home_top` enum('0','1') NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
Запрос №2
Code:
CREATE TABLE IF NOT EXISTS `blog_add_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`field_id` int(11) NOT NULL,
`entity_id` int(11) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
`id` int(11) NOT NULL AUTO_INCREMENT,
`field_id` int(11) NOT NULL,
`entity_id` int(11) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Запрос №3
Code:
CREATE TABLE IF NOT EXISTS `blog_add_fields` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`name` varchar(100) NOT NULL,
`label` varchar(255) NOT NULL,
`size` int(11) NOT NULL,
`params` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`name` varchar(100) NOT NULL,
`label` varchar(255) NOT NULL,
`size` int(11) NOT NULL,
`params` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Запрос №4
Code:
CREATE TABLE IF NOT EXISTS `blog_attaches` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`entity_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`attach_number` int(11) NOT NULL,
`filename` varchar(100) NOT NULL,
`size` bigint(20) NOT NULL,
`date` datetime NOT NULL,
`is_image` enum('0','1') NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
`id` int(11) NOT NULL AUTO_INCREMENT,
`entity_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`attach_number` int(11) NOT NULL,
`filename` varchar(100) NOT NULL,
`size` bigint(20) NOT NULL,
`date` datetime NOT NULL,
`is_image` enum('0','1') NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Запрос №5
Code:
CREATE TABLE IF NOT EXISTS `blog_comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`entity_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL DEFAULT '0',
`name` varchar(100) NOT NULL,
`message` text NOT NULL,
`ip` varchar(50) NOT NULL,
`mail` varchar(150) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
`id` int(11) NOT NULL AUTO_INCREMENT,
`entity_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL DEFAULT '0',
`name` varchar(100) NOT NULL,
`message` text NOT NULL,
`ip` varchar(50) NOT NULL,
`mail` varchar(150) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Запрос №6
Code:
CREATE TABLE IF NOT EXISTS `blog_sections` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) DEFAULT '0',
`announce` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL,
`view_on_home` enum('0','1') NOT NULL DEFAULT '1',
`no_access` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) DEFAULT '0',
`announce` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL,
`view_on_home` enum('0','1') NOT NULL DEFAULT '1',
`no_access` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
Далее идем в /sys/settings/config.php
После строк
Code:
'news' =>
array (
'title' => 'Новости',
'description' => 'Самые свежие новости',
'max_lenght' => '15000',
'announce_lenght' => '700',
'per_page' => '3',
'active' => '1',
'comment_active' => 1,
'comment_per_page' => '50',
'comment_lenght' => '500',
'max_attaches' => 10,
'max_attaches_size' => 5000000,
'img_size_x' => 300,
'img_size_y' => 200,
'acl' =>
array (
0 => 1,
1 => 2,
2 => 3,
),
'fields' =>
array (
),
),
array (
'title' => 'Новости',
'description' => 'Самые свежие новости',
'max_lenght' => '15000',
'announce_lenght' => '700',
'per_page' => '3',
'active' => '1',
'comment_active' => 1,
'comment_per_page' => '50',
'comment_lenght' => '500',
'max_attaches' => 10,
'max_attaches_size' => 5000000,
'img_size_x' => 300,
'img_size_y' => 200,
'acl' =>
array (
0 => 1,
1 => 2,
2 => 3,
),
'fields' =>
array (
),
),
Добавляем эти строки:
Code:
'blog' =>
array (
'title' => 'Блог',
'description' => 'Блог сайта Life-Stalker.RU',
'max_lenght' => '15000',
'announce_lenght' => '700',
'per_page' => '3',
'active' => '1',
'comment_active' => 1,
'comment_per_page' => '50',
'comment_lenght' => '500',
'max_attaches' => 10,
'max_attaches_size' => 5000000,
'img_size_x' => 300,
'img_size_y' => 200,
'acl' =>
array (
0 => 1,
1 => 2,
2 => 3,
),
'fields' =>
array (
),
),
array (
'title' => 'Блог',
'description' => 'Блог сайта Life-Stalker.RU',
'max_lenght' => '15000',
'announce_lenght' => '700',
'per_page' => '3',
'active' => '1',
'comment_active' => 1,
'comment_per_page' => '50',
'comment_lenght' => '500',
'max_attaches' => 10,
'max_attaches_size' => 5000000,
'img_size_x' => 300,
'img_size_y' => 200,
'acl' =>
array (
0 => 1,
1 => 2,
2 => 3,
),
'fields' =>
array (
),
),
И всё, наш модуль блог готов.
В нем есть несколько недостатков.
- Отсутствие управления из админки
- Отсутствие комментариев
- Отсутствие загрузки изображений.
Edit by author 23 Dec 2011
Отправлено: 23 Dec 2011#3
вот приблизительный список того что и где надо поправить:
но это справедливо для версии 1.2 beta, на последней версии еще не делал ничего.
Создавалось это все не из новостей, а из статей. Новости какие то мудреные немного. Они содержат больше упоминаний в файлах чем статьи.
все изменения проводились в notepad++
Поиск файлов в которых менять проводились в Total commander
На работоспособность моих клонированных модулей можно посмотреть на voproshalka.ru , соответственно создавались модули question и games
p.s. собирался я собирался написать некоторый мануал как расклонировать модуль, но так руки и не дошли. Быть может позже.
Цитата
.htaccess
16 строка Добавляем название модуля
\admin\additional_fieldes.php
строка 32 и 33 добавляем соответственно английские названия и расшифровку для админки
\admin\category.php
строка 33 добавляем в список модули
строка 46 - 50 добавляем модуль и расшифровку
\admin\index.php
строка 53 после нее прописываем модуль
строка 56 приплючовать то что добавили $cnt_
блок 247 - 271 добавить блок с модулем как у других
\admin\
переделать файл news_dis.php, settings_news.php и сохранить с именем модуля
\admin\settings_sys.php
строка 71 добавляем такую же как для статей
строка 222, 223 добавляем такие же для своего
\admin\template\header.php
копируем блок с новостями или статьями и закручиваем его где то на 365 строке, да, его еще надо будет переделать под модуль
\admin\users_rules.php
строка 136 добавляем модули
\admin\users_rules.php.bac
строка 728 добавляем огромный блок с настройками
downloads.php
строка 23 добавляем блок такой же как у статей
Копируем папку модуля, лучше всего статей и меняем index.php
\sys\fnc\document_parser.class.php
строка 385 добавляем блок для RSS
\sys\inc\sitemap.class.php
строка 132, 135 добавляем свой модуль
\sys\settings\acl_rules.php
строка 468 добавляем блок настроек, можно скопировать со статей или новостей
\sys\settings\config.php
строка 93 добавляем блок настроек и описаний
\sys\settings\languages\russian.php
строка 212 прописываем для RSS
\sys\serrings\menu.dat
пытамся разобраться и исправить под новые модули
сериализовать можно тут http://livephp.net/serialize.html
\admin\settings_rss.php
строка 34 добавляем так же как и для остальных
строка 74 добавляем блоки для RSS
\sys\fnc\helpers.lib.php
строка 150 добавить модули
\modules\pages\index.php
строка 112 добавляем блок вывода на главной
строка 146 добавляем вывод автора
Строка 166, 173, 197,
Если надо то правим соответствующие плагины.
16 строка Добавляем название модуля
\admin\additional_fieldes.php
строка 32 и 33 добавляем соответственно английские названия и расшифровку для админки
\admin\category.php
строка 33 добавляем в список модули
строка 46 - 50 добавляем модуль и расшифровку
\admin\index.php
строка 53 после нее прописываем модуль
строка 56 приплючовать то что добавили $cnt_
блок 247 - 271 добавить блок с модулем как у других
\admin\
переделать файл news_dis.php, settings_news.php и сохранить с именем модуля
\admin\settings_sys.php
строка 71 добавляем такую же как для статей
строка 222, 223 добавляем такие же для своего
\admin\template\header.php
копируем блок с новостями или статьями и закручиваем его где то на 365 строке, да, его еще надо будет переделать под модуль
\admin\users_rules.php
строка 136 добавляем модули
\admin\users_rules.php.bac
строка 728 добавляем огромный блок с настройками
downloads.php
строка 23 добавляем блок такой же как у статей
Копируем папку модуля, лучше всего статей и меняем index.php
\sys\fnc\document_parser.class.php
строка 385 добавляем блок для RSS
\sys\inc\sitemap.class.php
строка 132, 135 добавляем свой модуль
\sys\settings\acl_rules.php
строка 468 добавляем блок настроек, можно скопировать со статей или новостей
\sys\settings\config.php
строка 93 добавляем блок настроек и описаний
\sys\settings\languages\russian.php
строка 212 прописываем для RSS
\sys\serrings\menu.dat
пытамся разобраться и исправить под новые модули
сериализовать можно тут http://livephp.net/serialize.html
\admin\settings_rss.php
строка 34 добавляем так же как и для остальных
строка 74 добавляем блоки для RSS
\sys\fnc\helpers.lib.php
строка 150 добавить модули
\modules\pages\index.php
строка 112 добавляем блок вывода на главной
строка 146 добавляем вывод автора
Строка 166, 173, 197,
Если надо то правим соответствующие плагины.
но это справедливо для версии 1.2 beta, на последней версии еще не делал ничего.
Создавалось это все не из новостей, а из статей. Новости какие то мудреные немного. Они содержат больше упоминаний в файлах чем статьи.
все изменения проводились в notepad++
Поиск файлов в которых менять проводились в Total commander
На работоспособность моих клонированных модулей можно посмотреть на voproshalka.ru , соответственно создавались модули question и games
p.s. собирался я собирался написать некоторый мануал как расклонировать модуль, но так руки и не дошли. Быть может позже.
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
------
Не флуди и не да зафлудим будешь!
Отправлено: 23 Dec 2011#4
LIFE-STALKER, Ater, вот ваши бы маны, да соединить и было бы то, что надо.
К стати, чем больше версия, тем меньше мороки с клонированием, так как я стараюсь вообще убирать жесткие упоминания модулей. В скоре можно будет только в одном месте поменять значение и все. Типа
К стати, чем больше версия, тем меньше мороки с клонированием, так как я стараюсь вообще убирать жесткие упоминания модулей. В скоре можно будет только в одном месте поменять значение и все. Типа
1
2
<?php $this->module = 'blog';?>
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 23 Dec 2011#5
Ater делал как ты написал, все норм работает, правда при изменении настроек в модуле сразу страница не перезагружается с новыми настройками. Но это не беда.
Отправлено: 23 Dec 2011#6
LIFE-STALKER пишет:
Далее идем в /sys/settings/config.php
После строк
После строк
Отправлено: 23 Dec 2011#7
Drunya пишет:
В скоре можно будет только в одном месте поменять значение и все.
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
------
Не флуди и не да зафлудим будешь!
Отправлено: 24 Dec 2011#8
Ater пишет:
это будет великий момент в истории Фапоса!!!!!!!
Может написать некий регистратор модулей. Я пока в раздумии. Задача довольно объемная и светлых идей пока нет.
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 24 Dec 2011#9
В принципе если сложить то что написал я и то что написал Ater за что ему спасибо, можно без проблем клонировать модуль, и сделать его полностью работоспособным ничем не отличным.
Только минусы этого:
1. Очень долго, лопатить каждый файл и т.д.
2. Можно запутаться при настройке модуля в админке как это случилось у меня.
Только минусы этого:
1. Очень долго, лопатить каждый файл и т.д.
2. Можно запутаться при настройке модуля в админке как это случилось у меня.

1 2
Сейчас online: 10. Зарегистрированных: 0. Гостей: 10.

