Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

Обсуждаем новые идеи для MaxSite CMS

Свободное общение.
Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Обсуждаем новые идеи для MaxSite CMS

Сообщение MAX » 02 ноя 2012, 13:31

Думаю сделать ряд изменений в MaxSite CMS, но перед этим хотелось бы всё-таки обсудить, чтобы лишних «дров» не наломать. Плюс, может кто-то свои идеи предложит.

Задач несколько.

1. Нужно сделать так, чтобы верстать сайт можно было бы с любым css-фреймворком.
2. Вынести type-файлы из default-шаблона. То есть default-шаблон ничем не отличается от других.
3. Сделать свой less-фреймворк, состоящий из различных стилей разных элементов.

Эти задачи связаны между собой, поэтому придется их решать комплексно. Теперь подробней.

1. Уже сейчас нет сложностей подключить произвольный фреймворк к MaxSite CMS. Подключение автоматом, а в последней 0.764 я добавил style.php (по аналогии с var_style.php) через который подключается свой css-файл, но при этом не подключаются default-стили. То есть в текущем варианте подключение стилей возможно в любых комбинациях и здесь проблем нет. Проблемы возникают в том, что другие фреймворки используют другую html-разметку и другие css-классы. Если стили main.php в целом нормальные и скорее всего не потребуют переделки, то в type-файлах наблюдается некий «зоопарк». Нет каких-то четких правил именований css-классов. Раньше, впрочем, и задачи такой не стояло, поэтому я особо и не задумывался.

Отсюда предложение: обсудить верстку type-файлов. В первую очередь должна быть какая-то единая схема html-блоков и css-классов. Если даже расположение div-блоков и прочих html-элементов не трогать, то в плане именования сделать что-то вроде префикса mso_ чтобы отличать служебные классы MaxSite CMS от всех остальных.

Правда остается проблема указания произвольных и дополнительных классов. Например у нас есть

<div class="type type_page">

Пусть будет

<div class="mso_type mso_type_page">

Но, если я хочу добавить свой класс, то никаким другим способом, кроме как правка type или type_foreach-файла нет.

Мы уже сталкивалиь с подобной задачей, когда переопределяли стили для виджетов и т.п. Это делается через mso_set_val() в functions.php. Технически мы можем сделать тоже самое (или аналог), только это усложнит код в type-файлах.

Плюс такого подхода ещё в том, что сохранится совместимость с предыдущими шаблонами, ну и добавится большая гибкость для type-файлов. С другой стороны возможно, что дополнительные классы нафиг не нужны и текущей схемы более чем достаточно.

2. Уже не раз убеждался - хочешь сделать нормально, посмотри на WordPress и сделай наоборот. В default-шаблоном получилась такая же история. Причем был под боком хороший пример b2-evo, где некоторые файлы вынесены вне шаблонов. В нашем случае самым ярким примером будут type-файлы. Раньше мы как-то обсуждали этот вопрос, но решили, что нет смысла выносить файлы вне default-шаблона - какая разница откуда их подключать? Но сейчас я столкнулся с ограничениями, которые будут только усиливаться.

Простой пример. Нужно организовать вывод главной колонками. Мы берём type/home.php и организуем свой вывод. На практике же куда выгодней один раз сделать подобный типовой модуль и не биться с ним каждый раз.

Сейчас реализовать подобную схему можно, но это приведет к путанице. Мне бы хотелось сделать так, чтобы любой вебмастер мог сделать как свой модуль для вывода, так и воспользоваться стандартным вариантом.

Расположение в default-шаблоне само по себе не страшно, но создаёт некоторые проблемы понимания работы шаблона, особенно у новичков. Лишнаяя путаница ни к чему, поэтому я предлагаю всё-таки вынести файлы, которые используются другими шаблонами в какой-то отдельный каталог. Например в maxstite/framework. Если раньше всё подключалось из default, то теперь всё будет из framework (имя каталога - предмет для обсуждений).

Туда же переносятся functions-template.php, все type-файлы, общие stock-файлы, возможно некоторые компоненты (тут подумать ещё нужно), а также main-start.php и main-end.php (они из type-файлов подключаются, но имеют неизменный код). Может какие-то ini-файлы, но тут определимся позже.

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

