Новости 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

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

acidcrash

  • Новичок
  • 7
  • 0 / 0
Привет всем! :D

Подскажите, как правильно написать скрипт PHP работающий в Joomla как на обычном HTML сайте.

Например вот обычный скрип, ввода данных, потом идет проверка данных и если они верны выполняется действие, если нет, то выше формы выводится сообщение об ошибке, что не все поля были заполнены.

С PHP проблем нет, но вот с Joomla портаки. Написал я скрипт, сохранил его в отдельном файле php, внедрил файл в материал при помощи плагина  RD Add PHP. Но дело в том, что в скрипте, в форме, в разделе Action указывается файл PHP и когда форма начинает работу, просто вылетает из Joomla и начинает работать отдельным файлом! Что делать?
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
сделай ссылку на эту же статью!
конечно, если я правильно понял тебя
*

acidcrash

  • Новичок
  • 7
  • 0 / 0
я нашел одну штуку, если вписать в теге форма в action команду <form action="<?php echo JRoute::_( 'index.php', true, $params->get('usesecure')); ?>" method="post" name="count"> но я не пойму как оно работает. Что это вообще JRoute?
*

Andros

  • Захожу иногда
  • 134
  • 9 / 1
Может, если скрипт не из одного файла состоит, из него модуль надо сделать?
*

acidcrash

  • Новичок
  • 7
  • 0 / 0
http://demo.designart.com.ua/index.php

Вот тут находится работа скрипта! Он вылетает из Joomla!
*

acidcrash

  • Новичок
  • 7
  • 0 / 0
Люди ну посоветуйте! Зайдите посмотрите как работает скрипт, что с ним можно сделать!?
*

frag79

  • Давно я тут
  • 612
  • 61 / 0
думаю что без файлов скрипта никто точно не скажет, те надо курить раздел Веб разработка.

А почему просто не поставить компонент гостевой?
*

acidcrash

  • Новичок
  • 7
  • 0 / 0
Код
<?
  $error = "";
  $action = $_POST["action"];
  if (!empty($action))
  {
    $name = trim($name);
    $msg = trim($msg);
      if (empty($msg)) // если не введено сообщение
      {
        $action = "";
        $error = $error."<LI>Вы не ввели сообщение\n";
      }
      if (empty($name)) // если не введено имя
      {
        $action = "";
        $error = $error."<LI>Вы не ввели имя\n";
      }
      if (!empty($email))
      /* если введен e-mail, то проверяем с помощью регулярного выражения
      правильность ввода */
      {
        if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
        {
          $action = "";
          $error = $error."<LI> Неверно введен е-mail.&nbsр Введите e-mail
          в виде <i>softtime@softtime.ru</i> \n";
        }
      }
$name = substr($_POST["name"],0,32);
$name = htmlspecialchars(stripslashes($name)); // обрабатываем имя
$city = substr($_POST["city"],0,32);
$city = htmlspecialchars(stripslashes($city)); // обрабатываем город
$email = substr($_POST["email"],0,32);
$email = htmlspecialchars(stripslashes($email)); // обрабатываем e-mail
$url = substr($_POST["url"],0,36);
$url = htmlspecialchars(stripslashes($url)); // обрабатываем url-адрес
$msg = substr($_POST["msg"],0,1024);
$msg = htmlspecialchars(stripslashes($msg)); // обрабатываем сообщение

if (empty($error)) // если ошибок нет, обрабатываем сообщение
  {
    $msg = nl2br($msg);
    $msg = str_replace("[u]","<u>",$msg);
    $msg = str_replace("[U]","<u>",$msg);
    $msg = str_replace("[i]","<i>",$msg);
    $msg = str_replace("[I]","<i>",$msg);
    $msg = str_replace("[b]","<B>",$msg);
    $msg = str_replace("[B]","<B>",$msg);
    $msg = str_replace("[sub]","<SUB>",$msg);
    $msg = str_replace("[SUB]","<SUB>",$msg);
    $msg = str_replace("[sup]","<SUP>",$msg);
    $msg = str_replace("[SUP]","<SUP>",$msg);
    $msg = str_replace("[/u]","</u>",$msg);
    $msg = str_replace("[/U]","</u>",$msg);
    $msg = str_replace("[/i]","</i>",$msg);
    $msg = str_replace("[/I]","</i>",$msg);
    $msg = str_replace("[/b]","</B>",$msg);
    $msg = str_replace("[/B]","</B>",$msg);
    $msg = str_replace("[/SUB]","</SUB>",$msg);
    $msg = str_replace("[/sub]","</SUB>",$msg);
    $msg = str_replace("[/SUP]","</SUP>",$msg);
    $msg = str_replace("[/sup]","</SUP>",$msg);
    $msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a
                       href=\\2>\\2</a>\\3",$msg);
    $msg = str_replace("\n"," ",$msg);
    $msg = str_replace("\r"," ",$msg);

  /* создаем файл с именем вида "rec.+время добавления сообщения" */
    $file = fopen("records/rec.".time(),"w");
    // записываем информацию в файл, по одной строчке на каждое поле
    fputs($file,$name."\n");
    fputs($file,$city."\n");
    fputs($file,$email."\n");
    fputs($file,$url."\n");
    fputs($file,$msg."\n");
    // закрываем файл
    fclose($file);

  print "<HTML><HEAD>\n";
  print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n";
  print "</HEAD></HTML>\n";
  }
  }
   if (empty($action))
  {
    ?>
    <HTML>
    <HEAD>
    <TITLE>Гостевая книга - добавление записи</TITLE>

    </HEAD>
    <BODY>
    <H3>
      <? print "<center>"; ?>
      <font color=#1E90FF>Добавление записи</font>
    </H3>
    <?
    if (!empty($error))
    /* если есть ошибки, выводим сообщение об ошибках */
    {
      print "<P><font color=green>Во время добавления записи произошли
      следующие ошибки:</font></P>\n";
      print "<UL>\n";
      print $error;
      print "</UL>\n";
    }
    ?>
    <!-- пишем HTML-код формы добавления сообщений !-->
    <center>
     <table width=1 border=0>
<form action="script/addrec.php" method="post" name="count">
       <input type=hidden name=action value=post>
    <tr>
     <td width=50%>Имя:<font color=red><sup>*</sup><font></td>
     <td align=right>
       <input type=text name=name maxlength=32 value='<? echo $name; ?>'>
     </td>
    </tr>
    <tr>
      <td width=50%>Город:</td>
      <td align=right>
        <input type=text name=city maxlength=32 value='<? echo $city;; ?>'>
      </td>
    </tr>
    <tr>
      <td width=50%>E-Mail:</td>
      <td align=right>
        <input type=text name=email maxlength=32 value='<? echo $email; ?>'>
      </td>
    </tr>
    <tr>
      <td width=50%>URL:</td>
      <td align=right>
        <input type=text name=url maxlength=36 value='<? echo $url; ?>'>
      </td>
    </tr>
    <tr>
      <td colspan=2>Сообщение:<font color=red<sup>*</sup></font><br>
        <textarea cols=50 rows=8 name=msg><? echo $url; ?>
        </textarea>
      </td>
    </tr>
    <tr>
      <td colspan=2><input type=submit value='Добавить'></td>
    </tr>
  </form>
  <tr>
    <td colspan=2><font color=red><sup>*</sup></font> - поля,
      обязательные для заполнения
    </td><td align=left>
  </table>
  </center>
  </BODY>
  </HTML>
  <?
   }
  ?>

