Новости Joomla

Astroid обновился до версии 3.3.7!

Astroid обновился до версии 3.3.7!

Astroid — это мощный фреймворк для дизайнеров и разработчиков, позволяющий создавать адаптивные, быстрые и надежные веб-сайты и шаблоны на базе Joomla.

Главное в новой версии:

-   Исправлена загрузка файлов макетов

В предыдущем крупном релизе Astroid 3.3.6 были сделаны важные улучшения:

Основные моменты:

  • Улучшенный UI/UX в ключевых областях конфигурации
  • Повышенная стабильность и согласованность в Layout Builder и Form Builder
  • Исправления ошибок на основе отзывов сообщества
  • Улучшенная обработка визуальных эффектов, границ и шрифтов

Улучшения:

  • Обновленный UX Layout Builder
  • Улучшенный эффект предзагрузчика
  • Улучшенный стиль границ
  • Улучшенный UI/UX вкладки «Layout» в Template Options

Исправления ошибок:

  • Решены проблемы с некорректными динамическими значениями
  • Исправлен Color Transform при прокрутке
  • Устранены проблемы с работой Form Builder в Article Layout и Module Layout Builder
  • Исправлена проблема с созданием ненужных временных файлов при обработке шрифтов

Скачать: https://github.com/templaza/astroid-framework/releases/tag/v3.3.7

Как тестировать 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

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

