Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 22 Ответов
  • 9124 Просмотров
*

levitan

  • Захожу иногда
  • 142
  • 1 / 0
Ув. мастера! У меня проблема следующего характера. Требуется подключить отдельный файл стиля для меню. Код объемный, если я включаю весь код в template.css - все работает, но хочу чтобы было все более аккуратно. template подключаю так - <link rel="stylesheet"
href="templates/uletour/css/template.css" type="text/css" /> .
По  такой же конструкии подключал menu.css - но ничего не выходит. Подскажите как грамотно сделать. Шаблон писал сам с нуля.

Меню выводится вот так - <div id="menu"><!-- Меню -->
<jdoc:include type="modules" name="menu" /></div>

Простите если вопрос совершенно ламерский. Заранее спасибо!
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
Re: Подключение внешнего CSS файла
« Ответ #1 : 19.10.2013, 17:22:18 »
Код: php
<?php
$doc = JFactory::getDocument();
// Подключаем стили CSS JavaScript
$doc
->addStyleSheet('templates/'.$this->template.'/css/bootstrap.min.css')
->addScript('templates/'.$this->template.'/js/bootstrap.min.js');
?>

Поправил
*

levitan

  • Захожу иногда
  • 142
  • 1 / 0
Re: Подключение внешнего CSS файла
« Ответ #2 : 19.10.2013, 17:25:53 »
<?php
$doc = JFactory::getDocument();
// Подключаем стили CSS JavaScript
$doc
   ->addStyleSheet('templates/'.$this->template.'/css/menu.css')
   ->addScript('templates/'.$this->template.'/js/menu.js')
?>

Вставил в  <head>. Посмотрите пожалуйста, правильно прописал пути? Название файлов идентично моим. В <body> - нужно вставлять доп. код?
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
Re: Подключение внешнего CSS файла
« Ответ #3 : 19.10.2013, 17:35:10 »
В <head> не надо, убедись, что $doc = JFactory::getDocument(); в коде отсутстует. Если это так, то ставь сразу после defined('_JEXEC') or die;
Если есть уже, то после $doc = JFactory::getDocument(); вставляй
Код: php
$doc
   ->addStyleSheet('templates/'.$this->template.'/css/menu.css')
   ->addScript('templates/'.$this->template.'/js/menu.js');

Поправил
*

levitan

  • Захожу иногда
  • 142
  • 1 / 0
Re: Подключение внешнего CSS файла
« Ответ #4 : 19.10.2013, 17:45:14 »
Вот код моего <head>, но так же вставлял предложенный вами код в <body> - к сожалению результата нет(
Опишите пожалуйста как правильно подключить, может нужно абс. пути прописывать? (гдето читал подобное)
Спойлер
[свернуть]
*

levitan

  • Захожу иногда
  • 142
  • 1 / 0
Re: Подключение внешнего CSS файла
« Ответ #7 : 20.10.2013, 14:55:51 »
Дай начало index.php под спойлер...

Спойлер
[свернуть]
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
Re: Подключение внешнего CSS файла
« Ответ #8 : 20.10.2013, 15:56:39 »
Код: html4strict
<?php defined('_JEXEC') or die; // Защита от прямого доступа к файлу

// Убираем дубль index.php
if($_SERVER['REQUEST_URI'] == '/index.php') {
header("Location: /",TRUE,301);
exit();
}

// Получаем объект приложения
$app = JFactory::getApplication();

// Подключаем стили CSS JavaScript
$doc = JFactory::getDocument();
$doc
   ->addStyleSheet('templates/'.$this->template.'/css/template.css')
   ->addStyleSheet('templates/'.$this->template.'/css/menu.css')
   ->addScript('templates/'.$this->template.'/js/menu.js');
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Улетный Тур</title>
<jdoc:include type="head" />
</head>
*

artel-st

  • Захожу иногда
  • 350
  • 37 / 1
Re: Подключение внешнего CSS файла
« Ответ #9 : 20.10.2013, 17:30:48 »
Не понятно, зачем городить такой огород, если подключаете через index.php шаблона?

Спойлер
[свернуть]
"Жираф - это лошадь, выполненная по всем требованиям заказчика" (с) кто-то из дизайнеров
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Подключение внешнего CSS файла
« Ответ #10 : 20.10.2013, 17:50:49 »
artel-st объясню почему так. Рано или поздно стилей при таком выводе соберется с 10. Каждый модуль будет так писать. Это замедлит скорость загрузки. Для этого скрипты и стили подключаем через родное api в  Joomla
В шаблоне doc не нужен там есть уже this
Код: php-brief
$this
   ->addStyleSheet('/templates/'.$this->template.'/css/template.css')
   ->addStyleSheet('/templates/'.$this->template.'/css/menu.css')
   ->addScript('/templates/'.$this->template.'/js/menu.js');
такое подключение удобно тем, что плагином минимизации тем же JCH и им подобными мы обработаем наши стили и скрипты. Объединим и сожмем. Код можно вставлять где угодно(в конце, вначале, в середине файла), он все равно в head выведется после парсинга. Можно конечно и буфер вывода регулярками проанализировать и делать тоже самое, но работа с массивами гораздо быстрее. Вообще то файл CSS в идеале должен быть один.
*

artel-st

  • Захожу иногда
  • 350
  • 37 / 1
Re: Подключение внешнего CSS файла
« Ответ #11 : 20.10.2013, 17:53:24 »
объясню почему так.
Век живи - век учись %)
Спасибо, действительно полезная фишка, взял на заметку [плюсик].
"Жираф - это лошадь, выполненная по всем требованиям заказчика" (с) кто-то из дизайнеров
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
*

levitan

  • Захожу иногда
  • 142
  • 1 / 0
Re: Подключение внешнего CSS файла
« Ответ #13 : 22.10.2013, 10:47:54 »
Большое спасибо всем, но беда в том, что как не бился я всеравно отдельный файл nemu.css - у меня не подключался как ни крути.
Код вставил в общий template.css - все заработало. Кстати ->addScript('/templates/'.$this->template.'/js/menu.js'); - не подключал.
c js - не дружу пока(((
Еще раз спасибо всем за помощь.
*

MansEL

  • Захожу иногда
  • 110
  • 0 / 0
Re: Подключение внешнего CSS файла
« Ответ #14 : 24.02.2014, 11:47:00 »
У меня вопросы по текущей теме.
1. В шаблоне поставки beez5 в Joomla 2.5 испольшуется смешенный ( или НАМЕШАННЫЙ) способ подключения файлов js и CSS. Вопрос: почему js  подключают черес api Joomla (addScript), а CSS через <link rel="stylesheet" href=". Это небрежность и ошибка разработчиков или... ?

2. Почему выше в теме написано, что doc в шаблоне можно не использовать (сразу можно через $this->addStyleSheet), но при этом во всех шаблонах поставки Joomla, где используется addStyleSheet, обязательно присутствует $doc= JFactory::getDocument();.
Это что, тоже неграмотность разработчиков Joomla или всё же прямое использование $this->addStyleSheet в шаблоне не всегда корректно?
Объясните, пожалуйста. Буду ждать ответа знающих.
Спасибо.
Ниже выдержки из кода beez5
Спойлер
[свернуть]
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

MansEL

  • Захожу иногда
  • 110
  • 0 / 0
Re: Подключение внешнего CSS файла
« Ответ #16 : 24.02.2014, 18:23:46 »
Спасибо за ответ. Но удивление по поводу качества кода разработчиков,  всё же, остается.
*

Kukush

  • Осваиваюсь на форуме
  • 28
  • 1 / 0
Re: Подключение внешнего CSS файла
« Ответ #17 : 16.08.2017, 18:41:40 »
artel-st объясню почему так. Рано или поздно стилей при таком выводе соберется с 10. Каждый модуль будет так писать. Это замедлит скорость загрузки. Для этого скрипты и стили подключаем через родное api в  Joomla
В шаблоне doc не нужен там есть уже this
Код: php-brief
$this
   ->addStyleSheet('/templates/'.$this->template.'/css/template.css')
   ->addStyleSheet('/templates/'.$this->template.'/css/menu.css')
   ->addScript('/templates/'.$this->template.'/js/menu.js');
такое подключение удобно тем, что плагином минимизации тем же JCH и им подобными мы обработаем наши стили и скрипты. Объединим и сожмем. Код можно вставлять где угодно(в конце, вначале, в середине файла), он все равно в head выведется после парсинга. Можно конечно и буфер вывода регулярками проанализировать и делать тоже самое, но работа с массивами гораздо быстрее. Вообще то файл CSS в идеале должен быть один.
Подскажите пожалуйста, если эти файлы CSS и js, лежат не локально в папке template, а на внешнем сервере, как в этом случае лучше прописать подключение?
Спасибо.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подключение внешнего CSS файла
« Ответ #18 : 16.08.2017, 19:59:10 »
Подскажите пожалуйста, если эти файлы CSS и js, лежат не локально в папке template, а на внешнем сервере, как в этом случае лучше прописать подключение?
Спасибо.
Код
->addStyleSheet('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/css/uikit.min.css')
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Kukush

  • Осваиваюсь на форуме
  • 28
  • 1 / 0
Re: Подключение внешнего CSS файла
« Ответ #19 : 17.08.2017, 00:40:25 »
Большое спасибо Septdir
Но не работает. Может я не так прописал?

$this
   ->addStyleSheet('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/css/uikit.min.css')
   ->addScript('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/js/main.js')
?>
« Последнее редактирование: 17.08.2017, 01:47:16 от Kukush »
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подключение внешнего CSS файла
« Ответ #20 : 17.08.2017, 10:49:56 »
Большое спасибо Septdir
Но не работает. Может я не так прописал?

$this
   ->addStyleSheet('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/css/uikit.min.css')
   ->addScript('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/js/main.js')
?>
Ну смотри написание завивит от того где это писать. Например так можно подключить в head в любом файле где инициализирована Joomla:
Код: php
$doc      = JFactory::getDocument();
$doc->addStyleSheet('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/css/uikit.min.css');
$doc->addScript('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/js/uikit.min.js');


А вот так можно это сдеать в шаблоне
Код: php
$this->addStyleSheet('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/css/uikit.min.css');
$this->addScript('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/js/uikit.min.js');

А во view компонента можно так
Код: php
$this->document->addStyleSheet('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/css/uikit.min.css');
$this->document->addScript('https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.28/js/uikit.min.js');

Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Fukushima

  • Новичок
  • 3
  • 0 / 0
Re: Подключение внешнего CSS файла
« Ответ #21 : 17.12.2017, 15:54:41 »
А такой вопрос, как реализовать проверку.
Допустим я подключаю стили с внешнего сервера, и вот если они не подключились, тогда подключать из папки сайта
так правильно будет?

if($doc->addStyleSheet($template_url . '/css/bootstrap.min.css'))
   $doc->addStyleSheet('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Re: Подключение внешнего CSS файла
« Ответ #22 : 18.12.2017, 14:23:22 »
Никак!
CSS подключается клиенту в браузер. Сервер отдаёт всеголищь ссылку.
Конечно, можно проверить доступность ссылки сервером и отдать её клиенту, но зачем?
Вы никак не проверите, доступна ли ссылка клиенту!
Поэтому не морочте голову и используйте что-то одно.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Подключение CSS на отдельных страницах или модулях

Автор proandrey

Ответов: 4
Просмотров: 2345
Последний ответ 09.04.2017, 17:37:49
от proandrey
Подключение CSS с помощью php

Автор Hellforcer

Ответов: 10
Просмотров: 2293
Последний ответ 24.01.2016, 15:13:02
от Shustry
Поиск соответствующего CSS файла

Автор Dariavenom

Ответов: 8
Просмотров: 1600
Последний ответ 07.11.2013, 14:39:12
от Dariavenom
Настройка внешнего вида модуля IceCarosuel Module

Автор criat

Ответов: 1
Просмотров: 2530
Последний ответ 17.07.2013, 15:19:03
от darkghost
Изменение внешнего вида Профиля пользователя, поле aboutme

Автор Pashekka

Ответов: 6
Просмотров: 1386
Последний ответ 31.10.2012, 00:17:27
от Pashekka