Новости 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 Гость просматривают эту тему.
  • 375 Ответов
  • 176234 Просмотров
*

Doctor Death

  • Захожу иногда
  • 144
  • 1 / 12
Re: Документация по компонентам
« Ответ #330 : 29.07.2010, 21:30:47 »
Professor так получается, что у меня есть модуль который выводит какие-то данные. данные он эти беркт из табличи БД
тоесть ели я вас правельно понял мне необходимо написать Административную чать КОМПОНЕНТА, чтобы эти данные заносить в табличку, так?
так вот вопрос - что нужно чтобы админская часть появилась в списке меню управления компонентами в а админке?
« Последнее редактирование: 30.07.2010, 07:41:31 от Doctor Death »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Документация по компонентам
« Ответ #331 : 30.07.2010, 08:32:25 »
Загляните в мой блог. Найдете много полезного на тему написания компонента.
*

Professor

  • Захожу иногда
  • 59
  • 10 / 0
Re: Документация по компонентам
« Ответ #332 : 03.08.2010, 14:30:25 »
Professor так получается, что у меня есть модуль который выводит какие-то данные. данные он эти беркт из табличи БД
тоесть ели я вас правельно понял мне необходимо написать Административную чать КОМПОНЕНТА, чтобы эти данные заносить в табличку, так?
так вот вопрос - что нужно чтобы админская часть появилась в списке меню управления компонентами в а админке?
вы всё правильно поняли. Читайте мануал по написанию компонента.
*

ZlyddeN

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: Документация по компонентам
« Ответ #333 : 22.08.2010, 12:29:37 »
а вот как добавить браузер файлов в свой компонент? чтобы в можно было выбрать файл и сформировать на основе этого чонить :)
*

Doctor Death

  • Захожу иногда
  • 144
  • 1 / 12
Re: Документация по компонентам
« Ответ #334 : 03.09.2010, 14:32:19 »
Загляните в мой блог. Найдете много полезного на тему написания компонента.

спасибо с помошью Вашего описания удалось создать админку для модуля
ещё бы для красоты описания как сдалть разбивку на списка мательялов на страници , создать чекбокс "выделеть все на странице" и сортировку по полям
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Документация по компонентам
« Ответ #335 : 03.09.2010, 14:41:17 »
спасибо с помошью Вашего описания удалось создать админку для модуля
ещё бы для красоты описания как сдалть разбивку на списка мательялов на страници , создать чекбокс "выделеть все на странице" и сортировку по полям
Уху... Реально - уже давно нет свободного времени. Ремонт делаю ^^
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Re: Документация по компонентам
« Ответ #336 : 09.02.2011, 09:22:57 »
Я в инете откопал пару нормальных статей как компонент написать, но они имеют ряд ограничений, там самый простой и не совсем полный объём информации!
Я уже кстати свой компонент почти добил своими усилиями и помощи некоторых людей! осталось дописать примерно половину админки.
Так вот хочу сделать функционал административной части, а именно флажки опубликовано или нет и что бы при нажатие выполнялось действие. так же ещё вопрос как сделать в админке постраничный вывод Joomla средствами. Вот этого материала я увы не нашёл. Кто нибудь реализовывал флажки?

Чек боксы как реализовать я сделал, там относительно не сложно. Вот вам пример там тип описывает как компонент создать самый нормальный материал из всех который я видел, но я выцедил от туда только как сделать флажки чекбоксы.  http://www.joomla-code.ru/great-component/model-view-conroller4 а вот остальной функционал я не смог реализовать. в сторонних компонентах слишком много кода который тяжело понять
« Последнее редактирование: 09.02.2011, 09:34:19 от klubnichkaaa »
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

ДмитрийМ

  • Новичок
  • 9
  • 1 / 0
Re: Документация по компонентам
« Ответ #337 : 17.04.2011, 23:34:00 »
Подскажите, пожалуйста есть ли возможность добавить редактор на страницу создания пункта меню компонента.
Написанный компонент выводит данные из базы в табличном режиме. А перед таблицей нужно показать вступительный текст.
Так как же показать эдитор на странице для добавления текста, характерного только для этого пункта меню?
После долгих экспериментов удалось вывести эдитор в области параметров компонента, но там не удобно редактировать текст в узкой колонке.
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Re: Документация по компонентам
« Ответ #338 : 18.04.2011, 08:52:10 »
Если я правильно понял вы хотите добавить редактор для компонента!? если так то вот тут есть статья как это сделать если будут дополнительные вопросы пишите комментарий! там же на сайте.  http://joomla-umnik.ru/vnedrenie-podklyuchenie-redaktora-v-komponent-joomla
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

