Как я написал свою CMS, и почему не рекомендую вам делать то же самое. Написать cms


Пишем CMS или любителям изобретать велосипеды

Не знаю, как вам, а мне периодически хочется сделать какой-нибудь интересный сайт или сервис. Иногда довожу свою идею до конца, чаще бросаю на середине. Но каждый раз в самом начале встает вопрос - делать с нуля или воспользоваться готовой CMS? Сначала, конечно, я начинаю шарить по интернету в поисках приличной CMS. Ну, я люблю C# и ASP.NET, а не PHP и VB.NET, поэтому список подозреваемых невелик. Но и он очень быстро сужается - почти сразу же выясняется что данная CMS или глючная или очень медленная или какая-то слишком крутая, а мне надо попроще. И, конечно, остается в итоге один вариант - опять писать с нуля. Конечно, мой сайт будет также содержать глюки и тормозить, но это будут мои глюки, которые я постепенно исправлю, и тормоза, наверное, со временем пройдут как-нибудь... сами... Но это ладно, самое-то глупое во всей этой ситуации - писать с нуля один и тот же код. Потому что почти все сайты содержат примерно одинаковую информацию и функционируют по сути совершенно одинаково. Поэтому можно попытаться создать ну не CMS, конечно, это громко сказано, а так... шаблон... фреймворк, ну что-то такое, что можно использовать и потом.Ну что ж, сказано-сделано.Во-первых, что за сайт. Сейчас мне нужно сделать один довольно простой сайт, который будет содержать информацию о программном продукте. Возможно, в дальнейшем в него будет добавлено что-то вроде соцсети и магазин. А пока - новости, локализация, фидбэк, страница со скриншотами ну и разное по мелочи. Самое главное - возможность быстро в админке добавлять новости, информацию о продукте, скриншоты, менять иконки флажков для языков, возможность быстро и безболезненно добавить новый язык. Ничего сложного и навороченного, как видите. Можно было бы вообще не писать все это, если бы не одно но. В процессе работы меня периодически осеняет. Ну не то чтобы конечно, в прямом смысле, но все время приходят разные идеи, как можно отрефакторить, как можно сделать удобнее. Меня бесит, например, когда код разметки смешан c JavaScript-кодом, когда переадресация на нужную страницу делается в коде, и стоит потом эту страницу переместить, как переадресация валится, и все в таком же духе. Поэтому я буду свои идеи по ходу дела выкладывать сюда. Если конечно, мне не надоест. А называться это безобразие будет "Пишем CMS. 100 шагов". Я, конечно, не думаю, что приличную CMS можно написать даже за 300 шагов, но, во-первых, 100 звучит красиво и солидно, во-вторых, у меня нет уверенности, что меня хватит даже на 50, в третьих, накрайняк всегда можно поменять первую цифру. Поехали!

pure-development.blogspot.com

Как написать cms на php

Гость Вот, изучив в основах php, решил попробовать написать просте-е-нькую CMS. PHP-основы я знаю, но как писать CMS не совсем представляю. P.S. Я знаю: массивы, метод POST, метод GET, циклы, работа с файлами, работа с MySQL, и многое другое.Дополнено (1). я хочу почитать принцип написания CMS, может у кого-то есть книги по написаниюДополнено (2). я хочу написать CMS с БД мини муз сайт, и прошу не говорить что есть готовые сайты, если бы я нашел такую CMS я бы не писал здесь

