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

real-man

  • Захожу иногда
  • 84
  • 4 / 0
Ребята, ну неужели никто не подскажет? не пойму что это значит
Цитировать
// ---------- sms ---------
$codes = $content->ad_code;
if (!checkCode($codes)) {
   $content->vip = '0';
} else {
   $content->vip = '1';
}
// ----------/sms/---------
Цитировать
sms
   function checkCode($code) {
   
   $db = JFactory::getDBO();
   $query = "SELECT * FROM #__ названиетаблицыдлявипобъявлений ";
   $db->setQuery($query);
   $cods = $db->loadObjectList();
   
   $db2 = JFactory::getDBO();
   $q = "SELECT * FROM #__adsmanager_ads WHERE ad_code='".$code."'";
   $db2->setQuery($q);
   $ads = $db2->loadObjectList();
   
   $ok = false;
   foreach($cods as $c) {
         if( $c->code == $code ) {
         $codesmstable = $c->code;
      }
   }
   foreach($ads as $a) {
         if( $code == $a->ad_code ) {
         $codeadstable = $a->ad_code;
      }
   }
   if( ($codesmstable == $code) && ($codesmstable != $codeadstable) && ($code != '')) {
         $ok = true;
      }
   
    return $ok;
   }
   // -sms
что за codes,cods,? если нет таблицы с таким именем, может из-за этого и не работает у меня!
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Наверное, я ошибся немного. Не $cods, а $code...

Ну а так, все понятно, что и как делается..
*

real-man

  • Захожу иногда
  • 84
  • 4 / 0
Хорошо, а codes что это? Или это тоже просто в code исправить?
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Нет.
$codes = $content->ad_code;
Записываем в переменную $codes значение из $content->ad_code;, а дальше идет проверка.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
GlooM подскажите в первой теме все ошибки учтены и исправлены? Подойдет эта тема для AdsManager 2.6.5?
*

cmmndr

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • командор
GlooM подскажите в первой теме все ошибки учтены и исправлены? Подойдет эта тема для AdsManager 2.6.5?

присоединяюсь к вопросу...
*

real-man

  • Захожу иногда
  • 84
  • 4 / 0
К сожалению автор темы более не хочет помогать...
*

real-man

  • Захожу иногда
  • 84
  • 4 / 0
Так как автор темы так и не помог со своей работой, выкладываю рабочую версию данного урока. Переделано для Украинских пользавателей для биллинг системы http://smsbill.com.ua/, спасибо ребятам с тех поддержки за помощь!
Все делаете как и описывал автор темы выше, только замените код в файле controller.php предлагаемый автором статьи на этот:
Код
// sms
function checkCode($code) {
        
$db = JFactory::getDBO();
$query = "SELECT * FROM #__ваша таблица в бд с кодами";
$db->setQuery($query);
$dbcode = $db->loadObjectList();

$db2 = JFactory::getDBO();
$q = "SELECT * FROM #__adsmanager_ads WHERE ad_code='".$code."'";
$db2->setQuery($q);
$ads = $db2->loadObjectList();
        
$ok = false;
foreach($dbcode as $c) {
if( $c->code == $code ) {
$codesmstable = $c->code;
}
}
foreach($ads as $a) {
if( $code == $a->ad_code ) {
$codeadstable = $a->ad_code;
}
}

if(($codesmstable == $code) && ($codesmstable != $codeadstable) && ($code != '')) {
$ok = true;
}
        
return $ok;
}
// -sms

И еще ниже на этот:
Код
// ---------- sms ---------
$post_code = JRequest::getVar('ad_code');
if (!checkCode($post_code)) {
        $content->vip = '0';
} else {
        $content->vip = '1';
$content->ad_code = $post_code;
}
// ----------/sms/---------
.

В скаченном архиве исправьте код в  файле  vipsms.php на этот:
Код
<?
// sms handler

