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

SerBor

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Маркет + swmenu = хрень конечно. Но работает. Сам не програмер. Не судите строго. Торгаш недвижимостью. Но хобби: пока охота закрыта и летняя рыбалка не открыта, а пить уже нелезет поглядываю чем народ дышит. - www.mapdom.ru
*

vagkrsk

  • Moderator
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Хороший модуль получился.
Родной модуль MarketPlace намного хуже.
Делитесь с сообществом, не стесняйтесь  ^-^
*

SerBor

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Кладу. Думаю представлять интерес может только для разработчика. Но как говорится что имеем. Берем mod_php вставляем текст. Имя БД - меняете на свою. Пути соответственно тоже. Спецы: может для населения кто на основе этой идеи смастерит нормальный продукт?

[spoiler title=Код]
<?php
$sql= "(SELECT distinct b1.id as c1, b1.name as c2, b1.name as c3, count(b7.published=1) as c4, b1.sort_order as c5, count(b7.published=1) as f1, b1.parent as par
       FROM z60543_xxxx.jos_marketplace_categories as b1,
z60543_xxxx.jos_marketplace_categories as b2,
z60543_xxxx.jos_marketplace_ads as b7
      WHERE (b1.id=b2.parent and b2.id=b7.category)
group by b1.id)
union
(select a1.id as c1, a1.name as c2, ss.s_name as c3, ss.s_cnt as c4, a1.sort_order as c5, fff.f_cnt as f1, a1.parent as par
from z60543_xxxx.jos_marketplace_categories as a1,
(SELECT distinct b1.id as s_id, b1.name as s_name, count(b7.published=1) as s_cnt
       FROM z60543_xxxx.jos_marketplace_categories as b1,
z60543_xxxx.jos_marketplace_categories as b2,
z60543_xxxx.jos_marketplace_ads as b7
      WHERE (b1.id=b2.parent and b2.id=b7.category)
group by b1.id) as ss,
(SELECT distinct e1.id as f_id, e1.name as f_name, count(f1.published=1) as f_cnt
       FROM z60543_xxxx.jos_marketplace_categories as e1,
z60543_xxxx.jos_marketplace_ads as f1
      WHERE (e1.id=f1.category)
group by e1.id) as fff
where (a1.parent = ss.s_id  and a1.id = fff.f_id)
order by  ss.s_cnt desc, fff.f_cnt desc)
order by c4 desc, c3, !(c2=c3), f1 desc, c2";
$result = mysql_query($sql);
if (!$result) {
die('Неверный запрос: '. mysql_error());
}
$ff=1;
?>
<script type="text/javascript" src="http://www.mapdom.ru/modules/mod_swmenupro/dtree_Packed.js"></script>
<style type='text/css'>
<!--
.dtree150 {
 border: 1px none #124170 !important ;
 background-color: #FFFFFF !important ;
 margin: 0 !important ;
 padding: 2px 2px 2px 2px !important ;
}
.dtree150 img {
 border: 0px !important ;
 vertical-align: middle !important ;
}
.dtree150 a {
 font-family: Arial, Helvetica, sans-serif !important ;
 font-size: 12px !important ;
 text-decoration: none !important ;
 font-weight: bold !important ;
 color: #666666 !important ;
 text-decoration: none !important ;
}
.dtree150 a.node, .dtree150 a.nodeSel {
 white-space: nowrap;
 padding: 2px 2px 2px 2px !important ;
}
.dtree150 a.node:hover, .dtree150 a.nodeSel:hover {
 color: #000000 !important ;
 font-weight: normal !important ;
 background-color: #CCC !important ;
}
.dtree150 a.nodeSel {
 background-color: #CCC !important ;
}
.dtree150 .clip {
 overflow: hidden;
}
-->
</style>
<script type="text/javascript">
<!--
d150= new dTree('d150');
d150.add(0,-1,'');
<?php
while ($row = @mysql_fetch_assoc($result)){
$max_len=35;
if ($row['par']==0) {
$my_sub = "(".$row['f1'].")  ".substr($row['c2'], 0, 25);
echo "d150.add(".$row['c1'].",0,'".$my_sub."','http://www.mapdom.ru/component/option,com_marketplace/Itemid,150/','".$my_sub."','_self','','');";
} else {
$my_sub = "(".$row['f1'].")  ".substr($row['c2'], 0, 25);
echo "d150.add(".$row['c1'].",".$row['par'].",'".$my_sub."','http://www.mapdom.ru/component/option,com_marketplace/page,show_category/catid,".$row['c1']."/Itemid,150/','".$my_sub."','_self','','');";
}
$ff=$ff+1;
}  
?>
d150.menuid=150;
d150.config.target=null;
d150.config.folderLinks=false;
d150.config.useSelection=false;
d150.config.useCookies=true;
d150.config.useLines=false;
d150.config.useIcons=true;
d150.config.useStatusText=false;
d150.config.closeSameLevel=false;
d150.config.inOrder=true;
d150.icon.root='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/1.gif';
d150.icon.folder='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/folder.gif';
d150.icon.folderOpen='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/folderopen.gif';
d150.icon.node='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/page.gif';
d150.icon.empty='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/empty.gif';
d150.icon.line='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/line.gif';
d150.icon.join='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/join.gif';
d150.icon.joinBottom='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/joinbottom.gif';
d150.icon.plus='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/plus.gif';
d150.icon.plusBottom='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/plusbottom.gif';
d150.icon.minus='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/minus.gif';
d150.icon.minusBottom='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/minusbottom.gif';
d150.icon.nlPlus='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/nolines_plus.gif';
d150.icon.nlMinus='http://www.mapdom.ru/modules/mod_swmenupro/images/tree_icons/nolines_minus.gif';
document.write(d150);
//-->
</script>
[/spoiler]
« Последнее редактирование: 13.02.2011, 10:07:04 от vagkrsk »
*

