Добрый день, уважаемые
Это мое первое сообщение на данном форуме, так что прошу сильно не пинать за тупые вопросы.
Программировать начал недавно.
Написал пару сайтов на php. Все прекрасно работает. Контект генерируется автоматически, кроссбраузерность имеется.
Возникла потребность в CMS.
Нашел классный редактор - FCK editor. Гугл выдал множество статей для настройки его с Drupal. Поэтому в качестве CMS выбрал именно её, да и дизайн мне понравился.
Поставил, к базе подключил, но дальше не имею представления, как существующий сайт подключить с системе управления.
Все файлы на php. Страницы создаются через классы.
В CMS можно вгрузить HTML, но не php-код.
Отсюда вопрос: что делать и как быть? ткните носом в грамотные статьи, пожалуйста
Комментарии
переведите на понятный язык
какие классы, какой php? и причем тут друпал?)
фильтр php, но, что именно "вгружать" собрались?
например, почитать пару статей про друпал для начинающих, в интернетах такого полно
Сайт размещен на хостинге и уже работает. Т.е. он не в стадии разработки, когда можно взять и переписать всё с нуля.
Классы php - слышали о таком?
что то вроде прототипов объектов, где задаются свойства объекта и методы для него.
Классы можно расширять от страницы к странице в зависимости от контекта или переопределять существующие классы. Если грубо, то аналог ООП.
Друпал - система управления контентом. Нужно текущий контент, который располагается в отдельных php-файлах, перенести в систему управления.
Я уже понял, что я могу насоздавать страниц просто записывая разметку. Но это не подходит, потому что мой контент генерируется динамически в зависимости, например, от даты.
Ответил выше.
Боюсь, что вопрос сводится не совсем к начинающему. Статьи, которые я нашел описывают, как получить сайт в CMS, если есть HTML и CSS. У меня немного другая ситуация.
не, не слышал )))
Так бы сразу и написали
Это можно делать несколькими способами:
1 Правильно - через свой модуль, через hook_menu задаете адрес страницы и колбек функцию, которая будет вызываться при заходе на эту страницу.
2 Не совсем правильно, но быстро - создаете ноду, в ней включаете фильтр PHP и вставляете код в тело ноды, неправильность этого метода заключается в том, что этот код будет браться из БД, а потом еще и обрабатываться через eval, что само по себе довольно медленно, а при сложном коде очень медленно
3 Совсем не правильно, но... если лень учить апи - создаете шаблон страницы, в который и запихиваете этот код, неправильность этого метода в том, что он, то что называется, через одно место, почему - со временем сами поймете.
Вам как раз таки нужно вникнуть в идеологию, ни больше ни меньше(вообще на drupal.org статья по этому поводу была), если знаете PHP HTML CSS JS MySQL, проблем в понимании всего остального возникнуть не должно, ну а без понимания принципов работы ядра далеко не уйдете. Сложно знать тонкости механизмов, при этом не знать что такое пароход и пытаться заставить его летать, утрированно
А вот это то, что нужно. Колбек функция мне как раз и нужна. Если я правильно понял, то я в нужных местах определяю правильный вызов.
Посмотрю это, спасибо
В этом моя проблема, тут вы правы.
Так, сейчас посмотрю как что и куда он распихивает, и опробую Правильный способ.
если точнее, в одном месте. Пример 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), иначе неизбежны глюки
как видите, ничего сложного в этом нет, да и информации по этому поводу навалом
Вы сейчас просто думаете немного иначе, чем обитали этого форума, отсюда и недопонимание. Я, например, до сих пор не понимаю, для чего Вам все это
Я бы ничего не прикручивал. Я спокойно могу изменять сайт через редакторы. Однако, заказчики - это наши боги. Нужен редактор для сайта.
и чтобы можно было создавать страницы самостоятельно с нужным контентом - например, страница новостей. Там содержимое постоянно меняется. Добавляются новые статьи и т.д.
Естественно простой человек не знает банальной html-разметки. Ему нужно подобие ворда для сайта. Зашел, нажал "создать новую страницу", написал текст. Выделил жирным. Сохранил.
Для этого и нужна CMS, разве нет?)
Я изначально не подумал, что корпоративный сайт может обернуться мне боком, если я не буду его делать на системе управление контентом. Ну вот он мой звездный час: прикручивать CMS к тому, что уже есть)
Не обязательно CMS, как показывает практика, порой фреймворки подходят больше, ибо очень часто требуются нестандартные решения(хотя друпал это еще и CMF), и у Вас подход не совсем верный, правильнее заменить то, что уже есть, на друпал, т.е. программно создать ноды и прочее из старой БД, иначе сами себе проблем на создаете.
Забыл указать там files[] = helloworld.module ну да ладно)
Если честно - я не знаю.
Как ни крути - получается, что проще всего именно путь замены. Т.е. взять существующее и добавить в CMS с соответствующей информацией. По сути добавить сгенерированный HTML и создать на его основе страницы в CMS. Подпихнуть стили, скрипты, поправить ссылки.
Затем, просто проработать моменты динамической подстановки контента в нужных местах. И в общем то все...
Потому что на данном этапе я плохо себе представляю, как взять существующий с сайта код и подпихнуть его в CMS, чтобы можно было редактировать весь сайт.
Читаю АПИ, может поможет
Правильно сделали, что забыли - оно там не нужно.
Вся эта информация должна где-то храниться, т.е. её нужно просто перегнать в соответствующие хранилища в друпал(в 7й версии в сущности) и обрабатывать уже им, а вот способов обработки и вывода там вагон и маленькая тележка. Пока не поймете что такое сущности и с чем их едят, врятли сможете что-то с этой информацией сделать. Так же есть смысл понять, что такое ноды, таксономия, представления(views), без этого с друпал работать просто невозможно.
Насколько я понял, то ТС нужно только СКЕдитор прикрутить к своему сайту.
Достаточно этого http://site-script.ru/articles.php?id=13
Боже упаси. В sites/all/themes
Можете, но не там! Их нужно переопределять в своей теме.
В общем, поизучайте уроки по темизации. Друпал очень сложная система, не пытайтесь с наскоку за пару дней сделать классный сайт. Ничего не получится.
Я и не пытаюсь)
Именно для этого я и создал эту тему, чтобы, попутно разбираясь, получать подсказки от профи)
Думаю, когда выйдет что то стоящее - я покажу исходники, ну и сам сайт.
А пока что буду задавать вопросы, если упрусь
Это правильно. Я Вам очень советую начать с уроков. Благо, их много. Есть различные видео. Очень здорово поможет в обучении.
Да, я открыл раздел книг (документации), читаю потихонечку, ну и АПИ, понятное дело, почитал...
Улыбнуло
Ладно, по ходу дела разберётесь. Успехов!
Чисто интересно - написать на PHP сайт, а не понимать концепцию CMS в целом... А уж не слышать про Drupal... Ээээ, ну как бы ой конечно. Наверное зря написал, пускай старается человек. ТС - ни в коем случае не меняйте системные модули, это плохой подход. Дополнительные и уж точно свои модули надо писать в папку sites/all/modules
Холивар детектед.
Про модули ясно.
причем тут холивар? я тоже удивился, что ты писая сайты на php не знаешь что такое CMS и что такое Drupal
Вероятно потому, что не имеет отношения к теме.
В конце концов, какая разница, как люди приходят к тому или иному решению или, в данном случае, софту?
Персонально я занимаюсь системным администрированием уже пару лет. В основном собираю почтовики. Так вот, некоторые новички выбирают sendmail. Те, кто знает, что это такое, подтвердят, что настройка/обслуживание/написание правил под него является довольно трудоемким процессом.
После того, как люди более менее начинают понимать принцип работы этого МТА, они пересаживаются на Postfix или Exim, чьи только одни конфигурационные файлы просты и понятны.
Возникает логичный вопрос - почему не начать сразу с Postfix? Потому что вот так вот. Это выбор, решение, называйте как угодно.
Получилось, как получилось.
Сначала я решил потренироваться в синтаксисе пыха, его алгоритмах, написать пару сайтов для тренировки. Теперь вот пришел к системам управления контентом.
Но, опять же, это не имеет отношения к теме.
Я тоже начинал с чистого пыха(лет 7 назад), даже без фреймворков. Это сперва изобретается фреймворк, а потом на нем пишется сайт, удовольствия много, а вот толку мало... При знакомстве с друпал(вторая CMS, первой была джумла, но меня там хватило минут на 10, не помню почему) для меня знания PHP, HTML, JS, jQuery, MySQL и т.д. были бесполезны первые пару месяцев
тогда ты еще и не знаешь значение слова "холивар"
Позвольте отблагодарить за толстые сообщения.
в общем, обещал отписываться по поводу продвижения
Ситуация с Drupal меня не устроила. Не устроила в том плане, что необходимо действительно много времени на изучение.
Так как мои сайты, которым требовалась админка были небольшими, то мне оказалось проще написать некое подобие системы управления самостоятельно.
Огромное спасибо книге "Разработка веб приложений", а также простенькому движку Москит.
Некоторые из функций Москита я взял за основу.
Сделал авторизацию в БД, с солью и авторизацией через куки.
Из функциональных возможностей моего самописного чуда могу назвать лишь возможность добавления и редактирования страниц. Страницы редактируются при помощи CKeditor. Ссылку на его установку любезно предоставил Serge66. В целом редактор СК оказался не сложный - сложно было привести в удобочитаемый код его файлы, которые у меня во всех редакторах открывались в одну строку.
Контент всей информации сайта хранится также в БД, а не в файлах, как у Москита. Картинки в отдельной папке.
Также сделал возможность изменять шаблоны (хэдер, футер, управляющее меню).
На этом пожалуй всё, функционал простой, клиент доволен, а я свободен и сяду, пожалуй, за плотное изучение Drupal.
Иметь под рукой многофункционального монстра (см. соотв. раздел по ссылке) уверен, теперь всегда будет необходимо.
Думаю продолжу допиливать свое убогое подобие движка с целью получения чего то более функционального. Может, чуть позже выложу исходники.
В целом впечатление от друпал у меня осталось более, чем положительное. Он как то приятнее, если говорить о user-friendly interface, по сравнению с джумлой, да и как то просто понятней.