if ($_REQUEST['sms_body']) {

include 'config.php';
if ($_REQUEST['secret_word'] != md5($conf['smsAccessKey'])) {
exit;
}

$code = '';
for($i=0;$i<=7;$i++){
$code .= chr(rand(65, 90));
}
$lnk = mysql_connect ('localhost','логин','пароль');
mysql_select_db('имя базы даных_joomla', $lnk);
$q = mysql_query("INSERT into jos_ваша таблица в базе данных с кодами VALUES ('".$code."')");
echo "sms_id:".$_POST['sms_id']."\n";
echo "response:Ваш код активации:".$code."\n";
echo "error:0";

}
?>
и в скаченном пакете, в файле config.php:
Код
<?
$conf = array();

$conf['siteUrl'] = 'http://ваш сайт/vipsms.php'; //путь к папке с vipsms.php
$conf['smsAccessKey'] = 'секретное слово'; //sms access key - устанавливается в настройках личного кабинета.

$conf['ttl'] = 1*60*60; //время жизни кодов
?>

Данные настроены для работы с SMS биллингом http://smsbill.com.ua/. Надеюсь все у всех получиться.
« Последнее редактирование: 25.07.2012, 21:22:41 от real-man »
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
real-man,спасибо за статью,но не совсем понятно,что где менять)
не могли бы Вы написать полностью рабочее решение,от начала до конца)заранее благодарю
*

real-man

  • Захожу иногда
  • 84
  • 4 / 0
Делайте все, как описывалось в начале этой темы, только скрипты предложенные автором темы, заменить на мои. Но если не будет понятно то создам новую тему чтоб в этой не путать людей.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Делайте все, как описывалось в начале этой темы, только скрипты предложенные автором темы, заменить на мои. Но если не будет понятно то создам новую тему чтоб в этой не путать людей.
создавай тему!
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
поддерживаю,создавайте.
*

stepan_fed

  • Захожу иногда
  • 79
  • 1 / 0
надеюсь тема еще актуальна!

сделал все как было написано, и все у меня получается и выводится, но есть одна проблема - когда я в админку отмечаю объявление как ВИП, в базу ничего не вносится.
при этом, когда я напрямую в базе меняю 0 на 1, объявление делается ВИП и поддерживает прописаные стили.

кто может подсказать в чем проблема не попадания информации в базу?
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
надеюсь тема еще актуальна!

сделал все как было написано, и все у меня получается и выводится, но есть одна проблема - когда я в админку отмечаю объявление как ВИП, в базу ничего не вносится.
при этом, когда я напрямую в базе меняю 0 на 1, объявление делается ВИП и поддерживает прописаные стили.

кто может подсказать в чем проблема не попадания информации в базу?
Вы это сделали?
Код
2. в файле [Joomla] /administrator/components/com_adsmanager/tables/content.php добавляем var $vip = null; 
*

stepan_fed

  • Захожу иногда
  • 79
  • 1 / 0
Вы это сделали?
Код
2. в файле [Joomla] /administrator/components/com_adsmanager/tables/content.php добавляем var $vip = null; 
У меня AdsManager 2.7 но все сработало.
Файла content.php там нет, но есть contents.php, в котором я вставил строчку var $vip = null;

поле в базе создал int 11.
вроде все сходится, но информация не оновляется!
*

stepan_fed

  • Захожу иногда
  • 79
  • 1 / 0
пробовал для этих нужд сделать свою небольшую админку, но что-то неправильно в коде, открыл тему
http://joomlaforum.ru/index.php/topic,224061.new.html#new
*

real-man

  • Захожу иногда
  • 84
  • 4 / 0
Кому не понятно и кто просил новую тему -  http://joomlaforum.ru/index.php/topic,223882.0.html.
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Находите кусок кода (строка примерно 160-165)
Код
if (function_exists('getContentClass')) 
    $classcontent = getContentClass($content);
else
    $classcontent = "adsmanager_table_description";
?>  
<tr class="<?php echo $classcontent;?> trcategory_<?php echo $content->catid?>">
и меняете на
Код
if ($content->ad_vip == 1) 
    $classcontent = 'vip';
else
    $classcontent = "normal";
?>  
<tr class="<?php echo $classcontent;?>">
ну и стили соответственно будут примерно такие
Код
.adsmanager_table tr.normal
{
атрибуты
}
.adsmanager_table tr.vip
{
Атрибуты
}
Ну это примерный план действий, думаю разберётесь
всё сделал,но никаких изменений нет(
ВИП не выделяется другим цветом
*

stepan_fed

  • Захожу иногда
  • 79
  • 1 / 0
всё сделал,но никаких изменений нет(
ВИП не выделяется другим цветом
а стили вы внесли в CSS файл?
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
а стили вы внесли в CSS файл?
Да,сделал всё как описал Alex89

Код
.adsmanager_table tr.normal
{
 background-color: #FFFFFF;
 border: 1px solid #ffffff;
 border-collapse: collapse;
 width: 98%;
}

.adsmanager_table tr.vip {
 background-color: #FFDD00;
 border: 1px solid #ffffff;
 border-collapse: collapse;
 width: 98%;
}
« Последнее редактирование: 01.08.2012, 23:52:08 от lovivolnu »
*

stepan_fed

  • Захожу иногда
  • 79
  • 1 / 0
в какой файл внесли?
нужно в components/com_adsmanager/css/adsmanager.css

попробуйте через консоль посмотреть есть ли стиль для объекта?
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
в какой файл внесли?
нужно в components/com_adsmanager/css/adsmanager.css

попробуйте через консоль посмотреть есть ли стиль для объекта?
да,в этот файл.при просмотре через FireBug видны стили tr normal,а вот tr vip,нет.
« Последнее редактирование: 02.08.2012, 10:12:48 от lovivolnu »
*

stepan_fed

  • Захожу иногда
  • 79
  • 1 / 0
получилось ли вам включить это объявление как ВИП? откройте его и посмотрите стоит ли "yes", если нет значит попробуйте вставить "1" в поле vip в базе данных.
В вашем случае стиль ВИп может не отображатся, поскольку нету ВИП объявлений.
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
всё.проблема решена.поменял в коде
Код
if ($content->ad_vip == 1)
на
Код
if ($content->vip == 1)
*

finan05

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
Возникла проблема которая не дает мне возможности перейти к этапу автоматизации через SMS, а имеенно вставка информации в БД.
я попросту нажимая в админке "VIP - yes", не могу вставить "1" в БД, незнаю что за причина.

 AdsManager 2.7, Joomla 2.5.

Этот файл /administrator/components/com_adsmanager/tables/content.php в AdsManager 2.7 называется contents.php?
Это может быть причиной? Или рыть в другом направлении?
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Может кто сталкивался.
Дошел до момента когда администратор может сам делать объявление VIPом. Все вроде получилось, объявления появляются вверху с другим цветом. Но, когда подается простое объявление, то оно не появляться под ВИП-объявлением, а появляется только ниже всех объявлений (начинают новый отсчет), в самом конце.
Когда захожу в объявление через админку и просто жму сохранить и закрыть оно находит свое место
Что не так?
Причина я так понимаю в $filter_order = "a.vip DESC ,a.date_created DESC ,a.id ";
но не пойму что делать.
При обновлении объявления все работает правильно
joomla 2.5, ads 2.6.5
« Последнее редактирование: 12.08.2012, 21:05:56 от max_1985 »
*

meiram077

  • Захожу иногда
  • 225
  • 0 / 0
Цитировать
1. Создаем в БД adsmanager_ads новую строку и называем ее vip.

2. в файле [Joomla] /administrator/components/com_adsmanager/tables/content.php добавляем var $vip = null; (поймете куда).

Не ругайтесь сильно, но я не пойму первые два пункта:

1. Я в адресной строке прописываю http://localhost/tools/phpmyadmin/index.php, захожу во вкладку Databases, затем кликаю четвертую строку (нижнюю) с названием моего сайта... оказываюсь во вкладке Structure
В ней такая таблица:

Спойлер
[свернуть]
2. Пропишите пожалуйста примерную строку куда именно добавить var $vip = null?

Решено!
Теперь вопрос? Как изменить цвет vip-объявлений?
А здесь что-то не то! У меня не получилось, сделал все как описано... (ADSM-2.65 J-2.5)


Решено:в фале components\com_adsmanager\views\list\tmpl\default.php
меняем
Код
if (function_exists('getContentClass')) 
    $classcontent = getContentClass($content);
else
    $classcontent = "adsmanager_table_description";
?>  
<tr class="<?php echo $classcontent;?> trcategory_<?php echo $content->catid?>">
на
Код
if ($content->vip == 1) 
    $classcontent = 'vip';
else
    $classcontent = "normal";
?>  
<tr class="<?php echo $classcontent;?>">
ну и стили соответственно будут примерно такие
Код
.adsmanager_table tr.normal
{
атрибуты
}
.adsmanager_table tr.vip
{
Атрибуты
}
« Последнее редактирование: 28.10.2012, 05:53:46 от meiram077 »
*

meiram077

  • Захожу иногда
  • 225
  • 0 / 0
Все получилось после замены ad_vip на vip
*

ksy

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
*

Bobby

  • Осваиваюсь на форуме
  • 15
  • 0 / 0

ПОЛЕ В БАЗЕ СОЗДАЛ ТАКИМ ОБРАЗОМ

имя "vip"
тип "int"
значение "11"
по умолчанию "нет" можно выбрать null или ещё чего то
сравнение - пусто
атрибуты - пусто
null - галочка не стоит
индекс - ничего не стоит
A_I - галочка не стоит
Комментарии - пусто

Все ниже приведенное выполнил, захожу в панель управления выбираю в поле "вип" да -далее> сохранить нажимаю захожу в объявление стоит все равно нет и в списке не поднялось.

И поле создал в админке Имя:   ad_vip



Все работает на доске AdsManager 2.6!

Сделаем сначала vip-объявления.
Для этого
1. Создаем в БД adsmanager_ads новую строку и называем ее vip.

2. в файле [Joomla] /administrator/components/com_adsmanager/tables/content.php добавляем var $vip = null; (поймете куда).

3. переходим в файл [Joomla] administrator/components/com_adsmanager/views/admin/tmpl/editcontent.php и там после кода
Код
<tr>
<td><?php echo JTEXT::_('ADSMANAGER_TH_PUBLISH'); ?></td>
<td>
<select name="published" id="published">
<option value="1" <?php if ($this->content->published == 1) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_PUBLISH'); ?></option>
<option value="0" <?php if ($this->content->published == 0) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_NO_PUBLISH'); ?></option>
</select>
</td>
<td>&nbsp;

</td>
</tr>
Вставляем
Код
<tr>
<td><?php echo 'VIP'; ?></td>
<td>
<select name="vip" id="vip">
<option value="0" <?php if ($this->content->vip == 0) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_NO'); ?></option>
<option value="1" <?php if ($this->content->vip == 1) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_YES'); ?></option>
</select>
</td>
<td>&nbsp;
</td>
</tr>
Далее в файле [Joomla] /administrator/components/com_adsmanager/models/content.php находим функцию function getListOrder и $filter_order изменяем сл. образом:
Код
$filter_order = "a.vip DESC ,a.date_created DESC ,a.id ";

Вот мы сделали так, чтобы администратор мог сам делать объявление VIPом.

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено]Дублирования ссылки "объвления" в breadcrumb, в компоненте AdsManager

Автор nicklas

Ответов: 4
Просмотров: 3978
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 14504
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 12730
Последний ответ 25.11.2021, 10:43:38
от FlexNL
AdsManager загрузка файлов

Автор FlexNL

Ответов: 1
Просмотров: 3234
Последний ответ 21.10.2021, 17:20:09
от khan-alex
Заглушки с http://placehold.it вместо картинок в списке объявлений

Автор efimov777

Ответов: 6
Просмотров: 5550
Последний ответ 12.04.2020, 07:25:59
от Pavel