Тарифы Услуги Сим-карты

Уроки по созданию cms системы. Создание CMS этап проектирования

Как получить доступ к огромной аудитории, которая пока не знает о вашей компании абсолютно ничего? Самое распространенное, простое и надежное решение – создание и запуск сайта компании. Сайт – это такой себе «виртуальный офис», ваше представительство в сети. Место, где вы можете познакомить клиента с собой и своей продукцией.
Все хорошо, одна проблема – это именно создание сайта. Есть простое решение (но не всегда оно вам может подойти) – разработка сайта на онлайн-конструкторе . С таким заданием вы можете и сами справиться, всего-то нужно немного посидеть да разобраться в редакторе. Более сложный путь — использование связки CMS+хостинг. В этом случае потребуются профильные знания. Какой из вариантов подойдёт вам?

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

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

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

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

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

Что такое CMS

По своей сути сайт – это веб-приложение, это код, который считывается и отображается браузером. Для разработки сайтов используются различные языки программирования (PHP, JavaScript) и языки разметки – HTML, CSS.

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

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

Так появились первые CMS, в народе «движки». Аббревиатура расшифровывается как «Content Management System», то есть система управления контентом (содержимым) сайта.

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

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

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

CMS решает следующие задачи:

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

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

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

Какие же решения проверены и популярны? Читайте дальше.

Виды движков для сайта

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

Давайте разберемся, какие виды движков бывают.

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

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

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

Также разделяют движки по степени отчуждаемости :

  • индивидуальные или студийные – это самописные CMS, которые используются конкретной студией или разработчиком и никем больше;
  • коробочные решения , которые используются широким кругом разработчиков;
  • SaaS онлайн-конструкторы сайтов , о которых мы уже рассказывали.

Популярные CMS для вашего сайта

На какой же CMS остановить свой выбор? Давайте рассмотрим самые популярные на сегодняшний день.

WordPress

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

Сайты на WordPress легко создавать , просто поддерживать, быстро продвигать. Стабильный, понятный движок.

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

Подойдет вам, если:

  • у вас ограниченный бюджет на разработку;
  • вы не хотите разбираться в сложной админке – тут она как раз очень проста и интуитивно понятна;
  • вы хотите блог или корпоративный сайт с блогом.

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

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

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

Подойдет вам, если:

  • вы более-менее уверенный пользователь ПК;
  • хотите сайт, который легко развивать и трансформировать в будущем.

Надежная, многофункциональная бесплатная CMS , которая подходит в первую очередь для крупных порталов и сайтов крупных компаний – например, если вы хотите и блог, и разделы с услугами, и интернет магазин «все-в-одном». Хорошо защищенная, стабильная система, но требует от разработчика хороших навыков разработки сайтов именно на ней. Дилетант не справится.

Подойдет вам, если:

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

1C Битрикс

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

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

Подойдет вам, если:

  • вы хотите интернет-магазин с интеграцией с 1С;
  • у вас есть хороший бюджет на разработку и поддержку данного сайта.

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

Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%

Создание CMS этап проектирования

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

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

Процесс создания CMS на этапе проектирования определяет задачи, по плану которых любая CMS должна:

  • Иметь свой установщик;
  • Обновляться, не трогая пользовательские файлы. Т.е. обновлять только ядро;
  • Поддерживать использование плагинов;
  • Иметь возможность кеширования страниц;
  • Сохранять резервные копии БД;
  • Поддерживать шаблонизацию;

Этот перечень – основа задач для любой созданной для пользователей системы управления контентом.

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

В случае когда созданной CMS ’кой хочет пользоваться человек, не имеющий понятия даже о HTML, все это должно быть!

Установщик CMS

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

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

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

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

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

Вот блок схема алгоритма первого запуска:

Как видите сначала по плану настройка файла конфигурации, затем удаление установщика, и запуск.

Поддержка плагинов

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

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

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

Обновление системы

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

Прочитав руководство к обновлению версий ядра, я был немного смущен необходимостью последовательного обновления. Нужно было проделать обновления в таком порядке v1.5 –>v1.6 ->v1.7 , причем все это было в полуавтоматическом режиме с использованием нескольких интерфейсов и замены файлов текущей версии вручную.

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

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

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

Кеширование страниц и поддержка шаблонизации

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

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

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

Сохранение резервных копий БД

