Подключение сайта к Drupal

Главные вкладки

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 1:45

Добрый день, уважаемые

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

Программировать начал недавно.

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

Возникла потребность в CMS.

Нашел классный редактор - FCK editor. Гугл выдал множество статей для настройки его с Drupal. Поэтому в качестве CMS выбрал именно её, да и дизайн мне понравился.

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

Все файлы на php. Страницы создаются через классы.

В CMS можно вгрузить HTML, но не php-код.

Отсюда вопрос: что делать и как быть? ткните носом в грамотные статьи, пожалуйста

Комментарии

Аватар пользователя sg85 sg85 24 ноября 2012 в 1:51

"mr-brightside" wrote:
как существующий сайт подключить с системе управления.

переведите на понятный язык Wink
"mr-brightside" wrote:
Все файлы на php. Страницы создаются через классы.

какие классы, какой php? и причем тут друпал?)
"mr-brightside" wrote:
В CMS можно вгрузить HTML, но не php-код.

фильтр php, но, что именно "вгружать" собрались? Wink

"mr-brightside" wrote:
Отсюда вопрос: что делать и как быть? ткните носом в грамотные статьи, пожалуйста

например, почитать пару статей про друпал для начинающих, в интернетах такого полно Wink

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 2:01

sg85 wrote:
переведите на понятный язык ;)

Сайт размещен на хостинге и уже работает. Т.е. он не в стадии разработки, когда можно взять и переписать всё с нуля.

"sg85" wrote:
какие классы, какой php? и причем тут друпал?)

Классы php - слышали о таком?
что то вроде прототипов объектов, где задаются свойства объекта и методы для него.

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

Друпал - система управления контентом. Нужно текущий контент, который располагается в отдельных php-файлах, перенести в систему управления.

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

sg85 wrote:
фильтр php, но, что именно "вгружать" собрались? ;)

Ответил выше.

sg85 wrote:
например, почитать пару статей про друпал для начинающих, в интернетах такого полно ;)

Боюсь, что вопрос сводится не совсем к начинающему. Статьи, которые я нашел описывают, как получить сайт в CMS, если есть HTML и CSS. У меня немного другая ситуация.

Аватар пользователя sg85 sg85 24 ноября 2012 в 2:11

"mr-brightside" wrote:
Классы php - слышали о таком?

не, не слышал )))

"mr-brightside" wrote:
Я уже понял, что я могу насоздавать страниц просто записывая разметку. Но это не подходит, потому что мой контент генерируется динамически в зависимости, например, от даты.

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

"mr-brightside" wrote:
Боюсь, что вопрос сводится не совсем к начинающему. Статьи, которые я нашел описывают, как получить сайт в CMS, если есть HTML и CSS. У меня немного другая ситуация.

Вам как раз таки нужно вникнуть в идеологию, ни больше ни меньше(вообще на drupal.org статья по этому поводу была), если знаете PHP HTML CSS JS MySQL, проблем в понимании всего остального возникнуть не должно, ну а без понимания принципов работы ядра далеко не уйдете. Сложно знать тонкости механизмов, при этом не знать что такое пароход и пытаться заставить его летать, утрированно Wink

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 2:17

sg85 wrote:

1 Правильно - через свой модуль, через hook_menu задаете адрес страницы и колбек функцию, которая будет вызываться при заходе на эту страницу.

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

Посмотрю это, спасибо

sg85 wrote:
Вам как раз таки нужно вникнуть в идеологию, ни больше ни меньше(вообще на drupal.org статья по этому поводу была), если знаете PHP HTML CSS JS MySQL, проблем в понимании всего остального возникнуть не должно, ну а без понимания принципов работы ядра далеко не уйдете. Сложно знать тонкости механизмов, при этом не знать что такое пароход и пытаться заставить его летать, утрированно ;)

В этом моя проблема, тут вы правы.

Так, сейчас посмотрю как что и куда он распихивает, и опробую Правильный способ.

Аватар пользователя sg85 sg85 24 ноября 2012 в 2:47

"mr-brightside" wrote:
А вот это то, что нужно. Колбек функция мне как раз и нужна. Если я правильно понял, то я в нужных местах определяю правильный вызов.

если точнее, в одном месте. Пример helloworld'a

создаете файл helloworld.info в нем такое содержание
;$Id$
name = helloworld
description = my first module
core = 7.x

