Новости Joomla

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

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

Условия к формам
« : 24.09.2009, 16:30:58 »
Имеется несколько пунктов. В одном из пунктов несколько радио-кнопок. Можно ли сделать так, чтобы следующий пункт со строкой для ввода текста выводился лишь при выборе определённой радио-кнопки? Если можно, то как? Объясните кто может пожалуйста =)

P.S. Joomla 1.5, BreezingForms 1.5.9. Заранее благодарен)
« Последнее редактирование: 25.09.2009, 08:59:36 от художнег »

Re: Условия к формам
« Ответ #1 : 25.09.2009, 09:11:55 »
Еще одна проблемка: есть строка для ввода данных на сотрудника. ниже - кнопка, при нажатии на которую появляется такая же строка (если сотрудников несколько). Как сделать что-нить подобное?

Re: Условия к формам
« Ответ #2 : 28.09.2009, 16:46:06 »
Вроде разобрался как это сделать вручную...

Народ, подскажите хоть как к нужному радио-баттону добавить загрузку внешнего скрипта?
Выбираем нужный нам радио-баттон, переходим на вкладку scripts. Дальше - Action Scripts -> Custom (Галочка на Click), дальше что?

Если пишешь просто src="filename.js" - то не хочет он обращаться к скрипту. Что писать-то?
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #3 : 28.09.2009, 17:04:07 »
В Manage Script создаете новый документ (скрипт). Присваиваете ему имя, сам скрипт вставляется в нижнее поле,которое открывается при создании документа. Все это дело сохраняете.
В своей форме открываете "вкладку scripts. Дальше - Action Scripts -> Custom (Галочка на Click)" и выбираете свой скрипт для применения submit

Re: Условия к формам
« Ответ #4 : 29.09.2009, 09:13:14 »
В своей форме открываете "вкладку scripts. Дальше - Action Scripts -> Custom (Галочка на Click)" и выбираете свой скрипт для применения submit

vagkrsk, как выбрать что-то во вкладке "Custom", если ручками писать надо, причём как я понял вида "ff_{element_name}_action(element,action)"?

Объясните, пожалуйста, подробнее что где и куда)
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #5 : 29.09.2009, 09:43:30 »
vagkrsk, как выбрать что-то во вкладке "Custom", если ручками писать надо

Вношу поправку
В Manage Script создаете новый документ (скрипт). Присваиваете ему имя, сам скрипт вставляется в нижнее поле,которое открывается при создании документа. Все это дело сохраняете.
В своей форме открываете "вкладку scripts. Дальше - Action Scripts -> Library (Галочка на Click)" и выбираете свой скрипт для применения submit

В случае с "Custom":
Вставляете свой код в нижнее поле.

"ff_{element_name}_action(element,action)"?
Объясните, пожалуйста, подробнее что где и куда)

Примеры скриптов можно поглядеть в самом компоненте в разделе Manage Script

Re: Условия к формам
« Ответ #6 : 29.09.2009, 11:14:14 »
vagkrsk, спасибо огромное!)

Только всё равно пока что не очень получается))
Не подскажете в чём ошибка?

В общем, в "manage scripts" создал функцию, Package:FF, Type:Element Action,

function name_function()
{
  document.all.my.outerHTML="<INPUT TYPE='BUTTON' VALUE='Кнопка'>";
}

Затем к нужному нам радио-баттону прикрепил данный скрипт, создал элемент () с именем "my", который, собсно, и должен менятся на Кнопку после выбора радио-баттона, а он, сволочь такая, не меняется... Проверял вне Joomla (т.е. отдельная HTML-страничка и файл .js) - работает (правда в FF и NN не совсем, но это уже другая проблема ^-^ )
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #7 : 29.09.2009, 11:48:13 »
В дальнейших рассуждениях и действиях не очень "силен" по уровню подготовки
Но, если все правильно понял, то подскажу следующее.
Неоднакратно читал на форуме и сталкивался сам с тем, что нужно четко выдерживать
стили написания имен. Допустим, что это ff_validate_nextpage,
а Вы создали подобный новый скрипт и дали ему имя ff_My
В такой версии может не сработать.
Я, чтобы избежать дурных ошибок и потом их искать неведомо где, делаю просто ff_validate_nextpage1, дублирую.

Второе, не зная назначения кнопки трудно что-то утверждать, но данная функция подойдет к тому событию, что
описываете гораздо больше.?

Код
function ff_showaction(element, action)
{
   alert('Action '+action+' performed by element '+element.id);
}

Re: Условия к формам
« Ответ #8 : 29.09.2009, 11:58:17 »
vagkrsk, нет, метод alert выводит окошко с сообщением и кнопкой. Мне этого не нужно. Нужно, чтобы при выборе радио-баттона один элемент формы менялся на другой... либо же просто ниже радиобаттонов появлялся новый элемент для ввода данных пользователем.
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #9 : 29.09.2009, 12:11:21 »
vagkrsk, нет, метод alert выводит окошко с сообщением и кнопкой. Мне этого не нужно. Нужно, чтобы при выборе радио-баттона один элемент формы менялся на другой... либо же просто ниже радиобаттонов появлялся новый элемент для ввода данных пользователем.