При поддержке и развитии сайта созданного на любой CMS, бывает необычайно важным вести ежедневное сохранение резервных копий базы данных.

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

Это еще раз доказывает необходимость в поддержке плагинов, которые временами могут значительно дополнить функционал системы.

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

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

Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по или RSS ленту блога.

Приветствует тебя и рад что ты заглянул. Сегодня я хочу начать новый цикл статей — разработка собственной CMS (Content management system) или, проще говоря — разработка собственного движка сайта. Интересно? Ну тогда вперед под кат)

Пара избитых фраз

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

Так, я когда-то писал аудиоплеер, который не требовал сторонних кодеков, имел шаблоны и читал всевозможные форматы, какие позволяла, на тот момент, библиотека bass, имел 18 полос эквалайзера и стандартный набор эффектов (эхо, реверб и пр.). Так вот, каждый задумывается, но не все реализовывают или доводят дело до конца. Мой плеер так и не вышел из стадии беты и был, к сожалению, заброшен. Я переместил свой интерес на веб-разработку: сменил delphi и c++ на PHP и JavaScript. Помню в том году как раз вышел релиз PHP 5.3. Немного ушел от темы, возвращаюсь 😛

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

Для чего и зачем мне это

Кто-то скажет: «зачем изобретать велосипед и ко-ко-ко…» — тогда возникает вопрос: как такие люди сюда попали и что забыли? Да велосипед, да простенький, да в магазине велосипеды больше блестят, да-да-да.. Но зато это мой велосипед, который собран с душой и разбираюсь в нем я куда лучше чем в тех, что предлагают в магазине. К тому же, нет лучшего изучения материала чем изучение его на практике. Заменим слово «велосипед» на PHP и продолжим уже в нашей стезе.

Разработка своего движка — это отличный способ изучить язык PHP и научиться ООП (Объектно ориентированное программирование) на примере. Не знаю как остальные, а я испытываю эйфорию, когда моя CMS оживает и еще больше когда она окажется кому-то нужна. Вот так, сложив все составляющие в единое целое можно сделать вывод зачем все это мне: вам полезно, а я покайфую что пригодился:D Сразу оговорюсь: я не гуру PHP и все что я буду показывать не есть правильное решение на 100%. К тому же, не так давно мой хостер стал поддерживать PHP 7, а это зверь относительно новый… Так что будем вместе изучать его фишки.

Что такое CMS

При возникновении любых вопросов я всегда обращаюсь к гуглу и википедии. И вот что они говорят на этот счет:

Систе́ма управле́ния содержи́мым (конте́нтом) (англ.Content management system , CMS ) - информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом (то есть содержимым).

*Есть разделение на прикладные CMS и Web CMS (WCMS). Так, как прикладные мы не рассматриваем, то говоря CMS я буду иметь именно WCMS.

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

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

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

Что должна уметь CMS

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

Начнем мы с того, что разделим весь функционал нашего движка на две части: внутренний и внешний.

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

  • загрузка фреймворка и всех его составляющих
  • подключение и работа с базой данных
  • работа с файловой системой и кеширование
  • обработка и вывод ошибок
  • защита от взлома и пр.

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

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

  • добавление нового материала или страницы
  • изменение настроек самой системы
  • подключение новых модулей
  • поиск по сайту и т.п.

Эти функции можно еще назвать «пользовательскими», то есть такие, которыми пользуется простой пользователь или админ для достижения какой либо цели.

Допустим, что мы храним в одной из таблиц базы текст нашей статьи, но нам она не нравится и мы хотим изменить текст: нажимая кнопку «изменить», мы воспользовались внешним (пользовательским) функционалом. Эта функция, в свою очередь, выполнила подключение к БД (базе данных), сделала выборку из таблицы с нашими статьями и вывела текст для его дальнейшего редактирования — это уже функционал ядра или «внутренний». Вот мы изменили текст и нажали кнопку «сохранить» — запустили пользовательскую функцию, которая, опять же, пользуется функционалом яда и так далее. Надеюсь на примере это понятно.

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

  • Добавление, редактирование и удаление статей и страниц сайта
  • Реализация подключаемых модулей и плагинов
  • визуальный редактор материалов
  • работа с шаблонами и их редактирование из самой системы
  • ЧПУ — так называемые «ЧеловекоПонятные УРЛы» или ссылки, которые вы можете наблюдать у меня в блоге.
  • защита от взлома и SQL-инъекций
  • возможность регистрации новых пользователей и распределение их прав доступа к разделам сайта

