Jump to content
  • 0

Flexo CMS — для небольших и средних проектов


Ялекс
 Share

Question

Добрый день.

Хочу представить небольшую систему управления содержимым сайта под названием Flexo CMS.

Flexo CMS — система управления сайтом на PHP, использует базу данных MySQL либо SQLite. Является open-source решением, распространяется по лицензии GPL v3. Основные принципы системы: гибкость, расширяемость, маленький размер. Система будет удобна как разработчикам, так и пользователям. Основные сферы применения: личные сайты, блоги, портфолио, галереи, корпоративные, новостные сайты.

Система обладает рядом возможностей:

  • Не ограниченный уровень вложенности страниц
  • Удобное API для подключения плагинов (на основе системы событий)
  • Удобный доступ к дереву сайта для построения разнообразных меню
  • Плагины Page images и Page fields, позволяющие подключить неограниченное количество изображений и полей к страницам
  • Удобный плагин файлового менеджера, который интегрирован в плагин WYSIWYG-редактора, поэтому вставлять различный медиа-контент в редактор удобно
  • Плагин WYSIWYG-редактора с возможностью настройки панелей кнопок
  • Возможность использовать PHP-код вместо WYSIWYG-редактора
  • Несколько пользовательских ролей: Администратор, Разработчик, Редактор
  • Гибкие шаблоны. Можно встроить любой код, любую HTML-разметку. Есть возможность отдавать данные разного типа, например, JSON, XML
  • Миниатюрный MVC фреймверк. В системе используется ООП подход
  • Человекопонятные URL. (можно использовать без включенного модуля mod_rewrite). Кириллические URL адреса
  • Небольшой размер установочного архива (не больше мегабайта)
  • Высокая скорость работы (плагин кэширования позволяет увеличить производительность на достаточно больших проектах)

Требования:

  • PHP 5+ (желательно 5.2+)
  • MySQL либо SQLite

Если Flexo CMS вас заинтересовала и возникли вопросы — с радостью отвечу в этой теме.

Edited by Ялекс
  • Like 1
Link to comment
Share on other sites

Recommended Posts

  • 0

Как насчёт таксономии а ля Друпал? Или иначе связывания страниц друг с другом.

Пока такой функциональности не предусмотрено, но частично заменяется наличием тэгов.

Link to comment
Share on other sites

  • 0

Кэширование на уровне страниц происходит или блоков тоже? Настраивается отдельно для ролей: гостя, админа?

Есть два типа кэширования: динамическое, статическое. В Flexo CMS понятие «блок» отсутствует, но есть понятие «часть» страницы. Например главная страница имеет часть body и может иметь часть sidebar. Страницы-потомки могут наследовать часть sidebar у главной страницы.

Динамическое кэширование предполагает кэширование объектов, которые включают в себя всю информацию о странице (заголовок, ключевые), включая «части» страниц, и инфорамцию, которая прикреплена с помощью плагинов Page image (прикрепленные изображения) или Page fields (прикрепленные поля). PHP-код, который содержится в «частях» будет исполнятся. По сути такое кэширование экономит запросы к БД.

Статическое кэширование полностью заносит в кэш сгенерированный HTML страницы.

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

Можно включить «Автоматическую чистку кэша» — при добавлении или изменении страниц кэш будет отчищаться автоматически.

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

Edited by Ялекс
Link to comment
Share on other sites

  • 0

А есть примеры готовых проектов на данной системе, но не сайтов из 5-ти страниц?

Флексо — это прокаченный фрог, поэтому смело можно смотреть сюда. Сейчас готовлю к выходу проект с довольно большим каталогом товаров, ссылку могу потом кинуть в ЛС — если будет интересно.

Старый проект с дополнительным плагином каталога недвижимости DonbassDom.

И здесь немножко, но не все.

Edited by Ялекс
Link to comment
Share on other sites

  • 0

Может я не до конца разобрался, но сразу после установки CMS у меня вылезла ошибка 404 при просмотре сайта. При добавлении новой страницы и при, непосредственно её просмотре, выплывает та же ошибка. :huh:

В чём я не прав?)

P.S. На первый взгляд, админка имеет довольно дружелюбный интерфейс.

Edited by Seemann
Link to comment
Share on other sites

  • 0

Может я не до конца разобрался, но сразу после установки CMS у меня вылезла ошибка 404 при просмотре сайта. При добавлении новой страницы и при, непосредственно её просмотре, выплывает та же ошибка. :huh:

В чём я не прав?)

P.S. На первый взгляд, админка имеет довольно дружелюбный интерфейс.

Можете включить режим отладки и скинуть текст ошибки?

Включить режим отладки: в config.php поменять значение DEBUG на true.

Link to comment
Share on other sites

  • 0

Ялекс

Включил debug, но информации не добавилось. Вот скрин с включенным дебагом.

404.jpg

Но я понял в каком случае так происходит, хотя исходной причины - нет.

Первый раз я устанавливал на OpenServer(рассматривался на этом сайте), но потом попробовал на Denwer и все заработало нормально.

Может быть дело в настройках сервера.

Link to comment
Share on other sites

  • 0

Ялекс

Включил debug, но информации не добавилось. Вот скрин с включенным дебагом.

404.jpg

Но я понял в каком случае так происходит, хотя исходной причины - нет.

Первый раз я устанавливал на OpenServer(рассматривался на этом сайте), но потом попробовал на Denwer и все заработало нормально.

Может быть дело в настройках сервера.

Я протестирую на OpenServer-е, 30 сентября выйдет версия Flexo CMS 0.1.4, оптимизированная под PHP 5.3. Перед выходом протестирую на 5.2, 5.3, Denwer, OpenServer.

Link to comment
Share on other sites

  • 0

Ялекс

Включил debug, но информации не добавилось. Вот скрин с включенным дебагом.

404.jpg

Но я понял в каком случае так происходит, хотя исходной причины - нет.

Первый раз я устанавливал на OpenServer(рассматривался на этом сайте), но потом попробовал на Denwer и все заработало нормально.

Может быть дело в настройках сервера.

Я протестирую на OpenServer-е, 30 сентября выйдет версия Flexo CMS 0.1.4, оптимизированная под PHP 5.3. Перед выходом протестирую на 5.2, 5.3, Denwer, OpenServer.

Недочет найден. При установке использовалась локальная временная зона, а при работе сайта использовалась европейская. Поэтому страницы были в режиме «Ожидания», но через час начали б работать. Добавил временную зону при установке.

  • Like 1
Link to comment
Share on other sites

  • 0

Ялекс,

Спасибо) Проверил у себя на OpenServer - всё тоже заработало. :)

А есть ли уже или планируется вариант плагина комментариев к статьям, к примеру, как у вас на сайте? Было бы весьма интересно.

Edited by Seemann
Link to comment
Share on other sites

  • 0

Ялекс,

Спасибо) Проверил у себя на OpenSource - всё тоже заработало. :)

А есть ли уже готовый вариант плагина комментариев к статьям, к примеру, как у вас на сайте?

Это комментарии с сайта http://disqus.com

Регистрируетесь, получаете код, вставляете в шаблон — появляется возможность комментирования.

Прототип плагина комментариев есть, но выкладывать пока рановато.

Edited by Ялекс
Link to comment
Share on other sites

  • 0

Вышла пред-стабильная версия Flexo 0.1.4 RC (скачать).

вам бы хорошо было сделать демо-доступ. что бы без установки можно было "пощупать" админку. что-то не нашёл такой темы.

Link to comment
Share on other sites

  • 0

Вышла пред-стабильная версия Flexo 0.1.4 RC (скачать).

вам бы хорошо было сделать демо-доступ. что бы без установки можно было "пощупать" админку. что-то не нашёл такой темы.

Демо версию запустим.

Link to comment
Share on other sites

  • 0

Ялекс

Ставлю на вашу CMS разрабатываемый мною проект. Пока что всё нравится, достаточно гибко и удобно. :)

Единственное чего действительно не хватает - это родной системы комментариев :rolleyes:

Но это так...мечты...будет так будет, а не так нет)

Я вот видимо заработался и не могу сообразить как можно сделать из того как сейчас на картинке в то как нужно мне)

416411m.png

Делаю небольшой каталог продукции. Использую сниппет пагинации. В соответствии с картинкой хотелось бы, чтобы в каталоге, изображение-миниатуюра было ссылкой на опеделенный товар, а не текстовая ссылка, которая инклюдится этим $article->link();

Тобишь, хотелось бы получить просто ссылку в виде http://site.com/bla-bla.html, а не <a href="http://site.com/bla-bla.html">Bla-Bla</a>

Таким образом я смог бы сделать ссылкой изображение.

Надеюсь из написанного хоть что-то ясно :facepalmxd:

Link to comment
Share on other sites

  • 0

Ялекс

Ставлю на вашу CMS разрабатываемый мною проект. Пока что всё нравится, достаточно гибко и удобно. :)

Единственное чего действительно не хватает - это родной системы комментариев :rolleyes:

Но это так...мечты...будет так будет, а не так нет)

Я вот видимо заработался и не могу сообразить как можно сделать из того как сейчас на картинке в то как нужно мне)