Отдельно о type-файлах. Подключение файлов по имени равному типу данных хорошая идея, но немного ограниченная. Проблема в расширяемости. Например даже типовой вариант главной использует home.php и home-cat-block.php. Для page это тоже нескольоко файлов. Поэтому более логически было бы распределять файлы по каталогам.

type/home/*.php - главная
type/page/*.php - записи
...

Но и это еще не всё. Некоторые type-файлы имеют сложный html-вывод. Например page-comment-form.php. В этих файлах я предлагаю перейти на php-шаблонизатор (Page_out) (http://maxsite.org/page/shablonizator-i ... axsite-cms) Как вариант мы можем рассмотреть шаблонизатор на tpl-файле. Тут высказывайте свои замечания и пожелания, я склоняюсь к Page_out, поскольку с ним меньше кода и работает он быстрей.

3. Теперь по поводу less-фреймворка. Я не люблю css-фреймворки из-за их однобокости и «туповатости». Вместо этого мы могли бы сделать less-фреймворк, состоящий их наборов миксов(), которые можно было бы использовать в любом шаблоне, включая сторонний - вне MaxSite CMS. Весь буржунет уже кипит от возможностей less и мы можем оказаться не в отстающих, как это обычно бывает, а на «волне». В последних уроках я показал пример микса кнопки аля-бутстрап, только произвольно настраиваемую. Таким способом можно наделать кучу элементов, хоть тот же бутстрап «передизайнить». Ну и опять же, эти миксы будут в базовом каталоге framework.

Просьба высказаться по всем пунктам. Изменения достаточно серьёзные, поэтому давайте сразу опрделим спорные моменты и их обсудим.

Аватар пользователя
Cuprum
Модератор
Сообщений: 766
Зарегистрирован: 01 фев 2009, 21:22

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение Cuprum » 03 ноя 2012, 17:19

1. По поводу именования классов - я например привык к использованию type_... Если добавить 3 буквы, не думаю, что что-то изменится. Если новичкам будет понятнее, что это служебные классы системы, ради бога. Добавить возможность модифицировать типовые классы через mso_set_val() конечно можно, но, как мне кажется, это будет маловостребовано. Мне больше приходилось выпиливать класс "type" из классов блока для комментариев(<div class="type type_page_comments">).

2. А какое преимущество даст вынос типовых файлов в отдельную папку? Если кому-то надо организовать кастомный вывод в своем шаблоне, как не крути все равно ведь придется размещать модифицированный type-файл в папке шаблона. Размещение type файлов по каталогам, наверное, не надо, не так их и много. Вот если говорить о type_foreach, то там можно так сделать. Иногда путаюсь, все таки 94 файла. Насчет шаблонизатора ничего не скажу, не компетентен.

3. Согласен, миксы можно составить - кнопки, оформление таблиц и т.д.

famous
Сообщений: 7
Зарегистрирован: 27 окт 2012, 12:50

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение famous » 03 ноя 2012, 19:31

хотелось бы все-таки увидеть что-то типа конфига: выводить записи колонками?, кол-во колонок для вывода и т.д. Чтобы новичек смог не лазя в код, изменить вывод контента.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение MAX » 04 ноя 2012, 10:21

Мне больше приходилось выпиливать класс "type" из классов блока для комментариев(<div class="type type_page_comments">).


Чем он мешает? Это общий класс для любого блока type-файла. Но вообще в идеале, нужно всё-таки позволить вебмастеру задавать произвольные классы любого блока... Что если придумать что-то вроде отдельного массива для любого div-блока?.. Тогда задавать будет даже проще. Но вот код type-файла, конечно усложнится.

2. А какое преимущество даст вынос типовых файлов в отдельную папку? Если кому-то надо организовать кастомный вывод в своем шаблоне, как не крути все равно ведь придется размещать модифицированный type-файл в папке шаблона. Размещение type файлов по каталогам, наверное, не надо, не так их и много.


В этом и есть проблема. Вывод может быть разным для одного type-файла. Сейчас, чтобы добавить свой вывод нужно менять type-файл. Но всё это происходит в пределах одного шаблона. Если мы вынесем эти файлы вне default, да ещё и поменяем способ подключения, то файлы станут доступны для всех шаблонов. Если же менять в default, то возникнет проблема совместимости со старыми шаблонами.

Да и идеологически type-файлы должны находиться несколько выше по «иерархии» - в них получаются данные, а это всегда перед непосредственным html-выводом.


Вот если говорить о type_foreach, то там можно так сделать. Иногда путаюсь, все таки 94 файла.


Эти файлы останутся в шаблоне. У них и задача работать на уровне шаблона.

hangglide
Сообщений: 5
Зарегистрирован: 02 ноя 2012, 22:33

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение hangglide » 04 ноя 2012, 10:24

Я еще только начал изучение вашего движка и сейчас пытаюсь понять смогу ли перенести свой проект с wordpress на maxsite.
Возможно некоторые функции я просто еще не узнал, но пока тема актуальна хочу выразить интерес к таким функциям как: wp_insert_term, term_exists, wp_insert_post, дабы расширить возможности юзеров, а также возможность переписки и загрузки аватары.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение MAX » 04 ноя 2012, 10:27

famous писал(а):хотелось бы все-таки увидеть что-то типа конфига: выводить записи колонками?, кол-во колонок для вывода и т.д. Чтобы новичек смог не лазя в код, изменить вывод контента.


Вот этот как раз наглядный пример ограничения текущей схемы подключения type-файлов. Чтобы добавить другой вывод, придется прелопатить кучу кода. То что я предлагаю позволит подключать произвольный вывод по любой схеме, хоть колонками, хоть ячейками. Даже если не делать переключение через админ-панель, то вебмастеру будут уже доступны готовые модули вывода. Нужно будет только их прописать подключение в своём шаблоне.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение MAX » 04 ноя 2012, 10:30

hangglide писал(а):Я еще только начал изучение вашего движка и сейчас пытаюсь понять смогу ли перенести свой проект с wordpress на maxsite.
Возможно некоторые функции я просто еще не узнал, но пока тема актуальна хочу выразить интерес к таким функциям как: wp_insert_term, term_exists, wp_insert_post, дабы расширить возможности юзеров, а также возможность переписки и загрузки аватары.


В MaxSite CMS другая схема работы, поэтому если хотите разобраться самостоятельно, то рекомендую начать с основ, после посмотреть ядро (каталог common), дальше уже с выводом шаблона.

Аватар пользователя
Cuprum
Модератор
Сообщений: 766
Зарегистрирован: 01 фев 2009, 21:22

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение Cuprum » 04 ноя 2012, 13:51

Что если придумать что-то вроде отдельного массива для любого div-блока?.. Тогда задавать будет даже проще.

А можно пример, не совсем улавливаю как это будет работать.

То что я предлагаю позволит подключать произвольный вывод по любой схеме, хоть колонками, хоть ячейками. Даже если не делать переключение через админ-панель, то вебмастеру будут уже доступны готовые модули вывода. Нужно будет только их прописать подключение в своём шаблоне.

Опять же хотелось бы поподробнее. Вот мы вынесли все type-файлы в отдельный каталог. Вебмастер делает свой шаблон, в котором, допустим, надо реализовать вывод колонками на главной. В чем ему будет легче с этой т.з.? Ему же все равно придется изменять home.php и подключать в своем шаблоне. Или как ? ;)

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение MAX » 04 ноя 2012, 16:07

А можно пример, не совсем улавливаю как это будет работать.


Ну например так:

Код: Выбрать все

mso_set_val('css', 'type_home', 'type_home type');
mso_set_val('css', 'type_page', 'type_page type');


В файле functions.php.


Опять же хотелось бы поподробнее. Вот мы вынесли все type-файлы в отдельный каталог. Вебмастер делает свой шаблон, в котором, допустим, надо реализовать вывод колонками на главной. В чем ему будет легче с этой т.з.? Ему же все равно придется изменять home.php и подключать в своем шаблоне. Или как ?


Код не буду приводить, можно посмотреть пример в max-vehicle для type/home.php. Сам файл home.php - только для подключения различных модулей (units). Это прощи удобней, чем дефолтный home.

Аватар пользователя
Cuprum
Модератор
Сообщений: 766
Зарегистрирован: 01 фев 2009, 21:22

Re: Обсуждаем новые идеи для MaxSite CMS

Сообщение Cuprum » 05 ноя 2012, 12:28

можно посмотреть пример в max-vehicle для type/home.php

Посмотрел. В общих чертах примерно понятно.
Кстати, попробовал тут обновляться через гитхаб. Очень удобно ;) Хорошо, что появилась такая возможность.


Вернуться в «Курилка»

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей