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

kommunizm

  • Осваиваюсь на форуме
  • 32
  • 6 / 0
Еще раз спасибо.

А какие файлы и где нужно подправить, чтобы эти поля были доступны в пакетной загрузке картинок??

Заранее благодарен.
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
А какие файлы и где нужно подправить, чтобы эти поля были доступны в пакетной загрузке картинок??
admin.datsogallery.php, в функции function showBatchUpload() либо function showBatchImport()
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

И последний вопрос: что ещё править, чтобы при пакетной загрзке дополнительные поля в базу записывались :)))
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
В том же admin.datsogallery.php находим
Код: php
case "batchuploadhandler" :
В нем запрос на инсерт
Код: php
$database->setQuery( "insert into #__datsogallery
И добавляем новые поля
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

art

  • Осваиваюсь на форуме
  • 14
  • 1 / 2
Отлично всё работает!
А как сделать что-бы поле вмещало больше символов (больше чем 110)?
а то не помещается вся необходимая информация ...
*

art

  • Осваиваюсь на форуме
  • 14
  • 1 / 2
google рулит :
<tr>
 <td width="20%"><b>Производитель (бренд):</b></td>
 <td width="80%">
 <input class="inputbox" type="text" name="place" size="39" maxlength="10000000000000000000000" value="<?php echo htmlspecialchars( $row->place, ENT_QUOTES );?>" /></td>
</tr>
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
maxlength="10000000000000000000000" - так делать не следует :)
проще сделать поле типа textarea, если нужно много текста
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

yunoshev

  • Завсегдатай
  • 1271
  • 179 / 1
@Kalver
А что, уже вышла версия галереи под эту версию Joomla?
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
beliyadm, подскажите пожалуйста, всё вышеописанное годится ли к Joomla 1.5 ?
Все зависит от версии галереи, данный хак писался под версию 1.6, потому для последующих последовательность скорее всего сохранится, но необходимо смотреть изменения кода
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
По просьбе Kalver проверил хак для версии 1.7.1 для Joomla 1.5 в режиме Legacy. Все шаги без изменений, кроме:
1 - после того как в sub_viewdetails.php добавили новое поле в SQL запрос (напоминаю, работает с полем place)
Код: sql
    $database->setQuery( "select a.id, "
    . " a.catid, "
    . " a.imgtitle, "
    . " a.place, "
    . " a.imgauthor, "
    . " a.imgtext, "
    . " a.imgdate, "
    . " a.imgcounter, "
    . " a.imgvotes, "
    . " a.imgvotesum, "
    . " a.published, "
    . " a.imgoriginalname, "
    . " a.imgfilename, "
    . " a.imgthumbname, "
    . " a.owner "
    . " from #__datsogallery as a "
    . " left join #__users as u on u.username = a.owner "
    . " where a.id = $id ");
Нужно добавить переменную в чуть ниже формируемый массив, в итоге должно быть так
Код: php
list($id,$catid,$imgtitle,$place,$imgauthor,$imgtext,$imgdate,$imgcounter,$imgvotes,$imgvotesum,$published,
    $imgoriginalname,$imgfilename,$imgthumbname,$imgowner) = mysql_fetch_row($list);
Внимательно: - следим чтобы порядок элементов в выборке совпадал с очередностью формируемых элементов массива
И ниже добавляем собственно вывод на экран, я добавил после размера файла, приведу весь кусок сразу
Код
if ($ad_showfimgsize){
      ?>
    <tr class='sectiontableentry2'>
      <td width='30%' valign='top'><strong><?php echo _DG_FILESIZE; ?>:</strong></td>
      <td width='70%' valign='top'><?php echo $dgfilesize; ?></td>
    </tr>
    <?php
    } ?>
    <tr class='sectiontableentry2'>
      <td width='30%' valign='top'><strong>Бренд:</strong></td>
      <td width='70%' valign='top'><?php echo $place; ?></td>
    </tr>
    <?php
    if ($ad_showimgauthor){
    $database->setQuery("select id from #__users where username = '$imgowner'");
$op = $database->loadResult();
    if ($imgauthor == NULL){
    ?>
Все, должно работать.

От себя добавлю пару негативных комментариев:
 - первая категория создалась аж два раза сразу,
 - первая картинка после загрузки получила мега хитовость, 1238376977 просмотров :) (не шутка, проверил в базе, отчего да кабы не стал разбираться)
 - код это просто песня, что воется уже много лет, за такой то период ни структурированности, не рефакторинга, встречаются и mysql_result
просто порадовали строки
Код: php
trim(mosGetParam($_REQUEST, 'limit', $ad_catsperpage));
- из подготовки к native 1.5 не замечено ровным счетом НИЧЕГО
Код: php
$total = mysql_num_rows($result);
Нахрена, скажите мне, возвращать все строки запроса, когда достаточно сделать COUNT (это из функции подсчета чего либо)
Дальше просто молчу молчу, как ЭТО работает страшно представить :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Kalver - я же писал вам письмо с просьбой выйти в он-лайн общение в аське либо гталке днем, теперь уже завтра только
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

bahoiam

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
разобрался
« Последнее редактирование: 09.04.2009, 10:27:53 от bahoiam »
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
bahoiam - это далеко не весь admin.datsogallery.php, он намного больше и в нем должны быть указанные строки
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

bahoiam

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
спасибо , это я по утру, не спав всю ночь, вставил содержимое одного файла в другой и выложил сюда, полный непонимания, так сказать сорри  ^-^
« Последнее редактирование: 09.04.2009, 12:28:22 от bahoiam »
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
а не подскажите, как сделать, что бы можно было назначать не 1 категорию, а несколько для картинки?)
одни предложением не отделаться, нужно делать в админке не выпадающий список в привязке картинки к категории а типа multiple, писать через разделители в базу, после серьезно перековыривать фронт, чтобы парсить это поле и выводить только нужные... геморрой в общем
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Derik

  • Новичок
  • 6
  • 5 / 0
Подскажите пожалуйста. Реально ли создать текстовое редактируемое визивиг-редатором, дополнительное поле?
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Подскажите пожалуйста. Реально ли создать текстовое редактируемое визивиг-редатором, дополнительное поле?
да, все тоже самое, а как подключить редактор - описано в FAQ
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

kikimora17

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
  • Реклама контекстная, таргетированная и SEO
Уважаемые знатоки!
Поясните установку дополнительного поля в Датсо галерее в КАТЕГОРИЮ (не в срединные фото)
Открываешь категорию например : сверху фотографии , а снизу текстовой блок = общий для категории.
Это улучшает позиции фото в поиске и позволяет разьяснить подробно критерии категории.
В версии 1.6.2 поля для текста отображаются в вышестоящей категории,
а при входе в саму нужную категорию там для текста нет места.
Поможите знаниями ...
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
Привет @beliyadm
Давно тебя не мешал :)
Только, что видел твою эту статью и у меня появилось идея!

короче, все работает отлично в 1.5 (только были некоторые моменты как meb_datsogallery ...jos).

Я сделал чуть чуть по другому.

в sub_viewdetails.php добавил такой код для того, что пользователи только писали ID Panoramio (например 41235678)

Код
	?>
    <tr>
   <td>
Посмотреть эту фотографию в <a href="http://www.panoramio.com/photo/<?php echo $row->panoramio; ?>" target='_blank'>Panoramio</a>

</td>
</tr>
    <?php
Код прекрасно работает, но так как поле не должен быть обязательный, когда пользователь ничего не пишет все равно появляется текст "Посмотреть эту фотографию в Panoramio" но линк идет на http://www.panoramio.com/photo/

Я пытался разобраться с     if ($ad_showpanoramio){ } но не работает.
Теперь мой вопрос: Можешь мне помогать пожалуйста?
JNavigation скачать Здесь
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Привет, а что за параметр $ad_showpanoramio? Раньше такого в настройках не было, и я не очень понимаю смысл (а если это твой - то его необходимо добавлять в компонент, но я не описывал как :)). А вообще он тебе и не нужен, все работаем от массива $row
Если это поле не обязательное, то сделай так
Код
<?php if ($row->panoramio != '') { 
<tr>
   <td>
Посмотреть эту фотографию в <a href="http://www.panoramio.com/photo/<?php echo $row->panoramio; ?>" target='_blank'>Panoramio</a>
   </td>
</tr>
<?php } else {} ?>
То есть если поле пустое - то не выводить эту строку вообще
Цитировать
Можешь мне помогать пожалуйста?
Могу помогать пожалуйста, чукча своих понимай всегда!
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
Привет, а что за параметр $ad_showpanoramio? Раньше такого в настройках не было, и я не очень понимаю смысл (а если это твой - то его необходимо добавлять в компонент, но я не описывал как :)).
хахахах
Да, это мой!!! чесно пытался догадаться как должен быть!

