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

Steel84

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
Ошибка в VirtueMart
« : 30.10.2011, 16:18:51 »
При работе все время выдает ошибку:
Warning: Attempt to assign property of non-object in /home/p50620/www/redprice-shop.ru/libraries/joomla/html/editor.php on line 309
Вод код файла editor.php:
Код
<?php
/**
 * @version $Id: editor.php 14401 2010-01-26 14:10:00Z louis $
 * @package Joomla.Framework
 * @subpackage HTML
 * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
 * @license GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();

jimport('joomla.event.dispatcher');

/**
 * JEditor class to handle WYSIWYG editors
 *
 * @package Joomla.Framework
 * @subpackage HTML
 * @since 1.5
 */
class JEditor extends JObservable
{
/**
* Editor Plugin object
*
* @var object
*/
var $_editor = null;

/**
* Editor Plugin name
*
* @var string
*/
var $_name = null;

/**
* Editor start and end tag
* Used to tell SEF plugin not to process editor contents
* @var array
*/
var $_tagForSEF = array('start' => '<!-- Start Editor -->', 'end' => '<!-- End Editor -->');

/**
* constructor
*
* @access protected
* @param string The editor name
*/
function __construct($editor = 'none')
{
$this->_name = $editor;
}

/**
* Returns a reference to a global Editor object, only creating it
* if it doesn't already exist.
*
* This method must be invoked as:
* <pre>  $editor = &JEditor::getInstance([$editor);</pre>
*
* @access public
* @param string $editor  The editor to use.
* @return JEditor The Editor object.
*/
function &getInstance($editor = 'none')
{
static $instances;

if (!isset ($instances)) {
$instances = array ();
}

$signature = serialize($editor);

if (empty ($instances[$signature])) {
$instances[$signature] = new JEditor($editor);
}

return $instances[$signature];
}

/**
* Initialize the editor
*/
function initialise()
{
//check if editor is already loaded
if(is_null(($this->_editor))) {
return;
}

$args['event'] = 'onInit';

$return = '';
$results[] = $this->_editor->update($args);
foreach ($results as $result) {
if (trim($result)) {
//$return .= $result;
$return = $result;
}
}

$document =& JFactory::getDocument();
$document->addCustomTag($return);
}

/**
* Present a text area
*
* @param string The control name
* @param string The contents of the text area
* @param string The width of the text area (px or %)
* @param string The height of the text area (px or %)
* @param int The number of columns for the textarea
* @param int The number of rows for the textarea
* @param boolean True and the editor buttons will be displayed
* @param array Associative array of editor parameters
*/
function display($name, $html, $width, $height, $col, $row, $buttons = true, $params = array())
{
$this->_loadEditor($params);

//check if editor is already loaded
if(is_null(($this->_editor))) {
return;
}

// Backwards compatibility. Width and height should be passed without a semicolon from now on.
// If editor plugins need a unit like "px" for CSS styling, they need to take care of that
$width = str_replace( ';', '', $width );
$height = str_replace( ';', '', $height );

// Initialize variables
$return = null;

$args['name'] = $name;
$args['content'] = $html;
$args['width'] = $width;
$args['height'] = $height;
$args['col'] = $col;
$args['row'] = $row;
$args['buttons'] = $buttons;
$args['event'] = 'onDisplay';

$results[] = $this->_editor->update($args);

foreach ($results as $result)
{
if (trim($result)) {
$return .= $result;
}
}
return $this->_tagForSEF['start'] . $return . $this->_tagForSEF['end'];
}

/**
* Save the editor content
*
* @param string The name of the editor control
*/
function save( $editor )
{
$this->_loadEditor();

//check if editor is already loaded
if(is_null(($this->_editor))) {
return;
}

$args[] = $editor;
$args['event'] = 'onSave';

$return = '';
$results[] = $this->_editor->update($args);
foreach ($results as $result) {
if (trim($result)) {
$return .= $result;
}
}
return $return;
}

/**
* Get the editor contents
*
* @param string The name of the editor control
*/
function getContent( $editor )
{
$this->_loadEditor();

$args['name'] = $editor;
$args['event'] = 'onGetContent';

$return = '';
$results[] = $this->_editor->update($args);
foreach ($results as $result) {
if (trim($result)) {
$return .= $result;
}
}
return $return;
}

/**
* Set the editor contents
*
* @param string The name of the editor control
* @param string The contents of the text area
*/
function setContent( $editor, $html )
{
$this->_loadEditor();

$args['name'] = $editor;
$args['html'] = $html;
$args['event'] = 'onSetContent';

$return = '';
$results[] = $this->_editor->update($args);
foreach ($results as $result) {
if (trim($result)) {
$return .= $result;
}
}
return $return;
}

/**
* Get the editor buttons
*
* @param mixed $buttons Can be boolean or array, if boolean defines if the buttons are displayed, if array defines a list of buttons not to show.
* @access public
* @since 1.5
*/
function getButtons($editor, $buttons = true)
{
$result = array();

if(is_bool($buttons) && !$buttons) {
return $result;
}

// Get plugins
$plugins = JPluginHelper::getPlugin('editors-xtd');

foreach($plugins as $plugin)
{
if(is_array($buttons) &&  in_array($plugin->name, $buttons)) {
continue;
}

$isLoaded = JPluginHelper::importPlugin('editors-xtd', $plugin->name, false);

$className = 'plgButton'.$plugin->name;
if(class_exists($className)) {
$plugin = new $className($this, (array)$plugin);
}

// Try to authenticate -- only add to array if authentication is successful
$resultTest = $plugin->onDisplay($editor);
if ($resultTest) $result[] =  $resultTest;
}

return $result;
}

/**
* Load the editor
*
* @access private
* @param array Associative array of editor config paramaters
* @since 1.5
*/
function _loadEditor($config = array())
{
//check if editor is already loaded
if(!is_null(($this->_editor))) {
return;
}

jimport('joomla.filesystem.file');

// Build the path to the needed editor plugin
$name = JFilterInput::clean($this->_name, 'cmd');
$path = JPATH_SITE.DS.'plugins'.DS.'editors'.DS.$name.'.php';

if ( ! JFile::exists($path) )
{
$message = JText::_('Cannot load the editor');
JError::raiseWarning( 500, $message );
return false;
}

// Require plugin file
require_once $path;

// Get the plugin
$plugin   =& JPluginHelper::getPlugin('editors', $this->_name);
$params   = new JParameter($plugin->params);
$params->loadArray($config);
$plugin->params = $params;

// Build editor plugin classname
$name = 'plgEditor'.$this->_name;
if($this->_editor = new $name ($this, (array)$plugin))
{
// load plugin parameters
$this->initialise();
JPluginHelper::importPlugin('editors-xtd');
}
}
}