Сейчас, понял назначение и смысл "батона" !
Есть встречное предложение.
Приведу пример из FacileForms 1.4.7 (что в принципе одно и то же) выпадающий список
Он для данной задачи более чем подходит и трудностей больших не предвидится в его оформлении и вставки в  общую таблицу. Тема
« Последнее редактирование: 29.09.2009, 12:14:57 от vagkrsk »

Re: Условия к формам
« Ответ #10 : 29.09.2009, 12:40:41 »
Спасибо за встречное предложение, в будущем, уверен, должно пригодиться =)

Но сейчас нужно немного другое: даже если вместо радио-кнопок делать раскрывающийся список с двумя вариантами "нет" и "да" - то при выборе варианта "да" должны появляться две строчки для ввода текста. При выборе варианта "нет" строчки должны оставаться невидимыми. Может и есть возможность сделать данную штуковину при помощи шаблона "Country selection", но это для меня оооооооооч сложно)) Неужели нет варианта попроще?
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #11 : 29.09.2009, 13:04:58 »
 Есть простой и очень неплохой компонент для форм RSform!Pro 1.2.0 rev 22
Использую вторым для форм сайта

Re: Условия к формам
« Ответ #12 : 29.09.2009, 14:00:06 »
А из бесплатного больше ничего нету?)
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий

Re: Условия к формам
« Ответ #14 : 30.09.2009, 13:34:41 »
vagkrsk, он у меня уже стоит  ^-^

Вроде нашёл несколько вариантов как решить свою проблему, но в BreezingForms не соображу как вставить код.
Прикрепил к своей радио-кнопке вот такого плана функцию:

Код: javascript
function createMessage(titlep, titles) {
 
  var container = document.createElement('div')
 
  container.innerHTML = '<div> \
    <div>'+titlep+'</div> \
    <input type="text" width="350" /> \
    <div>'+titles+'</div> \
    <input type="text" width="350" /> \
  </div>'
 
  return container.firstChild
} // Создание формы

function positionMessage(elem) {
  elem.style.position = 'absolute'
 
  var scroll = document.documentElement.scrollTop ||

document.body.scrollTop
  elem.style.top = scroll + 200 + 'px'
 
  elem.style.left = Math.floor(document.body.clientWidth/2) - 150 + 'px'
} // Позиционирование на странице

  // создать
  var messageElem = createMessage('Полное наименование', 'Сокращённое наименование')
 
  // позиционировать
  positionMessage(messageElem)
 
  // вставить в документ
  document.body.appendChild(messageElem)

Так тот div, который должен появляться при нажатии на радио-кнопку, появляется сразу при загрузке страницы. Хотя вне Joomla работает норм. Не подскажете где тут косяк и как можно это подправить?
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #15 : 30.09.2009, 13:42:32 »
Вроде нашёл несколько вариантов как решить свою проблему, но в BreezingForms не соображу как вставить код.

Так тот div, который должен появляться при нажатии на радио-кнопку, появляется сразу при загрузке страницы. Хотя вне Joomla работает норм. Не подскажете где тут косяк и как можно это подправить?

В таких делах, наверное, мне совета у Вас спрашивать нужно  ^-^

Re: Условия к формам
« Ответ #16 : 30.09.2009, 13:53:25 »
Уррррррррррря, получиииииииииилось!))))))))))
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #17 : 30.09.2009, 14:58:04 »
Раскажи всем  ^-^
Будет интересно узнать, как получилось.
Может где-то придется использовать.

Re: Условия к формам
« Ответ #18 : 30.09.2009, 15:27:38 »
Допустим: есть две радио-кнопки ("Да" и "Нет"). Чтобы при нажатии на "Да" появлялись доп. строки для ввода текста, я прикрепил к ней следущую функцию (ff_da):

Код: javascript
function ff_da() {
function createMessage(titlep, titles) {
 
  var container = document.createElement('div')
 
  container.innerHTML = '<div id="an"> \
    <div>'+titlep+'</div> \
    <input type="text" width="350" /> \
    <div>'+titles+'</div> \
    <input type="text" width="350" /> \
  </div>'
 
  return container.firstChild
} // Создание формы

function positionMessage(elem) {
  elem.style.position = 'absolute'
 
  var scroll = document.documentElement.scrollTop ||

document.body.scrollTop
  elem.style.top = scroll + 200 + 'px'
 
  elem.style.left = Math.floor(document.body.clientWidth/2) - 150 + 'px'
} // Позиционирование на странице

  // создать
  var messageElem = createMessage('Полное наименование', 'Сокращённое наименование')
 
  // позиционировать
  positionMessage(messageElem)
 
  // вставить в документ
  document.body.appendChild(messageElem)}

Правда там ещё нужно повозиться с функцией позиционирования (function positionMessage), чтобы строки появлялись там где нужно - я просто пример один использовал - содрал почти ничего не изменяя =)

Да, но теперь появилась ещё одна проблема: на вторую радио-кнопку ("Нет") нужно повесить условие, чтобы появившиеся строки опять исчезали. Вне Joomla это сделать довольно просто: к данной радио-кнопке на событие "onclick" поставить следующее:
Код: javascript
messageElem.parentNode.removeChild(messageElem)
- всё работает как надо. А вот в BreezingForms пока вставить не получается ((

Люди знающие, помогите, а?  :'(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться