Войдите или зарегистрируйтесь чтобы создавать сообщения

Дизайн и шаблоны

Подключение своих css и js в темплейты

Подключение происходит в PHP.

Пример - css лежит в темплейте - нужно подключить файл в секции HEAD
ПУТЬ_К_CSS=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/css/ИМЯ_CSS"
Portal::getInstance()->addStyleSheet(ПУТЬ_К_CSS);

нужно подгрузить фрагмент в секцию HEAD
КУСОК_CSS='ТУТ САМ ТЕКСТ CSS при рендеринге будет обрамлен тегами

Radius17

10.05.2013 15:42:17

RE:Подключение своих css и js в темплейты

Не удается подключить скрипты js. Подключаю аналогично "примерам подключений". Например:
$my_js=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/js/responsiveslides.min.js";

В то же время стили подключились по этим примерам:
$my_css=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/css/main.css";

Ввиду отсутсвия блока head возникли вопросы: где разместить тексты скриптов и где подключить внешние стили (в данном случае необходимо подключить Google Fonts).

Не удается отредактировать модули / виджеты: после отметки галочкой и нажатия кнопки "Изменить" отправляет на страницу "КРАТКОЕ РУКОВОДСТВО АДМИНИСТРАТОРА ПО РАБОТЕ С СИСТЕМОЙ.".

При просмотре кода страницы в браузере в теге head длинный текст из скриптов и стилей — так и должно быть?

Сайт sky-sys.ru

Sky system

04.09.2013 15:06:55

RE:Подключение своих css и js в темплейты

Длинный текст это включенные в head страницы скрипты и стили.
Так и должно быть. Это снижение нагрузки на сервер.
Для дополнительного подключения используются конструкции вида

ПУТЬ_К_CSS=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/css/ИМЯ_CSS"
Portal::getInstance()->addStyleSheet(ПУТЬ_К_CSS);

// примеры подключений
//$ПУТЬ_К_css=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/css/mycss.css";
//Portal::getInstance()->addStyleSheet($ПУТЬ_К_css);

//$ПУТЬ_К_js=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/js/myjs.js";
//Portal::getInstance()->addScript($ПУТЬ_К_js);

Пути к скриптам насколько я вижу Вы указываете правильно.
А вот строки подключения я не вижу.

B проверьте наличие http://sky-sys.ru/redistribution/jquery/jquery-ui-min.js
Отладчик прямо указывает что такого ресурса на сайте нет

Очень похоже что отсутствует часть файлов...

Radius17

04.09.2013 18:12:03

RE:Подключение своих css и js в темплейты

Спасибо, скрипты привязал.

Остался вопрос:
>> Ввиду отсутствия блока head возникли вопросы: где разместить тексты скриптов и где подключить внешние стили (в данном случае необходимо подключить Google Fonts).

И как их разместить в том порядке, в каком они расположены в html-верстке: например, подключенный js, за ним текст скрипта?

Sky system

06.09.2013 11:50:47

RE:Подключение своих css и js в темплейты

Вот так они подключаются:

скрипт на диске
//$ПУТЬ_К_js=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/js/myjs.js";
//Portal::getInstance()->addScript($ПУТЬ_К_js);

текст скрипта
//$ТЕКСТ_js="alert("123");";
//Portal::getInstance()->addScriptDeclaration($ТЕКСТ_js);

Система все сама засунет в head.
Сначала будут подключены скрипты с диска потом скрипты которые прописаны текстом.
Так как положено по стандартам HTML.

Размещать можно в начале или в конце шаблона.
Это сдвинет подключение относительно скриптов виджетов и плагинов.

Radius17

06.09.2013 12:18:29

RE:Подключение своих css и js в темплейты

>> текст скрипта
//$ТЕКСТ_js="alert("123");";
//Portal::getInstance()->addScriptDeclaration($ТЕКСТ_js);

Если взять такой код
<script>
$(function() {
$(".tabs").organicTabs();
$(".tabs").organicTabs({
"speed": 200
});
});
</script>

Как это должно выглядеть в шаблоне?

$text_js="<script>
$(function() {
$(".tabs").organicTabs();
$(".tabs").organicTabs({
"speed": 200
});
});
</script>";
Portal::getInstance()->addScriptDeclaration($text_js);

?

Sky system

06.09.2013 12:33:44

RE:Подключение своих css и js в темплейты

>>>Если взять такой код
>>><script>
>>>$(function() {
>>>$(".tabs").organicTabs();
>>>$(".tabs").organicTabs({
>>>"speed": 200
>>>});
>>>});
>>></script>

в шаблоне должно выглядеть так:

$text_js="
$(function() {
$(".tabs").organicTabs();
$(".tabs").organicTabs({
"speed": 200
});
});
";
Portal::getInstance()->addScriptDeclaration($text_js);

Вставляется только текст. Теги не являются текстом скрипта.

Radius17

06.09.2013 12:46:05

RE:Подключение своих css и js в темплейты

Вставил этот код.

$text_js="
$(function() {
$(".tabs").organicTabs();
$(".tabs").organicTabs({
"speed": 200
});
});
";
Portal::getInstance()->addScriptDeclaration($text_js);

Сайт отобразил ошибку сервера (код 500). Разместил код следом за подключаемыми стилями и js. В чем может быть проблема?

И еще пару вопросов.

Я так понимаю, <?php echo $this->moduleHTML; ?> выводит и контент и логин / пароль?

Если нам на главной странице не нужно выводить никакие статьи — как это сделать? Какой-то пункт меню считается Главной, как в Joomla?

Я пока отключил все статьи, чтобы ничего не выводить на Главной, но, если разлогиниться, на месте контента остаются кнопки "Дерево статей" и "Новая статья". Они не нужны, во всяком случае "Новая статья". Их можно скрыть?

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

Sky system

06.09.2013 13:04:05

RE:Подключение своих css и js в темплейты

Ну собственно кавычки должны различаться в тексте и оборачивающие.
Или экранироваться. Тогда не будет 500 ошибок.

По кнопкам: Их быть не должно, спасибо за наводку, поправили.

Собственно что касается "как в Joomla", то тут идеология другая несколько.
Что показывать по умолчанию определяется в Меню "Конфигурация"=>"Настройки", вкладка "Сайт".
За это отвечают параметры "Модуль по умолчанию" и "ID элемента по умолчанию"
"ID основного пункта меню (Главная страница)" это ид пункта меню который подсвечивается по умолчанию, не открывается а именно подсвечивается.

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

<?php echo $this->moduleHTML; ?> выводит основной контент. Любой, в том числе и запрос авторизации и каталог и все что формируется модулем.
Что значит открыть авторизацию в новом окне ?
Можно открыть во всплывающем, как у на на сайте например.

Radius17

06.09.2013 19:24:20

RE:Подключение своих css и js в темплейты

Спасибо, со скриптами разобрался.

Вопрос по авторизации отпадает.

Еще пара вопросов.

Как создавать свои позиции (зоны видимости, так пониманию, они здесь называются)? Например, можно ли создать такую позицию — <?php $this->placeZone("random");?>, чтобы разместить на этой позиции какой-то виджет?

Есть ли виджеты поиска и обратной связи?

В админ. панели в списке выбора типа виджета названия выводятся сокращениями (acrm, randarticle). Можно ли сделать, чтобы отображались названия по их функциональным назначениям? Грубо говоря, Меню, Случайная статья. Или это где-то включается / выключается в настройках? За что отвечает виджет acrm?

Как сослаться на отдельную статью? Например, мы создали статью о каком-то тарифе, нам нужно привязать ссылку к кнопке Подробнее, как это сделать?

Возможно ли использование нескольких шаблонов для разных страниц?

Sky system

09.09.2013 14:30:39

RE:Подключение своих css и js в темплейты

>>> Как создавать свои позиции (зоны видимости
В настоящее время создание собственных позиций не предусмотрено.
Есть 8 позиций user-1 ... user-8 они специально предназначены для произвольного размещения

>>> Есть ли виджеты поиска и обратной связи?
Такие виджеты надо писать самим. Ексть модуль обратной связи называется Feedback
Есть вызов поиска /index.php?task=search который вызывает форму поиска

>>> В админ. панели в списке выбора типа виджета названия выводятся сокращениями
Это не сокращения, а названия виджетов.
acrm это баннеры

>>> Как сослаться на отдельную статью?
ну например вот так /index.php?module=article&view=read&psid=46&alias=kratkoe_rukovodstvo_administratora_po_rabote_s_sistemoy
где psid=46 это ид статьи

Radius17

09.09.2013 17:33:01

RE:Подключение своих css и js в темплейты

Самим. Ясно.

А как использовать разные шаблоны на разных страницах?

Есть ли возможность вывести заголовок материала в другом месте страницы, вне <?php echo $this->moduleHTML; ?>?

Sky system

11.09.2013 12:34:20

RE:Подключение своих css и js в темплейты

>>>> А как использовать разные шаблоны на разных страницах?
Такого не предусмотрено в системе.
Но собственно можно, наверное, сориентироваться по активному пункту меню
$_SESSION["active_menu_id"];

>>>> Есть ли возможность вывести заголовок материала
>>>> в другом месте страницы, вне <?php echo $this->moduleHTML; ?>?
Ну и собственно если отверстать свой шаблон модуля article,
скопировав соответствующие файлы из папки
modules->имя_модуля->views->template->имя_view
в папку
templates->ваш_шаблон->html->modules->имя_модуля->имя_view,
то можно заголовок сложить тоже в сессию.
Только чистить не забывать. Это собственно навскидку один из способов.

Radius17

20.09.2013 19:13:22

Видеоматериалы
Документация
Altadoc-версия для ТСЖ
Завод игрового оборудования №1 во Владимире
Общественная приемная по вопросам ЖКХ г.Владимира и Владимирской области
Городской центр программного обеспечения
0.054625034332275
Для качественного предоставления услуг, наш сайт собирает метаданные всех зашедших пользователей: сведения о местоположении, ip-адрес, сведения об операционной системе (тип, язык, версия) и браузере (тип, язык, версия), тип устройства и разрешение экрана, источник, откуда пришел на сайт пользователь и какие страницы он открывает. На компьютере пользователя сохраняются файлы cookies.
Собранная информация используется для обработки статистических данных использования сайта посредством различных интернет-сервисов: Google Analytics, Яндекс.Метрика, LiveInternet, Awstats и др. Нажимая на кнопку «Я согласен», Вы подтверждаете то, что Вы проинформированы о сборе метаданных на нашем сайте и согласны с этим.
Если вы не хотите, чтобы эти данные обрабатывались, то должны покинуть наш сайт. Отключить сохранение файлов cookies Вы можете в настройках браузера.