Самые основы. Как работает PHP.

Отличие веб-приложения от обычной программы
Начиная писать программы для веба, многие начинающие программисты сталкиваются с такой ошибкой. Они рассматривают систему браузер-сервер, как обычное приложение. Интерактивное. Нажал кнопку - система среагировала. Провел мышкой - среагировала. Вся информация, которая доступна клиенту - доступна и программе, программа все время находится в памяти.
Так вот, в веб-программировании это не так!.
В момент, когда пользователь видит перед собой страницу и начинает совершать какие-то действия с ней, PHP уже завершил работу! И пользователь взаимодействует не с PHP скриптом, а со своей страницей HTML, которую он получил в браузер. Результатом работы скрипта на PHP в большинстве случаев является обычный текст. Текст HTML страницы. Которая отдается браузеру и показывается им, как обычный HTML. Вы сами можете в этом убедиться, написав в скрипте
<? echo "Привет, <b>Вася!</b>"; ?>;
А потом просмотрев в браузере исходный текст полученной страницы. Никаких тегов PHP там нет! Только
Привет, <b>Вася!</b>
Потому, что PHP исполняется на сервере!


Сервер и браузер общаются, посылая друг другу запросы по особому протоколу - HTTP. Соединение может инициировать только браузер. Он посылает серверу запрос - показать такой-то файл. Сервер клиенту файл посылает.
Только так и происходит. Клиент запросил - сервер отдал. И забыл сразу о клиенте. Отсюда становится понятным ответ на вопрос, можно ли точно узнать, сколько юзеров сечас на сайте. Нельзя. потому, что "на сайте" нету ни одного. Они соединяются, запрашивают страницу, и отсоединяются. Не имеют постоянного cоединения с сервером, как, например, игроки в Кваку. Узнать можно только примерно, записывая время каждого соединения и выбирая записи за определенный промежуток времени.

Так же, отсюда становится ясно, что сервер может узнать о клиенте очень мало. Только то, что клиент пришлет в HTTP-запросе. Разрешения экрана там нет ;-)
Все, что сервер может знать о клиенте, можно посмотреть командой phpinfo()

Пример общения браузера с сервером:
Пользователь нажимает на ссылку, браузер посылает запрос серверу и ждет ответа:
Браузер -> PHP

PHP выполняет скрипт, отдает результат в браузер и завершает работу:
PHP -> браузер

Браузер отображает страницу, "просматривая" её на предмет ссылок, которые надо запросить у сервера (теги <img src>, <script src> и так далее) и посылает соответствующие запросы. Их можно увидеть, просматривая обмен заголовками, о чем речь будет чуть ниже:
Браузер -> сервер, Браузер -> сервер, Браузер -> сервер...

Пользователь заполняет форму и нажимает на кнопку:
Браузер -> PHP

PHP обрабатывает форму, записывает данные в базу и посылает браузеру заголовок
Location:
PHP -> браузер

Браузер, получив этот заголовок, запрашивает указанную страницу
Браузер -> PHP

PHP выполняет ее... и так далее.

Как работает РНР, где он выполняется?
РНР выполняется на сервере. Браузер посылает серверу запрос на страницу с php кодом. Сервер отдает эту страницу на исполнение интерпретатору PHP, интерпретатор генерирует HTML код, отдает серверу, а сервер посылает клиенту. Никакого РНР кода в браузер не попадает (это важно! Это значит, что увидеть исходный код PHP скрипта невозможно!). Единственный способ отправить что-то скрипту - это кликнуть по ссылке или нажать на кнопку в форме. Так, чтобы РНР обрабатывал какие-то действия пользователя в браузере - невозможно. РНР остался на сервере, ждать новых запросов с данными для обработки. PHP, но не скрипт! Скрипт, который выполнялся, отдавая пользователю страницу, завершил работу. Все данные, которые были в нем - пропали. Именно поэтому, если какая-то переменная нужна при последующих вызовах скрипта, ее надо этому скрипту передать снова.

Очень качественная и подробная статья об основах веб-программирования находится на сайте PHPWIKI.RU. Обязательно прочитайте её.

