Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сделать правильную CMS [6]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (8): « 1 2 3 4 5 [6] 7 8 »   

> Без описания
Stierus Супермодератор
Отправлено: 23 Ноября, 2011 - 08:59:55
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




фотогалерея - отдельный модуль. вы для каждого модуля ядро цмс менять будете или я чего-то не понял?
 
My status
 Top
caballero
Отправлено: 23 Ноября, 2011 - 10:19:42
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Думаю идея дать юзерам, далеким от IT, настраивать страницы хоть и выглядит привлекательно - на самом деле бесперспективна. Это уже проходили. Не будут они это делать. Программисту сложно понять почему пользоателю, владельцу киоска с товаром непонятно как настроить страницу.
На самом деле заказчики либо нанимают программиста и дергают его потом по каждому чиху, либо берут типа гумлы или укоса и все равно пригашают программиста чтобы он подпилил код или хотя бы настроил несмотря на крутую админку.
Тем более это касается CMS типа друпала где можно собирать свои страницы, но там,по иронии, еще больший мрак.
Имхо.
В CMS нужно пользователю давать возможность только переключать шаблоны (темы) и управлять своим бизнес-контентом. То есть содежимым, картинки статьи и т.д.
Все остальное оставить разработчику в виде инструментария, но сделать так чтобы разработчик менял сайт без усилий. Ему не надо админку чтобы изменить или настроить страницу, ему надо чтобы эту страницу можно было изменить руками (все равно как показывает практика - потом все руками) легко, был понятный и удобный API в ядре для управления контентом и т.д.
Богу-богово, кесарю - кесарево.©


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 24 Ноября, 2011 - 01:34:48
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




caballero пишет:
В CMS нужно пользователю давать возможность только переключать шаблоны (темы) и управлять своим бизнес-контентом.

Наверное, вы правы. Хотя некоторые даже с этим не справятся (у меня были случаи).

И еще вопрос, может немного не по теме, зато по шаблонизатору Улыбка . Короче, когда подключать файл с php-кодом, например через require_once, то php-код, естественно, исполняется. Но когда делать file_get_contents(), а затем print(), то php-код, естественно, не исполняется. Можно как то вывести строку, в которой содержится верстка + php-код, так чтобы этот php-код исполнился? Просто мне сейчас удобно было бы в шаблоне заменять некоторые макросы, вида "{имя_макроса}", на php-код. Но не знаю как потом сделать чтобы эта строка, так сказать, пропарсилась. Подскажите мне это пожалуйста. Заранее спасибо.
 
 Top
sKaa
Отправлено: 24 Ноября, 2011 - 04:20:00
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Спойлер (Отобразить)

Я сам для таких целей писал. Что делает этот класс, он загружает шаблоны, парсит макросы {*} на соотвествующий файл, собирает полученную страницу в один большой файл, сохраняет его в кэш, чтоб каждый раз не парсить и потом если надо загружает из кэша.
Спойлер (Отобразить)

Вообщем как-то так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Ноября, 2011 - 06:21:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




sKaa не то, и почему-то возникла ассоциация с фильмом "жмурки",
когда михалков заходит в помещение где была стрельба и говорит: "Ох, ну и накрошили, накрошили...".
morph-x если уж пошли таким путем, то без eval не обойтись. Придется выцеплять по strpos начало и конец кода и выполнять, но это будет все долго.
У меня и шаблонизатора как такового нет, но шаблоны есть.
Есть метод assign, типа как у sKaa set, но нет метода parse.
sKaa пишет:
{name}
DeepVarvar пишет:
<?=$name?>

sKaa пишет:
{arr} ...и много еще действий чтоб вернуть отшаблоненный макрос
DeepVarvar пишет:
<?php foreach ($arr as $a) { ?>
<div><?=$a['name']?></div>
<?php } ?>
Мне хватает с головой.
PHP:
скопировать код в буфер обмена
  1. function draw() {
  2.   // check template file stored
  3.   if ($this->gtpl === null)
  4.     die("<center><br /><br /><br /><h4>You don't have template!!!</h4></center>");
  5.   // extract all assigned variables
  6.   extract($this->vars);
  7.   // draw template
  8.   require_once($this->gtpl);
  9.   }

Так же остается возможность инклюдить любую хрень в шаблонах, которая так же преспокойно "пропарсится".
(Добавление)
sKaa еще насторожила строка 18.
 
 Top
morph-x
Отправлено: 27 Ноября, 2011 - 04:05:21
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Привет всем! Вот, лазил все это время по интернету, прочитал пару хороших статей, уже более-менее перепродумал архитектуру своей CMS (теперь все-таки юзаю MVC). Ну и как же без вопросов Улыбка ? Вопрос для Drupal'истов. Как там работают блоки? Они вроде бы в БД, хранятся но можно юзать PHP, и это показалось мне немного странным. Вот например самый простой код:


Если его тупо загнать в eval(), то выдает ошибку. Разве что можно делать так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $code = file_get_contents('something.php');
  3. eval('?>'.$code.'<?PHP ');
  4. ?>

Но вряд-ли в Drupal используют такой подход с eval() этими дополнениями до ('?>') и после ('<?php') переменной в которой содержится код. В самом Drupal'е немного рылся но не нашел, просто я относительно недавно с ним знаком. Ну и вот, подскажите, пожалуйста, как они там это делают, а то у меня быдлокод наверное получился.

