Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

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

larikan

  • Новичок
  • 8
  • 0 / 0
Помогите пожалуйста.....уже  весь день потерял на поиски  ответа  вроде на банальный вопрос...

создаю свой  тип поля для админки компонента и вот понадобилось для  обработчика  нажатия  кнопок  управления  организовать УНИВЕРСАЛЬНУЮ (это  важно!) передачу  параметров в виде  ассоциативного массива. Например
Код
$arrayParam = array($param1 => $value1, $param2=>$arrayValues2);
такой  вариант позволяет просто добавлять в будущем  параметры для  передачи
так вот надо этот массив передать из кода PHP для  его распаковки и использования в JavaScript. И  вот тут оказалась засада (((
В инете  много  написано,  но там  варианты  для  срипта работающего прямо на странице где  можно вставлять HTML код напрямую в скрипт,
Код
<div class="button_control" namebut-data="<?php echo json_encode($arrayParam); ?> ></div>
а  уменя  чисто скрипт PHP .... может я и не прав но я так  это понимаю.  
В PHP коде, точнее  в методе  getInput()  - формирования поля  для  админки такой  вариант не  катит там нужно сформировать данные  HTML
кода в виде значения переменной, то-есть не применишь echo json_encode($arrayParam).
если в  getInput() пишу  в лоб такой  код:
Код
//...
function getInput()
{
 //......

$paramButtton['no'] = JText::_('JNO');
$paramButtton['yes'] = JText::_('JYES');

$html[] = '<div class="button_control"';
$html[] = ' namebut-data="'.json_encode($paramButtton).'"';
$html[] = '>';
//.....
return  implode('', $html);
}
//...
то в JavaScript (использую jQuery) при обработке клика - после извлечения значения атрибута  'namebut-data' получаю только первый сивол '{' JSON строки
а  в итоге  надо получить ассоциативнй  массив точнее  объект (я так понимаю нету   у  JavaScript ассоциативных массивов)
Код
jQuery(document).ready(function(){
jQuery('.button_control').click(function(){
var namebut_array= jQuery(this).attr('namebut-data');
alert(namebut_array); //здесь вижу  только '{'
                var namesButt = {};
              
                jQuery.each(namebut_array, function(key, val) {  
namesButt [key] = val;
                      //namesButt['принятое _имя_ключа'] = 'принятое_значение ключа'
               }  
      });
});

 После обработки в JavScript должно быть аналогичное  массиву  в PHP но в JavScript:
  namesButt = {'no' : 'Да', 'yes': 'Нет'}
а  у меня  в лучшем  случае получается  строка  символов  похожая на массив в формате JSON ((( но не массив (объект)

при просмотре кода  страницы FireBag-ом  с моим полем вижу  такой  бред:
Код
<div class="button_control_baseobj" );'=""  no":"\u041d\u0435\u0442","yes":"\u0414\u0430"}"="" namebut-data="{"  >
пробовал "менять  местами"  кавычки  двойные и одиночные  но  не  помогло хотя  чуть и изменилось ((
пробовал напрямую передать сроку  символов  визуаль нохожую на JSON строку - она принимается  но не обрабатывается  как  массив!
Код
$paramButttonJSON= "{'no':'".JText::_('JNO')."','yes':'".JText::_('JYES')."'}";
$html[] = '<div class="button_control"';
$html[] = ' namebut-data="'.paramButttonJSON.'"';
$html[] = '>';

Нутром  чую  что проблема очевидно  мелкая, но  уже  мозг кипит.....а не получается :o

Подскажите  пожалуйста где  я ошибся и  как  надо передавать  подобный массив и потом его извлекать в данном случае
« Последнее редактирование: 15.06.2017, 17:26:49 от b2z »
*

Тренд

  • Захожу иногда
  • 59
  • 6 / 0
Строка
Код
$html[] = ' namebut-data="'.json_encode($paramButtton).'"';
Функция json_encode всегда выводит строку внутри которых куча двойных кавычек. Представьте, что у вас получится если вы эту строку вставляете внутрь двойных кавычек.
Посмотрите что храниться в переменной $html[1]
*

larikan

  • Новичок
  • 8
  • 0 / 0
Строка
Код
$html[] = ' namebut-data="'.json_encode($paramButtton).'"';
Функция json_encode всегда выводит строку внутри которых куча двойных кавычек. Представьте, что у вас получится если вы эту строку вставляете внутрь двойных кавычек.
Посмотрите что храниться в переменной $html[1]

Да  я  обратил на это внимание  и попробовал напрямую  передавать результат в  виде  строки  {'no' : 'Да', 'yes': 'Нет'}  с другим  расположение кавычек  (заменил двойные на одиночные)... HTML код  стал "красивым"  но  моя строка  почему-то не принимается  как  закодированный  в JSON массив ((

вот я  слепота......понял Вашу мысль  изменил кавычки в  строке
$html[] = " namebut-data=' ".json_encode($butconfirm)." ' ";
HTML код стал красивым )) но дальше  всеравно воспринимается  как  строка...(((
может я неправильноее  декодирую в массив?
« Последнее редактирование: 15.06.2017, 16:59:31 от larikan »
*

Тренд

  • Захожу иногда
  • 59
  • 6 / 0
нет, стандарт JSON требует именно двойные кавычки, потому другое написание не будет восприниматься как JSON.
В вашем варианте попробуйте сделать по другому
Код
$html[] = "namebut-data='".json_encode($paramButtton)."'";
*

larikan

  • Новичок
  • 8
  • 0 / 0
Строка
Код
$html[] = ' namebut-data="'.json_encode($paramButtton).'"';
Функция json_encode всегда выводит строку внутри которых куча двойных кавычек. Представьте, что у вас получится если вы эту строку вставляете внутрь двойных кавычек.
Посмотрите что храниться в переменной $html[1]

Тренд - вы  спасли меня  от вывиха  ума!

Ведь  чуялл что все гениальное  просто...все  дело в замыленности взгляда......
в  ходе  проб и ошибок стер  одну  строку кода Java! собственно которая и делала преобразование!
после  исправления  подсказанного <Тренд> входная  строка принялась но не конвертировалась  потомучто не было  этой  строки
вот она (а  точнее  там  блок  подмены  значения  переменной.....блинннн   меня....)
Код
var namebut = JSON.parse(namebut_array); var namebut_array = {};  namebut_array = namebut;
 

вообщем  все  заработало!  изначально все  дело было  в  кавычках   двойных и одиночных...

ГРОМАДНОЕ СПАСИБО!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переход по ссылки и запуск функции? [РЕШЕНО]

Автор warlocksp

Ответов: 19
Просмотров: 1378
Последний ответ 21.02.2020, 12:06:24
от warlocksp
[РЕШЕНО] Скроллинг страницы вниз?

Автор warlocksp

Ответов: 3
Просмотров: 892
Последний ответ 02.02.2020, 15:56:55
от warlocksp
Разобраться с небольшим кодом PHP (РЕШЕНО)

Автор Шмайсер

Ответов: 18
Просмотров: 1281
Последний ответ 16.01.2020, 21:47:56
от sivers
Как изнутри iframe вызвать внешнюю функцию? [РЕШЕНО]

Автор dm-krv

Ответов: 6
Просмотров: 1139
Последний ответ 25.08.2019, 20:41:07
от dm-krv
Как получить объект с полной информацией о материале через API Joomla? [РЕШЕНО]

Автор dm-krv

Ответов: 4
Просмотров: 1183
Последний ответ 03.08.2019, 16:30:51
от dm-krv