Как передать переменную из PHP в JavaScript и обратно?
Начнем с того, что никакую переменную передать, конечно же, невозможно. Поскольку переменная - это часть программы. И из одной в другую передать её нальзя. Передать можно только значение переменной. Т.е. текст. То есть, различия между "передачей переменной в яваскрипт" и формированием html таблицы НЕТ НИКАКОГО!
Отсюда вывод - "Передать переменную" в Javascript очень легко. Особенно, повторюсь, если учесть, что никакой "передачи" не происходит. PHP просто напросто генерирует яваскрипт точно так же, как и всю остальную страницу, вместе со всеми переменными.
Точно так же, как вы выводите в браузер строку "Hello World, это Вася Пупкин!", выводится и любой яваскрипт, со всеми своими переменными.
Единственное условие - вы должны представлять себе тот яваскрипт, который хотите получить.
К примеру в PHP есть переменная $name="Вася", значение которой надо передать в яваскрипт, чтобы получить
<script>name="Вася";</script>
Мы просто пишем
<?
$name="Вася";
?>
<script>name="<? echo $name; ?>"</script>
То есть, фактически, мы просто сформировали нашим PHP скриптом некий текст, который выглядит, как нужный нам код на яваскрипте. Или, с другой стороны, мы писали свой яваскрипт, в нужных местах вставляя вывод переменных из PHP.
Чтобы не сойти с ума от разнообразных кавычек, настоятельно рекомендуется яваскрипт выводить не весь с помощью echo, а именно так, как написано здесь - закрыв тег PHP и открывая их только там, где нужно вывести переменную.

Как передать переменную из яваскрипта в PHP?
Точно так же, как и любые другие данные - послав запрос на сервер.
Но надо четко понимать, что во время выполнения php скрипта получить что-либо из яваскрипта, разумеется, невозможно. Передать можно будет только при следующем запросе. И обрабатывать его будет уже другой PHP скрипт.
Если надо но событию onClick рбратиться к базе данных, то следует помнить, что она находится на сервере. То есть, надо запрашивать сервер, который запустит PHP скрипт, который обратится к базе, получит от неё ответ и передаст его в браузер.

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

Способы общения браузера с сервером.
Способов, предоставляемых протоколом HTTP, немного. Это важная информация. Никаких других способов нет. На практике используются два:
GET - это когда данные передаются в адресной строке, например, когда пользователь жмет ссылку.
POST - когда он нажимает кнопку в форме.
Сформировали страницу со ссылкой или с формой методом GET - запрос придет GET-ом. Сформировали с формой, в которой указан метод POST - придет POST-ом.
Определить, какой способ следует применять, очень просто. Если форма служит для запроса некой информации, например - при поиске, то ее следует отправлять методом GET. Чтобы можно было обновлять страницу, можно было поставить закладку и или послать ссылку другу.
Если же в результате отправки формы данные записываются или изменяются на сервере, то следует их отправлять методом POST, причем обязательно после обработки формы надо перенаправить браузер методом GET. Так же, POST может понадобиться, если на сервер надо передать большой объём данных (у GET он сильно ограничен), а так же, если не следует "светить" передаваемые данные в адресной строке (при вводе логина и пароля, например). Но в любом случае, после обработки POST надо всегда перенаправлять браузер на какую-нибудь страницу, пусть ту же самую, но уже без данных формы, чтобы при обновлении страницы они не записывались повторно. Например:
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit;

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

Полезная информация может содержаться в различных НТТР заголовках.
Cookie - если сервер поставил куку, и она не устарела, то браузер отсылает ее вместе с каждым запросом.
HTTP authentication - если сервер запрашивал HTTP авторизацию, то браузер при каждом обращении шлет введенные логин и пароль.

РНР может посылать HTTP заголовки двумя командами - header() и setcookie().

Просмотр обмена HTTP заголовками
Я очень рекомендую попрактиковаться с HTTP заголовками, посмотреть, как ими обмениваются сервер и клиент.
Для этого есть множество разных способов. Если у вас стоит популярный download manager FlashGet, то можно использовать его. Так же заголовки показывает популярная программа Proxomitron, можно скачать какие-нибудь специальные утилиты.
Для IE можно предложить плагин http://blunck.se/iehttpheaders/iehttpheaders.html
Для браузера Mozilla есть удобный плагин http://livehttpheaders.mozdev.org/
Так же, существует много других утилит, легко находимых в сети по запросу HTTP sniffer.
Обязательно воспользуйтесь любым способом посмотреть HTTP заголовки, которыми обменивается браузер с сервером. Это очень хорошая практика, а так же проверка - что шлет твой скрипт. Удобно при отладке установки кук или проблемах с сессиями.
Примерное представление о пришедших заголовках можно также получить, воспользовавшись функцией getallheaders(). Но следует учитывать, что работает она только если PHP собран, как модуль.