Fanamura

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Вот код:
Код
  $query1 = sprintf("SELECT SUM(me.event_sum) AS value, p.firstname, p.lastname, t.short_name as team, p.id as id
            FROM #__joomleague_match_events AS me
            LEFT JOIN #__joomleague_players AS p ON me.player_id = p.id  
            LEFT JOIN #__joomleague_playertool AS pt ON me.player_id = pt.player_id AND pt.project_id = me.project_id
            LEFT JOIN #__joomleague_teams AS t ON pt.team_id = t.id
            LEFT JOIN #__joomleague_team_joomleague AS teamtool ON teamtool.team_id = t.id AND teamtool.project_id = me.project_id
            LEFT JOIN #__joomleague_divisions AS jldiv ON jldiv.id = teamtool.division_id
           WHERE  
                 me.event_type_id =%s AND
                 me.project_id =%s AND
                 ( jldiv.id = $division OR jldiv.parent_id = $division )
        GROUP BY p.id
        ORDER BY value DESC  LIMIT 0 , %s",$eventtype ,$project->id, $limit);

$database->setQuery($query);


$query2= sprintf("SELECT (SUM(ch.vote_rating) / COUNT(ch.vote_rating)) as star, SUM(me.event_sum) AS value2
            FROM #__joomleague_match_events AS me
            LEFT JOIN #__joomleague_players AS p ON me.player_id = p.id  
            LEFT JOIN #__joomleague_playertool AS pt ON me.player_id = pt.player_id AND pt.project_id = me.project_id
            LEFT JOIN #__joomleague_teams AS t ON pt.team_id = t.id
            LEFT JOIN #__joomleague_team_joomleague AS teamtool ON teamtool.team_id = t.id AND teamtool.project_id = me.project_id
            LEFT JOIN #__joomleague_divisions AS jldiv ON jldiv.id = teamtool.division_id
LEFT JOIN #__joomleague_chara AS ch ON me.player_id = ch.id_hock
           WHERE  
  me.player_id = ch.id_hock AND
                 me.event_type_id =%s AND
                 me.project_id =%s AND
                 ( jldiv.id = $division OR jldiv.parent_id = $division )
        GROUP BY p.id
        ORDER BY value2 DESC  LIMIT 0 , %s",$eventtype ,$project->id, $limit);
$database->setQuery($query);

?>
    
    <table width="100%" align="center" border="0" cellpadding="2" cellspacing="0">
    <?php
      
        $k = 0;
        foreach($rows as $row){
        
          $class = ($k == 0)? 'sectiontableentry1' : 'sectiontableentry2';
        
    ?>
      <tr class="<?php print $class;?>">
        <td align="left"><a class="link_prof" href="http://www.amurteam.ru/component/option,com_joomleague/func,showPlayer/lang,ru/p,1/pid,<?php echo $row->id;?>"><?php echo sprintf("%s %s",$row->firstname, $row->lastname);?></a></td>
        <td class="stars"><div class="st"><?php echo floor($row->star);?></div></td>
        <td align="left"><?php echo $row->value;?></td>

Поясню что к чему.
<?php echo sprintf("%s %s",$row->firstname, $row->lastname);?>
<?php echo $row->value;?>
 <?php echo $row->id;?> - из первого запроса
<?php echo floor($row->star);?> - из второго

При таком написании (я пробовал раз 20 по-разному писать) выводится резалт только последнего запроса.
Вопрос как же вывести оба?
Чтобы все в таблице было заполнено? Что делать с $database->setQuery($query); и т.д.

Подскажите, пожалуйста, весь день мучаюсь над этой фигней.
Объединить оба запроса в один не вариант - почему? вопрос тут: http://phpclub.ru/talk/showthread.php?s=&postid=877700#post877700
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
1.$database->setQuery($query1);
  $rows1 = $database->loadObjectList();
2.$database->setQuery($query2);
  $rows2 = $database->loadObjectList();
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Fanamura

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Спасибо за ответ.

Добавил эти строки с loadObjectList(); после запросов - ничего не поменялось. Отображаются результаты только второго запроса :(
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Правильно. Второй запрос переопределяет результаты первого, поскольку выполняется последним. Разнесите результаты запросов по разным пеерменным.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
А я в приведенном коде вызова $database->query() вообще не нашел.
*

Fanamura

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
А я в приведенном коде вызова $database->query() вообще не нашел.
Чего ить?)
Правильно. Второй запрос переопределяет результаты первого, поскольку выполняется последним. Разнесите результаты запросов по разным пеерменным.
А каким макаром?
Так должно получится?
Код
 <tr class="<?php print $class;?>">
        <td align="left"><a class="link_prof" href="http://www.amurteam.ru/component/option,com_joomleague/func,showPlayer/lang,ru/p,1/pid,<?php echo $row1->id;?>"><?php echo sprintf("%s %s",$row1->firstname, $row1->lastname);?></a></td>
        <td class="stars"><div class="st"><?php echo floor($row2->star);?></div></td>
        <td align="left"><?php echo $row1->value;?></td>
А как это сделать?
Извините за глупые вопросы, все очень легко решается при помощи простого SQL, но тут хочется сделать все "тру", а попа какая-то рисуется на простейшем
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Я понятия не имею о структуре таблиц этого компонента, но 5 связанных таблиц это круто, поэтому не знаю какие данные запросы должны возвращать. Для начала проверьте, эти запросы вообще выполняются? Для этого выведите результаты запросов и посмотрите их содержание, будет понятней что с ними делать.
Код: php
echo 'Первый запрос<br />';
var_dump ($rows1);
echo 'Второй запрос<br />';
var_dump ($rows2);
Что выводится?
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Fanamura

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Выводит много чего и первый и второй запросы:

One
array(10) {
  • => object(stdClass)#560 (5) { ["value"]=> string(1) "7" ["firstname"]=> string(12) "Руслан" ["lastname"]=> string(16) "Хасаншин" ["team"]=> string(6) "Аму" ["id"]=> string(2) "29" } [1]=> object(stdClass)#574 (5) { ["value"]=> string(1) "2" ["firstname"]=> string(18) "Александр" ["lastname"]=> string(12) "Юньков" ["team"]=> string(6) "Аму" ["id"]=> string(2) "30" } [2]=> object(stdClass)#296 (5) { ["value"]=> string(1) "2" ["firstname"]=> string(8) "Юрий" ["lastname"]=> string(16) "Кокшаров" ["team"]=> string(6) "Аму" ["id"]=> string(2) "36" } [3]=> object(stdClass)#581 (5) { ["value"]=> string(1) "2" ["firstname"]=> string(10) "Петер" ["lastname"]=> string(16) "Нюландер" ["team"]=> string(6) "Аму" ["id"]=> string(2) "25" } [4]=> object(stdClass)#554 (5) { ["value"]=> string(1) "2" ["firstname"]=> string(12) "Максим" ["lastname"]=> string(22) "Кривоножкин" ["team"]=> string(6) "Аму" ["id"]=> string(2) "22" } [5]=> object(stdClass)#577 (5) { ["value"]=> string(1) "1" ["firstname"]=> string(12) "Максим" ["lastname"]=> string(10) "Юшков" ["team"]=> string(6) "Аму" ["id"]=> string(2) "31" } [6]=> object(stdClass)#537 (5) { ["value"]=> string(1) "1" ["firstname"]=> string(14) "Дмитрий" ["lastname"]=> string(14) "Семенов" ["team"]=> string(6) "Аму" ["id"]=> string(2) "38" } [7]=> object(stdClass)#564 (5) { ["value"]=> string(1) "1" ["firstname"]=> string(10) "Радик" ["lastname"]=> string(12) "Закиев" ["team"]=> string(6) "Аму" ["id"]=> string(2) "32" } [8]=> object(stdClass)#291 (5) { ["value"]=> string(1) "1" ["firstname"]=> string(14) "Алексей" ["lastname"]=> string(16) "Копейкин" ["team"]=> string(6) "Аму" ["id"]=> string(2) "21" } [9]=> object(stdClass)#565 (5) { ["value"]=> string(1) "1" ["firstname"]=> string(10) "Игорь" ["lastname"]=> string(20) "Игнатушкин" ["team"]=> string(6) "Аму" ["id"]=> string(2) "20" } }



Two
array(9) {
  • => object(stdClass)#547 (2) { ["star"]=> string(6) "5.0000" ["value2"]=> string(2) "21" } [1]=> object(stdClass)#580 (2) { ["star"]=> string(6) "5.3333" ["value2"]=> string(1) "6" } [2]=> object(stdClass)#293 (2) { ["star"]=> string(6) "9.0000" ["value2"]=> string(1) "4" } [3]=> object(stdClass)#572 (2) { ["star"]=> string(6) "7.0000" ["value2"]=> string(1) "2" } [4]=> object(stdClass)#292 (2) { ["star"]=> string(6) "8.5000" ["value2"]=> string(1) "2" } [5]=> object(stdClass)#568 (2) { ["star"]=> string(6) "9.0000" ["value2"]=> string(1) "2" } [6]=> object(stdClass)#314 (2) { ["star"]=> string(6) "9.0000" ["value2"]=> string(1) "2" } [7]=> object(stdClass)#569 (2) { ["star"]=> string(6) "9.0000" ["value2"]=> string(1) "2" } [8]=> object(stdClass)#538 (2) { ["star"]=> string(7) "10.0000" ["value2"]=> string(1) "1" } }


Вот весь код:
<?php
	
	

/*
 * @version $Id: mod_joomleague_events_statistic.php 1126 2008-06-09 05:45:04Z julienv $
 * @package Joomleague
 * @subpackage eventsstats
 * @copyright Copyright (C) 2007  JoomLeague
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see _joomleague_license.txt
**********************************************
JoomLeague EVENTS STATISTIC MODULE
Copyright (c) 2007 JoomLeague.de
**********************************************
This program is free software; you can redistribute it and/or modify 
it under the terms of the GNU General Public License as published by 
the Free Software Foundation; either version 2 of the License, or 
(at your option) any later version.

This header must not be removed. Additional contributions/changes
may be added to this header as long as no information is deleted.
**********************************************

* EVENTS STATISTIC MODULE
*
* 2008-01-08 - Version 0.92
*
* Displays a selected eventtype list (e.g. goals or yellow cards) for the 
* choosen project.
* There are some options for this module, which can be set in the 
* "Parameters" section of the module in Administration.
*

**********************************************
Get the latest version of JoomLeague at:
http://www.joomleague.de//
**********************************************
*/

defined'_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

if (
file_exists($mosConfig_absolute_path.'/components/com_joomleague/language/'.$mosConfig_lang.'.php')) {
  include_once(
$mosConfig_absolute_path.'/components/com_joomleague/language/'.$mosConfig_lang.'.php');

else{
  include_once(
$mosConfig_absolute_path.'/components/com_joomleague/language/english.php');
}

require_once 
'administrator/components/com_joomleague/joomleague.class.php';

$p         intval($params->get'project'));
$show      $params->get'show');
$division  intval($params->get'division'));
$eventtype intval($params->get'eventtype'));
$limit     intval($params->get'limit'));
$mod_itemid intval($params->get'itemid'$Itemid ));

