Войдите или зарегистрируйтесь чтобы создавать сообщения
Дизайн и шаблоны
Подключение своих css и js в темплейты
Подключение происходит в PHP.
Пример - css лежит в темплейте - нужно подключить файл в секции HEAD
ПУТЬ_К_CSS=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/css/ИМЯ_CSS"
Portal::getInstance()->addStyleSheet(ПУТЬ_К_CSS);
нужно подгрузить фрагмент в секцию HEAD
КУСОК_CSS='ТУТ САМ ТЕКСТ CSS при рендеринге будет обрамлен тегами
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
$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
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
Отладчик прямо указывает что такого ресурса на сайте нет
Очень похоже что отсутствует часть файлов...
Так и должно быть. Это снижение нагрузки на сервер.
Для дополнительного подключения используются конструкции вида
ПУТЬ_К_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
Отладчик прямо указывает что такого ресурса на сайте нет
Очень похоже что отсутствует часть файлов...
RE:Подключение своих css и js в темплейты
Спасибо, скрипты привязал.
Остался вопрос:
>> Ввиду отсутствия блока head возникли вопросы: где разместить тексты скриптов и где подключить внешние стили (в данном случае необходимо подключить Google Fonts).
И как их разместить в том порядке, в каком они расположены в html-верстке: например, подключенный js, за ним текст скрипта?
Остался вопрос:
>> Ввиду отсутствия блока head возникли вопросы: где разместить тексты скриптов и где подключить внешние стили (в данном случае необходимо подключить Google Fonts).
И как их разместить в том порядке, в каком они расположены в html-верстке: например, подключенный js, за ним текст скрипта?
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.
Размещать можно в начале или в конце шаблона.
Это сдвинет подключение относительно скриптов виджетов и плагинов.
скрипт на диске
//$ПУТЬ_К_js=Portal::getURI()."/templates/".siteConfig::$siteTemplate."/js/myjs.js";
//Portal::getInstance()->addScript($ПУТЬ_К_js);
текст скрипта
//$ТЕКСТ_js="alert("123");";
//Portal::getInstance()->addScriptDeclaration($ТЕКСТ_js);
Система все сама засунет в head.
Сначала будут подключены скрипты с диска потом скрипты которые прописаны текстом.
Так как положено по стандартам HTML.
Размещать можно в начале или в конце шаблона.
Это сдвинет подключение относительно скриптов виджетов и плагинов.
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);
?
//$ТЕКСТ_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);
?
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);
Вставляется только текст. Теги не являются текстом скрипта.
>>><script>
>>>$(function() {
>>>$(".tabs").organicTabs();
>>>$(".tabs").organicTabs({
>>>"speed": 200
>>>});
>>>});
>>></script>
в шаблоне должно выглядеть так:
$text_js="
$(function() {
$(".tabs").organicTabs();
$(".tabs").organicTabs({
"speed": 200
});
});
";
Portal::getInstance()->addScriptDeclaration($text_js);
Вставляется только текст. Теги не являются текстом скрипта.
RE:Подключение своих css и js в темплейты
Вставил этот код.
$text_js="
$(function() {
$(".tabs").organicTabs();
$(".tabs").organicTabs({
"speed": 200
});
});
";
Portal::getInstance()->addScriptDeclaration($text_js);
Сайт отобразил ошибку сервера (код 500). Разместил код следом за подключаемыми стилями и js. В чем может быть проблема?
И еще пару вопросов.
Я так понимаю, <?php echo $this->moduleHTML; ?> выводит и контент и логин / пароль?
Если нам на главной странице не нужно выводить никакие статьи — как это сделать? Какой-то пункт меню считается Главной, как в Joomla?
Я пока отключил все статьи, чтобы ничего не выводить на Главной, но, если разлогиниться, на месте контента остаются кнопки "Дерево статей" и "Новая статья". Они не нужны, во всяком случае "Новая статья". Их можно скрыть?
Возможно ли сделать, чтобы форма логина / пароля открывалась в новом окне?
$text_js="
$(function() {
$(".tabs").organicTabs();
$(".tabs").organicTabs({
"speed": 200
});
});
";
Portal::getInstance()->addScriptDeclaration($text_js);
Сайт отобразил ошибку сервера (код 500). Разместил код следом за подключаемыми стилями и js. В чем может быть проблема?
И еще пару вопросов.
Я так понимаю, <?php echo $this->moduleHTML; ?> выводит и контент и логин / пароль?
Если нам на главной странице не нужно выводить никакие статьи — как это сделать? Какой-то пункт меню считается Главной, как в Joomla?
Я пока отключил все статьи, чтобы ничего не выводить на Главной, но, если разлогиниться, на месте контента остаются кнопки "Дерево статей" и "Новая статья". Они не нужны, во всяком случае "Новая статья". Их можно скрыть?
Возможно ли сделать, чтобы форма логина / пароля открывалась в новом окне?
RE:Подключение своих css и js в темплейты
Ну собственно кавычки должны различаться в тексте и оборачивающие.
Или экранироваться. Тогда не будет 500 ошибок.
По кнопкам: Их быть не должно, спасибо за наводку, поправили.
Собственно что касается "как в Joomla", то тут идеология другая несколько.
Что показывать по умолчанию определяется в Меню "Конфигурация"=>"Настройки", вкладка "Сайт".
За это отвечают параметры "Модуль по умолчанию" и "ID элемента по умолчанию"
"ID основного пункта меню (Главная страница)" это ид пункта меню который подсвечивается по умолчанию, не открывается а именно подсвечивается.
Если контент не нужен то можно вывести просто пустую статью с отключенными заголовкоми остальными параметрами, хотя у Вас насколько я вижу выводятся новости, поэтому контент все таки есть.
А вот отключать элемент по умолчанию не стоит. Система конечно проглатывает такие вольности, но сообщение она Вам вывести обязана, что она и делает.
<?php echo $this->moduleHTML; ?> выводит основной контент. Любой, в том числе и запрос авторизации и каталог и все что формируется модулем.
Что значит открыть авторизацию в новом окне ?
Можно открыть во всплывающем, как у на на сайте например.
Или экранироваться. Тогда не будет 500 ошибок.
По кнопкам: Их быть не должно, спасибо за наводку, поправили.
Собственно что касается "как в Joomla", то тут идеология другая несколько.
Что показывать по умолчанию определяется в Меню "Конфигурация"=>"Настройки", вкладка "Сайт".
За это отвечают параметры "Модуль по умолчанию" и "ID элемента по умолчанию"
"ID основного пункта меню (Главная страница)" это ид пункта меню который подсвечивается по умолчанию, не открывается а именно подсвечивается.
Если контент не нужен то можно вывести просто пустую статью с отключенными заголовкоми остальными параметрами, хотя у Вас насколько я вижу выводятся новости, поэтому контент все таки есть.
А вот отключать элемент по умолчанию не стоит. Система конечно проглатывает такие вольности, но сообщение она Вам вывести обязана, что она и делает.
<?php echo $this->moduleHTML; ?> выводит основной контент. Любой, в том числе и запрос авторизации и каталог и все что формируется модулем.
Что значит открыть авторизацию в новом окне ?
Можно открыть во всплывающем, как у на на сайте например.
RE:Подключение своих css и js в темплейты
Спасибо, со скриптами разобрался.
Вопрос по авторизации отпадает.
Еще пара вопросов.
Как создавать свои позиции (зоны видимости, так пониманию, они здесь называются)? Например, можно ли создать такую позицию — <?php $this->placeZone("random");?>, чтобы разместить на этой позиции какой-то виджет?
Есть ли виджеты поиска и обратной связи?
В админ. панели в списке выбора типа виджета названия выводятся сокращениями (acrm, randarticle). Можно ли сделать, чтобы отображались названия по их функциональным назначениям? Грубо говоря, Меню, Случайная статья. Или это где-то включается / выключается в настройках? За что отвечает виджет acrm?
Как сослаться на отдельную статью? Например, мы создали статью о каком-то тарифе, нам нужно привязать ссылку к кнопке Подробнее, как это сделать?
Возможно ли использование нескольких шаблонов для разных страниц?
Вопрос по авторизации отпадает.
Еще пара вопросов.
Как создавать свои позиции (зоны видимости, так пониманию, они здесь называются)? Например, можно ли создать такую позицию — <?php $this->placeZone("random");?>, чтобы разместить на этой позиции какой-то виджет?
Есть ли виджеты поиска и обратной связи?
В админ. панели в списке выбора типа виджета названия выводятся сокращениями (acrm, randarticle). Можно ли сделать, чтобы отображались названия по их функциональным назначениям? Грубо говоря, Меню, Случайная статья. Или это где-то включается / выключается в настройках? За что отвечает виджет acrm?
Как сослаться на отдельную статью? Например, мы создали статью о каком-то тарифе, нам нужно привязать ссылку к кнопке Подробнее, как это сделать?
Возможно ли использование нескольких шаблонов для разных страниц?
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 это ид статьи
В настоящее время создание собственных позиций не предусмотрено.
Есть 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 это ид статьи
RE:Подключение своих css и js в темплейты
Самим. Ясно.
А как использовать разные шаблоны на разных страницах?
Есть ли возможность вывести заголовок материала в другом месте страницы, вне <?php echo $this->moduleHTML; ?>?
А как использовать разные шаблоны на разных страницах?
Есть ли возможность вывести заголовок материала в другом месте страницы, вне <?php echo $this->moduleHTML; ?>?
RE:Подключение своих css и js в темплейты
>>>> А как использовать разные шаблоны на разных страницах?
Такого не предусмотрено в системе.
Но собственно можно, наверное, сориентироваться по активному пункту меню
$_SESSION["active_menu_id"];
>>>> Есть ли возможность вывести заголовок материала
>>>> в другом месте страницы, вне <?php echo $this->moduleHTML; ?>?
Ну и собственно если отверстать свой шаблон модуля article,
скопировав соответствующие файлы из папки
modules->имя_модуля->views->template->имя_view
в папку
templates->ваш_шаблон->html->modules->имя_модуля->имя_view,
то можно заголовок сложить тоже в сессию.
Только чистить не забывать. Это собственно навскидку один из способов.
Такого не предусмотрено в системе.
Но собственно можно, наверное, сориентироваться по активному пункту меню
$_SESSION["active_menu_id"];
>>>> Есть ли возможность вывести заголовок материала
>>>> в другом месте страницы, вне <?php echo $this->moduleHTML; ?>?
Ну и собственно если отверстать свой шаблон модуля article,
скопировав соответствующие файлы из папки
modules->имя_модуля->views->template->имя_view
в папку
templates->ваш_шаблон->html->modules->имя_модуля->имя_view,
то можно заголовок сложить тоже в сессию.
Только чистить не забывать. Это собственно навскидку один из способов.