ОЧЕНЬ ВАЖНОЕ ЗАМЕЧАНИЕ
Из того факта, что PHP исполняется на сервере, и посылает результат своей работы браузеру, следует один простой, но очень важный вывод. Что PHP в принципе НЕ МОЖЕТ отобразить в браузере ничего такого, что невозможно было бы сделать средствами html.
ПРЕЖДЕ, чем что-то писать на PHP - попробуйте это сделать чистым HTML.
"Нажатие на Энтер" не переводит строку? А в html вы не пробовали таким образом строки переводить? Не получилось? Какая досада. Прочитайте, как в html сделать перевод строки и приходите снова.

PHP в результате своей работы формирует не картинку с текстами, как вы ее видите на экране монитора! PHP формирует HTML код! И этот код ЗНАЧИТЕЛЬНО отличается от того изображения, которое вы видите на экране. Если у вас что-то не получается, то надо всегда смотреть именно ИСХОДНЫЙ код страницы, а не то, как вам ее рисует браузер. В браузере Internet Explorer исходный код можно посмотреть, выбрав в меню Вид - Просмотр HTML-кода.
Если у вас не работает яваскрипт, сформированный PHP скриптом, или html показывает не то, что вы хотите, то исправить эту проблему очень просто.
1. Сначала пишете нужный яваскрипт или html руками. Если у вас с этим проблемы - обратитесь в соотвествующий форум - по яваскрипту или html. PHP тут не при чём.
2. Сравниваете с тем, что получено из PHP
3. Вносите исправления в PHP скрипт, чтобы текст, отдаваемый им, не отличался от написанного руками.

Браузер не умеет показывать файлы, в которые напихан одновременно и html картинки. Браузер умеет показывать только известные ему типы данных. В частности, это ИЛИ html ИЛИ картинка. Но не вместе. Если картинка - то ОДНА. Несколько картинок подряд браузер показывать не умеет. Браузер умеет показывать HTML, в котором прописаны ССЫЛКИ на несколько картинок.
Пожалуйста, прежде, чем изучать PHP - изучите хотя бы основы HTML! Прежде, чем что-то требовать от PHP - попробуйте сделать это на html.

20 перспективных PHP CMS с открытым исходным кодом

1. WordPress

WordPress представляет собой мощный, но простой в использовании системы управления содержанием. Первоначально она была разработана в качестве блог-платформы. Однако, она медленно стала популярной, и может быть настроена в мощный CMS с некоторыми хитростями и плагинов. WP — самая популярная бесплатная CMS.

2. Drupal

Drupal является свободным и открытым исходным кодом модульной подсистемы и Системы Управления Контентом (CMS) написанная на PHP. Он используется в качестве back-end системы для множества различных типов веб-сайтов, начиная от мелких личных блогов для крупных корпоративных и политических сайтов.

3. Joomla

Joomla является наградами система управления контентом (CMS), которая позволяет создавать Web-сайты, мощные Интернет-приложения и обеспечить продвижение сайта. Многие аспекты, в том числе простота использования и расширяемость, сделали Joomla наиболее популярных Веб-сайт программного обеспечения. Лучше всего, Joomla является открытым исходным кодом, что решение является свободно доступным для всех.

4. Frog CMS

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

5. SilverStripe

SilverStripe-это PHP-CMS построен с Sapphire framework, и он использует MVC, если вы можете просмотреть пример сайтов, которые построены с SilverStripe с официального веб-страницы.

6. Мамбо

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

7. TYPOlight

TYPOlight-PHP 5 CMS и она имеет много функций, таких как live update, кросс-браузерного CSS framework генератор (IE7 совместимый), шаблонный основе front-end продукции, использованием технологий Ajax и Web 2.0. Вы должны проверить основную страницу для более информации.

8. Concrete5

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

9. Textpattern

Textpattern-еще одна очень популярная система управления контентом. Это требует PHP 4 для запуска и имеет много плагинов, которые можно использовать для различных настроек.

10. Симфония

Симфония-CMS, которая использует XML/XSLT, как его язык шаблонов. Симфония позволяет настроить все, что угодно, от веб-сайта, структура URL для вашей издательской среде. Для не программиста, это CMS может быть сложным, чтобы узнать.

11. MODx

MODx-это и приложений PHP, базы и системы управления контентом. MODx-первый бесплатный PHP CMS предоставляют API, что полностью поддерживает Web 2.0, Ajax технологии. Это CMS для SEO, и позволяет настроить мета контент для каждой страницы.

12. Habari Проекта