ДмитрийМ

  • Новичок
  • 9
  • 1 / 0
Re: Документация по компонентам
« Ответ #339 : 18.04.2011, 10:27:14 »
Почитал, описание по Вашей ссылке. Не совсем то что нужно. Если я правильно понял, то этот эдитор будет доступен через админку если выбирать в админке COMPONETS -> ИМЯ КОМПОНЕНТА
А вот если я выбираю MENUS -> MAIN MENU -> ДОБАВИТЬ НОВУЮ СТАРНИЦУ и в качестве типа страницы я выбираю DEFAULT LAYOUT своего компонента. Как поместить Эдитор на страницу где создается пункт меню Компонента?
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Re: Документация по компонентам
« Ответ #340 : 18.04.2011, 12:00:00 »
Вы хотите в создание пункта меню Joomla вставить редактор!? Это можно, но он будет для всех пунктов, честно не видя что вы хотите тяжело что то сказать. Но 1. нужно вставить редактор, вставить в модель родного Joomla создание меню запрос в бд, вид шаблон. Какой то запутанный получится код и не понятно для чего это!? А я понял что ты имел в виду, но честно незнаю как это реализовать, нужно другие компоненты посмотреть. Редактор туда я думаю не проблема будет поставить, но вот как настройки туда вывести я незнаю может поделитесь?
« Последнее редактирование: 18.04.2011, 12:18:59 от klubnichkaaa »
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

ДмитрийМ

  • Новичок
  • 9
  • 1 / 0
Re: Документация по компонентам
« Ответ #341 : 18.04.2011, 12:55:42 »
Фронтендная страница моего компонента выглядит вот таким образом: http://www.gn-studio.ru/index.php/delta
Текст, который над таблицей с расписанием выводится с помощью параметра и выглядит это вот так:
http://www.uploadscreenshot.com/image/301834/9092044
Все работает но мне кажется что это как то криво, и должен быть правильный путь чтобы поместить эдитор не в блок параметров, а в блок MENU ITEM DETAILS, но нигде не нашел как это сделать (или что то где то пропустил).   >:(


*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Re: Документация по компонентам
« Ответ #342 : 18.04.2011, 13:15:23 »
Так можно задать размеры редактора и сделать его маленьким, и будет выглядеть изящнее. и занимать меньше места, на сайте описано. Ты мне скажи как ты вывел туда настройки!? каким образом!? поделись пожалуйста!
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

ДмитрийМ

  • Новичок
  • 9
  • 1 / 0
Re: Документация по компонентам
« Ответ #343 : 18.04.2011, 13:21:10 »
Сорри, какие настройки ты имеешь ввиду? Все расскажу, тока скажи что :о)
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Re: Документация по компонентам
« Ответ #344 : 18.04.2011, 13:49:14 »
Вот заходим в меню нажимаем создать выбираем свой компонент, Default Страница и появляется страница с созданием ссылки на твой компонент, с права появляется меню Основные параметры и Параметры системы. У тебя в Основные параметры выводятся настройки компонента, редактор как ты эти самые настройки внедрил в свой компонент что они у тебя выводятся при создании ссылки!
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

ДмитрийМ

  • Новичок
  • 9
  • 1 / 0
Re: Документация по компонентам
« Ответ #345 : 18.04.2011, 14:12:24 »
Внедрить параметры оказалось не сложно :-)
Открываем XML файл, который используется для установки компонента (мой компонент называется timetable и следовательно конфигурационный файл называется timetable.xml). В этом файле есть блок params. У меня он выглядит следующим образом:
Код
   <params addpath="/administrator/components/com_timetable/elements">
<param name="room" type="text" default="0" label="Room number" description="PARAMROOMNUMBER" />
<param name="description" type="editor" default="" label="DESCRIPTION" description="ENTER A DESCRIPTION" />
</params>

addpath - прописывает путь к кастомному параметру (в данном случае editor). А в папочку elements кладем файл editor.php
Текст этого файла следующий:
Код
<?php
defined('_JEXEC') or die('Restricted access');
class JElementEditor extends JElement {
        /**
         * Element name
         *
         * @access      protected
         * @var         string
         */
        var $_name = 'Editor';
        function fetchElement($name, $value, &$node, $control_name) {
                $rows = $node->attributes('rows');
                if ($rows == '') $rows = 20;
                $cols = $node->attributes('cols');
                if ($cols == '') $colss = 60;
                $width = $node->attributes('width');
                if ($width == '') $width = '100%';
                $height = $node->attributes('height');
                if ($height == '') $height = '100%';
                $buttons = $node->attributes('buttons');
                if ($buttons == 'false') $buttons = false;
                else $buttons = true;
                $editor = & JFactory::getEditor();
                return '<div style="text-align: left;">'.$editor->display
($control_name .'['. $name .']', $value, $width, $height, $cols,
$rows, $buttons).'</div>';
        }
}

Также не забыть прописать следующую строку в блок <files folder="admin"> это скопирует необходимый файл при установке компонента
Код
<filename>elements/editor.php</filename>

А для стандартного параметра
Код
<param name="room" type="text" default="0" label="Room number" description="PARAMROOMNUMBER" />
вообще никакаких доп телодвижений не надо. только одна строка в установочном XML файле.

Более подробно написано здесь:
http://docs.joomla.org/Creating_custom_template_parameter_types
http://www.richeyweb.com/development/joomla-parameter-elements/55-editor-parameter-element
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Re: Документация по компонентам
« Ответ #346 : 18.04.2011, 14:53:54 »
Спасибо тебе дружище за ценную инфу! Я вот незнал, даже не подозревал о таком, мне пока это особо ненужно, но я возьму себе на заметку как этот процесс сделать и опробую в деле!
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Re: Документация по компонентам
« Ответ #347 : 17.05.2012, 06:37:26 »
Вопрос переехал отсюда

Написал скрипт на php. Теперь надо засунуть все это в Joomla как компонент. Знаний не хватает хоть убейте. Подскажите, как например вот такой кусок скрипта засунуть в компонент:

...Первый запрос
Код
$queryalco = "SELECT table.name, table.price FROM table WHERE table.group = 'alco' 0 ORDER BY table.name ASC
$alco = mysql_query($queryalco) or die(mysql_error());

...Второй запрос
Код
$querytabak = "SELECT table.name, table.price FROM table WHERE table.group = 'tabak' 0 ORDER BY table.name ASC
$tabak = mysql_query($queryzerno) or die(mysql_error());

...Много подобных запросов

Обрабатываем кол-во строк:
Код
$nalco = mysql_num_rows($alco);
if ($nalco == 0) {echo "Алкоголя нету";} else {echo "Алкоголь есть";}

Делаем выпадающий список через цикл:
Код
while ($rowalco=mysql_fetch_array($alco)) 
              { echo "<option>".$rowalco['name']."</option>";
// Создаем массив из строк для последующего запуска в js
$alcoprice[] = $rowalco[1];
              }

Мутим массив в js используя полученные данные выше (из цикла):
Код
var pricealco =['',<?php echo implode(",", $alcoprice); ?>];

Пример привел... Теперь можно задать вопрос конкретнее:
В моей ситуации вот это:
Код
$rowalco=mysql_fetch_array($alco)
и
Код
$nalco = mysql_num_rows($alco);
как будет выглядеть в модели?

Выше у меня два запроса. На самом деле их больше. И в связи с этим я не могу понять как это будет выглядеть в той же модели. Ведь если первый запрос будет выглядеть так:
$db = JFactory::getDBO();
$query = 'ЗАПРОС 1';
$db->setQuery($query);
$row = $db->Что-то;
То как будет выглядеть второй и последующие? Так что-ли:
$db2 = JFactory::getDBO();
$query2 = 'ЗАПРОС 2';
$db2->setQuery($query2);
$row2 = $db2->Что-то;
« Последнее редактирование: 17.05.2012, 06:42:00 от xaocbozzz »
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Re: Документация по компонентам
« Ответ #348 : 17.05.2012, 06:42:21 »
Есть грамотные люди? Подскажите, пожалуйста. Очень хочется научиться писать компоненты.
Посмотрел вот тут, интуитивно догадываюсь, что в моем случае подойдет так:
Код
$row = $db->loadResult();
Интуитивно - потому, что я даже не могу понять где и как посмотреть результаты. print_r или var_dump куда воткнуть?
И дальше что? Что делать с $row? Что нужно прописать в view.html.php? А что в tmpl/default.php?
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Документация по компонентам
« Ответ #349 : 17.05.2012, 07:51:56 »
Документация по компонентам лично мне была впервые наиболее понятна на сайте коллеги СМа.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Re: Документация по компонентам
« Ответ #350 : 17.05.2012, 10:21:34 »
Прочитал эту и подобные hello word'ы и немного прояснилось в голове.
Только вот не могу я пока получить массив данных (использую LoadObjectList - верно ли?), а stdObject не работает в конструкции while.
Вот что выводит print_r($this->rows). Кстати, нашел я куда его воткнуть - tmpl/default.php

Код
Array 
(
[0] => stdClass Object ( [name] => Алко 1 [price] => 222 )
[1] => stdClass Object ( [name] => Алко 2 [price] => 555 )
..........
)