Здравствуй мой юный кодер, сегодня МЫ с тобой начнем писать свою простенькую CMS.
Итак, с чего начнем…естественно с проектирования. Что должна уметь/иметь не крутая, простенькая CMS? Этот вопрос достаточно сложный, т.к. любая CMS, даже самая простая, пишется под конкретные нужды: электронный магазин, программерский сайт, новостной сайт, галерея(хотя, в принципе, галерея- это не совсем CMS) и т.д. В этой статье мы рассмотрим второй вариант. Что же должна уметь такая CMS? Думаю все со мной согласятся, что:

1) Админку:)
2) Возможность управления новостями, статьями, загрузками, ссылками
3) Функцию регистрации пользователей
Это тот минимум с которым должна уметь оперировать наша CMS. К дополнительным фичам я отнесу:
1) Динамически создаваемые страницы, т.е. в админке можно запросто ввести содержимое новой страницы. Например: сделать магазин uin’ов на сайте или страницу повествующую о истории вашего проекта и т.п.
2) Комментарии к новостям. Это отдельный пункт, т.к. это довольно таки опасная вещь из-за того, что нужно применять специальные фильтры и спам- детекторы, иначе если вас кто-то очень сильно не любит и у него есть мозг/деньги(или что хуже всего, когда у него есть и то и другое:)) то он, в лучшем случае, может просто забить вашу БД мусором, в худшем он получит полный контроль над сайтом…Мы еще вернемся к этому вопросу;)
3) Возможность создания динамически создаваемых менюшек, их перестановка в различные области сайта.
4) Форма обратной связи с админами(Опасность та же, что и для пункта №2).
Ну вот и все, что я планирую(пока что) тебе объяснить.

Сначала организуем структуру директорий будущего сайта:
/DocumentRoot
/AdminPanel # Корневая директория админки
/Sources # Скрипты админки
/HTML # Собственно сам хтмл админских страниц управления
/Sources # Скрипты CMS
/HTML # Хтмл
/Images # Картинки
/Downloads # Директория хранящая в себе файлы доступные для скачивания
/Config # Файлы конфигурации CMS, например содержащие логин и пароль доступа к MySQL

Теперь что касается навигации по сайту. Навигация будет производится с помощью ссылок(ога, самому смешно:)) типа you_site.com/index.php?act=art&mod=idx. Параметр art характеризует какой раздел сайта мы хотим просмотреть, а параметр mod отвечает за подраздел который мы хотим просмотреть. Вот таблица соответсвия этих параметров:
act=art&mod=idx # Просмотр категорий статей
art=art&mod=cat # Просмотр конкретной категории. Как CMS будет узнавать какую категорию мы хотим просмотреть я объясню чуть позже:)
art=art&mod=art # Просмотр конкретной статьи

Act=dwn&mod=idx # Просмотр категорий статей
art=dwn&mod=cat # Просмотр конкретной категории. Как CMS будет узнавать какую категорию мы хотим просмотреть я объясню чуть позже:)
art=dwn&mod=dwn # Просмотр конкретной статьи

Act=users # Просмотр зарегистрировавшихся пользователей
act=users&mod=profile # Просмотр профайла юзера
art=art&mod=reg # Регистрация юзера

Это пока далеко не все варианты, в дальнейшем мы научим “понимать” CMS и другие параметры. Ну а теперь перейдем непосредственно к программированию. Создадим в корневой папке файл index.php именно через этот скрипт пользователь будет путешествовать по сайту, все остальное кроме картинок должно быть запрещено для просмотра(и не только скрипты но и файлы конфигурации, ХТМЛ)

Код файла index.php:

Require_once(‘config/database.php’); // Загружаем скрипт соединяющийся с БД
require_once(‘sources/session.php’); // Скрипт управления сеансами пользователей
require_once(‘config/config.php’); // Файл конфигурации
require_once(‘sources/check.php’); // Проверяет получаемые из URL’a параметры
require_once(‘sources/links’); // Отвечает за ссылки для навигации по сайту