Habari является весьма рекомендуется open source блог-платформы. Это были написаны специально для современных веб-хостинг окружающей среды, и использует современные объектно-ориентированного программирования, методы.

13. CMS Made Simple

CMS Made Simple является легко настраиваемым и есть много Модулей для загрузки. Документация достаточно полная и легко следовать.

14. ImpressCMS

ImpressCMS является сообществом разработана Система Управления Контентом. Это является масштабируемой и чрезвычайно полезна для управления Интернет-сообществ.

15. Экспоненты CMS

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

16. MiaCMS

MiaCMS-вил Mambo CMS. Это мощный и расширяемый третьей стороной entension системы, а также гибкая сайте темы возможностей. MiaCMS поддерживает OpenID и может считаем стабильным и зрелым CMS.

17. Жожо CMS

Жожо является дружественной поисковой системе CMS. У вас будет SEO дружественных URL в вашей статье, и Жожо будет обрабатывать www/non-www доменов для вас. Рядом с SEO friendly, Жожо также позволяет расширить возможности путем добавления продукта баз данных, блоги, галереи изображений или вообще все, что заблагорассудится.

18. TYPO3

TYPO3 является бесплатной Open Source системой управления контентом для предпринимательских целей в Интернете и в интрасетях. Он предлагает полную гибкость и extendability в то время как благодаря проделанной набор уже готовых интерфейсов, функций и модулей.

19. Elxis CMS

Elxis CMS поставляется с много функций, таких как Search Engine Friendly URL, сильный безопасности, регулируемый списка участников и полного профиля пользователя. Его задачи, современный дизайн, технологии AJAX, и Многоязычный интерфейс поможет вам быть более продуктивным.

20. Chyrp

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

10 наиболее удобных систем управления контентом

Существует большое количество критериев, играющих важную роль при выборе системы управления контентом (CMS) для разработки проекта. В зависимости от того насколько сложная должна быть CMS, есть ли возможность локализации и кто собирается ее использовать – поиск «безупречной» системы управления контентом для проекта, может превратиться в кошмар.

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

1. WordPress

Что еще можно сказать о WordPress, что бы не было сказано ранее? Эта CMS является не только самой лучшей для ведения блога, но и самой популярной CMS в принципе. Это отличная платформа для начинающих, благодаря ее подробной документации и мастеру супербыстрой установки. Не говоря уже об автоматическом обновлении ядра и плагинов, без необходимости загружать отдельные файлы.

Для пользователей, плохо знакомых с HTML или любым другим языком разметки, есть WYSIWYG-редактор, прямо из коробки. Панель управления простая и интуитивная, и новый пользователь легко разберется в разделе администрирования. Также WordPress поставляется со встроенной поддержкой загрузки изображений и мультимедиа.

Что касается разработчиков, язык шаблонов сказочно простой и прямолинейный, так же как API плагинов.

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

2. Drupal

Drupal – это другая CMS, имеющая очень большое, активное сообщество. Вместо того, чтобы фокусироваться на блоговой платформе, Drupal является полноценной системой управления контентом. Простая установка, с огромным количеством настраиваемых модулей, которые добавляют множество интересных функций, таких как форумы, пользовательские блоги, OpenID, профили и многое другое. Вы легко сможете построить социальную сеть, с помощью простой установки Drupal. Фактически, с помощью нескольких модулей 3rd party, вы можете создать некоторые интересные клоны сайтов, с небольшими усилиями.

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

Кроме того Drupal, как уже упоминалось выше, имеет активное сообщество, отличную поддержку плагинов и других, общих вопросов.

3. Joomla!

Joomla это очень распространенная CMS, с точки зрения функциональности. Начать работу с Joomla, очень просто, благодаря удобному установщику. Установщик Joomla предназначен для работы на виртуальном хостинге, и довольно прямолинейный, если принимать во внимание насколько настраиваемым является этот движок.

Joomla очень похожа на Drupal, в том, что представляет собой полноценную CMS, и возможно, является слишком крутой для простого сайта с портфолио. Она поставляется с привлекательным административным управлением, выполненным с интуитивными выпадающими меню, и другими особенностями. Эта CMS также имеет отличную поддержку протоколов контроля доступа, таких как LDAP, OpenID и даже Gmail.com.

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

4. ExpressionEngine

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

ExpressionEngine поставляется вместе с множеством полезных функций, одна из которых – возможность иметь множество сайтов всего лишь с одной установкой движка. Для дизайнеров, в EE есть мощный шаблонизатор, который содержит индивидуальные глобальные переменные, SQL-запросы и встроенную систему контроля версий. Кроме того, благодаря кэшированию шаблона, запросов и тэгов, сайт работает очень быстро.

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

