Новости Joomla

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

Dmitriy-CoDy

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

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

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А что он делает в боди?
Все нормальные модули сразу добавляют в head.
*

Taatshi

  • Глобальный модератор
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Подключение стилей и скриптов через 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');

Только прописывать нужно в макете а не в теле материала.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

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

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

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

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
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

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Теперь по теме. Можно так поступить.
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.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 93458
Последний ответ 20.04.2024, 21:10:33
от Beer
Плагин StopKids для маркировки сайта знаком 18+ для Joomla 1.5-3.x

Автор ecolora

Ответов: 40
Просмотров: 19835
Последний ответ 19.03.2023, 18:55:08
от ecolora
Компонент Commedia и плагин mp3browser для медиа-сайтов

Автор ecolora

Ответов: 557
Просмотров: 118970
Последний ответ 13.03.2023, 00:25:14
от ecolora
Плагин seoLinks

Автор alexandr-spb

Ответов: 0
Просмотров: 1174
Последний ответ 26.01.2023, 23:08:41
от alexandr-spb
Плагин "Русская типографика"

Автор Physicist

Ответов: 258
Просмотров: 147619
Последний ответ 25.01.2023, 13:43:35
от Physicist