SkyBlueCanvas бесплатная opensource CMS с классической функциональностью, не использующая базу данных MySQL

Достоинства: простая и понятная система. Имеет встроенный визуальный редактор TinyMCE. Позволяет создавать древовидную структуру, однако древо не визуализируется в админке. Позволяет создавать многоуровневые меню, однако с использованием небольшого php-программинга. Не использует Базу Данных.

Недостатки: англоязычная, проблемы с кириллицей, требующие модификаций ядра, не все они решены. Отвратительная документация и, как следствие, проблемы с установкой плагинов. И еще автор CMS 28 марта 2011 г. выставил проект на продажу, так как не имеет ресурсов для его дальнейшего корректного развития. Update: кто-то приобрел движок и взялся за его дальнейшее развитие. Что ж, отлично, будем ждать новых релизов с поддержкой Юникода!

Внимание! Разработка системы брошена, официальный сайт www.skybluecanvas.com продан. Вот так тоже бывает :(

И это грустная история. Один энтузиаст сделал эту систему, всем понравилось, она бурно развивалась, у проекта была огромная посещаемость но... разработчику было интересно писать код, а не заниматься монетизацией. А система брала у него все больше времени и сил, а как на этом заработать он не мог или не хотел придумать.

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

FAQ

Проблема с кириллической кодировкой" hide="Проблема с кириллической кодировкой

Заменить в /includes/xml.parser.php со строчки 147:

           foreach ($obj as $k=>$v)
            {
                if ($k != 'description' &&
                     $k != 'type' &&
                     $k != 'id' &&
                     trim($k) != '')
                {
                    $indent = '';
                    if (isset($obj->id) ||
                         $i != 0)
                    {
                        $indent = str_repeat(' ', 6);
                    }
                    $xml .= $indent.$k.'="'.htmlentities($v).'"';
                    $xml .= ($i + 1) != $count ? "\r\n" : '' ;
                    $i++;
                }
            }

на

foreach ($obj as $k=>$v)
{
if ($k != 'description' &&
$k != 'type' &&
$k != 'id' &&
trim($k) != '')
{
$indent = '';
if (isset($obj->id) ||
$i != 0)
{
$indent = str_repeat(' ', 6);
}
$xml .= $indent.$k.'="'.htmlentities($v, ENT_COMPAT, "UTF-8").'"';
$xml .= ($i + 1) != $count ? "\r\n" : '' ;
$i++;
}
}

Проблема с mod_rewrite и 404

Если htaccess существует (путь даже пустой), SkyBlueCanvas своим движком включает переписку ссылок в разделах, что на кириллице глючит. Пришлось залезть в ядро и вырезать этот кусок, чтобы 404 заработала.

core.php, 331 строчка: сделать условие всегда false.

Зачем я это сделал? Затем, что хотел включить 404. Пришлось сделать это таким кодом в htaccess:

ErrorDocument 404 http://www.nightrun.ru/index.php?pid=21, где 21 - это ID-шник 404 страницы из админки.

Установка плагина FormBuilder (для создания форм регистраций) ext_formbuilder.zip

Инструкции не верны. Ставить так:

  1. Install the 'forms' Manager in /skyblue_root/managers/
  2. Install the 'forms' Fragment in /skyblue_root/data/skins/your_skin/fragments/
  3. Install the 'plugin.formbuilder.php' in /skyblue_root/data/plugins/
  4. Install the 'plugin.fragments.php' in /skyblue_root/data/plugins/

{plugin:fragment(forms,head,2)} - это в
{plugin:fragment(forms,body,2)} - а это в визуальном редакторе в страницу.
Остальное в соответствии с инструкциями.

Похоже, чтобы заполненная форма как-либо обрабатывалась (например, сохранялась), необходимо программировать отдельный плагин. Well, it should be researched...

Установка плагина Fragmentor (для передачи нескольких параметров включаемому фрагменту) plugin_fragmentor.zip

Инструкции не верны и не полны. Ставить так:

  1. скопировать по ФТП файл plugin.fragmentor.php в \data\plugins
  2. для вывода фрагмента внутри html-макета, использовать синтактсис <!--fragment(name=phphgallery&view=view)-->, причем директория с фрагментом не должна содержать никаких спец.символов, даже дефиса!
  3. для вывода фрагмента из контента использовать конструкцию {fragment(name=phphgallery&view=view)}, но при этом вывод контента для этой странице в ~html-макете также должен обязательно производиться через fragmentor, вот так: <!--fragment(name=page&view=view)-->, иначе код не отпарсится.

Интеграция простой бесплатной фотогалереи bolGallery

  • установите плагин Фрагментор
  • создайте в data\skins\ваш_скин\fragments\ директорию phphgallery
  • создайте в ней следующие файлы:

functions.php:

<?php
defined('SKYBLUE') or die('Bad file request');
// вытаскиваем параметы из строки вызова фрагмента:
$folder = Filter::get($params, 'folder');
$columns = Filter::get($params, 'columns');
$width = Filter::get($params, 'width');
$height = Filter::get($params, 'height');
?>

view.php:

<?php
// bolGallery for SkyBlueCanvas
// use this syntax inline: {fragment(name=phphgallery&view=view&folder=source_pic_folder&columns=5&width=160&height=120)}

defined('SKYBLUE') or die('Unauthorized file request');

include("bolGallery.php");

chdir('./bolGallery/');
bolGallery("./$folder/", "$columns", "$width", "$height", 1);
chdir('../');
?>

bolGallery.php
исходник скрипта, в котором 132 и 133 строчки заменены на:

                $HTML .= "\t\t<TD align=\"center\">\n\t\t\t<A href=\"/bolGallery" . substr($currentImage, 1) . "\" onClick=\"bolGalleryPopup(this.href, " . $referenceImageWidth. ", " . $referenceImageHeight . ", '" . $alt . "'); return(false);\" target=\"_blank\">\n"; // target attribute to be tested
                $HTML .= "\t\t\t\t<IMG src=\"/bolGallery" . substr($thumbnail, 1) . "\" title=\"" . $alt . "\" border=0>\n";
  • создайте директорию bolGallery в корне сайта, а в ней - по одной директории для каждой фотогалереи. Например, создайте директорию photo2010 и положите в нее фотки
  • теперь вызов галереи из контента страницы можно производить следующим кодом: {fragment(name=phphgallery&view=view&folder=photo2010&columns=5&width=160&height=120)}, где задается имя директории с картинками, число колонок в таблице, размер превьюшек.

Дальнейшую настройку bolGallery можно произвести в соответствии с документацией на http://bolgallery.free.fr/ Для использования lightbox из комплекта ext_galleria.zip окружите всю таблицу <div id=\"lightbox\"> код таблицы </div>, удалите java-скрипт перед ней, в ссылках на картинках замените вызов JS на class="lightbox"

Установка lightbox из комплекта ext_galleria.zip

Инструкции не верны и не полны. Ставить так:

  1. скачайте архив и разархивируйте
  2. скопируйте *.js файлы из директории lightbox в /skyblue_root/data/skins/your_skin/js/
  3. скопируйте *.css файл из директории lightbox в /skyblue_root/data/skins/your_skin/css/
  4. скопируйте директорию imgs-lightbox to /skyblue_root/data/skins/your_skin/images/
  5. в файле jquery.lightbox-0.4.js пропишите соответствующие пути к катинкам
  6. пропишите вызов всех скопированных файлов в заголовок html-шаблона. Примерно так:
    <LINK HREF='[[site.url]][[skin.path]]css/jquery.lightbox-0.4.css' TYPE='text/css' REL='stylesheet'>
    <script type="text/javascript" src="[[site.url]][[skin.path]]js/jquery-1.2.6.min.js"></script>
    <script type="text/javascript" src="[[site.url]][[skin.path]]js/jquery.lightbox-0.4.js"></script>

Для активации lightbox, помещайте ссылку в DIV с id="lightbox", ссылке назначайте class="lightbox"

Блог

Что с Мастерхостом? Когда заработает?!

Этот вопрос всё чаще задают в Интернете начиная примерно с 12:00 дня 2 марта. А всё потому, что он накрылся!

далее

Автоматизированная Система Управления Бэкапами

Автоматизированная Система Управления Бэкапами позволяет добиться полного контроля над резервными копиями сайтов внутри инфраструктуры веб-студии. Если вы поддерживаете десятки сайтов на разных хостингах, без подобной системы вы не можете быть на 100% уверены в том, что каждый из них был корректно зарезервирован прошлой ночью.

далее

WebSocket: интеграция с NetCat

Хотите добавить на сайт под управлением CMS NetCat поддержку технологии WebSocket? Обращайтесь к нам! Посетители сайта смогут получать мгновенные уведомления о событиях сайта без обращений к серверу и перезагрузок страниц. Превратите свой сайт в интерактивную площадку, работающую в реальном времени!

далее

NetCat: техническая поддержка и доработка сайтов

Мы работаем с CMS NetCat уже больше 10 лет. У нас большой опыт и ответственный подход к делу.

далее

Весь блог тут