fed-ig

  • Осваиваюсь на форуме
  • 29
  • 0 / 3
реализация классная, хорошо бы подробное описание как эту красоту сотворить пока нет нормального продукта
*

SerBor

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Так в 3-м посте написал. Пишу подробнее:
1. Поставил swmenu - игрушка интересная, но бесполезная тк с Marketplace  дружить не желает. В браузере Вид-Исходный код прикинул что есть и что должно быть.
2. Нашел книжку называется про SQL автор вроде Губер иль Гумбер (не примите за неуважение просто почитал-написал SELECT-удалил)
3. Как эти буковки в код вставить? - Эт язык называется "php". Убил 2 дня на сайте про этот язык - вставил буковки.
4. чтоб все это подружить с Joomla - эт я уже знал! Есть такой модуль чтоб посторонние кнопочки и счетчики вставлять - mod_php
Всё.
Типа инструкции:
1. Ставьте swmenu.
2. Модуль mod_php
3. В mod_php - вставляете текст из 3 поста. (Меняете пути и название БД)
Рекомендации:
А лучше дождитесь пока кто-либо по человечески все оформит. По определению, человек потративший неделю на самообразование не сожет сделать продукт хорошо. Идей - может да, имеет право на существование. Реализация - уверен мастер сделает все профессионально и правильно.
До 10 апреля (открытие охоты, потом рыбалки..) буду временами заглядывать. Спрашивайте, отвечу.
*

fed-ig

  • Осваиваюсь на форуме
  • 29
  • 0 / 3
спасибо
попробовал сегодня сделать модуль менюшку, сразу не получилось, пришлось немного поправить,
в результате добился вывода пока только одной родительской категории
и  еще вопрос как бы избавиться от знаков вопроса в конце? - избавился добавив JString:: к substr

[spoiler title=Код]
<?php
$sql= "(SELECT distinct b1.id as c1, b1.name as c2, b1.name as c3, count(b7.published=1) as c4, b1.sort_order as c5, count(b7.published=1) as f1, b1.parent as par
       FROM XXXX_XXXX.jos_marketplace_categories as b1,
XXXX_XXXX.jos_marketplace_categories as b2,
XXXX_XXXX.jos_marketplace_ads as b7
      WHERE (b1.id=b2.parent and b2.id=b7.category)
group by b1.id)
union
(select a1.id as c1, a1.name as c2, ss.s_name as c3, ss.s_cnt as c4, a1.sort_order as c5, fff.f_cnt as f1, a1.parent as par
from XXXX_XXXX.jos_marketplace_categories as a1,
(SELECT distinct b1.id as s_id, b1.name as s_name, count(b7.published=1) as s_cnt
       FROM XXXX_XXXX.jos_marketplace_categories as b1,
XXXX_XXXX.jos_marketplace_categories as b2,
XXXX_XXXX.jos_marketplace_ads as b7
      WHERE (b1.id=b2.parent and b2.id=b7.category)
group by b1.id) as ss,
(SELECT distinct e1.id as f_id, e1.name as f_name, count(f1.published=1) as f_cnt
       FROM XXXX_XXXX.jos_marketplace_categories as e1,
XXXX_XXXX.jos_marketplace_ads as f1
      WHERE (e1.id=f1.category)
group by e1.id) as fff
where (a1.parent = ss.s_id  and a1.id = fff.f_id)
order by  ss.s_cnt desc, fff.f_cnt desc)
order by c4 desc, c3, !(c2=c3), f1 desc, c2";
$result = mysql_query($sql);
if (!$result) {
die('Неверный запрос: '. mysql_error());
}
$ff=1;
?>
<script type="text/javascript" src="http://www.dom116.ru/modules/mod_swmenupro/dtree_Packed.js"></script>
<style type='text/css'>
<!--
.dtree150 {
 border: 1px none #124170 !important ;
 background-color: #FFFFFF !important ;
 margin: 0 !important ;
 padding: 2px 2px 2px 2px !important ;
}
.dtree150 img {
 border: 0px !important ;
 vertical-align: middle !important ;
}
.dtree150 a {
 font-family: Arial, Helvetica, sans-serif !important ;
 font-size: 12px !important ;
 text-decoration: none !important ;
 font-weight: bold !important ;
 color: #666666 !important ;
 text-decoration: none !important ;
}
.dtree150 a.node, .dtree150 a.nodeSel {
 white-space: nowrap;
 padding: 2px 2px 2px 2px !important ;
}
.dtree150 a.node:hover, .dtree150 a.nodeSel:hover {
 color: #000000 !important ;
 font-weight: normal !important ;
 background-color: #CCC !important ;
}
.dtree150 a.nodeSel {
 background-color: #CCC !important ;
}
.dtree150 .clip {
 overflow: hidden;
}
-->
</style>
<script type="text/javascript">
<!--
d150= new dTree('d150');
d150.add(0,-1,'');
<?php
while ($row = @mysql_fetch_assoc($result)){
$max_len=35;
if ($row['par']==0) {
$my_sub = "(".$row['f1'].")  ".substr($row['c2'], 0, 25);
echo "d150.add(".$row['c1'].",0,'".$my_sub."','http://www.dom116.ru/doska/','".$my_sub."','_self','','');";
} else {
$my_sub = "(".$row['f1'].")  ".substr($row['c2'], 0, 25);
echo "d150.add(".$row['c1'].",".$row['par'].",'".$my_sub."','http://www.dom116.ru/doska/page/show_category/catid/".$row['c1']."','".$my_sub."','_self','','');";
}
$ff=$ff+1;
}  
?>
d150.menuid=150;
d150.config.target=null;
d150.config.folderLinks=false;
d150.config.useSelection=false;
d150.config.useCookies=true;
d150.config.useLines=false;
d150.config.useIcons=true;
d150.config.useStatusText=false;
d150.config.closeSameLevel=false;
d150.config.inOrder=true;
d150.icon.root='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/1.gif';
d150.icon.folder='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/folder.gif';
d150.icon.folderOpen='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/folderopen.gif';
d150.icon.node='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/page.gif';
d150.icon.empty='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/empty.gif';
d150.icon.line='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/line.gif';
d150.icon.join='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/join.gif';
d150.icon.joinBottom='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/joinbottom.gif';
d150.icon.plus='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/plus.gif';
d150.icon.plusBottom='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/plusbottom.gif';
d150.icon.minus='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/minus.gif';
d150.icon.minusBottom='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/minusbottom.gif';
d150.icon.nlPlus='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/nolines_plus.gif';
d150.icon.nlMinus='http://www.dom116.ru/modules/mod_swmenupro/images/tree_icons/nolines_minus.gif';
document.write(d150);
//-->
</script>
[/spoiler]