$act=check_act(&$debug); // Функция проверки переменной $act, находится в файле check.php
$mod=@$_GET[‘mod’]; // Получаем переменную $mod
$site_links=get_links($mysql_tables); // Получаем массив ссылок
switch ($act)
{
case ‘idx’: //если посетитель просматривает главную страницу сайта
require_once(‘sources/news.php’); // Загружаем скрипт новостей
$site_news=get_news($mysql_tables); // Получаем массив новостей
require_once(‘HTML/index.htm’);// Загружаем ХТМЛ страницы
break;
}
?>

Код файла database.php:

$mysql_login=’root’; //Логин для доступа к серверу БД
$mysql_pass=’’; // Пароль
$mysql_host=’localhost’; // Хост на котором висит MySQL
$mysql_database=’MyCMS’; // Имя БД

$mysql_tables[‘news’]=’news’; // Таблица новостей
$mysql_tables[‘articles’]=’articles’; // Таблица статей
$mysql_tables[‘art_categ’]=’art_categ’; // Таблица категорий статей
$mysql_tables[‘downloads’]=’downloads’; // Таблица загрузок
$mysql_tables[‘dwn_categ’]=’dwn_categ’; // Таблица категорий загрузок
$mysql_tables[‘links’]=’links’; // таблица ссылок
$mysql_tables[‘users’]=’users’; // Таблица пользователей
?>

Код файла session.php:

@session_start();

If(!@$_SESSION["group_id"])//Если пользователь только что зашел
{
$_SESSION["user"]="Гость";
$_SESSION["id"]=0;
$_SESSION["group_id"]=-1;
$_SESSION["last_click"]=$time;
}

If(@$_SESSION["group_id"]<>"")//если посетитель не гость
{
$_SESSION["last_click"]=$time;//в дальнейшем нам это понадобиться для учета онлайн- пользователей на сайте
}

Код файла check.php:

Function check_act(&$debug)//Функция проверки переменной act
{
$act=@$_GET["act"];
if($act<>"idx")
{
$act=$debug["indx_act"];//Задаем дефолтное значение
}
return $act;
}

Код файла config.php:

//Установки управления исправлением ошибок:
$debug["indx_act"]="idx";// Если главный скрипт получит не правильное значение переменнной act то он задаст ей это значение

Код файла links.php:

Function get_links(&$table)
{
$query="SELECT position FROM $table";
$result=mysql_query($query);
$rows=mysql_num_rows($result);
for ($i=0; $i<$rows; $i++)
{
$sort_array[$i]=mysql_result($result, $i);
}
sort($sort_array);
for ($j=0; $j<$rows; $j++)
{
$pos=$sort_array[$j];
$query="SELECT * FROM $table WHERE position="$pos"";
$result=mysql_query($query);
$tmp_arr=mysql_fetch_array($result);
$links[$j]["name"]=$tmp_arr["name"];
$links[$j]["link"]=$tmp_arr["link"];
}
$links["rows"]=$rows-1;
return $links;
}

Вот в принципе уже и мини двиган получился:) Теперь давайте разберем код некоторых файлов, чтобы я вам пояснил механизм работы. Итак для чего я проверяю переменную $act спросите вы? А представьте себе что кто-то захочет в url’e ее поменять? После этого скрипт может работать не стабильно и вполне реальна порча данных и т.п. Конечно в данном примере это играет, мягко говоря, второстепенную роль, но запомните, что нужно проверять абсолютно все что может изменить пользователь(лучше даже проверять то что он в принципе и не может изменять). Если же у переменной какое-то левое значение то мы ей присваиваем дефолтное значение и тем самым обламываем вредных киддисов:)

Теперь разберем самый сложный из этих простых скриптиков- links.php. Я думаю, что читатель этой статьи уже сталкивался с управлением каким- либо движком сайта и наверняка догадался почему этот скрипт настолько сложен(для начинающих конечно). Управление ссылками на навигационной панели сайта заключается не только в том, чтобы их добавлять и удалять, а еще, как минимум, в том чтобы изменять их позицию, т.е. вы сначала добавили ссылки на раздел статей, а потом вспомнили, что забыли добавить раздел “Главная”- ссылку на главную страницу, но ведь эта ссылка должна по традиции идти первой…вот тут- то и пригодится управление позициями. Вы просто добавляете ссылку на главную страницу, а потом нажимаете на что-то похожее на “Вверх” или “Поднять” и т.п. Но мы пока не будем в этой части касаться админки, а пока рассмотрим скрипт- клиент. Сначала мы просто выбираем все записи из таблицы и заносим значения поля ‘position’ каждой записи в массив. Затем мы сортируем их по возрастающей, то есть: 0, 1, 2 и т.д. Это позволяет нам потом выполнять в цикле SQL запросы типа: $query="SELECT * FROM $table WHERE position="$pos""; Таким образом мы выбираем из таблицы записи у которых поле ’position’ равно значению переменной $pos, что и дает нам возможность управления позициями ссылок. Здесь мы в цикле, начиная с ключа со значением 0 присваивать имя ссылки и, собственно, саму ссылку. Все что нам потом понадобится чтобы вывести ссылки на свет юзеровский- это написать в хтмл файле index.htm такой скрипт:

For(i=0;$i<$site_links[‘size’];$i++)
{
echo "{$site_links[$i]["name"]}";
}

Вот собственно и все. Кстати, некоторые люди которые читают сейчас эту статью, наверное, возмутяться: “А почему в запросе не использовать конструкцию ORDER BY и не использовать связанные таблицы? Ведь это упростит задачу!”. Дело в том, что стиль написания моих скриптов заключается в том чтобы максимально увеличить их переносимость, т.е. я никогда не использую сложные запросы, связанные таблицы и т.д. Конечно, все это плохо сказывается на скорости работы скриптов и их сопровождении(слишком не понятный код), и если нужно добиться максимальной производительности в ущерб переносимости, то я использую все эти средства, но зато еще ни один мой скрипт при переезде не просто с одной версии MySQL на другую, а с одной платформы и/или типа веб серверов и серверов БД не выдал ни одной ошибки или предупреждения:) Каждый волен делать так как он хочет, ведь на то оно и программирование: возможных решений задачи, столько же сколько и людей пытающихся ее решить;)

P.S. Если что-то не понятно или ты нашел(а) неточности/ошибки в статье- меня всегда можно найти на нашем

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

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

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

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

Я попытаюсь вам описать как можно подробнее все основные плюс и минусы данного варианта создания сайта:

  1. Трудозатратнось. Средняя так как в конечном итоге в делаете все сами и соответственно изучать материал вам придется самостоятельно, и выполнять всю работу. Безусловным плюсом могу здесь обозначить наличие несложных инструкций, написанных изначально для людей мало разбирающихся в веб программировании и соответственно сами CMS административные панели написаны с учетом этого.
  2. Качество. Безусловно, качество остается на высшем уровне, так как сам код пишут профессионалы и соответственно они знают что делают. Но существуют такой отрицательный момент, что в итоге вы ограничиваетесь рамками возможностей конкретного CMS и не всегда есть возможность реализовать вашу задумку как вы хотите, без соответственных и достаточно хороших знаний веб программирования, но и с ними не всегда все получается.
  3. Финансовые затраты. Этот момент безусловно приятный финансовых затрат у вас ни будет ни каких, так как все бесплатно и уроки и инструкции и конечно сами CMS. Так, что ваш кошелек не пострадает.
  4. Перспективы развития. Да, безусловно они есть, но как я уже говорил они будут ограничены рамками обновления и создания плагинов к выбранному вами CMS. И если вы захотите в кардинально что-то изменить, то возможно вам придется менять весь CMS на другой, поэтому прежде чем остановить свой выбор на конкретном варианте узнайте все возможности у выбираемх вами CMS и подумайте наперед, что вы хотите увидеть на своем сайте в будущем и какие он функции должен выполнять.

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


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

  1. Обычный сайт визитка, просто подбираем нужный шаблон пишем текст и все.
  2. Достаточно качественный Блог, для реализации данной функции вам потребуется несколько дополнительных компонентов но это не проблема.
  3. Интернет-магазин практически любого объема и сложности.
  4. Сайт каталог или файловый архив.
  5. Портал - реализуется как с помощью стандартных возможностей Joomla
  6. Сайт галерея создание мощной галереи изображений или видео, для этого у Joomla достаточно расширений
  7. 7. Сайт для общения между людьми - для Joomla существует огромное количество компонентов и модулей, специально созданных для реализации общения между посетителями сайта.

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

Какие сайты вы можете сделать на основе данного CMS:

  1. Блог это безусловно первое и основное направление для которого был создан этот движок.
  2. Создание обычного статического сайта, в принципе это могут любые CMS
  3. Сайт объявлений
  4. Каталог статей
  5. Сайт фотогалерею
  6. Форум