ExpressionEngine отличается от вышеописанных CMS тем, что это платный программный продукт. Персональная лицензия стоит $99,95, коммерческая лицензия $249,99.

5. TextPattern

TextPattern – является наиболее популярной среди дизайнеров, за счет ее простой элегантности. TextPattern не та CMS, в которой реализована каждая функциональность, пришедшая в голову. Главной целью TextPattern является предоставление отличной CMS, которая создает хорошо структурированные, соответствующие стандартам страницы. Вместо наличия встроенного WYSIWYG редактора, TextPattern использует textile-разметку в текстовых полях, для создания HTML-элементов внутри страниц. Генерируемые страницы являются крайне легковесными и очень быстро грузятся.

Несмотря на то, что TextPattern намеренно проста в конструкции, панель администрирования также удивительно легка в использовании и интуитивна. Новые пользователи, быстро разберутся в разделе администрирования.

Хотя эта CMS содержит минимум кода на уровне ядра, вы всегда можете расширить функциональность с помощью 3rd party расширений, модов или плагинов. У TextPattern, также, существует активное сообщество разработчиков на сайте Textpattern.org, где вы всегда сможете найти помощь и ссылки на другие ресурсы.

6. Radiant CMS

Все системы управления контентом, которые мы рассматривали выше, были PHP-программами. PHP является наиболее популярным языком для веб-разработки, но это не значит, что мы должны упускать из внимания другие популярные языки, такие как Ruby. Radiant CMS – это быстрая, минимальная CMS, которую можно сравнить с TextPattern. Radiant построена на популярном фреймворке для Ruby, под названием Rails, и разработчики Radiant сделали все возможное, чтобы их CMS была простой и элегантной, наряду с правильным количеством функций. Подобно TextPattern, Radiant не поставляется с WYSYWYG-редактором, а использует Textile-разметку для создания HTML. Кроме того Radiant имеет свой собственный шаблонный язык Radius, который очень похож на HTML, для интуитивного создания шаблона.

7. Cushy CMS

Cushy CMS – это совершенно другой тип CMS. Конечно, она имеет всю базовую функциональность, необходимую для системы управления контентом, но она не зависит от определенного языка. Фактически, эта CMS – является хостинговым решением. С ней вам не придется загружать файлы или беспокоиться о будущих обновлениях.

Как Сushy работает? У пользователя есть возможность загрузить контент на сервер, с помощью FTP, после чего разработчик или дизайнер, сможет изменить макет посредством изменения стилей в CSS. Все очень просто.

Cushy CMS бесплатна для всех, даже для профессионального использования. Существует возможность обновить pro-аккаунт, для использования собственного логотипа и цветовой схемы, также как и других изменений, с помощью функций Cushy CMS.

8. SilverStripe

SilverStripe это другая CMS на основе PHP, которая весьма похожа на WordPress, за исключением наличия большого количества настроек и ориентации на управление контентом, а не блоггинг. SilverStripe является уникальной, потому что была построена на основе собственного PHP-фреймворка Saphire. Она также предлагает свой собственный шаблонный язык в помощь разработчику.

Кроме того, SilverStripe имеет некоторые интересные особенности, такие как контроль версий и поддержку SEO. Но, то, что на самом деле, делает SilverStripe уникальным, так это возможность разработчикам и дизайнерам, модифицировать панель администрирования для клиентов, если это необходимо. И хотя сообщество разработчиков не такое большое, как у других проектов, есть некоторые модули, темы и виджеты, для расширения функциональности.

9. Alfresco

Alfresco — это написанная на JSP, корпоративная система управления контентом, которая на удивление проста в установке. Весьма полезная особенность Alfresco – это возможность перетаскивать файлы в папки и превращать их в веб-документы. Для освоения Alfresco понадобится немного больше времени, по сравнению с другими CMS, особенно для начинающих пользователей.

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

10. TYPOlight

TYPOlight представляет идеальный баланс функций, встроенных в CMS. Если говорить о функциональности, TYPOlight сравним с Drupal и ExpressionEngine, а кроме того, предлагает несколько уникальных, встроенных модулей, таких как новостные блоки и календари. Разработчики могу сэкономить время, с помощью встроенного CSS-генератора, а еще существует множество ресурсов для более подробного изучения этой CMS.

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

Ложка соуса в чашке риса

Блог о вебстроительстве, php, cms, typolight, и просто мой блог.