$project = new JoomLeague$database );
$project->load($p);

// LEFT JOIN #__joomleague_chara AS ch ON me.player_id = ch.id_hock

if ( $division ) {
  
$query1 sprintf("SELECT SUM(me.event_sum) AS value, p.firstname, p.lastname, t.short_name as team, p.id as id
            FROM #__joomleague_match_events AS me
            LEFT JOIN #__joomleague_players AS p ON me.player_id = p.id  
            LEFT JOIN #__joomleague_playertool AS pt ON me.player_id = pt.player_id AND pt.project_id = me.project_id
            LEFT JOIN #__joomleague_teams AS t ON pt.team_id = t.id
            LEFT JOIN #__joomleague_team_joomleague AS teamtool ON teamtool.team_id = t.id AND teamtool.project_id = me.project_id
            LEFT JOIN #__joomleague_divisions AS jldiv ON jldiv.id = teamtool.division_id
	
	

           WHERE  
                 me.event_type_id =%s AND 
                 me.project_id =%s AND
                 ( jldiv.id = 
$division OR jldiv.parent_id = $division )
        GROUP BY p.id
        ORDER BY value DESC  LIMIT 0 , %s"
,$eventtype ,$project->id$limit); 
}
else {
  
$query1 sprintf("SELECT SUM(me.event_sum) AS coun, p.firstname, p.lastname, t.short_name as team
            FROM #__joomleague_match_events AS me, #__joomleague_players AS p, #__joomleague_teams AS t, #__joomleague_playertool AS pt
           WHERE me.player_id = p.id AND 
                 me.player_id = pt.player_id AND 
                 me.team_id=t.id AND
                 pt.team_id = t.id AND 
                 pt.project_id = me.project_id AND
                 me.event_type_id =%s AND 
                 me.project_id =%s
        GROUP BY p.id
        ORDER BY coun DESC  LIMIT 0 , %s"
,$eventtype$project->id$limit);
}
$database->setQuery($query1);
$rows1 $database->loadObjectList();
echo 
'One<br />';
var_dump ($rows1);