следующим шагом будет реализация показа обьектов на карте, за описание создания был бы очень благодарен
« Последнее редактирование: 13.02.2011, 10:08:17 от vagkrsk »
*

SerBor

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Чегот бардак какойто образовался
Общий вид категорий  у меня (на сайте скрыт) http://www.mapdom.ru/component/option,com_marketplace/
сравните с Вашим - http://www.dom116.ru/doska/
метод сопоставления решений уже не подходит.
Как я и предполагал, только народ запутал моей попыткой обнародования освоения этих php и прочих странных для меня буковок.
Я т под свою структурку шкрябал.
(Не потому что ВДРУГ меня озарило, случайно получилось - как они, категории, (скрытая возмжность) сами образуются)
*

SerBor

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Это если пробовать привнести объект - при размещении на карте образуется нужная категория.
*

fed-ig

  • Осваиваюсь на форуме
  • 29
  • 0 / 3
 SerBor  здесь www.142800.ru модуль тоже выглядит  явно на высоте, отличное дополнение к marketplace
думаю многим бы пригодился, кто бы помог грамотно его реализовать
приметил еще один "У объектов ЦЕНА снижена!" тоже интересная фишка, делитесь
...по поводу организации карты с обьектами тоже пока тёмный лес
« Последнее редактирование: 03.04.2010, 10:09:47 от fed-ig »
*

SerBor

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
На 142800.ru - левый верх - mod_marketplace_toc
"У объектов ЦЕНА снижена!" - mod_marketplace_random_photo_ad - сильно покорежен "напильником"
С картами еще хуже - "под напильник" пошел весь компонент. Метод называется "научного тыка".
Поскольку "издевался" над работающим сайтом "по живому" да и с разбросом по времени - в зимнее время прошлого и этого года даже внятно для себя пояснить не смогу как что получилось.
*

fed-ig

  • Осваиваюсь на форуме
  • 29
  • 0 / 3
не смог найти mod_marketplace_random_photo_ad, можно быдет его выложить, здесь или на файлобменник
*

SerBor

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Про  mod_marketplace_random_photo_ad - вроде это он.

[вложение удалено Администратором]
« Последнее редактирование: 08.04.2010, 17:12:51 от SerBor »
*

fed-ig

  • Осваиваюсь на форуме
  • 29
  • 0 / 3
Про  mod_marketplace_random_photo_ad - вроде это он.
...спасибо, пришлось переделать XML, иначе никак не хотел устанавливаться
*

antfrolov

  • Захожу иногда
  • 83
  • 2 / 2
Привет, есть потребность вывода структуры каталога в виде дерева категорий и подкатегорий в столбец, например слева на всех страницах. По идее это делается модулем. Есть ли такая возможность или модуль? Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как выглядит ссылка при редактировании в Маркет Плейс пользователем своего объявления?

Автор Budrus

Ответов: 0
Просмотров: 4687
Последний ответ 08.09.2015, 13:00:34
от Budrus
MarketPlace вывод объявлений 2-3 столбика

Автор zvi

Ответов: 1
Просмотров: 5222
Последний ответ 22.11.2013, 20:39:08
от zvi
Вывод определенной категории

Автор spectralw

Ответов: 3
Просмотров: 6281
Последний ответ 26.02.2013, 17:49:19
от cantsave
MarketPlace - вывод объявлений без картинок

Автор viy

Ответов: 5
Просмотров: 6577
Последний ответ 17.10.2012, 23:36:08
от Олегус
Модуль - Вывод объявления из Одной категории

Автор Morrgan

Ответов: 6
Просмотров: 4845
Последний ответ 30.12.2010, 13:22:54
от Morrgan