Как это впихнуть в while?
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Документация по компонентам
« Ответ #351 : 17.05.2012, 10:29:32 »
...Ведь если первый запрос будет выглядеть так:
$db = JFactory::getDBO();
$query = 'ЗАПРОС 1';
$db->setQuery($query);
$row = $db->Что-то;
То как будет выглядеть второй и последующие? Так что-ли:
$db2 = JFactory::getDBO();
$query2 = 'ЗАПРОС 2';
$db2->setQuery($query2);
$row2 = $db2->Что-то;

Незачем.
Объект БД ($db = JFactory::getDBO();) достаточно получить один раз, через вы получите доступ к методам класса JDatabase.
Что касается $query и $row - в вашем случае это уже локальные переменные и их именование - это ваше дело.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Документация по компонентам
« Ответ #352 : 17.05.2012, 10:32:12 »
Только вот не могу я пока получить массив данных (использую LoadObjectList - верно ли?)

Вы и получаете массив объектов.
Для получения результата в виде массива есть и другие методы - например loadRowList или loadAssocList
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Re: Документация по компонентам
« Ответ #353 : 17.05.2012, 12:49:50 »
Спасибо, но я все еще не могу получить список (select), например, полей name.
Зато удалось вывести все при помощи foreach. (опять же взял пример с очередного hello word)
В модели прописал:
Код
...
$row = $db->loadObjectList();
...
В представлении:
Код
...
$model =& $this->getModel();
$rows = $model->getTovar();
$this->assignRef('rows',$rows);
...
В шаблоне:
Код
...
foreach ($this->rows as $row) {
echo "<tr><td>".$row->name."</td><td>".$row->price."</td></tr>";
}
...
Выводится все это дело в табличку нормально. Проблема в том, что мне не нужна таблица. Нужен <select> с его <option>.
Неужели никто не знает?
Где почитать, как вытаскивать данные из массива объектов?
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Документация по компонентам
« Ответ #354 : 17.05.2012, 15:08:51 »
Ну так вы их и вытаскиваете - что по вашему вы делаете когда получаете цену как $row->price ?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Re: Документация по компонентам
« Ответ #356 : 18.05.2012, 07:58:38 »
Мда.. черт ногу сломит. В общем оставил foreach
Код
foreach ($this->rows as $alco ) {
echo "<option>".$alco->name."</option>";
$vprice[] = $alco->price;
}
Список появился. Массив $vprice успешно участвует в следующих вычислениях...
Теперь не могу сделать проверку на кол-во. В php было так:
Код
$nalco = mysql_num_rows($alco);
if ($nalco == 0) {echo "Алкоголя нету";} else {echo "Алкоголь есть";}
Нашел, что в модели можно получить кол-во строк вот так:
Код
$nalco = $dbalco->getAffectedRows();
Если тут же следующей строкой прописать:
Код
echo $nalco;
То вывод кол-ва есть. Но, естественно, не там где нужно.
Как вывести кол-во в нужное место шаблона?
Как сделать foreach для следующего товара (tabak)?
« Последнее редактирование: 18.05.2012, 08:05:30 от xaocbozzz »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Документация по компонентам
« Ответ #357 : 18.05.2012, 11:06:47 »
Вам кто мешает посчитать количество элементов в массиве через sizeof() не дёргая базу?

Или так

Код
if (empty($this->rows) OR !is_array($this->rows) {
    echo "Алкоголя нету";
} else {
    foreach ($this->rows as $alco ) {
        echo "<option>".$alco->name."</option>";
        $vprice[] = $alco->price;
    }
}

И вообще по работе с массивами - причём здесь J!, вам сюда http://ru2.php.net/manual/ru/ref.array.php
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Re: Документация по компонентам
« Ответ #358 : 18.05.2012, 12:48:30 »
Просто еще не сталкивался с такой сложной задачей. Оказывается переписать свой готовый php скрипт под Joomla довольно долгая и непростая задача...
Все еще не понимаю как сделать foreach для следующего select... У меня же результаты запросов разные. Я так понимаю, каждый запрос нужно выводить в модели своей собственной function... $alco = $dbalco->loadObjectList() помещать в функцию function getAlco(), а $tabak = $dbtabak->loadObjectList() помещать в функцию function gettabak(). Или нет? Сейчас буду пробывать...
Вот вы говорите, что мне поможет JDatabase в этом деле... А как?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #359 : 18.05.2012, 23:45:36 »
ну сначала надо понять, нужен тебе NVC или нет.
если нет, то можно компонент забабахать и "по быстрому" :)
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию user profile плагина для Joomla 1.6

Автор n_drey

Ответов: 13
Просмотров: 2936
Последний ответ 05.10.2011, 21:03:46
от n_drey