$query2sprintf("SELECT (SUM(ch.vote_rating) / COUNT(ch.vote_rating)) as star, SUM(me.event_sum) AS value2
            FROM #__joomleague_match_events AS me
            LEFT JOIN #__joomleague_players AS p ON me.player_id = p.id  
            LEFT JOIN #__joomleague_playertool AS pt ON me.player_id = pt.player_id AND pt.project_id = me.project_id
            LEFT JOIN #__joomleague_teams AS t ON pt.team_id = t.id
            LEFT JOIN #__joomleague_team_joomleague AS teamtool ON teamtool.team_id = t.id AND teamtool.project_id = me.project_id
            LEFT JOIN #__joomleague_divisions AS jldiv ON jldiv.id = teamtool.division_id
	

	
	
	
LEFT JOIN #__joomleague_chara AS ch ON me.player_id = ch.id_hock
           WHERE  
	
	
   me.player_id = ch.id_hock AND
                 me.event_type_id =%s AND 
                 me.project_id =%s AND
                 ( jldiv.id = 
$division OR jldiv.parent_id = $division )
        GROUP BY p.id
        ORDER BY value2 DESC  LIMIT 0 , %s"
,$eventtype ,$project->id$limit);
$database->setQuery($query2);
$rows2 $database->loadObjectList();
echo 
'Two<br />';
var_dump ($rows2);

?>
<?php 
  
if($show == 1){?><div align="center"><b><?php echo $project->name;?></b></div><?php };
  
  if (! 
$rows $database->loadObjectList()){
     echo 
"<pre>";
     echo 
$database->getErrorMsg();
    echo 
$database->getQuery();
     echo 
"</pre>";
     exit;
  }
  else {  
    
?>
    
    <table width="100%" align="center" border="0" cellpadding="2" cellspacing="0">
    <?php
      
	
	
	
	

        
$k 0;
        foreach(
$rows as $row){
        
          
$class = ($k == 0)? 'sectiontableentry1' 'sectiontableentry2';
        
    
?>
      <tr class="<?php print $class;?>">
        <td align="left"><a class="link_prof" href="http://www.amurteam.ru/component/option,com_joomleague/func,showPlayer/lang,ru/p,1/pid,<?php echo $row1->id;?>"><?php echo sprintf("%s %s",$row1->firstname$row1->lastname);?></a></td>
        <td class="stars"><div class="st"><?php echo floor($row2->star);?></div></td>
        <td align="left"><?php echo $row1->value;?></td>
      </tr>
    <?php     
          $k 
$k;
        }
    
?>
    
    </table>
    <a class="all" href="<?php 
        
echo sefRelToAbs'index.php?option=com_joomleague&amp;func=eventsstats&amp;p='.$project->id
                        
'&amp;evid='.$eventtype
                        
'&amp;Itemid='.$mod_itemid); 
             
?>">
      <?php echo _JL_MODULE_RANKING_TOTAL?>
    </a>
    <?php     
  
}
?>
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Ну и сейчас выводить все это. Если первый запрос всегда больше (10) второго (9) я бы сделал так
Строку
Код: php
if (! $rows = $database->loadObjectList()){
Заменил на
Код: php
if (! $rows1  || ! $rows2){{
А
Код: php
 $k = 0;
 $i = 0;
        foreach($rows1 as $row1){
            if ($rows2[$i])  $row2 = $rows2[$i];
            ......
            $i++;
И в зависимости в какой переменной хранится нужное значение выводить его из нужной переменной $row1 или $row2
Можно как-то по другому, другим циклом, не foreach
« Последнее редактирование: 14.11.2009, 10:56:11 от Lex »
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Fanamura

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Все получилось, спасибо Вам неизмеримо огромное :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 4143
Последний ответ 12.11.2023, 23:37:03
от all_zer
Нужно wiki под Joomla

Автор THE KILLERS

Ответов: 9
Просмотров: 9737
Последний ответ 05.11.2020, 20:56:47
от Kijv
Поиск статьи по url сайта в админке Joomla 1.5

Автор Tema

Ответов: 5
Просмотров: 2245
Последний ответ 14.08.2020, 07:16:44
от rsn
Не могу войти в админку Joomla 1.5

Автор MrSkif

Ответов: 14
Просмотров: 10609
Последний ответ 12.09.2018, 19:36:32
от PaLyCH
Не войду в админку Joomla 1.5.26, пишет соединение с сервером было сброшено

Автор rom_4

Ответов: 4
Просмотров: 5541
Последний ответ 16.05.2018, 17:28:18
от Алексей MeRsOvOd