|
Я решил опять перейти на программистскую тематику, но писать для «обычных людей». Не секрет, что для создания хорошего сайта (в основном СДЛ, но не обязательно), приходится писать к нему CMS на заказ. В основном это не дешевле 400$, поэтому для начинающего манимейкера невозможно.
Будет несколько частей, сколько – я не знаю. Если что-то хочется узнать или спросить – всегда пожалуйста.
Если до сих пор непонятно, что я буду вещать, поясняю: как «по кубикам» написать CMS портального типа, не зная программирования. Как сделать голосование, блоги пользователей, регистрацию пользователей, каталоги и прочее, прочее, прочее. Похоже, можно делать неограниченное количество таких постов.
Это первая часть, поэтому несколько моментов: я учту, что заботиться о безопасности скриптов нужно сразу, по совету умных людей (простите, уже запамятовал, с кем спорили), писать будем на PHP, и все-таки необходимо знать хотя бы основы программирования на PHP. Если непонятно, что читать, см. один из старых постов: Как стать программистом.
На серию статей планы наполеоновские:
1. Шаблоны. (этот урок)
2. Движок для вывода статических страниц.
3. Прикрутить Smarty.
4. Авторизацию пользователей.
5. Опросы.
Осталось писать регулярно. Итак, к уроку.
Шаблоны или встроенный дизайн?
Когда Вы пишите сайт, всегда есть внешняя сторона происходящего – то, что видит пользователь, дизайн и оформление. Предположим, что дизайнер нарисовал картинку, верстальщик разрезал ее и отдал нам HTML-страницу. А нам нужно встроить ее в движок и выводить информацию (из базы данных или еще откуда-то) согласно этому оформлению.
Если отбросить детали, то есть 2 способа обработки дизайна (форматирования вывода данных). Первый – это встроенный в движок дизайн. Второй – шаблонизатор (и шаблон дизайна).
Встроенный дизайн.
Этот способ проще реализовать, но сложнее эксплуатировать. Больше того, если позже этим сайтом будет заниматься человек, не знакомый с программированием, такой способ может доставить ему некоторые сложности, когда он захочет что-то поменять. А перетянуть весь дизайн может быть сложно даже программисту, ранее не знакомому с этим движком.
Итак, к сути. Например, у нас есть какое-то оформление а-ля <div id=’aaa’></div>, а между <div> нам нужно вывести какую-то информацию. Тогда в этом случае, мы просто выводим ее с помощью операторов PHP прямо в файле сценария *.php: <div id=’aaa’><?php echo $a; ?></a>
Получается, что если у нас 30 разных файлов, то в них по кускам везде появляется оформление (HTML). И поменять его или найти именно тот сценарий, куда закралась ошибка оформления становится сложно.
Шаблонный дизайн.
При этом весь дизайн оформляется в виде отдельного файла с HTML-разметкой, куда вставляются метки для вывода информации. Часто файл с дизайном имеет расширение *.tpl, и его содержимое похоже на такое: <div id=’aaa’>{title}</div>. Потом PHP-сценарий должен обработать этот файл, считать его содержимое, заменить «метки» (для примера здесь {title}) на реальную информацию и вывести все это пользователю.
Все распространяемые CMS поддерживают шаблонный дизайн, что обеспечивает возможность создавать для них темы оформления. Тогда их нужно просто залить в отдельный каталог и включить через админку. Как видите – и править их легче, все в одном файле, наглядно и понятно.
Шаблонизаторы.
Обычно так называются скрипты (модули движка), обрабатывающие эти самые шаблоны из предыдущего пункта. Очень хороший пример такого шаблона – Smarty, очень рекомендую к рассмотрению и изучению. Хороший пример собственно написанного шаблонизатора – это DLE.
Часто программисты не пишут свой шаблонизатор, а встраивают в свой движок Smarty. Я думаю, что это лучший выход, т.к.:
1) Уже все написано, не тратится время на создание шаблонизатора;
2) Он работает быстро. Если новичек попробует написать свой шаблонизатор, он, возможно, будет работать медленнее;
3) Он бесплатно распространяется и бить Вас за это не будут;
4) Очень важно, что другой разработчик сразу будет знать как работать с ним.
Конечно, этот пост кажется совсем не для новичков :) Но это первое, на что мы наткнемся на «практических занятиях», т.к. оформление (вывод) информации в браузер есть даже в самом минималистическом скрипте.
В следующий раз попробуем написать костяк движка, чтобы он мог выводить статические страницы, шаблон будет встроенный (см. 1 пункт).
Оставьте свой комментарий
|
24.11.2008 в 3:16 дп
Дима, сразу несколько вопросов:
1. Что значит, «для создания хорошего сайта…приходится писать к нему CMS на заказ».
CMS она ведь на то и CMS, чтобы на ней можно было разные проекты строить. Глупо как-то под каждый проекту новую ЦМСку городить…
2. 400$.. ты нолик в конце случайно не потерял? Интересно посмотреть на качество такой ЦМС. Чтобы вложиться в эту сумму ЦМС должен писать негр на пальме с бананами…
3. Для того, чтобы объяснить разницу между шаблонным и встроенным дизайном, может логично сказать пару слов об MVC?
24.11.2008 в 10:08 дп
Бля, спасибо что ты есть, Дим :) Я как раз задумался над СДЛ и начал его делать.. ) Слушай, а ведь посути, если захотеть можно любой дизайн прикрутить. Например диз с тогоже DLE
24.11.2008 в 1:42 пп
Алексей Качаев,
1. Почему глупо? Ну например сайт вообще уникальный и каждую стандартную CMS придется переделывать на 60%? Что скажете? Вы, наверное, никогда не писали сайты на заказ.
2. Хотите заплатить 4000$, я мешать не буду. Реальная стоимость CMS средней руки – 400-600$ + амбиции автора еще 600-800$.
3. Если сказать пару слов о MVC, новичек может сойти с ума, мне кажется. Это нафиг не нужно, чтобы начать писать СДЛ.
Знаете, я вообще против всяких тупых говно-понтов, умных слов и прочего дерьма, которое по сути нахуй не нужно для того, чтобы что-то сделать. Да, вот так грубо ; ).
ThisFIL: :-D НЗ. Да, можно, есть несколько способов.
24.11.2008 в 2:21 пп
Всегда хотел уделить время и начать разбираться с php, тем более что html знаю и php в приципе правил, так что буду читать, пиши еще.
24.11.2008 в 6:39 пп
Вы, наверное, никогда не писали сайты на заказ.
Писал. И не раз, и не два.
Ну например сайт вообще уникальный и каждую стандартную CMS придется переделывать на 60%.
На 60%? Это какую такую CMS вы изменяли на 60%.. Заметьте, настройка модулей, установка плагинов это не переделка CMS. А легкая подчистка напильником кода – это максимум процентов на 5 потянет.
60% – это значит сносим почти все системы, меняем вполовину ядро… так получается? Зачем? Для каких таких целей?
CMS средней руки – 400-600$ – это гавно, а не CMS. Вот такая штука как раз и будет работать только для одного сайта, а попробуй для другого настроить – так и правда придется 60% кода переписывать. Может мы с вами разные вещи имеем ввиду под CMS?
…всяких тупых говно-понтов, умных слов и прочего дерьма, которое по сути нахуй не нужно…
Ну, знаешь ли… Не нужно MVC? А нафига тогда шаблонизатор? Давайте в PHP код HTML пихать, а потом пусть дизайнер вручную правит. Нет уж, MVC нужно.
Я ведь не говорю, что нужно обязательно загрузить новичка кучей терминов, можно даже слово MVC не употреблять… Но было бы логичнее сначала рассказать о том, что в сердце нашего творения будет база данных и одна часть системы будет работать с ней. Другая будет принимать запросы пользователя, третья – выводить ответ (шаблонизатор)… Так чтобы у человека сразу вся картина рисовалась.
И никаких понтов, просто делюсь опытом обучения других.
25.11.2008 в 9:24 дп
Алексей Качаев,
Ну вот предположим, чтобы стало понятнее что я имею в виду. По-вашему как – легче переписать, скажем, DLE, чтобы вышел сайт free-lance.ru или джумлу? ;)))) Понятно, зачем разрабатывать двигло персонально?
25.11.2008 в 3:39 пп
Алексей Качаев – а в чем суть Вашего спора? Объяснить оппоненту, что такое правильная цмс-ка =) Это тема холивара, который продолжается уже несколько лет. Вот и мои 5 коп.
CMS – это общее название, не более и не менее. Для каждого типа сайта должна быть своя. Возьмите для примера любую соц сеть или какой-нибудь сервис. Ведь они тоже управляются cms-ой. И сайт визитка с 10 страницами – тоже на cms =) И получается, что для обоих случаев цена за двиг будет 4000$ =)
А вот фиг. Ну не будет клиент платить за визитку такую цену. Поэтому и мысль о создании «утопической» cms-ки, для всех видов сайтов, надо отгонять.
Еще хотели узнать про качество cms в 400$. А собственно что Вы понимается под словом «качество»? Качество написанного кода ее документированность и т.д. или функциональность?
Качество кода зависит не от цены, а от совести программиста =) или его опыта. А вот функциональность имхо напрямую от цены.
зы
Не удержался, чтобы не влезть в разговор :smile:
25.11.2008 в 8:45 пп
Я именно это и пытался сказать :) Прямо в точку, Sham!
25.11.2008 в 8:47 пп
Наверное, мы по-разному понимаем слово «CMS». Алексей понимает его как какая-то отвлеченная, абстрактная система управления. А я его понимаю как конкретная система управления вполне определенным сайтом (тем или этим).
25.11.2008 в 11:27 пп
не о том спор завели=) cms’ка все равно не главное
26.11.2008 в 10:48 дп
рядовой веб-мастер, а что главное? :)
29.11.2008 в 12:24 дп
DimoninG, отзовись в асе, если не трудно. а то каменты не доходят и в асе тишина…415-909-995
30.11.2008 в 2:20 дп
DimoninG, а зачем новичку вообще учить php и СРАЗУ писать на нем СДЛ? Если у него есть деньги – заказывается разработка у профессионалов, нет денег – берет готовую CMS и реализует амбиции в меру своих знаний и увлеченности идеей.
02.12.2008 в 2:30 дп
Действительно, есть много готовых CMS, с кучей плагинов и шаблонов. Самое то новичку.
02.12.2008 в 7:00 дп
Лет 30 назад каждый крутой перец писал свою Ось или хотя бы компилятор.
А теперь CMS-ки пишут. Измельчал народ.
02.12.2008 в 10:55 дп
Аркадий, ну посадите новичка разбираться в Joomle например :twisted: Я на вас посмотрю.
Секрет, это как бы о веб-программировании, при чем тут компилятор и «измельчал народ»?
02.12.2008 в 10:56 дп
UPD: Каждый писал ось и компилятор, но ни у кого не вышло ;) Или где эта мега-продукция сейчас? :) Если серьезно – лет 10 я сам ковырялся в кишках, ну и что с того? Почему это не дает мне сейчас писать цмски? :)
02.12.2008 в 10:58 дп
Предлагаю модули распознавания капчи. В наличии много движков, в частности google, yahoo, mail.ru, myspace, vkontakte.ru, recaptcha.com, icq, DLE. Возможно написание распознавалки под ваш проект. Также пишем софт на си++ для win, nix
icq: 5-786-656
mail: captcher@gmail.com
11.12.2008 в 11:34 дп
Почитав ваш мини холивар хочу вставить своих 5 копеек.
Помоему сформулировать что нужно и как это сделать сможет уже более-мение опытный, а новичку как раз подойдут джмумла и компания для освоения функционала и начала понимания что же всетаки хочется :)
12.12.2008 в 6:07 дп
> Секрет, это как бы о веб-программировании, при чем тут компилятор и “измельчал народ”?
Про измельчал – подколка. А суть вот. «Каждый писал ось и компилятор, но ни у кого не вышло. Или где эта мега-продукция сейчас?»
Пиши-пиши универсальную cms. Правильной дорогой идёшь.
07.01.2009 в 4:20 дп
что такое СДЛ ? :roll:
01.03.2009 в 8:09 пп
СДЛ – Система для дюдей
01.03.2009 в 8:12 пп
Неа. Сайт для людей.
04.03.2009 в 2:52 пп
Да, хороший туториал. Скорее бы уже до программирования дойти. Надеюсь в следующем уроке! Ok? Для меня эта тема очень важна, так как я в данный момент активно изучаю PHP и именно написание движков меня и интересует.
Дим, я очень надеюсь, что ты не забьёшь на эти уроки! Кстати, я правильно думаю, что написав подобный двиг, можно будет легко его переделать под двиг блога (блоговый двиг) ? Если да, то просто замечательно.
Хм.. Хотя помню, что пытался писать нечто похожее на гостевую книгу. С использованием MySQL. В ступор меня спустило при попытке написания куска, который отвечал за нумерацию страниц (ну знаешь, типа страница 1.2.3.4 которые жмакать нада) типа как в вордпрес. Хотя сейчас думаю, что нужно было использовать LIMIT в запросе итд. Так что если осветишь и эту тему – будет хорошо.
По поводу этих споров с этими товарищами:
Всегда есть люди, которые хотят казаться выше и умнее остальных. Так что, на таких можно даже внимание своё не концентрировать…
P.S.
Димка! Если забьёшь на эти туториалы – кусну больно! :smile:
24.02.2010 в 3:28 дп
:shock: .. и все таки для новичков .. нарисовали картинку в psd закинули в html-ку .. поставили joomla.. и как теперь прикрутить :?: :?: :?: в идеале очень бы хотелось увидеть как прикрутить хотя бы самый простенький вариант
19.03.2012 в 11:55 пп
Я на сайте случайный посетитель.Ищю ответы на некоторые вопросы. Может вы меня направите в нужном направлении?
Хотелось бы узнать:1 в каком файле меняем фото с готовой темы на свои фото,2 как поставить фото в шапку, 3 как сделать горизонтальное меню с выпадающем подменю? Мне кажется вам известно всё.И как сделать чтобы все страницы не были на главной в ленте.Если конечно это реально.