Но не работает новый :(
Parse error: syntax error, unexpected '<'
JNavigation скачать Здесь
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
ВСЕ!!!!
РАБОТАЕТ!
Супер
Код
if ($row->panoramio != '') { 
?>
<tr>
<td>
Посмотреть эту фотографию в <a href="http://www.panoramio.com/photo/<?php echo $row->panoramio; ?>" target='_blank'>Panoramio</a>
</td>
</tr>
<?php } else {} ?>
<?php

Посмотри пожалуйста, это твой код и мой выше. я менял эти <?php, работает, но на всякий случай!

Код
<?php if ($row->panoramio != '') { 
<tr>
   <td>
Посмотреть эту фотографию в <a href="http://www.panoramio.com/photo/<?php echo $row->panoramio; ?>" target='_blank'>Panoramio</a>
   </td>
</tr>
<?php } else {} ?>

СПАСИБО ЕЩЕ РАЗ!
Может быть вино по почте :)
« Последнее редактирование: 31.05.2009, 19:55:22 от selimoff »
JNavigation скачать Здесь
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
с виду все правильно и должно работать
Может быть вино по почте :)
а это мы всегда рады, на крайний вариант мои ВМР\ВМЗ в профиле, если вдруг захочется сказать не просто спасибо :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

selimoff

  • Захожу иногда
  • 243
  • 16 / 0
  • heads up!!!
JNavigation скачать Здесь
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Это что такое?
деньги это, WebMoney рублевый\долларовый кошелек, на них смогу выпить винца и прочая гоп-ца-ца %)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

otshelnik

  • Захожу иногда
  • 116
  • 7 / 0
  • мы вместе!
Что необходимо изменить в файле sub_viewdetails.php для того, чтобы заработали изменения, и имя автора стало ссылкой на профиль автора?
строки в районе 290.
исходный код.
Код
    if ($ad_showimgauthor){
    if ($imgauthor == NULL){
    echo "<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><strong>". $imgowner ."</strong></td>\n</tr>\n";
    } else {
    echo "<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><strong>". $imgauthor ."</strong></td>\n</tr>\n"; }
    }
предполагаемый код:
Код
    if ($ad_showimgauthor){
    if ($imgauthor == NULL){
    echo "<tr class='sectiontableentry1'><td width='30%' valign='top'><strong>"._DG_AUTHOR.":</strong></td>\n
    <td width='70%' valign='top'><a href="/component/option,com_contact/task,view/contact_id,xx/Itemid,yy/>"<strong>". $imgowner ."</strong></a></td>\n</tr>\n";
    }
Где "xx" в выражении "/component/option,com_contact/task,view/contact_id,xx/Itemid,yy/" - числовое значение "id" из таблицы "jos_contact_details"
То есть, что подставить в эту строку вместо "xx"?
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Валера - так как товарищ Датсо привязывает картинки к автору не по ID а по имени, то придется сделать дополнительный SQL запрос в таблицу #__users и получить оттуда ID пользователя, вот это и будет твое хх
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

yunoshev

  • Завсегдатай
  • 1271
  • 179 / 1
Зачем такие трудности -- лишний запрос?
Делайте во время выборки картинок из БД привязку к таблице пользователей по их именам, вынося в дополнительное поле его ID. А потом используйте, где хотите.

Например:
Код: php
  $query = "SELECT a.*"
...
  . ", u.id AS userid"
. "\n FROM #__таблица_картинок AS a"
. "\n LEFT JOIN ... "
. "\n LEFT JOIN #__users AS u ON u.name = a.username"
. (count( $where ) ? "\n WHERE (" . implode( ' AND ', $where ). ")" : "")
. "\n ORDER BY a.cat_id, a.ordering"
. "\n LIMIT ". $limitstart. ",". $limit;

Это выборка не из DatsoGallery, а из другого компонента, но принцип остается тот же.
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
yunoshev - простой запрос в таблицу пользователей намного легче, нежели подключение целой таблицы users
На мой взгляд лучше 2 таких запроса чем один большой
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Постраничная навигация для Datso 1.8.1 (page navigation)

Автор beliyadm

Ответов: 12
Просмотров: 9858
Последний ответ 16.02.2011, 21:44:01
от Aalia
[DownLoad] Datso Gallery + New Userpannel /Joomla 1.5.x

Автор ershovdz

Ответов: 115
Просмотров: 64772
Последний ответ 02.10.2010, 18:58:14
от icy-heart
Модификация datso

Автор Iven

Ответов: 4
Просмотров: 3199
Последний ответ 22.05.2009, 15:24:40
от Iven
Datso 1.5 ошибка в обработке имени файла. Найдено решение.

Автор Фей

Ответов: 6
Просмотров: 3320
Последний ответ 24.07.2008, 14:24:42
от PaLyCH
Убрать заголовок категории в Datso

Автор Melnikoff

Ответов: 1
Просмотров: 3482
Последний ответ 23.07.2007, 03:49:47
от put_nik