В ошибке говорится о 309 строке. Что в ней не так и как избавиться от этой ошибки?
*

bolonia

  • Захожу иногда
  • 222
  • 27 / 0
Re: Ошибка в VirtueMart
« Ответ #1 : 30.10.2011, 21:38:25 »
Это не совсем ошибка, а просто предупреждение. Их можно отключить в настройках Joomla: вкладка Сервер — Сообщение об ошибках: нет
Бесплатный модуль обратного звонка / обратной связи для J3: http://joomlaforum.ru/index.php?topic=309065.0
*

Steel84

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
Re: Ошибка в VirtueMart
« Ответ #2 : 30.10.2011, 22:09:27 »
Но это предупреждение ведь не просто так? Дело в том, что у меня часто тормоза в VirtueMart-е и иногда бывают всякие косяки(панель администрирования из шапки переходит в нижнюю часть страницы и т.д.).
*

Grisly

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: Ошибка в VirtueMart
« Ответ #3 : 01.12.2011, 20:16:03 »
Смотрим editor.php
Код
		// Get the plugin
[b]$plugin[/b]   =& JPluginHelper::getPlugin('editors', $this->_name);
$params   = new JParameter($plugin->params);
$params->loadArray($config);
[b]$plugin->params[/b] = $params;
Обнаруживаем, что в строчке 309 $plugin пуст, т.к. в строчке 305 нам не удалось найти нужный плагин
Выводим
Код
echo $this->_name;
В моем случае было написано jce
Открываем файл configuration.php
находим переменную $editor
Код
var $editor = 'jce';
У меня в процессе переноса эта переменная поменялась.
вернул на место
Код
var $editor = 'tinymce';
Ошибки изчезли.
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Re: Ошибка в VirtueMart
« Ответ #4 : 08.12.2011, 11:47:03 »
Я устранил ошибку более просто:
Версия VirtueMart 1.1.9 и Joomla 1.5.25

Warning: Attempt to assign property of non-object in libraries\joomla\html\editor.php on line 309  ?

Находим файл:
libraries->joomla->html->editor.php

И $plugin->params = $params; меняем на $this->plugin->params = $params;

У меня - ошибка исчезла...
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Количество просмотров товара VirtueMart Существует?

Автор grishin

Ответов: 38
Просмотров: 13336
Последний ответ 22.08.2020, 08:44:29
от rsn
Не выводит списком Настраиваемое поле в VirtueMart 5.0

Автор ЛюдмилаМир

Ответов: 2
Просмотров: 3772
Последний ответ 25.08.2019, 16:27:04
от ЛюдмилаМир
Joomla VirtueMart помощь в переводе

Автор akkord31

Ответов: 0
Просмотров: 3600
Последний ответ 21.05.2019, 09:14:02
от akkord31
Миграция с Joomla 1.5 на 3 с VirtueMart 1.1.9 stable на свежую. Кто поможет?

Автор Гриша-Десантник

Ответов: 7
Просмотров: 3945
Последний ответ 23.04.2019, 10:22:25
от draff
Переход на https VirtueMart 1.1.4 проблемы с фото

Автор Sergey1984

Ответов: 4
Просмотров: 3948
Последний ответ 25.10.2018, 20:56:54
от Sergey1984