и следом файл helloworld.module
<?php
//описываете хук меню
function helloworld_menu(){
return array(
'helloworld' => array(
'title' => 'Hello World!',//заголовок
'page callback' => 'somefunc',//колбек функция
'access callback' => TRUE,//права доступа(сделаем доступным всем)
'type' => MENU_NORMAL_ITEM,//пусть будет пункт меню(по умолчанию он обычно в меню навигации)
),
);
}
//сама функция
function somefunc(){
return 'Hello World!';
}
?>
закрывающего тега PHP быть не должно
далее запихиваете это все дело в папку, например sites/all/modules/helloworld

ах да, кодировка всех файлов обязательно UTF8(без BOM), иначе неизбежны глюки

как видите, ничего сложного в этом нет, да и информации по этому поводу навалом

"mr-brightside" wrote:
Так, сейчас посмотрю как что и куда он распихивает, и опробую Правильный способ.

Вы сейчас просто думаете немного иначе, чем обитали этого форума, отсюда и недопонимание. Я, например, до сих пор не понимаю, для чего Вам все это Wink

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 2:50

sg85 wrote:

Вы сейчас просто думаете немного иначе, чем обитали этого форума, отсюда и недопонимание. Я, например, до сих пор не понимаю, для чего Вам все это ;)

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

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

Естественно простой человек не знает банальной html-разметки. Ему нужно подобие ворда для сайта. Зашел, нажал "создать новую страницу", написал текст. Выделил жирным. Сохранил.

Для этого и нужна CMS, разве нет?)

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

Аватар пользователя sg85 sg85 24 ноября 2012 в 3:09

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

Забыл указать там files[] = helloworld.module ну да ладно)

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 3:19

sg85 wrote:
Не обязательно CMS, как показывает практика, порой фреймворки подходят больше, ибо очень часто требуются нестандартные решения(хотя друпал это еще и CMF), и у Вас подход не совсем верный, правильнее заменить то, что уже есть, на друпал, т.е. программно создать ноды и прочее из старой БД, иначе сами себе проблем на создаете.

Забыл указать там files[] = helloworld.module ну да ладно)

Если честно - я не знаю.

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

Затем, просто проработать моменты динамической подстановки контента в нужных местах. И в общем то все...

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

Читаю АПИ, может поможет Smile

Аватар пользователя CSoft CSoft 24 ноября 2012 в 4:15

"sg85" wrote:
Забыл указать там files[] = helloworld.module ну да ладно)

Правильно сделали, что забыли - оно там не нужно.

Аватар пользователя sg85 sg85 24 ноября 2012 в 4:28

"mr-brightside" wrote:
Как ни крути - получается, что проще всего именно путь замены. Т.е. взять существующее и добавить в CMS с соответствующей информацией. По сути добавить сгенерированный HTML и создать на его основе страницы в CMS. Подпихнуть стили, скрипты, поправить ссылки.

Вся эта информация должна где-то храниться, т.е. её нужно просто перегнать в соответствующие хранилища в друпал(в 7й версии в сущности) и обрабатывать уже им, а вот способов обработки и вывода там вагон и маленькая тележка. Пока не поймете что такое сущности и с чем их едят, врятли сможете что-то с этой информацией сделать. Так же есть смысл понять, что такое ноды, таксономия, представления(views), без этого с друпал работать просто невозможно.

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 18:14

Serge66 wrote:
Насколько я понял, то ТС нужно только СКЕдитор прикрутить к своему сайту.
Достаточно этого http://site-script.ru/articles.php?id=13[/quote]

а вот это хороший линк! спасибо

только редактор позволит изменять существующие страницы.

Нужна возможность создавать страницы на основе шаблона.

Пока что я понял, что, например, создав главную страницу вида /?q=node/2, CMS сохраняет контент в БД в таблицу nodes.

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

Могу изменять шаблоны модулей: modules/имя_модуля/views

Ну и учитывать пример sg85

Сейчас как раз пытаюсь подпихнуть тестовый шаблон.

Аватар пользователя CSoft CSoft 24 ноября 2012 в 18:17

"mr-brightside" wrote:
Кроме того, я могу создать собственный шаблон сайта и положить его в themes/

Боже упаси. В sites/all/themes

"mr-brightside" wrote:
Могу изменять шаблоны модулей: modules/имя_модуля/views

Можете, но не там! Их нужно переопределять в своей теме.

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

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 18:20

CSoft wrote:

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

Я и не пытаюсь)

Именно для этого я и создал эту тему, чтобы, попутно разбираясь, получать подсказки от профи)