(Отредактировано автором: 27 Ноября, 2011 - 04:07:03)

 
 Top
morph-x
Отправлено: 27 Ноября, 2011 - 17:06:29
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




А не уже сам разобрался. Там в Drupal таки есть это: eval('?>'.$code);

(Отредактировано автором: 27 Ноября, 2011 - 17:08:10)

 
 Top
morph-x
Отправлено: 30 Ноября, 2011 - 00:31:32
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Привет всем! Вот, у меня опять тупик. Короче, теперь модуль Content как бы главный, который управляет содержимым сайта. А его уже расширяют другие (Pages, Materials, Galleries и т.д.). И я вот вижу только два варианта, как расширить модуль Content.

1-й -- это при обращении к модулю Content, (например http://www.example.com/content/view/63) можно определять тип контента (страницы в БД) и соответственно уже или подгружать нужные функции или использовать что-то вроде событий или хуков или что-то в этом роде.

2-й -- это обращаться к этим модулям-расширениям (Pages, Materials, Galleries и т.д.) напрямую, (например http://www.example.com/galleries/view/32) при этом делать их дочерними классами класса Content, чтобы можно было использовать его функционал.

Вот, пока-что все. Подскажите какой из них лучше, или предложите свой. Заранее спасибо!
 
 Top
caballero
Отправлено: 30 Ноября, 2011 - 01:12:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
теперь модуль Content как бы главный, который управляет содержимым сайта. А его уже расширяют другие


Что значит "расширяют"
Если это наследование то он родительский а не главный

Обычно в MVC фреймворках есть некий супер крнтроллер или диспетчер который управляет другими контроллерами (по сути модулями)

То есть главный модуль это какбы не совсем модуль а центральное ядро движка которое обеспечивает жизненный цикл всего остального


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 30 Ноября, 2011 - 01:20:49
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




caballero, извините, я имел ввиду не главный системный. Я имел ввиду что он управляет контентом, т.е. страницами. А его уже расширяют модули для работы с разными типами страниц - галереями, гостевыми книгами и т.д.

Но все же, какой из двух выше представленных способов лучше? Или предложите свой, если кто знает получше Подмигивание .

(Отредактировано автором: 30 Ноября, 2011 - 01:21:34)

 
 Top
caballero
Отправлено: 30 Ноября, 2011 - 10:10:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
он управляет контентом, т.е. страницами.

Контент и сраницы не одно и тоже. Контент - содержимое страниц и на страницу может вводится контент с нескольких модулей. Вы можете показывать поиск по статьям а сбоку крутить популярные картинки с галерей и т.д.

Как лучше никто не знает - иначе бы все CMS имели одинаковую архитектуру.

Вообще первый способ наверно лучше. Но опять же то что в URL указано gallery не означает что идет обращение только к модулю галерей. В большинстве случаев обращение идет к главному диспетчеру а он уже перенаправляет запрос модулю который подтягивает шаблон и формирует страницу либо сам диспетчер подтягивает шаблон и вызывает методы модулей для заполнения шаблона.

Раз упомянули MVC то уже ничего нового там не изобретете. Посмотрите как устроена архитектура у других CMS можно начать с CI как самого простого. Как минимум там готовый код а не то что на форуме на пальцах рассказывают.

Либо у вас своя идея для архитектуры и вопрос как организовать модули уже должен быть решен. Либо вы не знаете как - тогда какая разница откуда взять готовое решение - с форума, статей, готовых систем и т.д.











.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
WhyNot
Отправлено: 23 Января, 2012 - 21:52:19
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Смотрите в сторону MODxCMF. Работает как фреймворк, и как цмс. Есть юзабельная админка как в популярных цмс, с минимальным набором функций. Удобный АПИ.
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Января, 2012 - 22:32:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




caballero пишет:
Просто делайте сайт а не пытайтесь применить что то лишь бы применить. Особенно когда не понимаете что это и зачем.
Здорово
 
 Top
morph-x
Отправлено: 29 Января, 2012 - 01:47:29
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Привет всем! Как долго я сюда не заглядывал Улыбка . Так вот, CMS как бы готова, но творческая работа никогда не может быть завершена. Система сама по себе получилась маленькая, и сейчас все это ООП только код размазало. Да и работать с ней тяжело как-то (я имею ввиду модули писать и исправлять что-то). И я задумался, что если переписать ее в обычном процедурном стиле? По-моему, в маленькой системе для сайтов-визиток, без наворотов, без системы управления блоками ООП будет излишне. Более того, вместо БД я использую просто файлы. Я решил сделать очень минимальный функционал, и сосредоточится на удобности. Что скажете насчет этого?
 
 Top
caballero
Отправлено: 29 Января, 2012 - 09:10:19
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
и сейчас все это ООП только код размазало

Точнее было бы сказать что это ты размазал код не умея применять OОП , которое как раз предназначено для обратного - инкапсуляция однако.

Цитата:
Что скажете насчет этого?

Творческая работа предполагает развитие и соверщенствование а не деградацию. Если ниасилил - учи матчасть. Так можно вообще вернутся к обычному HTML или CGI


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (8): « 1 2 3 4 5 [6] 7 8 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB