Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
jdoc:include type="head"
« : 08.10.2015, 13:05:57 »
Здравствуйте у меня в шаблоне есть такой тег <jdoc:include type="head" />, этот тег генерирует javascript на странице в части head. Мне нужно отредактировать этот код, не знаю как сделать, где этот класс определяется я нашел в вайле head.php
Код
class JDocumentRendererHead extends JDocumentRenderer
вот когд где создается js
Код
// Generate script declarations
foreach ($document->_script as $type => $content)
{
$buffer .= $tab . '<script type="' . $type . '">' . $lnEnd;

// This is for full XHTML support.
if ($document->_mime != 'text/html')
{
$buffer .= $tab . $tab . '<![CDATA[' . $lnEnd;
}

$buffer .= $content . $lnEnd;

// See above note
if ($document->_mime != 'text/html')
{
$buffer .= $tab . $tab . ']]>' . $lnEnd;
}
$buffer .= $tab . '</script>' . $lnEnd;
}

как я понимаю все данные лежет в базе судя по вот этому foreach ($document->_script as $type => $content), объясните как эго поменять.
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: jdoc:include type="head"
« Ответ #1 : 08.10.2015, 13:46:31 »
А что именно вам нужно отредактировать?

Сюда попадают всё js, которые подключены через
Код: php
JFactory::getDocument()->addScript('...');
JHtml::_('script', '...');
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #2 : 08.10.2015, 14:08:37 »
а как я могу его редактировать?
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: jdoc:include type="head"
« Ответ #3 : 08.10.2015, 14:12:53 »
Можно написать плагин, и перед рендером страницы изменять как хотите.
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #4 : 08.10.2015, 15:01:26 »
вы наверное не поймете, у меня в head есть код js он уже сформирован, вот я хочу его подправить, но не пойму как он формируется, зачем чтото переделывать
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: jdoc:include type="head"
« Ответ #5 : 08.10.2015, 15:04:50 »
Так вы нормально пишите что вы хотите. Смотрите откуда js-ка подключается, и редактируйте.
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #6 : 08.10.2015, 16:09:43 »
нет там не подключается а формируется прям в техах head
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: jdoc:include type="head"
« Ответ #7 : 08.10.2015, 16:31:12 »
...
А что за код? Joomla, или сторонних расширений?

P.S. Покажите кусок кода, надоело вытягивать с вас информацию, ведь по сути это вам нужно.
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #8 : 08.10.2015, 16:49:30 »
Код: javascript
<script type="text/javascript">

window.addEvent('domready', function() {

SqueezeBox.initialize({});
SqueezeBox.assign($$('a.modal'), {
parse: 'rel'
});
});
function keepAlive() { var myAjax = new Request({method: "get", url: "index.php"}).send();} window.addEvent("domready", function(){ keepAlive.periodical(840000); });
Calendar._DN = new Array ("Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"); Calendar._SDN = new Array ("Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"); Calendar._FD = 0; Calendar._MN = new Array ("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"); Calendar._SMN = new Array ("Янв", "Фев", "Март", "Апр", "Май", "Июнь", "Июль", "Авг", "Сен", "Окт", "Нояб", "Дек"); Calendar._TT = {};Calendar._TT["INFO"] = "О календаре"; Calendar._TT["ABOUT"] =
 "DHTML Date/Time Selector\n" +
 "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
"\n\n" +
"Выбор даты:\n" +
"- Чтобы выбрать год, используйте кнопками < и > \n" +
"- Чтобы выбрать месяц воспользуйтесь кнопками < и > \n" +
"- Удерживайте кнопку мыши на любой из кнопок, расположенных выше, для быстрого выбора.";
Calendar._TT["ABOUT_TIME"] = "\n\n" +
"Time selection:\n" +
"- Click on any of the time parts to increase it\n" +
"- or Shift-click to decrease it\n" +
"- or click and drag for faster selection.";

Calendar._TT["PREV_YEAR"] = "Нажмите, что бы перейти на предыдущий год. Нажмите и удерживайте для показа списка лет."; Calendar._TT["PREV_MONTH"] = "Нажмите, что бы перейти на предыдущий месяц. Нажмите и удерживайте для показа списка месяцев."; Calendar._TT["GO_TODAY"] = "Текущая дата"; Calendar._TT["NEXT_MONTH"] = "Нажмите, что бы перейти на следующий месяц. Нажмите и удерживайте для показа списка месяцев."; Calendar._TT["NEXT_YEAR"] = "Нажмите, что бы перейти на следующий год. Нажмите и удерживайте для показа списка лет."; Calendar._TT["SEL_DATE"] = "Выбор даты."; Calendar._TT["DRAG_TO_MOVE"] = "Потяните, чтобы переместить"; Calendar._TT["PART_TODAY"] = "Сегодня"; Calendar._TT["DAY_FIRST"] = "Показывать первые %s"; Calendar._TT["WEEKEND"] = "0,6"; Calendar._TT["CLOSE"] = "Закрыть"; Calendar._TT["TODAY"] = "Сегодня"; Calendar._TT["TIME_PART"] = "Shift + клик или перетаскивание мышкой позволит изменить значение."; Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; Calendar._TT["WK"] = "нед."; Calendar._TT["TIME"] = "Время:";
window.addEvent('domready', function() {
$$('.Tips1').each(function(el) {
var title = el.get('title');
if (title) {
var parts = title.split('::', 2);
el.store('tip:title', parts[0]);
el.store('tip:text', parts[1]);
}
});
var JTooltips = new Tips($$('.Tips1'), { maxTitleChars: 50, className: 'djcf_label', fixed: false});
});

jQuery(function(){

plupload.addI18n({
'Select files' : 'Загру
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: jdoc:include type="head"
« Ответ #9 : 08.10.2015, 17:11:04 »
libraries\joomla\html\html\behavior.php
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #10 : 08.10.2015, 21:10:15 »
да разобраться будет трудновато но как я понимаю эта функия добавляется в конец каждой для ее вызова
protected static function _getJSObject($array = array())
   {
      // Initialise variables.
      $object = '{';

      // Iterate over array to build objects
      foreach ((array) $array as $k => $v)
      {
         if (is_null($v))
         {
            continue;
         }

         if (is_bool($v))
         {
            if ($k === 'fullScreen')
            {
               $object .= 'size: { ';
               $object .= 'x: ';
               $object .= 'window.getSize().x-80';
               $object .= ',';
               $object .= 'y: ';
               $object .= 'window.getSize().y-80';
               $object .= ' }';
               $object .= ',';
            }
            else
            {
               $object .= ' ' . $k . ': ';
               $object .= ($v)? 'true' : 'false';
               $object .= ',';
            }
         }
         elseif (!is_array($v) && !is_object($v))
         {
            $object .= ' ' . $k . ': ';
            $object .= (is_numeric($v) || strpos($v, '\\') === 0)? (is_numeric($v))? $v : substr($v, 1) : "'" . $v . "'";
            $object .= ',';
         }
         else
         {
            $object .= ' ' . $k . ': ' . JHtmlBehavior::_getJSObject($v). ',';
         }
      }
Код: javascript

*

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #11 : 08.10.2015, 21:37:13 »
как я понимаю вот этот метод
Код: javascript
public static function uploader()
{
return;
}
а объявляется он здесь что бы была возможность добить к нему то что я написал в предыдущем сообщении?
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: jdoc:include type="head"
« Ответ #12 : 08.10.2015, 22:12:23 »
А что вы вообще хотите сделать?
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".
*

serrggeee

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #13 : 08.10.2015, 22:56:28 »
Хочу отредактировать форму и сделать ограничение на загрузку в одну фотографию. Вот нашел функцию которая выводит
эту форму getUploader создал такую же с другим название getUploader1 но в итоге получаю
Код
Fatal error: Call to undefined method DJUploadHelper::getUploader1() in /home/p313923/public_html/agr/components/com_djclassifieds/views/additem/tmpl/default_logo.php on line 56
хотя я ее же определил . вот как осуществляется вызов
Код: php
$this->uploader1 = DJUploadHelper::getUploader1('uploader1', $settings1);
*

kasper9820

  • Захожу иногда
  • 127
  • 4 / 6
  • ...ISponsor!
Re: jdoc:include type="head"
« Ответ #14 : 03.02.2016, 12:41:56 »
Подскажите несколько вопросов. Никак не поборю head

Как в шаблоне ...index.php вывести пути к файлам, которые попадают в head (или как понять от куда они туда попадают)?
Как исключить и хеада скрипты и стили, которые подключаютя из самих модулей, плагинов и т.д. JFactory::getDocument()->addScript('...'); - не всему голова.

Как реализовать это
Код
на событие onbeforecompilehead в котором прописать условие:
$app=JFactory::getApplication();
if ( $app->isAdmin() ) {  ...  }

хочу в результате разложить хеад по полочкам, т.к. при использовании разных к. м. п. глюков немеряно
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: jdoc:include type="head"
« Ответ #15 : 04.02.2016, 17:50:09 »
Если собираетесь писать плагин читайте мануалы по созданию плагина

https://cmscafe.ru/docs/joomla/developer/plugin-joomla-2-5-joomla-3

В нем вы можете получить массив скриптов, стилей, содержимое буфера модулей, компонента.
Код: php
...
function onBeforeCompileHead ()
{
$app = JFactory::getApplication();
if($app->isAdmin()) {
//бекенд
} else {
//фронтенд
}

$doc = JFactory::getDocument();
var_dump($doc->_scripts);         //массив внешних скриптов, ключами которого являются пути к файлам
var_dump($doc->_script);          //массив inline скриптов
var_dump($doc->_styleSheets); //массив внешних стилей, ключами которого являются пути к файлам
var_dump($doc->_style);        //массив inline стилей

$buffer = $doc->getBuffer();
$component = $buffer['component'];   //содержимое компонента
$modules = $buffer['modules'];           //содержимое модулей
}
...

С содержимым самого шаблона чуть сложнее, так как класс JDocumentHTML хранит содержимое шаблона в защищенном свойстве _template. Тут варианты либо использовать отражения, либо отрендерить файл шаблона самостоятельно, по его пути. Чтобы получить все скрипты которые захардкодили в шаблон, модуль, или компонент придется распарсить их содержимое с помощью регулярных выражений или каким нибудь XML парсером, например моим любимым DOMDocument.
« Последнее редактирование: 04.02.2016, 17:54:17 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

chuga

  • Новичок
  • 6
  • 0 / 0
Re: jdoc:include type="head"
« Ответ #16 : 18.05.2016, 16:48:38 »
Скажите, а как можно переместить  JavaScript и CSS, как рекомендует https://developers.google.com/speed/pagespeed/insights/?hl=ru&url=https%3A%2F%2Fclipso.by%2F&tab=desktop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать рабочим {loadposition} или jdoc:include в com_content?

Автор Amigo9876

Ответов: 5
Просмотров: 2399
Последний ответ 31.07.2020, 16:49:37
от tigra-uki
Ошибка 500: - Представление не найдено [name, type, prefix]: annotations, HTML, fgosView

Автор sergeybatmanov

Ответов: 0
Просмотров: 1440
Последний ответ 16.03.2017, 13:48:58
от sergeybatmanov
Как вставить метатег в head не через index.php?

Автор smls

Ответов: 0
Просмотров: 1018
Последний ответ 23.05.2016, 07:53:35
от smls
500 - Обнаружена ошибка. Представление не найдено [name, type, prefix]: cpanel, HTML, cpanelView

Автор Alex_Ivanov

Ответов: 0
Просмотров: 1436
Последний ответ 07.09.2015, 15:01:22
от Alex_Ivanov
Настройка head.php

Автор Artorius

Ответов: 10
Просмотров: 2254
Последний ответ 26.04.2015, 16:29:16
от Artorius