416411m.png

Делаю небольшой каталог продукции. Использую сниппет пагинации. В соответствии с картинкой хотелось бы, чтобы в каталоге, изображение-миниатуюра было ссылкой на опеделенный товар, а не текстовая ссылка, которая инклюдится этим $article->link();

Тобишь, хотелось бы получить просто ссылку в виде http://site.com/bla-bla.html, а не <a href="http://site.com/bla-bla.html">Bla-Bla</a>

Таким образом я смог бы сделать ссылкой изображение.

Надеюсь из написанного хоть что-то ясно :facepalmxd:

Конечно можно, используй:

<?php echo $article->url(); ?>

Комментарии будут в ближайшем будущем. Пока такие приоритеты.

Link to comment
Share on other sites

  • 0

Ялекс,

Извиняюсь, что заваливаю тут вопросами как студент, но ты, наверное, единственный кто может помочь в этом :)

После того как я установил сниппет с пейджером, то оказалось, что article_list в сайдбаре выводится только на первой странице (http://trash.halfer.net/mebeline/kitchen.html), а уже на http://trash.halfer.net/mebeline/kitchen.html?page=2 - нет. В чём я туплю?)

Edited by Seemann
Link to comment
Share on other sites

  • 0

Ялекс,

Извиняюсь, что заваливаю тут вопросами как студент, но ты, наверное, единственный кто может помочь в этом :)

После того как я установил сниппет с пейджером, то оказалось, что article_list в сайдбаре выводится только на первой странице (http://trash.halfer.net/mebeline/kitchen.html), а уже на http://trash.halfer.net/mebeline/kitchen.html?page=2 - нет. В чём я туплю?)

А можно код сайдбара. Поведение странное.

Link to comment
Share on other sites

  • 0

Ялекс,

Вот, собственно, что находится в сайдбаре. Почему-то не отрабатывает начиная с цикла foreach


<?php

$articles = $this->find('news');

?>

<div class="news">
<h2>новости</h2>
<?php foreach ($articles->children(array('limit' => 5, 'offset' => (isset($_GET['offset']) ? (int)$_GET['offset']: 0))) as $item): ?>
<article>
<?php echo $item->link(); ?>
<p><?php echo $item->content('short'); ?></p>
<?php if ($tags = $item->tags() && !empty($tags)): ?>
<?php endif; ?>
</article>
<?php endforeach; ?>
</div><!--/.articles-list-->

Link to comment
Share on other sites

  • 0

Ялекс,

Вот, собственно, что находится в сайдбаре. Почему-то не отрабатывает начиная с цикла foreach


<?php

$articles = $this->find('news');

?>

<div class="news">
<h2>новости</h2>
<?php foreach ($articles->children(array('limit' => 5, 'offset' => (isset($_GET['offset']) ? (int)$_GET['offse

[quote name='Seemann' timestamp='1319572776' post='230171']
[b]Ялекс[/b],

Вот, собственно, что находится в сайдбаре. Почему-то не отрабатывает начиная с цикла foreach

[code]
<?php

$articles = $this->find('news');

?>

<div class="news">
<h2>новости</h2>
<?php foreach ($articles->children(array('limit' => 5, 'offset' => (isset($_GET['offset']) ? (int)$_GET['offset']: 0))) as $item): ?>
<article>
<?php echo $item->link(); ?>
<p><?php echo $item->content('short'); ?></p>
<?php if ($tags = $item->tags() && !empty($tags)): ?>
<?php endif; ?>
</article>
<?php endforeach; ?>
</div><!--/.articles-list-->

Просто в коде:

array('limit' => 5, 'offset' => (isset($_GET['offset']) ? (int)$_GET['offset']: 0))

Забыли убрать смещение на выборку из БД. Правильно будет:

array('limit' => 5)

Ведь вам не нужен пэджинатор для сайдбара.

Edited by Ялекс
Link to comment
Share on other sites

  • 0

Ялекс,

Убрал смещение, но это никак не повлияло(

<?php

$articles = $this->find('news');

?>

<div class="news">
<h2>новости</h2>
<?php foreach ($articles->children(array('limit' => 5)) as $item): ?>
<article>
<?php echo $item->link(); ?>
<p><?php echo $item->content('short'); ?></p>
<?php if ($tags = $item->tags() && !empty($tags)): ?>
<?php endif; ?>
</article>
<?php endforeach; ?>
</div><!--/.articles-list-->

<?php

$articles_count = $articles->childrenCount();
$offset = (isset($_GET['offset']) ? (int)$_GET['offset']: 0);

?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy