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

Dmitriy-CoDy

  • Новичок
  • 7
  • 1 / 0
Иногда бывает необходимость подключить в материале какой-то внешний файл CSS, js, или просто добавить пару строк стилей или скрипта.

Никто не встречал плагина, который такие вставки перенесет из body в head?
*

voland

  • Профи
  • 9862
  • 535 / 105
  • Эта строка съедает место на вашем мониторе
А что он делает в боди?
Все нормальные модули сразу добавляют в head.
*

Taatshi

  • Support Team
  • 4853
  • 456 / 0
  • Верстаем и немножко кодим. Обращайтесь ;)
Подключение стилей и скриптов через API Joomla

Вставлять по идее можно где угодно - выведется все равно в хейдере

Код: php
$document = JFactory::getDocument();
$document
   ->addStyleSheet('/templates/'.$this->template.'/css/template.css')
   ->addStyleSheet('/templates/'.$this->template.'/css/menu.css')
   ->addScript('/templates/'.$this->template.'/js/menu.js');

Только прописывать нужно в макете а не в теле материала.
*

Dmitriy-CoDy

  • Новичок
  • 7
  • 1 / 0
Со сторонними модулами и плагинами все понятно, там все пишется куда нужно.

Ситуация: хочу в теле материала оформить некоторые данные в виде закладок. Больше этого нигде не требуется.

Возможные решения:
  1. воткнуть стили и скрипты в шаблон в index.php
  2. подключить их прямо в материале

В первом варианте вместо подключения стилей и скриптов там, где они нужны, они будут таскаться "мертвым грузом" по всем страницам.
Во втором случае теги scrip и link будут в секции body. Работать это будет, но за такое нужно руки отрывать.

Я же хотел найти плаги, который сможет подключить в нужном месте, нужные скрипты и стили: и верстка валидной будет и лишние скрипты не будут подключаться там, где они не нужны.

Плагин банальный: найти в теле ответа коды подключения скриптов/стилей и подключить их в заголовке.
Код
.......
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>Pr........cidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
</div>
<div id="tabs-2">
<p>Morbi ........rus.</p>
</div>
<div id="tabs-3">
<p>Mauris eleife.......drerit.</p>
</div>
</div>
[CSS src="style.css" media="all"]
[JS src="script.js"]
[JS] $(function() {$( "#tabs" ).tabs();});[/JS]
.......

Просто с жумлой сталкиваюсь крайне редко, своей подборки расширений на все случаи нет. На Joomla.org ничего подобного найти не удалось. "Изобретать заново велосипед" не хочется, думал на форуме поспрашивать, может есть у кого на примете подобное. Но похоже самому придется писать.
*

robert

  • Профи
  • 4282
  • 404 / 15
Во втором случае теги scrip и link будут в секции body. Работать это будет, но за такое нужно руки отрывать.
Откуда такая уверенность? Наоборот, иногда стараются убрать из <head></head> скрипты, которые не нужно грузить до отображения страницы, чтобы ускорить открытие последней.
Но похоже самому придется писать.
Тогда вы должны знать, что плагин тоже каждый раз грузится и забирает часть ресурсов. Тем более, он, скорее всего, будет работать с regexp.
Готовое решение при желании можно найти, я где-то уже видел.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

Dmitriy-CoDy

  • Новичок
  • 7
  • 1 / 0
Цитировать
Откуда такая уверенность? Наоборот, иногда стараются убрать из <head></head> скрипты, которые не нужно грузить до отображения страницы, чтобы ускорить открытие последней.
В случае со скриптами - полностью согласен. Я только за "ненавязчивый JavaScript "

В моем случае в body присутствуют стили, которые должны быть только в секции head (для прохождения валидации html5) или загружать их туда скриптами.
Код
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>fsd</title>
</head>
<body>
    <div>
        <link media="all" type="text/css" href="/_/css/site.css" rel="stylesheet">
        <script src="/_/js/site.js"></script>
    </div>
</body>
</html>
*

Fedor Vlasenko

  • Профи
  • 3808
  • 707 / 7
  • Все начинается с Value
Dmitriy-CoDy то, что вы показали Неправильно
Так лучше будет
Код: html4strict
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>fsd</title>
<link media="all" type="text/css" href="/_/css/site.css" rel="stylesheet">
</head>
<body>
    <div></div>
<script src="/_/js/site.js"></script>
</body>
</html>
Цитировать
или загружать их туда скриптами
зачем это делать в вашем случае. неужели так много стилей, почему не засунуть в один файл все
*

Fedor Vlasenko

  • Профи
  • 3808
  • 707 / 7
  • Все начинается с Value
Теперь по теме. Можно так поступить.
1. Вставить в подключенный js или создать новый код
Код: javascript
window.onload = function(){
    var spanJs = document.querySelectorAll('span[data-loadjs]');
    function buildElement(eltype, data) {
        var el = document.createElement(eltype);
        for (var i in data) el[i] = data[i];
        return el;
    }
    function buildJs(arr) {
        for(var el, i= 0, len = arr.length; i < len; ++i ){
            el = buildElement('script', {src: arr[i]});
            document.body.appendChild(el);
            document.body.removeChild(el);
        }
    }
    for(var js, i= 0, len = spanJs.length; i < len; ++i ){
        if (js = spanJs[i].getAttribute("data-loadjs")) {
            js = js.replace(/\s+/g, '');
            buildJs(js.split(','));
        }
    }
};
2. В материале пишем подобно
Код: html4strict
<span data-loadjs="test.js, test2.js"></span>
<span data-loadjs="test.js"></span>
Как это работает. Скрипт при полной загрузке элементов ищет все спаны с атрибутом data-loadjs. Если такие есть то считывает с них значения(их может быть много, можно через запятую указывать) и соответственно создает элементы script вставляет их в документ. Скрипты загружаются и выполняются. Строка  document.body.removeChild(el); удаляет скрипт из разметки. В памяти же скрипт остается.
*

Dmitriy-CoDy

  • Новичок
  • 7
  • 1 / 0
Спасибо за идею.

По сути то, что я хотел сделать плагином Вы переложили на "плечи" js.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин превьюшек mAvik Thumbnails 2 - версия для Joomla 3

Автор mavik

Ответов: 528
Просмотров: 50757
Последний ответ 11.10.2017, 23:37:48
от Театрал
Плагин - "Калькулятор НСД" для Joomla 3

Автор help-tend

Ответов: 0
Просмотров: 77
Последний ответ 25.09.2017, 13:43:02
от help-tend
Плагин автоматической защиты от спама

Автор Aleksandr.Razor

Ответов: 35
Просмотров: 6849
Последний ответ 30.08.2017, 12:14:19
от Aleksandr.Razor
Плагин JsCssManipulate

Автор Konstanin_by

Ответов: 7
Просмотров: 862
Последний ответ 20.08.2017, 12:03:24
от stas4ijov
плагин SP Thumbnail не работает

Автор urist2009

Ответов: 0
Просмотров: 176
Последний ответ 12.08.2017, 16:17:20
от urist2009