Epsiloncool (Epsilon S Вы ещё не "выросли" в профессиональном плане для написания CMS. Поверьте мне, понимание устройства CMS придёт к Вам автоматически по мере "взросления".

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

CKB CMS разные бывают. Вы как себе представляете - какой должна быть CMS с минимальными возможностями? (можно даже без БД для простоты)

Гость Я думаю, что под аббревиатурой CMS не обязательно подразумевается какой-то универсальный фремворк для массового использования. Система управления содержанием вполне может быть написана специально для одного конкретного сайта с определенными целями, почему бы и нет? Если бы автор вопроса уточнил что он имеет ввиду под словом CMS, как предложил СКВ, было бы яснее.

Epsiloncool, так все-таки можно почитать? А то я думал что как и автор "недорос" и читать нельзя. Ну что ж круто, спасибо что разрешили. А вот если бы ещё и материал посоветовали по теме, то было бы вообще шикарно.

Ещё вспомнилась забавная статья Пола Грэма по поводу разногласий и споров, уверен что есть русский перевод, в оригинале можно почитать http://www.paulgraham.com/disagree.html, думаю кому-нибудь будет интересно почитать)

Epsiloncool (Epsilon S 2 Без имени:вам и самому не мешало бы почитать про CMS, в частности чем она отличается от фреймворка и для чего нужна.

mysqlru.com

Самописный сайт или CMS (движок)?

Статья посвящается НЕ программистам, а заказчикам, которые желают разобраться в вопросе. Идея написания возникла у меня, после прочтения заявок на фрилансе, где иногда попадается что-то такое: «Надо сайт-визитка на самописном движке» или «только с нуля, никаких CMS»…

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

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

Действительно ли самописный сайт лучше сайта на CMS?

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

Да, самописный сайт, по идее, должен работать быстрее. Дело в том, что он не будет перегружен лишними функциями, не будет предусматривать кучу ненужных вам расширений. Иногда в этом может быть смысл, но на примере сайта-визитки вы никогда не увидите разницы. Скорость загрузки сайтов такого плана, сделанных хоть с нуля, хоть на движках, составляет доли секунды (если на странице нет картинок) или 1-3 секунды (если есть графика).

Примеры наших проектов на СMS: Терем Белим, VITPA, DM design

Почему же некоторые сайты тормозят? Тут проблема скорее в плохой верстке, в отсутствии оптимизации графики и загружаемых файлов, обилия анимации, неправильного расположения скриптов в коде и т.п. Движок к этому не причастен никоим образом. А вот на все перечисленные моменты обязательно нужно обратить внимание — хороший разработчик это понимает и не винит во всем CMS-ку.

Что касается реализации оригинальных задумок: не хочу обидеть вашего внутреннего творца, но часто задумки не столь уникальны, как может показаться. В большинстве случаев есть готовое решение, его можно использовать для проекта. Даже если такого не имеется, программист способен написать его под выбранную CMS. Популярные движки предусматривают написание новых модулей, плагинов — это стандартный подход к разработке.

Все равно хочу сайт с нуля — в чем минусы?

«Но если разницы нет, то почему бы вам просто не сделать, как я хочу?» — скажете вы.

Дело в том, что разница огромная. А именно в трудозатратах, времени и стоимости.

Вот что повлечет за собой написание с нуля:

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

Минусы движков. Когда уместно сделать сайт с нуля?

Так что там, с нуля вообще не вариант?

Иногда действительно приходится писать сайты с нуля. Это потому, что есть нетипичные проекты. Например, мы делали систему сравнения прайсов или сайт по поиску работы. Готового движка, который обеспечил бы такие возможности, к сожалению, нет.

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

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

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

Думаю, что решение «делать на движке или с нуля» должен принять программист. Так как ему виднее, какие есть готовые удачные решение, насколько сложно будет написать дополнения и т.д.

Кстати, и статичные сайты (если контент не будет меняться никогда) само собой нет смысла делать на CMS. Пример такого сайта — одностраничник для сбора данных пользователей.

А можно короче?

Давайте уже сравним по пунктам, чтобы быстрее закончить и принять решение.

Скорость загрузки. (выделяю первым, так как это обычно главный аргумент заказчиков) Для лэндинга и визитки будет почти одинаковой: как на движке, так и без него. Магазин не будет тормозить, если правильно подобрать систему управления: большой магазин не рационально делать на WordPress, а маленький — на Magento.

Расширяемость. Оба варианта можно расширить при необходимости. Движки всегда предусматривают написание или подключение дополнений. Сайты с нуля всегда можно дописать.

Надежность.  Этот пункт противоречив. С одной стороны, у популярных движков открытый код. Любой может в нем порыться, и кто-то даже попытается найти уязвимость. Таким образом, сайт можно взломать, что иногда происходит (особенно этим грешит WordPress).

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

Независимость. Если вы заказываете самопис, то становитесь привязанным к конкретному разработчику. Изучать новую систему, мало кто захочет. А вот специалиста по популярным движкам найти достаточно легко. Так вы не зависите от одного человека, который может просто передумать работать над проектом.

Возможности. Движки имеют самые разнообразные приморочки. А еще можно написать свое дополнение. Но нельзя отрицать, что с нуля получится сделать действительно любой функционал.

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

Есть готовые бесплатные шаблоны для популярных движков, также и универсальные html-шаблоны.

Поддержка. Вряд ли случится так, что один сайт сможет удовлетворять вас на протяжении 10 лет. Технологии идут вперед, ваши нужды увеличиваются, новые «фишки» появляются.

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

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

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

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

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

Время разработки. Естественно, самописные сайты разрабатываются в разы дольше.

Стоимость разработки. Из предыдущих 2-х пунктов ясно, что стоимость сайта с нуля будет намного превосходить стоимость сайта на CMS. Во-первых, крутой программист захочет больше денег. Во-вторых — плата за потраченное время.

Так какой там вывод?

Получилось, что в числовом эквиваленте движки обставили самописы в 2 раза! Что это значит? Это значит, что надо использовать CMS, если это возможно. Для типового сайта готовая система управления дает только плюсы: дешевле, быстрее, универсальнее и качественнее.

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

 

P.S. Блог, который вы сейчас читаете, сделан с нуля. Это потому, что наш программист так развлекается на досуге :) Я вот предпочла бы перенести сайт на популярный движок, чтобы не приходилось так долго ждать нужных мне апгрейдов!

lamastravels.in.ua

Подскажите хороший материал по созданию CMS

Описание:

Курс не претендует на всесторонность, автор не претендует на звание гуру. Просто попытка в простой и доступной форме показать основные моменты разработки небольшого личного сайта с нулевыми начальными знаниями PHP или любого другого языка программирования.Знания HTML и CSS приветствуются, но для прохождения курса не являются обязательными, весь HTML я буду давать по ходу действия, но не буду останавливаться на его объяснении. Курс очень хорошо подойдет для верстальщиков, которые хотят кроме html-верстки овладеть и навыками создания CMS, возможно, для студентов, а также и для остальных заинтересованных. По сути никаких предварительных знаний не требуется.Курс не является всеохватывающим, но по окончании курса вы сможете писать небольшие проекты и получите неплохие стартовые знания для дальнейшего изучения PHP.Пройденный материал будет сразу же закрепляться на готовых примерах, конструкциях, которые будут использоваться в сайте в качестве составных элементов (за исключением двух-трех выпусков, где придется обсудить базу), что тоже способствует более комфортному усвоению. В отличие от большинства книг, где сначала проходят трехэтажную конструкцию, с абстрактным объяснением, что где-то оно вам может пригодиться, и через 300 страниц только напоминают "а помните (а действительно, помните?), мы рассматривали структуры данных, вот тут-то они и пригодятся".Заранее приношу извинения за иногда неуверенное звучание голоса и запинки. Я не преподаватель, а простой программист (это не значит, что не буду стараться отточить ораторский навык, надеюсь, что практика поможет). Просто увидел пробел в отечественной видеопродукции по теме PHP/ООП и современного подхода в целом, даже в хороших книгах порой встречаются неудобства. Скажем, во многих, даже относительно новых, книгах видел обращение к переменной, переданной методом get/post напрямую, а не через глобальный массив, без каких либо пояснений, в то время, как при современных безопасных "register_globals = off" по умолчанию читатель может несколько часов биться головой о книжные листинги. Вот только помочь устранить проблему книга не поможет. А я живой человек, помогу, чем смогу.Вот и решил заполнить этот пробел. Подобных курсов в рунете пока еще нет, по крайней мере я не видел, тем более бесплатных. Конструктивная критика по содержанию самих кастов принимается, при необходимости буду корректировать выпуски или делать лирические отступления в последующих выпусках для поправки наделанных ошибок.Содержание курсаВводный выпуск:

Выпуск 1:Выпуск 2:Выпуск 3:Выпуск 4:Выпуск 4.5 (багфиксы, смотреть перед 5-м выпускомВыпуск 5:Выпуск 6:Выпуск 7:Выпуск 8:Выпуск 9:Выпуск 10:Выпуск 11:Выпуск 12:Выпуск 13:Выпуск 14:СКАЧАТЬ: http://yadi.sk/d/njUfTmaC1ek6s

 

www.nulled.cc

Как я написал свою CMS, и почему не рекомендую вам делать то же самое

Работа над программами управления контентом CMS (content management system) полна чудес. Под катом поучительная история Petr Palas. Если у вас все хорошо с английским, то в оригинале текст можно почитать здесь. Enjoy!

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

В 2000-м я обучался в университете и работал Интранет-разработчиком: публиковал в Интранет контент, написанный на статичном HTML. Это была моя первая «программистская» работа, и я ею наслаждался. Пару недель.

Потом стало очевидно, насколько мои обязанности являются однообразными и неавтоматизированными. И я начал писать приложение на классическом ASP, которое позволяло бы пользователям самостоятельно управлять контентом. Я и понятия не имел о существовании такой штуки, как Content Management System, и потому изобретал велосипед. В то время существовало всего несколько коммерческих CMS, зачастую стоившие сотни тысяч долларов. Учитывая распространённость и ценовой диапазон этой категории ПО, неудивительно, что не я один пытался уменьшить свои неудобства и повысить эффективность, создавая собственную CMS.

К 2004-му почти каждое интернет-агентство создавало собственную CMS, нередко кастомизируя под конкретных клиентов. Это приводило к появлению десятков модификаций — кошмар с точки зрения управления. «Это бессмысленно», думал я. К тому моменту я уже написал несколько специализированных CMS и снова заскучал. «А что если написать CMS, которая может быть полезна для любого сайта?» В результате я организовал компанию Kentico Software, чья миссия была очень проста: создать CMS, которую любой разработчик в мире может использовать для создания любого сайта.

Сюрприз: люди всё ещё пишут собственные CMS!

13 лет спустя меня ещё поражает количество людей, которые пишут собственные CMS. Существует масса зрелых продуктов, под все виды проектов: от open source до коммерческих систем корпоративного уровня, от лучших в своём классе до универсальных «всё-в-одном».

Так зачем кому-то до сих пор нужно писать собственную CMS?Ответ прост: люди делают это из-за разочарования.

Традиционные веб-ориентированные CMS чреваты недостатками и ограничениями. Но правда в том, что все эти разочарования уже утратили актуальность. Знаю, звучит лицемерно. Ведь мне помогло написание своей CMS, так почему это не поможет другим?Позвольте объяснить.

Самописные CMS устарели из-за headless-архитектуры

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

И сегодня новое поколение CMS-технологий — облачные, с headless-архитектурой — скоро совершит революцию в сфере управления контентом. В отличие от традиционных решений, headless-CMS сосредоточены только на управлении контентом и на том, чтобы сделать его доступным любому приложению посредством API. Поскольку у таких продуктов нет «головы» (head), которая обычно диктует, как нужно отображать контент, headless-CMS оставляют вопрос дизайна полностью на откуп разработчикам.

Поэтому не слишком разумно сегодня писать собственные CMS — если только вы не хотите стать вендором таких продуктов. Но мне легко говорить. Ведь я же не единственный, кто столкнулся с многочисленными недостатками и нашёл много причин, по которым самописная CMS может быть выходом из ситуации.

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

Причина №1: стандартные CMS ограничивают мой творческий потенциал

Первое, на что жалуются фронтенд-разработчики, это вмешательство CMS в их HTML-код и необходимость искать обходные решения.

Но с этим покончено: headless-CMS дают вам полную свободу и никак не влияют на результирующий HTML-код. Для извлечения контента из репозитория вам достаточно лишь с помощью своего любимого языка программирования вызвать соответствующий REST API.И более того, вы сами полностью решаете, как будет этот контент отображаться!

Причина №2: интерфейсы стандартных CMS слишком сложны

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

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

Причина №3: стандартные CMS слишком дороги

«Мы не хотели платить Х рублей за коммерческую CMS, поэтому решили написать свою». Если вам не нужно что-то гораздо более простое, чем реальная CMS (вроде управления списком новостей), в долгосрочной перспективе вы не сможете сэкономить с помощью самописной CMS.

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

Причина №4: стандартные CMS не безопасны

Для многих организаций обеспечение безопасности CMS является кошмаром. Поэтому некоторые разработчики думают: «Если мы напишем свою CMS, то хакерам будет труднее найти в ней баги».Классическое обеспечение безопасности через неясность (security by obscurity).

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

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

Причина №5: стандартные CMS не вписываются в мою архитектуру

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

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

К счастью headless-архитектура позволяет легко обращаться к контенту с помощью API и писать свои приложения так, как вам хочется.

Причина №6: многие клиенты всё ещё пользуются написанной нами CMS

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

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

Мой совет: сделайте этот смелый шаг, пока ваше агентство не проиграло!Выберите современную CMS и выделите основные преимущества, которые привлекут к ней ваших клиентов. Наконец, дайте своим разработчикам новую игрушку! Подсказка: большинство из них очень быстро влюбятся в headless-CMS.

… и две причины, когда использование самописной CMS оправдано

Честно говоря, всё же есть ситуации, когда использовать собственную CMS либо целесообразно, либо это вообще единственный возможный вариант:

• Управление контентом — основа вашего бизнеса: если вы компания наподобие Medium, то вам наверняка нужен абсолютный контроль над системой управления контентом. Если вы большое издательство с десятками публикаций, и вам нужен полностью кастомизированный рабочий процесс, то вам тоже может понадобиться собственная CMS (или хотя бы кастомный редакторский интерфейс). Однако в мире ОЧЕНЬ мало компаний, относящиеся к этим категориям и для которых оправданы подобные инвестиции.• Уникальные требования по безопасности или соблюдению законодательства: опять же, существует немного организаций, вынужденных придерживаться специфических правил, когда речь идёт о хранении контента, обеспечении безопасности, программной архитектуре или инфраструктуре, и эти правила не позволяют использовать стандартные CMS.

Если что-то из сказанного — про вас, то помните, что каждый час, потраченный на создание своей CMS, это час, который вы могли бы потратить на создание конкурентного преимущества, а не на изобретение колеса.

Не пишите свою CMS, пока не возникнет очевидный бизнес-случай

Люди ВСЕГДА недооценивают объём работы по созданию настоящей CMS.

Возможно, в первый момент вы подумали: «Что такого сложного в CMS? Я просто возьму задокументированную базу данных и прикручу сверху интерфейс редактирования». Это лёгкий старт, но ещё не настоящая CMS. Когда вы начнёте добавлять уровни, например, моделирование контента, языковые варианты, рабочий процесс, разрешения, доставку контента, поиск и так далее, то обнаружите, что разрабатываете и управляете по-настоящему сложным решением.

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

Автор: Демьян Кудрявцев

Источник

www.pvsm.ru

Создание своей PHP CMS на освове модулей и шаблонов

Всем доброго времени суток. Сегодня вспомнил как я когда то искал пример для создания свой CMS. Тогда ничего в нете нормального я не нашёл. Решил дать поиск и просмотреть изменилась ли ситуация. Как оказалось всё так же. Ничего такого что могло бы помочь в написании своей системы. Много воды и ничего конкретного нет. Вот и пришла мне в голову идея написать пошаговую документацию по написанию своей cms.

Итак для начала определимся что мы хотим нашей системы.

  1. Публикация страниц
  2. Отображение древовидного меню
  3. Построенная на основе модулей
  4. Смена шалонов сайта
  5. Позиционирование модулей

Итак настало время создать структуру папок для проекта. Дадим название нашей системе — Alexa

/panel/ — Админская часть сайта из которой будет происходить управление информацией, модулями и шаблонами сайта

/panel/index.php  — индексный файлик панели

/panel/config.php — файл конфигурации для нашей системы

/panel/stack.php — файл обьединения библиотек

/panel/core/ — ядро системы содержащее основные библиотеки для системы

/panel/themes/ — темки для админ панели

/panel/modules/ папочка содержащая части модулей относящиеся к админской стороне

/panel/langs/ — доступные языки для админ панели и модулей админской части

/index.php — индексный файл, к которому будут идти все запросы

/modules/ — папка с модулями для клиентской части сайта

/themes/ — папка с темками для нашей системы

 

Итак основная структура создана. Для начала напишем файлик конфигурации /panel/config.php .

< ?php $_SETTINGS['dbname'] = 'alexa';// Имя нашей базы данных $_SETTINGS['dbuser'] = 'root'; // Пользователь нашей базы данных $_SETTINGS['dbpass'] = ''; // соответственно пароль $_SETTINGS['dbhost'] = 'localhost'; // и хост $_SETTINGS['debugging'] = true; $_SETTINGS['error_level'] = E_ALL; $_SETTINGS['db_charset'] = 'UTF8'; $_SETTINGS['doc_dir'] = $_SERVER['DOCUMENT_ROOT']; $_SETTINGS['admin_theme'] = 'panel_theme'; // Указывается папка в которой распологается темка для админки ?>

Создадим базу

Это наша основная таблица в которой храниться информация об установленных модулях.

CREATE TABLE IF NOT EXISTS `modules` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `title` tinytext, `description` text NOT NULL, `author` text, `copyright` text, `version` tinytext NOT NULL, `inst_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `sequence` int(11) DEFAULT NULL, `settings` text NOT NULL, `active` int(1) unsigned NOT NULL DEFAULT '1', `position` varchar(11) NOT NULL, `system` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

А также таблица содержащая темки для сайта

CREATE TABLE IF NOT EXISTS `themes` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `description` text NOT NULL, `author` text NOT NULL, `version` text NOT NULL, `pages` text NOT NULL, `default` int(1) unsigned zerofill NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

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

 

Другое из текущей категории:

stroimsayt.com

Пишем движок сайта (CMS – Систему управления контентом)

Использование систем управления контентом (то бишь движков сайтов) является самым простым и эффективным способом создания и ведения своего собственного сайта. Некоторые сайты используют сложные и “навороченные” движки, некоторые довольствуются простенькими экземплярами. Написать же CMS не так сложно, как кажется.Естественно, речь не идёт о сложных портальных системах. Сегодня мы напишем простую CMS, в которой можно будет использовать неограниченное количество статичных страничек с оформлением по шаблону и редактированием из админ-панели.

А начнём мы с того, что расскажем, как будет работать наш скрипт управления контентом. Как я уже сказал раньше, CMS будет иметь возможность создания статичных страничек. Так вот, эти странички будут храниться в .php файлах примерно такого формата:

<?$page_title = ‘Титул’;$page_descr = ‘Описание страницы’;$page_keyws = ‘Ключевые слова’;$page_4menu = ‘Текст ссылки в меню’;

$content = <<< EOTА здесь контент страницы. Для форматирования используется htmlEOT;?>

Хранить мы их будем в папке content

Эти файлы будут просто подключаться и их содержимое выводиться в шаблон. Шаблон — это обычная куча html-тегов с несколькими специальными тегами (при обработке вместо тегов выводятся соответствующие значения):

Шаблоны будут храниться в папке templates/<имя шаблона>/. Файл с шаблоном назовите index.php. Сделайте какой-нибудь шаблон прямо сейчас.

Ссылки в меню можно упорядочить. Вообще ссылки будут храниться в файле menu.csv (в формате comma separated values). Файл будет иметь примерно такой вид:

1;Главная2;Контакты

Каждая строчка имеет вид номер_страницы;текст_для_ссылки. Имя файла (без расширения) является этим самым номером страницы.

Меню будет выводиться на экран csv-парсером menu.php. Ссылки в меню будут оформляться в соответствии с шаблоном для ссылок, который будет храниться в файле settings.php. Кроме этого шаблона, в файле настроек также будет храниться id главной страницы (которая показывается по умолчанию) и название используемого шаблона. Он имеет примерно такой вид:

<? $curr_tmpl=’default’; $index=1; $menu_tmpl = “<a href=\”%URL%\”>%TITLE%</a><br />”; ?>

Шаблон для ссылок хранится в переменной $menu_tmpl. В нём используется два тега: %URL% для вставки URLа страницы и %TITLE% для вставки текста ссылки.

Также для работы скрипта необходимы ещё два файла: error.html и 404.html. Они будут выводить сообщения об обычной ошибке и ошибке 404ой соответственно. Это должны быть простые html файлы (их создание мы оставим на Вас).

Отлично, с подготовкой к написанию скрипта мы закончили. Теперь начнём делать саму CMS.

webteach.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта