Создание модулей на Mobilecms
1.
ZipeR (18.09.2010 / 05:42)
Народ обьясните как создать страницы или перетачивать какие то разделы для этого движка? Там просто инклудами не сделаешь, вообщем мне код просто мозг вынес
2.
Олег (18.09.2010 / 07:07)
Там все понятно, создаешь страницы в модуле "Страницы" (при создании можно использовать XHTML разметку для создания своей структуры ссылок, картинок, и прочего), вывести страницу в нужном месте на главной тоже не составляет большой проблемы.
3.
ZipeR (18.09.2010 / 09:29)
А подробнее можно объяснить?
4.
Олег (18.09.2010 / 09:43)
Зайти на адрес.сайта/index_page/admin.php нажать в нужном разделе "Добавить виджет", выбрать модуль "Страницы", а потом сохранив нажать кнопку "Настроить" на виджете и указать id страницы.
Сами ссылки потом можно передвигать вверх/вниз соответствующими кнопками рядом с ними.
5.
ZipeR (18.09.2010 / 10:19)
А на сервере как настраивать модули та? Там что какие то файлы надо создавать я так понял,просто так не получится а то что ты сказал это после настройки кода же...
6.
ZipeR (18.09.2010 / 10:19)
Удалено
7.
Олег (18.09.2010 / 11:00)
В чужом коде без косяка не разобраться
8.
ZipeR (18.09.2010 / 12:41)
Блин чё за лажа происходит фиг поймешь. Автор хоть документацию бы дал по созданию и перетачиванию файлов.
9.
WCO (18.09.2010 / 15:28)
Обратится в тему движка религия не позволяет?
Автор там точно появится, нежели здесь.
10.
delete (18.09.2010 / 15:41)
каждый модуль состоит из 4 элементов.
controllers - в этой папке хранятся файлы для управлением модуля, так сказать юзерская часть и админская, что б научится составлять их, нужно читать маны по smarty.
helpers - инсталятор и деинсталятор модуля, для того что бы установить его или отключить, по сути он добавляет нужные таблицы
упрощеный вариант установки новых модулей в обычных движках.
views - сдесь хранятся шаблоны к модулю для обработки шаблонизатором.
module.ini - файл настроек так сказать.
11.
delete (18.09.2010 / 15:57)
разбираем код модуля, важные места комментирую
на примере Новостей.
controllers
юзерская часть
<?php
/**
* Ant0ha's project
*
* @package
* @author Anton Pisarenko <wapwork@bk.ru>
* @copyright Copyright (c) 2006 - 2010, Anton Pisarenko
* @license http://ant0ha.ru/license.txt
* @link http://ant0ha.ru
*/
//---------------------------------------------
defined('IN_SYSTEM') or die('<b>403<br />Запрет доступа!</b>'); // проверяем является ли файл, файлом движка и разрешен ли к нему доступ
/**
* Новости, пользовательская часть
*/
final class News_Controller extends Controller {
/**
* Constructor
*/
//создаем конструктор для шаблонизатора
public function __construct() {
parent::__construct();
}
/**
* Действие по умолчанию
*/
public function action_index() {
$this->action_list_news();
}
/**
* Детализирование новости
*/
public function action_detail() {
if(!$news = $this->db->get_row("SELECT * FROM #__news WHERE news_id = '". intval($_GET['news_id']) ."'"))
a_error('Новость не найдена!');
$this->tpl->assign(array(
'news' => $news
));
$this->tpl->display('detail'); // читаем данные с базы, запускаем обработку шаблона и выводим содержимое на экран
}
/**
* Листинг новостей
*/
public function action_list_news() {
# Получение данных
$list_news = $this->db->get_array("SELECT SQL_CALC_FOUND_ROWS n.*,
(SELECT COUNT(*) FROM #__comments_posts WHERE module = 'news' AND item_id = n.news_id) AS comments
FROM #__news AS n ORDER BY n.news_id DESC LIMIT $this->start, $this->per_page");
$total = $this->db->get_one("SELECT FOUND_ROWS()");
# Навигация
$pg_conf['base_url'] = a_url('news', 'start=');
$pg_conf['total_rows'] = $total;
$pg_conf['per_page'] = $this->per_page;
a_import('libraries/pagination');
$pg = new CI_Pagination($pg_conf);
$this->tpl->assign(array(
'list_news' => $list_news,
'total' => $total,
'pagination' => $pg->create_links()
));
$this->tpl->display('list_news');
} // читаем данные с базы, запускаем обработку шаблона и выводим содержимое на экран, навигация
/**
* Скрыть последнюю новость
*/
public function action_hide_last_news() {
if(ACCESS_LEVEL < 5) a_error('У вас нет прав на выполнение этой операции!');
$this->db->query("UPDATE #__users SET hide_last_news = 'yes' WHERE user_id = '". USER_ID ."'");
header("Location: ". URL);
exit;
}
}
?>
12.
delete (18.09.2010 / 16:06)
админскую часть описывать не буду, принцип тот же только там функции для добавления и удаления новостей.
helpers
это инсталятор модуля
<?php
/**
* Ant0ha's project
*
* @package
* @author Anton Pisarenko <wapwork@bk.ru>
* @copyright Copyright (c) 2006 - 2010, Anton Pisarenko
* @license http://ant0ha.ru/license.txt
* @link http://ant0ha.ru
*/
defined('IN_SYSTEM') or die('<b>403<br />Запрет доступа!</b>');
//---------------------------------------------
/**
* Хелпер установки модуля
*/
class news_installer {
/**
* Установка модуля
*/
public static function install(&$db) {
$db->query("CREATE TABLE #__news (
`news_id` int(11) NOT NULL auto_increment,
`subject` varchar(100) NOT NULL,
`text` text NOT NULL,
`time` int(11) NOT NULL,
PRIMARY KEY (`news_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
"); // заливаем таблицы для модуля
}
/**
* Деинсталляция модуля
*/
public static function uninstall(&$db) {
$db->query("DROP TABLE #__news;");
} // деинсталлируем таблицы, если надо выключить модуль, по причине ненадобности
}
?>
13.
delete (18.09.2010 / 16:33)
views - папка с шаблонами для модуля.
default - папка длю шаблона юзерской части
list_news.tpl - собственно сам файл шаблона.
<?php $this->display('header.tpl', array('sub_title' => 'Новости')) ?> // выводим информацию в титле
<div class="title"><img src="<?php echo URL ?>views/<?php echo THEME ?>/img/titl.gif" class="ico" alt="" /><b>Новости</b></div> //заголовок модуля
<?php if(!empty($list_news)): ?>
<?php foreach($list_news as $news): ?>
<div class="menu">
<b><?php echo $news['subject'] ?></b> [<?php echo date('d.m.Y', $news['time']) ?>]<br />
<?php echo $news['text'] ?><br />
<a href="<?php echo a_url('comments', 'module=news&item_id='. $news['news_id'] .'&return='. urlencode(a_url('news', 'start='. @$_GET['start'], TRUE))) ?>">Комментарии (<?php echo $news['comments'] ?>)</a>
</div>
<?php endforeach; ?>
<?php else: ?>
<div class="block">
<b>Новостей нет</b>
</div>
<?php endif; ?>
<?php if($pagination)
echo '<div class="block">'. $pagination .'</div>';
?>
<div class="block">
<?php if(ACCESS_LEVEL >= 5): ?>
<a href="<?php echo a_url(MAIN_MENU) ?>">В кабинет</a><br />
<?php endif; ?>
<a href="<?php echo URL ?>">На главную</a>
</div> // тело модуля, все элементы от навигации до коментариев (обратите внимание на условия)
<?php $this->display('footer') // обрабатываем и выводим низ сайта ?>
14.
delete (18.09.2010 / 16:40)
и
mobile.ini собственно эта информация для админской панели управления всеми модулями
[Module info]
name = "news"
title = "Новости"
admin_link = "news/admin"
description = "Модуль новостей"
15.
delete (18.09.2010 / 16:57)
вот видите, не так и трудно писать модули к этому движку
кода намного меньше чем если бы мы писали для других движков.
16.
ZipeR (18.09.2010 / 17:32)
11 и 12 пост просто убил напроч,я чё то не пойму. Вот к примеру граб куда его код мастырить?
17.
delete (18.09.2010 / 17:52)
16.
ZipeR, почему это он тебя убил, в движке применяется модульная система
это вполне удобно
а что бы написать модуль который не использует базу данных и которому админка ненужна, просто не пиши там ни чего
для начала почитай мануалы по smarty, без этого в движке нечего делать
http://www.smarty.net/manual/ru/ ток хреново что Антоха внес изменения, и теперь там одного мануала мало, надо ценить код.
18.
delete (18.09.2010 / 17:55)
если это вообще смарту а не его собственный шаблонизатор, я все что написал выше, это лиш зашел в двиг и описал что вижу
сам то не юзаю его, но модуль написать смогу.
19.
ZipeR (18.09.2010 / 19:27)
18. Во во
я эт тоже видел, Антоха говорил про документацию про созданию этого но так и не написал
20.
delete (18.09.2010 / 19:56)
а толку писать мануалы, движок не для новичков, тут шапки и ноги поменять, и вот вам новый модуль)) не получится
прейдется перербатывать весь код
и писать шаблон.
21.
ZipeR (19.09.2010 / 08:38)
ну тогда навик этот Mobilecms нужен...
22.
Azzido (19.09.2010 / 09:13)
21, вот она, политика многих,чуть столкнулся с трудностями,и все,впопятную
23.
ZipeR (19.09.2010 / 09:31)
22. да автор мог бы и докуметацию дать и вообще писать для народа что был комфорт и удобство.
24.
Azzido (19.09.2010 / 10:19)
23.
ZipeR, для народа, и для ленивых людей которые дальше echo ничего не захотели изучать это разные понятия
25.
WCO (19.09.2010 / 10:36)
23, автор, кстати говоря сделал большое одолжение.
это единственный паблик движок в вапе который действительно продуманно сделан.
а всякие дцмс'ы и и джоны нервно курят в сторонке.
А модули нужно писать не вам, а специально обученному человеку.
26.
eihwaz07 (19.09.2010 / 14:23)
Azzido (19 Сентября 2010 / 09:13)
21, вот она, политика многих,чуть столкнулся с трудностями,и все,впопятную
неее... Оправдывать лень конечно не стоит, но и автора, впрочем тоже.
Если он решил прибегнуть к такой реализации, то доки, хотя бы описание общей логики и API, были бы очень к месту. Я не говорю что нужно писать мануалы, туториалы на тему "Как впендюрить в систему нужный скрипт", так как сам не люблю "нашлепки" делать, стараюсь следовать идеологии той или иной CMS.
Однако, наличие доков, о которых я писал выше, сэкономило бы некоторое время мне при выполнении заказа, сэкономило бы также время и уменьшило потерю нервных клеток автора двига, вынужденного отвечать на вопросы. А что, потом можно бы было сказать: "Читай описание, либо обращайся к программистам если не понимаешь, так как это серьезная CMS для понимающих людей" (хых, слоган получился).
А сейчас все выглядит так, будто это система для одного программиста - ее автора.
27.
Studentsov (19.09.2010 / 16:36)
Хорошо, что хоть этот движок будет мало где и сайты на нём будут более хорошие, так как новички просто не осилят
28.
Ant0ha (19.09.2010 / 20:07)
документация будет, но сроков конкретных сказать не могу, пока нет на них времени
29.
Ant0ha (19.09.2010 / 20:13)
Денис Петрович, благодарю, очень хорошо описал
30.
delete (19.09.2010 / 20:25)
Ant0ha (19 Сентября 2010 / 20:13)
Денис Петрович, благодарю, очень хорошо описал
самое основное, это описать какой модуль для чего предназначен и мануал по шаблонизатору, все ни чего он и не сложный движок
просто в вапе движки на MVC только последний год-полтора как стали появлятся
люди не освоились еще.
31.
delete (19.09.2010 / 20:33)
ну и люди не оценили преимущество шаблонов, например взять практически любой двиг с паблика, максимум к чему сводится его модификация, эт поменять местами пару ссылок, и эт не только лень, еще и то что xhtml и php код в перемешку, плохо читаем, что переделать внешний вид по себя, надо не одну ночь сидеть и редачить весь движок, с шаблонами все просто, редактируем лиш их, не боясь повредить функционал движка.
32.
delete (19.09.2010 / 20:35)
и можно брать любой набор шаблонов с паблика, их сотни тысяч, каких хош, и видоизменять движок до неузнаваемости, разве не надоело сидеть на однотипных движках, которые у каждого третего вап мастера.
33.
Ant0ha (19.09.2010 / 20:36)
угу, а, еще хотел спросить) при чем тут доки по смарти, его же там нет) или ты имеешь ввиду для того чтоб понять принцип отделения логики от отображения? я бы рекомендовал читать руководство пользователя по CodeIgniter
http://code-igniter.ru - идея архитектуры движка взята с него)
34.
delete (19.09.2010 / 20:48)
33.
Ant0ha, ты просто один файл назвал smarty я и подумал что у тебя он, а когда открыл его, и вообще заценил шаблоны, понял что это не он
но уже было позно, написал))) ну если люди почитали мануал что я выложил, думаю им не во вред, пора уже привыкать к MVC моделям.
35.
Ant0ha (20.09.2010 / 15:12)
Да, там есть смарти, иногда некоторые заказчики просят делать скрипты именно на смарти - приходится делать, хотя сам по себе к смарти я очень негативно отношусь.
36.
Богдан (20.09.2010 / 15:35)
Да...очень напоминает CI .. трудновато конешн новичкам будет перейти на этот двиг, но оно того стоит.намного проще потом расширять функционал, писать модули.
Только вместо <?php echo 'test'; ?> имхо лучше использовать <?='test'?> -кода меньше и смотрится как то боле приятней
37.
Ant0ha (20.09.2010 / 15:53)
не хочется чтоб в будущем были проблемы с совместимостью... сейчас больше принято писать <?php echo 'test'; ?>
38.
Studentsov (20.09.2010 / 15:54)
G_A_N_J_A_R (20 Сентября 2010 / 15:35)
Да...очень напоминает CI .. трудновато конешн новичкам будет перейти на этот двиг, но оно того стоит.намного проще потом расширять функционал, писать модули.
Только вместо <?php echo 'test'; ?> имхо лучше использовать <?='test'?> -кода меньше и смотрится как то боле приятней
Не рекомендуется твой вариант, его вырежут в 5.4
39.
Богдан (20.09.2010 / 15:57)
хм...спс за инфу.не знал.
40.
Михаил (20.09.2010 / 16:05)
Studentsov_нет_ничо1 (20 Сентября 2010 / 15:54)
Не рекомендуется твой вариант, его вырежут в 5.4
Вроде в 6.0 обещали вырезать. Уже в 5.4 начнут?
41.
Studentsov (20.09.2010 / 16:11)
Flyd (20 Сентября 2010 / 16:05)
Вроде в 6.0 обещали вырезать. Уже в 5.4 начнут?
6.0 отложен на неопределённое время, 5.4 = 6.0 - юникод + чёткое разделение типов
42.
Ant0ha (20.09.2010 / 16:18)
чтоб не писать постоянно вручную <?php echo $var ?> решил проблему очень просто, создал в php expert editor'е макрос, нажимаю Alt+X у меня сразу выскакивает <?php echo | ?> и теперь печатается это еще быстрей чем переменная в смарти или <?=''?>
43.
ZipeR (20.09.2010 / 17:16)
28.
Ant0ha, ты упрость или опиши подробно тогда куда код другой писать...
44.
Ant0ha (20.09.2010 / 18:10)
лучше чем Денис Петрович я врядли опишу.. да и самому пока некогда этим заниматься...
45.
delete (20.09.2010 / 18:15)
Ant0ha (20 Сентября 2010 / 18:10)
лучше чем Денис Петрович я врядли опишу.. да и самому пока некогда этим заниматься...
ну видимо он хочит, что бы не просто описывали что к чему, но еще и читали php сценарий, но какой тогда смысл работать с движком, не зная MySQL, xhtml и php.
46.
Саша (21.05.2011 / 22:46)
Помогите с разработкой модуля, он у меня не устанавливается, всё зделал по шаблону ну ничего неполучилось, что может я зделал не так
47.
Кирилл (22.05.2011 / 09:53)
Открыт раздел на оф сайте для помощи с разработкой модулей под движок.
Пользуемся
48.
Саша (24.05.2011 / 23:10)
47.
Plato, да там некто непомагает, тема уже 3 дня и даже некто не ничего не написал
URL:
https://visavi.net/topics/13803