Impress Pages



    Победитель «Самая многообещающая CMS 2011 года с открытым кодом»ImpressPages



    Страна производитель: Литва
    Требования: PHP 5.3, mysql
    Hi, Alexandr,

    Thanks for a post. (это он про хабр)
    Looks like a lot of discussion is going on. We really appreciate all the
    feedback. This helps us to improve.

    *Audrius Jankauskas*


    О проекте



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


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

    Идея возникла в наших головах сама. Мы наблюдали за людьми, отвечающих за поддержку сайта.
    Как правило, администратор сайта не IT профессионал, а большинство открытых cms разработаны именно под них.

    Преимущества:



    ( как на хабре vertical-align: top применить? )

    Drag & drop интерфейс.
    Свобода действий. Видео, тексты, фотографии, формы — все в одном месте! Не нужны технические навыки работы с html. ( они всегда приветствуются, но увы, люди не обязаны им владеть. Это нужно признать). Здесь нужно просто кинуть нужный компонент на страницу.
    Правка на месте.  
    Если перед тобой текст и ты авторизовался на сайте, ты дожен уметь убрать текст или добавить. Здесь вы гуляете по сайту как пользователь, щелк, правка, сохранить. Никаких проблем с расстояниями бешеной собаки через панель управления или всплывающими окнами.
    Копипаст!
    Умный html фильтр. Страницу не сломаете если случайно див не закроете. Каждая таблица феерически подстроится под ваш контент.
    Мультиязычность.
    Смешно, люди говорящие на самом популярном языке мира делают мультиязычность. Это чья душа шире?
    Создание нового языка делается одной кнопкой.
    SEO
    Основа сайта. Пишите контент, а все остальное сделает ImpressPages CMS.
    Дизайн
    Если вы шарите только в HTML или CSS — этого достаточно. Все динамические элементы кидаются через drag & drop.


    Мультисайтовость на подходе.

    Дизайн админки:





    Демонстрация





    Документация



    Совсем неплохая

    Доступные виджеты:



    Текст
    Заголовок
    Фото
    Фото с подписью
    Галерея
    Галерея с первьюшками
    F.A.Q.
    Заливка файла
    Видео
    Форма связи с редактируемыми полями
    HTML код

    И что еще нужно обычному админу в поддержке сайта? Мне очень нравится раздельные виджеты с текстом и заголовком. Большинство наших клиентов ( фирма где я нахожусь ) знать ни знают ни об html, ни о разделении контента на текст h1 h2, ни об align, ни о том что нельзя h1 делать розовым и мигающим… вобщем это убивает сайт в первое наполнение. Какие гайдлайны не давай — бесполезно.

    При разделении уровней контента по отдельным полям, лишные «розовые мигающие» теги и размер шрифта, отступы, выравнивания просто отбрасываются. Получается текст таким, как прописан в css разработчиком. Я считаю это важным для любой cms. Если клиент не желает изучать html — имеет право, но тогда нужно загнать его опыты в визуальном редакторе с розовыми буквами под жесткий контроль. Ибо за наполнения сайта вы не отвечаете, а внизу справа на сайте висит ваш логотип.

    Локализация



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

    Ядро.



    Константы.

    Находятся в файле ip_config.php. Используйте их чтобы найти текущий url, системные директории, директории, текущее имя шаблона и прочее.
    Никогда не усложняйте имена директорий или других констант. Это не гибко.

    Файловая структура.

    Папки:

    install — директория установки. Удаляйте после установки!
    update — директория для обновления. Удаляйте после обновления!
    ip_cms — ядро
    ip_configs — модули и папка настройки плагинов
    ip_libs — библиотеки. Все библиотеки сгруппированы.
    ip_pugins — плагины
    ip_themes — темы
    audio, files, images, video — тут находятся залитые пользователем файлы
    tmp — для временносохраненных файлов. Старые файлы, которые старше 1 недели, автоматически удаляются.
    repository — файлы, залитые через TinyMCE

    Файлы

    .htaccess — правила переписки урлов
    admin.php — back-end файл
    index.php — главный front-end файл
    ip_backend_frames.php — back-end файл
    ip_backend_worker.php — back-end ajax и iframe посты
    ip_cron.php — запускает определенный функции. Должен выполнятся несколько раз в день
    ip_licence.html — лицензия
    sitemap.php — генерирует sitemap

    Глобальные переменные

    $site — главный front-end объект. Дает всю информацию о системе, текущем языке, странице и ссылках.
    $parametersMod — отвечает за конфигурационные параметры всех модулей. Используйте его для получения всех значений параметров и переводов.
    $log — объект для получения информации о входе в систему.
    $dispatcher — отправляет события.

    Зоны и страницы

    ImpressPages CMS не дает прямого управления страницами. Для этого есть специальный модуль «Зоны». Каждая зона может иметь любое количество страниц и любой контент. CMS ищет только текущую зону (по url) и запрашивает контент на выдачу.



    Остальное



    Форум не такой живой как хотелось бы. Но cms мне приятна. Хотя я вижу в ней косячки по дизайну.
    Трое ребят создателей большие фанаты всего нового. «Твиттер, свиттер, макинтош».

    Хочется пожелать им успеха и увеличения комьюнити. Именно по этому и пишу о них.
    Для этой cms необходим PHP5.3 и MySQL. На php 5.2 установка не разрешается.

    github.com/impresspages/ImpressPages-CMS

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 71

      +4
      MultiSite когда ждать? =)))
        +4
        Как правило, администратор сайта не IT профессионал, а большинство открытых cms разработаны именно под них.

        Тот же WP на данный момент вполне себе дружелюбен. Я научил пользоваться его админкой пару человек, которые довольно далеки от IT.
        • UFO just landed and posted this here
        • UFO just landed and posted this here
            +2
            > А вот если бы так же можно было бы и меню перетаскивать, да и вообще остальные элементы сайта — тогда CMS была бы действительно с вау-эффектом, как мне кажется.

            А вот если бы так было, страницы были бы похожи на страницы сгенерированые Word-ом и содержали бы в сете тонны цсс кода.
              0
              Для WP есть theme-frameworks с таким функционалом, и без «страниц похожих на страницы сгенерированные Word-ом»
                0
                Как-то реализовывал CMS для одного проекта где все именно так и на страивается — Drag And Drop. Так еще и макет страницы так же менялся. И ниче, нормально все было. Код как у среднего врестальщика выходил, хотя сейчас оценивая результат — можно было сделать еще более элегантно.
              +4
              Не плохая CMS. Но, я за WP!
                0
                WP самособой.
                +6
                Добавьте хаб «open source».
                  +4
                  Пришлось до конца поста крутить чтобы узнать что CMS на PHP. Добавьте до ката, пожалуйста.
                    +2
                    А какая разница, особенно в свете того, что продукт позиционируется не для «IT профессионалов»?

                    Или на PHP — недостаточно элитно?
                      0
                      Ну раз не для не для «IT профессионалов» — то что он делает на Хабре?
                      Для ЦА — разницы конечно никакой, а мне — поковыряться.
                        +1
                        На хабре сеошников больше, чем it-профи.
                          +5
                          Да тихий ужас…
                    0
                    Доступные виджеты:…
                    И что еще нужно обычному админу в поддержке сайта?


                    Когда я хотел сделать свой первый сайт много лет назад — мечтал о такой CMS. К счастью, первой CMS с которой я столкнулся была Etomite, и это на всю жизнь сформировало мой взгляд о системах управления контентом.

                    Скажу лишь только, что ограничение набором виджетов в них не вписывается никак.
                      +7
                      Кого то мне эта верхняя панель администратора напоминает.

                      А так какая то странная CMS, использует неймспейсы, но в некоторых классах вообще не используется инкапсуляция ( например ip_cms/backend/cms.php ).
                      Там же используются глобальные переменные. Зачем?..
                      Используется автолоадер, но по прежнему встречаются места где в наглую инклудятся кучи файлов ( ip_cms/frontend/site.php ).
                      Интересно, что их сподвигнуло вперемешку использовать camelCase и under_score нотации как в названии классов так и переменных?
                      Документированность кода отстутсвует.
                      Стандартизация кода это так сложно?
                        +1
                        Ну там же 3 автора, видимо не договорились о стандарте кодирования :)
                          +2
                          Там еще можно найти eval для создания объектов и HTML в перемешку с PHP классами…
                            +6
                            И под громким названием «модель» предлагается лепить вручную SQL-запросы, не забывая экранировать параметры.
                            –1
                            Интересная CMS-ка поковыряем.
                            Кстати наверное всё же более правильно награда переводится так — Самая многообещающая CMS…
                              +4
                              Да уж после ковыряния, как-то не впечатляет. Тот же AJAX на примитивном уровне.
                              Почему народ думает, что если они раньше генерили весь HTML в PHP и потом выдавали страницу то это типа устарело, а если тот же самый сгенеренный HTML загрузить через AJAX, то это становится мегаинновационно.

                              К примеру при редактировании страниц, при клике на разные страницы загружается 8 КБ HTML админской панели с кнопочками, о том, что можно разделять данные и оформление в JS видимо не догадываются:
                              <li>
                                  <div id="ipAdminWidgetButton-IpTitle" class="ipActionWidgetButton">
                                      <a href="#">
                                          <span>Title</span>
                                          <img src="http://web/impress/ip_cms/modules/standard/content_management/widget/IpTitle/public/icon.png" alt="Title" />
                                      </a>
                                  </div>
                              </li>
                              <li>
                                  <div id="ipAdminWidgetButton-IpText" class="ipActionWidgetButton">
                                      <a href="#">
                                          <span>Text</span>
                                          <img src="http://web/impress/ip_cms/modules/standard/content_management/widget/IpText/public/icon.png" alt="Text" />
                                      </a>
                                  </div>
                              </li>
                              ...
                                +3
                                я написал им, кинул ссылу на пост, пущай читают.
                                  0
                                  Там еще и полный путь до сервера в адресах внешних элементов? Я про

                                  src=«web/impress/ip_cm

                                  говорю. Я бы еще понял, если бы замашки на CDN были бы полноценные, а в админке-то зачем?
                                    0
                                    Ага я о том же, еще и путь к иконкам такой километровый. У меня в CMS написанной больше 10 лет назад, и то было разделение данных и оформления в JS. А то всё в стиле phpMyAdmin, тонны однотипного HTML кода, но главное ведь, чтобы загружалось через AJAX.
                                      0
                                      Ну, server-side vs client-side шаблоны — дело на любителя. Я пород как раз server-side уважаю, не всегда ajax идеально к случаю подходит (и поэтому мне не нравится, когда его в т.ч. не к месте пихают).

                                      Но вот неаккуратный код страницы наводит на размышления: если это в стиле «сделаю прототип, потом доточу код», то — что же там еще сделано «на первую прикидку»?
                                        0
                                        ИМХО, server-side для открытой части сайта (когда нужна работоспособность для поисковых роботов, и нелюбитей JS), для админки лучше client-side. Тем более что в данном случае без JS админка всё равно работать не будет.
                                          0
                                          Самое гадкое, что можно сделать для админки — это на критически важные ссылки повесить _только_ js-события. Т.е. «открыть в новой вкладке» минует админа навсегда. Что тут сказать?

                                          Плюс ajax не всегда быстрее работает, чем открывается новая страница.
                                            0
                                            Это как бы всё зависит от реализации, ничто не мешает делать с помощью JS на основе полученного JSON обычные ссылки.

                                            Что касается AJAX то нужно просто уметь его готовить, а не использовать только для загрузки HTML (в таком случае естественно может даже медленее быть, чем просто загрузить тот же HTML в окне/фрейме).

                                            В данной CMS вообще загадочно, там же эта админская панель во фрейме, зачем они её перегружают постоянно, если нужно показывать только отдельные кнопки панели. То для этого достаточно маленького массива полученного по AJAX (либо вместе с загрузкой редактируемой страницы) и JS скрипта, который включит/выключит нужные кнопки.
                                0
                                Красиво рассказано о редакторе страничек, а про сами странички, структуры, обработчики — ничего.
                                Спасибо, конечно, но обзор далеко не полный.
                                  0
                                  сейчас немного обновлю.
                                  0
                                  Все ссылки типа "/ru/...", "/en/..." и т.п.
                                  И никак нельзя это убрать? Что-то не нашёл. Нет, можно конечно разобраться и переделать, но смысл…
                                  И то, что в верхнем меню везде ".../top_name/...", а в левом ".../left_name/..." — они не могут все принадлежать к одному уровню, без «top_name», «left_name»? Очень странно.
                                  Кейворды и дескрипшен отделены от самих страниц и вынесены в раздел SEO — с какой вообще стати? Почему всё, относящееся конкретно к разделу, не может быть в этом разделе? Ну на краяйний случай закладки бы сделали…
                                  Community — User: «Users module is not yet compatible with ImpressPages 2.x» — а нахрена тогда вот это вот присутствует здесь?

                                  Ох, не знаю… дико, сыро, непонятно, много лишнего, мало нужного — только красоту увидел, которая в админке нафиг не нужна.
                                  Каждый должен заниматься своим делом, офисный секретарь обязан принимать звонки и всё такое — а не сайты редактировать, а сайтами заниматься — веб-мастер. А тому не красивости, а функционал нужен.
                                    0
                                    А что плохого в "/ru/...", "/en/..."?
                                      0
                                      Только то, что если у меня не мультиязычный сайт — мне нафиг не нужны подобные костыли.
                                      0
                                      ru убирается вот так www.impresspages.org/docs2/core2/url-structure2/
                                      +4
                                      echo '<div>...';


                                      Имхо это диагноз.

                                      PS добавте плиз ссылку на сорцы, чтоб время не терять github.com/impresspages/ImpressPages-CMS
                                        +4
                                        «Из личного опыта могу сказать, что с годами приходит понимание и терпимость. И неправильный перенос строки уже не вызывает такого желания размозжить человеку голову...»
                                        © MaksSlesarenko
                                          0
                                          Данная цитата относится к оформлению кода, написана в теме о контроле качества оформления (форматирования) кода. Я так же писал, что мне важнее, чтоб код был прост и логичен, чем то какой стиль оформления кода предпочитает человек http://habrahabr.ru/post/141447/#comment_4731715.

                                          Тут же речь и идет о неправильном использовании языка программирования. Автор сего творения пытается игнорировать тот факт, что PHP сам по себе является шаблонизатором.
                                        –1
                                        Загрузка в галерею фотографий по одной? Почему нет драг-и-дропа и файл-апи?
                                          +2
                                          Этот вопрос задают разработчикам IE9 тоже.
                                          • UFO just landed and posted this here
                                              0
                                              Не забывайте IE8 для XP, он ещё жив вполне себе.
                                          +14
                                          Комментирующие на хабре, как стая голубей — налетели, обосрали, улетели.
                                            +2
                                            Традиции линуксорга.
                                              +2
                                              с другой стороны — за такую критику часто много денег платят.
                                                +2
                                                Ну большинство критики-то по делу. Одно дело когда критика типа «Гавно — ваша CMS. WP рулит!», а другое когда указывают на недостатки архитектуры, уязвимости и т.п.
                                                +3
                                                Если «Панель администрирования» — «Админка», то «Документация» — «Документашка» ;)
                                                  +5
                                                  Админка чудовищно неудобная и не интуитивная, особенно после WP
                                                    +1
                                                    код просто жесть
                                                      +3
                                                      Уходите, пожалуйста, от mod_rewrite и htaccess есть и другие веб-сервера кроме apache
                                                        –1
                                                        А как бы вы сделали универсальное решение, чтобы и на нгинксе работало?
                                                          +1
                                                          Эм, я не программист, поэтому точно сказать не могу как это реализуется, но ведь реализуется как-то :)

                                                          Но то что апач онли — это ооочень плохо

                                                          P.S. кромен nginx'а есть еще lighttpd, Cherokee, IIS
                                                            0
                                                            Я просто привел в пример еще один веб-сервер, который с апачем покрывает процентов 95 рынка php, наверное.

                                                            Не апач онли — аналог модреврайтов можно же в конфигах нгинкса прописать
                                                            +3
                                                            очень просто и давно изобретено: заруливать все несуществующее на один скрипт, который подключает контроллер и разруливает, что подключать в зависимости от uri, сам.
                                                          +2
                                                          С безопасностью не все в порядке. Глянул на код довольно бегло, в админке насчитал не меньше 5 класических SQL инъекций, на фронтэнде XSS то там то тут. Думаю что если подольше посидеть можно ещё много чего накопать
                                                            –1
                                                            Чем больше глаз, тем лучше.
                                                            0
                                                            У меня такое ощущение, что здесь одни вордпресс-говнокодеры. Пришли посмотрели, не так как в ВП, поругали и ушли… ППЦ! Ребята, вы хоть когда-нибудь в этот «ВРотПресс» что-нибудь допрограммировали, исправляли?! Вы видели эту грёбанную структуру ядра?
                                                            После такого просмотра импоресс гораздо приятнее. Но всётаки я сторонник Symfony или Nette.
                                                              –2
                                                              Ребята, а есть в планах сделать CMS в облаке?
                                                                –1
                                                                Парень на фотографии в топике больно похож на Максима Марцинкевича, по прозвищу «Тесак».
                                                                  0
                                                                  Лично для меня самый важный вопрос — наличие документированного фреймворка в CMS. Без этого толку никакого нет для разработки. Здесь ничего хорошего не увидел. У той же Joomla побогаче будет.
                                                                    +1
                                                                    Мне, если честно, удобной она не показалась.
                                                                    Управление для мобильных/сенсорных устройств предусмотрено?
                                                                      0
                                                                      А в какой CMS оно предусмотрено из коробки? Просто интересно глянуть.
                                                                        0
                                                                        В WordPress можно отправлять новые посты с мобильных устройств, есть приложения. Стандартная тема WP оптимизирована под мобильные браузеры. Управление админкой, как мне показалось, не затрудняется при доступе с планшета.
                                                                          0
                                                                          В wp постить можно отправляя емейл или сразу из ворда тоже. Набрал — нажал отправить.
                                                                      0
                                                                      всегда было интересно в чем разница между модулем, плагином и библиотекой
                                                                        +3
                                                                        Библиотека — некая независимая разработка, предлагающая интерфейс для выполнения каких-то действий, и ее можно без модификаций использовать в любом проекте.

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

                                                                        Плагин — надстройка, использующая интерфейсы проекта и выполняющая какие-либо действия, при этом зачастую не предлагающая никаких новых интерфейсов, которые можно использовать в проекте. Часто компиллируется отдельно от основного проекта. НоЗачастую Плагин является и модулем.

                                                                        Примерно так это понимаю я. Может, кто то поправит )
                                                                        +1
                                                                        Я сначала подумал что я наркоман и у меня что-то с глазами, когда смотрел на фото ребят и видел бегающий фон… Оказалась гифкой :)
                                                                          0
                                                                          ну наконец-то кто то догадался)
                                                                          0
                                                                          1. Извиняюсь, но не могу понять, что я делаю не так: где из панели разработчика менять шаблон и темы?
                                                                          2. Зачем в последней версии для скачивания папка update? Нельзя разве обновлённую сразу помещать? Или я что-то не понимаю.
                                                                          3. drag & drop в этом случае, лично меня, больше запутал, чем сделал интерфейс более интуитивно понятным.
                                                                            0
                                                                            Опишу свой небольшой опыт.

                                                                            Установил. Aдминка понятная и для целевого пользователя, наверное, удобная. Есть ограничения по макету страницы: через админку пользователь не может создать несколько произвольных колонок, область куда можно дропнуть контент задаётся жестко в шаблоне.

                                                                            Сверстал шаблон. Посмотрел код внутри — всё вперемешку, в некоторых местах html печатается прямо из php кода виджетов, в некоторых через шаблоны. В итоге чтобы расставить нужные мне css классы (я использовал twitter bootstrap) приходилось править не только код шаблонов-виджетов, но и какие-то фрагменты внутри «движка».

                                                                            Повсюду глобальные переменные и eval.

                                                                            Во фронтенде тянет много js кода, который реально используется только при просмотре сайта через админку. А если его вырезать из шаблона, где он явно прописан, админка перестаёт работать.

                                                                            Виджет «HTML фрагмент», который можно дропнуть на страницу в админке, не поддерживает кирилицу. Один раз набрать текст и сохранить можно, но при попытке отредактировать получаем иероглифы (в обычных текстовых виджетах всё нормально).

                                                                            Резюме: проект не только сырой, но и архитектурно очень кривой. Заявлено использование PHP 5.3, а по сути спагетти-код в стиле PHP 4.
                                                                              0
                                                                              спасибо) Будем знать, сделаем это заключительным резюме.

                                                                            Only users with full accounts can post comments. Log in, please.