Ну вот, как и говорилось, я начинаю писать в «песочницу».
Думаю, что сообщество не будет закидывать помидорами.
Что было сделано:
На моей машине уже стоит локальный сервер для того, чтобы можно было писать сайты. Поэтому я сразу запустил setup.
Вошел в manager и установил плагины.
Плагины подсмотрел у Fi1osof, поставил:
Wayfinder
Console
Ace
modxSmarty
phpTemplates.
Создал в Media Sources/Источники файлов новый источник под название Templates. Прописал ему пути до папок в Редактировать/basePath/ и Редактировать/baseUrl.
Установил Git и с трудом подружил его с BitBacket.
Теперь у меня есть вопрос, что дальше?
Теперь берешь сверстанный макет (файлы картинок и стилей вставляешь в папку сайта), а саму верстку (то, что в HTML) вставляешь в шаблон (в дереве слева есть вкладка «Элементы» а внутри нее есть «Шаблоны» и там по умолчанию один шаблон уже есть, вот в нем весь код и заменяешь версткой.)
А, как быть в случае со Smarty?
Он же подгружает tpl файлы?
Его надо настраивать? Если да, то подскажите, где?
Алишер, привет!
А вот теперь не «что дальше?», а «с чего правильно начать?». Серьезно. Стандарты здесь вырабатываются для того, чтобы как можно меньше было вариантов блуждать во все стороны (и сокращать вероятность возникновения ошибок). То есть твой текущий топик должен был содержать следующий текст:
Реально. Зачем тебе заморачиваться самостоятельно с установкой и т.п.? Хочешь все знать? Не получится. Я не все знаю. Но зачем тебе проходить мой долгий путь, чтобы прийти к тому же (установке сайтов из снапшотов на специализированных хостинг-площадках)?
Более того. Когда твое «что дальше?» по описанному сценарию будет продолжено информацией «а здесь в сборке косяк», и мы его поправим совместно, и другие так же сделают, с каждым разом мы будет получать более совершенную сборку, а не создавать каждый все свое.
Напоследок печальный факт: чем меньше специалист будет придерживаться общих стандартов, тем меньше у него шансов будет работать полноценно в команде, так как совершенно не хочется на каком-то очередном проекте изучать индивидуальные подходы к программированию.
Вот в готовой сборке уже все настроено, и смарти, и phpTemplates и остальное. Есть конечно что еще править, но в целом — поставил и все.
Я сейчас сыну развернул сайт за 10 минут, то есть через 10 минут он уже приступил контентом его наполнять.
Я пока ооочень занят, но на днях сниму видео как из этой сборки сайты разворачивать.
Да, правильнее назвать пост «с чего правильно начать?», я и создал этот пост, не корсти для :). Чтобы набить шишек мне хватило времени. Для меня очень важно на этом этапе сделать так, чтобы у остальных не было больших проблем при чтении, правке или поддержке сайта, который я создал.
Можно ли развернуть снапшот локально? Если да, где сделать?
У меня там лежит 2 твоих творения, я туда ныряю за тем, чтобы посмотреть, как должно работать. Один пустой, другой нет.
Создай еще один :-)
Или внеси $24 в фонд развития MODX-а.
Мне почему то было доступно 2 проекта, сейчас просит денег, да, 24 $ я определенно внесу, правда не сегодня, на картах ничего нет, надо выйти и положить. А работать хочется сегодня, когда никто не дергает.
Так сделай снапшот того облака, с которым сейчас не работаешь, и накати на это облако мой снапшот, и все. Вот тебе новая игрушка :-) И старая не пропадет.
Ага, придется, люблю новые игрушки. :)
в случае со Smarty я в чанках сделал категорию tplTemplates, в которых добавляю чанки с опцией «статичный», «источник файлов» = медиасурс Templates и указываю в «Статичный файл» желаемое имя.tpl) в итоге — логика взаимодействия в админке с tpl как с чанками модыкса (особенно удобно тем, что tpl-чанки и php-шаблоны отображаются слева в одном дереве), логика хранения-использования — чистый смарти, т.е. на производительность не влияет.
создать ещё один — всмысле аккаунт на другом имейле? они не отслеживают регистрации разных аккаунтов с одного ip?) сам не пробовал, просто интересно. а то так можно наплодить бесплатных аккаунтов… но это совсем безобразие получится)
Я пробовал создавать еще аккаунты (для тестирования доступов и т.п.), нет, не было рецессий. Да и вряд ли будут. Жесткий диск ограничен, второго уровня домены не подцепить, то есть полноценной площадки нет. А играться — играйтесь.
Мне с текущего IP не дал создать еще один аккаунт. На этом IP я имею уже аккаунт. Сейчас создался с другого IP.
Странно. У меня статик-ip, и я за последние максимум дней 10 создал еще 2 аккаунта.
modxcloud только у меня поттупливает или у вас тоже есть проблемы?
Ну они вроде писали пару дней назад на сайте, что там какие-то проблемы с одним из серверов.
да, тупнячки бывают иногда, но вроде не значительные.
понятно, спасибо. А то вчера только зарегистрировался и… тупит ужасно
Доброго времени суток, у меня такая проблема, я закинул на modxcloud последний снапшот. Мне на сайте нужен еще один шаблон. Я просто скопировал то, что было в шаблоне base, назначил странице этот шаблон, но все равно подгружается base. Где я еще должен поправить код?
Заранее спасибо.
Привет!
Это настройка modxSmarty.template в неймспейсе modxSmarty. Смотри в системных настройках.
Только еще надо переименовать соответственно папку assets/components/modxsite/templates/base/ они в паре с папкой шаблона работают.
Я создал новую папку. И скопировал структуру файлов туда.
Для того, чтобы пользоваться то одним, то другим шаблоном.
Извините, а на русском это «Система»->«Пространства имен»? Если да, то, как там редактировать? :)
Сорри за тупой вопрос, сам вроде нашел. Это «Настройки системы», там выбрать нужный компонент и уже править там, где подсказал Николай.
сам вроде нашел. Это «Настройки системы»
Да, именно в настройках.
«Система»->«Пространства имен»?
А здесь просто заводяться пространства имен. Но без записи здесь, не будет этого неймспейса в настройках.
Это и правильно. Для этого и предназначена шаблонизация, для этого и делались пакеты modxSmarty+modxSite
ОК, спасибо :)
У меня новая трабла :)
Вроде подхватился мой шаблон, но вместо контента, который, как понял выводится в шаблоне
$smarty->assign('content', '[[*content]]');
$tpl = 'vk-prom.tpl';
return $smarty->fetch($tpl); В браузер выводится
[[*content]]
Да и при редактировании на этом сайте, пропадает то, что пишешь, появляется секунд через 10-20 :)
В настройках профиля modxcloud добавь мой мой аккаунт с ролью owner: Fi1osof
Но думаю не нормально, чтобы в браузер выводилось:
"[[*content]]"
?
:)
Добавил.
Да, есть контакт. А теперь тебе предстоит научить отладку выполнять.
1. Поставь какую-нибудь консоль в браузер (если ее нет), и смотри что у тебя подгружается. У тебя большая часть файлов потеряна, а сервер вообще отдает ошибку 500 (из-за чего у тебя прерывается выполнение кода и MODX не парсит конечный контент). Лучше всего для этого использовать FireFox+FireBug.
2. В сборку включен плагин Debug, отключенный по умолчанию. Включай его и смотри серверные ошибки. Сейчас я его включил и посмотри на страницу.
[[*content]] Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/paas/c0519/www/core/components/modxsite/templates/vk-prom/inc/footer.tpl" on line 45 " function(){$('.carousel1').carouFredSel(
У тебя типичная Smarty-ошибка. Smarty обрабатывает фигурные скобки (как MODX двойные квадратные), и не смог разобрать. Это часто для javascript-кода случается. Заключа такой код в блок {literal}....code.....{/literal}Блок внутри этих тегов не будет парситься Smarty-шаблонизатором.
ДА, у меня стоит Firebug. Уменя в footer есть куча jquery кода.
Спасибо, я заключил jquery в блок {literal} и все случилось.
Тогда еще вопрос, в подгружаемых js файлах тоже нужно заключение в литералы?
Потому, что у меня в Firebug:
Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file 'base.tpl'' in /paas/c0519/www/core/model/smarty/sysplugins/smarty_internal_template.php:162
Stack trace:
#0 /paas/c0519/www/core/model/smarty/sysplugins/smarty_internal_template.php(537): Smarty_Internal_Template->isExisting(true)
#1 /paas/c0519/www/core/model/smarty/Smarty.class.php(335): Smarty_Internal_Template->getRenderedTemplate()
#2 /paas/c0519/www/core/components/modxsite/controllers/base.php(12): Smarty->fetch('base.tpl')
#3 /paas/c0519/www/core/components/phptemplates/model/phptemplates/phptemplate.class.php(28): require_once('/paas/c0519/www...')
#4 /paas/c0519/www/core/components/phptemplates/model/phptemplates/phptemplate.class.php(16): phpTemplate->_process(NULL, NULL)
#5 /paas/c0519/www/core/components/phptemplates/model/phptemplates/phptemplateresource.class.php(40): phpTemplate->process()
#6 /paas/c0519/www/core/model/modx/modresponse.class.php(75): phpTemplateResource->process()
#7 /paas/c0519/www/core/model/mod in /paas/c0519/www/core/model/smarty/sysplugins/smarty_internal_template.php on line 162
Catchable fatal error: Argument 1 passed to xPDOObject::load() must be an instance of xPDO, instance of modX given in /paas/c0519/www/core/xpdo/om/xpdoobject.class.php on line 404
Я там к сожалению вижу base.tpl
Я там к сожалению вижу base.tpl
вот об этом Смарти и говорит — Unable to load template file 'base.tpl''. Он не может файл шаблона подгрузить. Ты с путями явно напутал. У тебя в папке vk-prom нет шаблона base.tpl
Имя шаблона указывается в контроллерах (статических MODX-шаблонах.)
Ну да, нет, а я в шаблоне ему прямо и говорю :)
<?php
require_once dirname(__FILE__).'/inc/init.php';
/*
Можно в качестве контента назначить как modx-тег, так и готовый код
*/
// $smarty->assign('content', $resource->content);
$smarty->assign('content', '[[*content]]');
$tpl = 'vk-prom.tpl';
return $smarty->fetch($tpl);
Я ему base.tpl не пытаюсь скормить :)
А вот это ты зря сделал. У тебя же отдельная папка шаблона. Что было не оставить шаблон base.tpl по умолчанию?
Вот ты сейчас главной шаблон поменял, а на остальных всез базовый контроллер и в нем прописано $tpl = 'base.tpl';
Те же страницы 404 будут разваливаться с критической ошибкой.
Ну да, уже полазил, посмотрел. У тебя в modxsite в base.php и base.tpl так и написано, хочу base.tpl и все тут :) Сейчас попробую все вернуть, посмотрим, что получится :)
Ну вот, все стало еще хуже :)
Теперь у меня внутри Firebug тупо код html сайта :)
<!DOCTYPE html>
…
Страница не найдена
…
Но тут самое интересное думаю:
Страница не найдена
Просто там же все связано. Это если бы ты не плодил MODX-шаблоны (контроллеры), а в том, что есть, поменял бы base.tpl на свой, то еще ладно. А так у тебя одни документы с одним контроллером, другие с другим, файлы переименованы по своему — конечно он работать там не будет.
Главная у тебя нормально открывается.
Вот и я чуял, что не все просто так :)
Стилей нет.
Текст есть, стилей, нет :)
Внутри файлов стилей и js просто html код сайта.
Думаю косяки с путями
{$template_url}
Я отсюда путь тащу, скорее всего тут косяк.
И это нашел. Стили и Скрипты должны лежать в месте отличном от core/components/modxsite/templates/vk-prom/styles?
Я об это еще здесь писал: modxclub.ru/blog/sandbox/29.html#comment319
На тот момент голова не читала досконально :) Ну и я не подумал, что нужно будет разделение по 2 разным папкам. Хотя может быть я не прав. Спишу на нехватку опыта работы в этом фреймворке. Спасибо, что возились со мной :)
Да и еще вопрос, для того, чтобы сделать страницы отличающиеся от главной, тоже насоздавать шаблонов или есть более элегантный путь?
Ну и я не подумал, что нужно будет разделение по 2 разным папкам. Хотя может быть я не прав. Спишу на нехватку опыта работы в этом фреймворке.
core/ — это закрытая папка, там только серверные файлы. assets — это для паблика. Конечно придется две папки юзать.