Вот код самого скрипта. Гостевая мне не нужна, это просто левый скрипт, на котором я тестирую работу PHP в Joomla. Дело в том, что мне главное сделать проверку данных выводимую сообщение над ошибками чуть выше формы, ну как любая форма работет.
*

elenka

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Привет всем! :D

Подскажите, как правильно написать скрипт PHP работающий в Joomla как на обычном HTML сайте.

Например вот обычный скрип, ввода данных, потом идет проверка данных и если они верны выполняется действие, если нет, то выше формы выводится сообщение об ошибке, что не все поля были заполнены.

С PHP проблем нет, но вот с Joomla портаки. Написал я скрипт, сохранил его в отдельном файле php, внедрил файл в материал при помощи плагина  RD Add PHP. Но дело в том, что в скрипте, в форме, в разделе Action указывается файл PHP и когда форма начинает работу, просто вылетает из Joomla и начинает работать отдельным файлом! Что делать?

Вот у меня такая же проблема, как быть? Можн поподробнее и попонятнее...
*

Be(ool

  • Захожу иногда
  • 59
  • 5 / 0
Цитировать
я нашел одну штуку, если вписать в теге форма в action команду <form action="<?php echo JRoute::_( 'index.php', true, $params->get('usesecure')); ?>" method="post" name="count"> но я не пойму как оно работает. Что это вообще JRoute?
считай, что он тебе вернет строку 'index.php'.

Что бы все заработало нужно в hidden-поля прописать переменные которые при показе формы в адресной строке стоят.
Цитировать
<input type="hidden" name="option" value="com_content" >
<input type="hidden" name="id" value="<текущй ид материала>" >
<input type="hidden" name="Itemid" value="<текущй ид пункта меню>" >
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

php скрипт для вызова url адреса открытой страницы

Автор bigrash

Ответов: 10
Просмотров: 6876
Последний ответ 17.02.2024, 20:12:05
от Vastriet
Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

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

Автор THE KILLERS

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

Автор Tema

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

Автор MrSkif

Ответов: 14
Просмотров: 10555
Последний ответ 12.09.2018, 19:36:32
от PaLyCH