Думаю, когда выйдет что то стоящее - я покажу исходники, ну и сам сайт.

А пока что буду задавать вопросы, если упрусь

Аватар пользователя CSoft CSoft 24 ноября 2012 в 18:22

"mr-brightside" wrote:
Я и не пытаюсь)

Это правильно. Я Вам очень советую начать с уроков. Благо, их много. Есть различные видео. Очень здорово поможет в обучении.

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 18:25

CSoft wrote:

Это правильно. Я Вас очень советую начать с уроков. Благо, их много. Есть различные видео. Очень здорово поможет в обучении.

Да, я открыл раздел книг (документации), читаю потихонечку, ну и АПИ, понятное дело, почитал...

Аватар пользователя Softovick Softovick 24 ноября 2012 в 22:16

Чисто интересно - написать на PHP сайт, а не понимать концепцию CMS в целом... А уж не слышать про Drupal... Ээээ, ну как бы ой конечно. Наверное зря написал, пускай старается человек. ТС - ни в коем случае не меняйте системные модули, это плохой подход. Дополнительные и уж точно свои модули надо писать в папку sites/all/modules

Аватар пользователя mr-brightside mr-brightside 24 ноября 2012 в 22:23

Softovick wrote:
Чисто интересно - написать на PHP сайт, а не понимать концепцию CMS в целом... А уж не слышать про Drupal... Ээээ, ну как бы ой конечно. Наверное зря написал, пускай старается человек. ТС - ни в коем случае не меняйте системные модули, это плохой подход. Дополнительные и уж точно свои модули надо писать в папку sites/all/modules

Холивар детектед.

Про модули ясно.

Аватар пользователя mr-brightside mr-brightside 28 ноября 2012 в 23:02

xSPiRiTx wrote:
причем тут холивар? я тоже удивился, что ты писая сайты на php не знаешь что такое CMS и что такое Drupal

Вероятно потому, что не имеет отношения к теме.

В конце концов, какая разница, как люди приходят к тому или иному решению или, в данном случае, софту?

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

После того, как люди более менее начинают понимать принцип работы этого МТА, они пересаживаются на Postfix или Exim, чьи только одни конфигурационные файлы просты и понятны.

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

Получилось, как получилось.
Сначала я решил потренироваться в синтаксисе пыха, его алгоритмах, написать пару сайтов для тренировки. Теперь вот пришел к системам управления контентом.

Но, опять же, это не имеет отношения к теме.

Аватар пользователя sg85 sg85 28 ноября 2012 в 22:49

Я тоже начинал с чистого пыха(лет 7 назад), даже без фреймворков. Это сперва изобретается фреймворк, а потом на нем пишется сайт, удовольствия много, а вот толку мало... При знакомстве с друпал(вторая CMS, первой была джумла, но меня там хватило минут на 10, не помню почему) для меня знания PHP, HTML, JS, jQuery, MySQL и т.д. были бесполезны первые пару месяцев Wink

Аватар пользователя xSPiRiTx xSPiRiTx 28 ноября 2012 в 23:28

"mr-brightside" wrote:
Вероятно потому, что не имеет отношения к теме.

тогда ты еще и не знаешь значение слова "холивар"

Аватар пользователя mr-brightside mr-brightside 28 ноября 2012 в 23:30

xSPiRiTx wrote:
"mr-brightside" wrote:
Вероятно потому, что не имеет отношения к теме.

тогда ты еще и не знаешь значение слова "холивар"

Позвольте отблагодарить за толстые сообщения.

Аватар пользователя mr-brightside mr-brightside 16 декабря 2012 в 23:13

в общем, обещал отписываться по поводу продвижения

Ситуация с Drupal меня не устроила. Не устроила в том плане, что необходимо действительно много времени на изучение.

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

Огромное спасибо книге "Разработка веб приложений", а также простенькому движку Москит.

Некоторые из функций Москита я взял за основу.

Сделал авторизацию в БД, с солью и авторизацией через куки.

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

Контент всей информации сайта хранится также в БД, а не в файлах, как у Москита. Картинки в отдельной папке.

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

На этом пожалуй всё, функционал простой, клиент доволен, а я свободен и сяду, пожалуй, за плотное изучение Drupal.

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

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

В целом впечатление от друпал у меня осталось более, чем положительное. Он как то приятнее, если говорить о user-friendly interface, по сравнению с джумлой, да и как то просто понятней.