Новости Joomla

Вышли релизы безопасности Joomla 6.0.2 и Joomla 5.4.2

Релиз безопасности Joomla 6.0.2 и 5.4.2

Проект Joomla спешит сообщить о выпуске Joomla 6.0.2 и Joomla 5.4.2. Это релиз безопасности для серии Joomla 6.0 и релиз безопасности для серии Joomla 5.4.

JL Content Fields Filter 4.0.0

JL Content Fields Filter 4.0.0

JL Content Fields Filter - Это бесплатный модуль, который фильтрует материалы в категории Joomla согласно настраиваемым полям.

Данный крупный релиз включает полную совместимость с Joomla 6, критические исправления безопасности, полностью модернизированный интерфейс администратора и обширный рефакторинг кода.

Ключевые Особенности:

- Полная совместимость с Joomla 6: Полная миграция на PSR-4, удаление устаревших методов, исправления для PHP 8.2+ и современные взаимодействия с базой данных.

- Полностью переписанный интерфейс компонента:

- Современный JS стек (Native Fetch, ES6+, модальные окна Bootstrap 5)

- Новое поле FilterfieldsField для предварительного просмотра фильтров в реальном времени.

- Полный CRUD, улучшенные функции SEO и улучшенный UX.

- Критические исправления безопасности:

- 5 SQL-инъекций устранены в нескольких файлах.

- Добавлена защита от XSS, улучшены токены CSRF и проверки разрешений.

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

Страница расширения:
https://joomline.ru/rasshirenija/moduli/jlcontentfieldsfilter.html

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

djbob2000

  • Захожу иногда
  • 96
  • 4 / 0
Перенес с Joostina на Joomla 1.5 сайт при помощи mtw migrator. Около 1500 больших материалов. На Joostina алиасы не заполнял. При переносе в алиасах образовались тире, несколько тире, или куча тире вперемешку в латинскими буквами:
--
---lr--k--
Поставил "UA and RU Alias Plugin" - жить полегче стало, но он транслитерует только при сохранении статьи. Есть ли какое-то простое решение чтобы переписать все алиасы на сайте на нормальные? Или как мне быть, не вручную же пересохранять.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
написать скрипт, прогнать через него дамп данных из БД и вернуть обратно, технически процесс на 20 минут, но готового решения нет :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

djbob2000

  • Захожу иногда
  • 96
  • 4 / 0
А подскажите тогда просто как удалить (очистить) все поля alias, наверное это какой-то примитивный SQL запрос?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
зайти в phpmyadmin и выполнить запрос (префикс если что заменить)
Код: sql
UPDATE jos_content SET alias = ''
У всех материалов не будет алиаса
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Marilyn Manson

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
написать скрипт, прогнать через него дамп данных из БД и вернуть обратно, технически процесс на 20 минут, но готового решения нет :)

А может быть подскажете как этот скрипт будет выглядеть? :)) Я думаю, что сотни людей будут благодарны за него...
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Просто вставить строчку выше в phpMyAdmin
Но аккуратно, при включении SEF сайт может сойти с ума
*

Marilyn Manson

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Просто вставить строчку выше в phpMyAdmin
Но аккуратно, при включении SEF сайт может сойти с ума

Воланд, спасибо!

Но меня интересует вопросы из 1 поста (по поводу перезаписи уже существующих кривых алиасов)
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Воланд, спасибо!

Но меня интересует вопросы из 1 поста (по поводу перезаписи уже существующих кривых алиасов)
собственно
написать скрипт, прогнать через него дамп данных из БД и вернуть обратно, технически процесс на 20 минут, но готового решения нет :)
*

Marilyn Manson

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
собственно

Так я об этом скрипте и спросил несколькими постами выше...
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
а что о нем спрашивать? его писать надо
или самому или за деньги
*

Marilyn Manson

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
а что о нем спрашивать? его писать надо
или самому или за деньги

Написал свой вариант, но он выдает ошибку: Fatal error: Using $this when not in object context in ...\update_alias.php on line 20.

20 строка - это: if(trim(str_replace('-','',$this->alias)) == '')

Код скрипта:

Код
<?php

$MySQLHost = '';
$MySQLUser = '';
$MySQLPassword = '';
$MySQLDB = '';

$id = @mysql_connect($MySQLHost,$MySQLUser,$MySQLPassword);
$db = @mysql_select_db($MySQLDB);

if($id == 0 || $db == 0) {
// Problems with MySQL connection
echo 'MySQL connection error';
exit;

}

if(trim(str_replace('-','',$this->alias)) == '')
{
  $tr = array(
   "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
   "Д"=>"d","Е"=>"e","Ж"=>"j","З"=>"z","И"=>"i",
   "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
   "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
   "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch",
   "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"",
   "Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
   "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
   "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
   "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
   "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
   "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
   "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
   " "=>"-","!"=>"","?"=>"",","=>"","."=>"",
   );
   $this->title = trim($this->title," ");
   $this->alias = strtr($this->title,$tr);
  
   $sql = "UPDATE jos_content SET alias = '".$this->alias."' WHERE title = '".$this->title."'";
}

?>

Помогите, пожалуйста, исправить... в программинге не так силен
*

Marilyn Manson

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Разве никто не знает в чем проблема? Подскажите, пожалуйста...
*

k_voronin

  • Новичок
  • 7
  • 1 / 0
rewrite_alias_content.php
Код
<?php
$db_type = 'mysql';
$db_host = '';
$db_name = '';
$db_username = '';
$db_password = '';
$db_prefix = 'jos_';
$p_connect = false;


include 'mysql.php';

function error()
{
$result['error_sql'] = @current(@end($this->saved_queries));
$result['error_no'] = @mysql_errno($this->link_id);
$result['error_msg'] = @mysql_error($this->link_id);

return $result;
}

  // функция превода текста с кириллицы в траскрипт
  function encodestring($st)
  {
    // Сначала заменяем "односимвольные" фонемы.
    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
    "abvgdeeziyklmnoprstufh'iei");
    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
    "abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"ABVGDEEZIYKLMNOPRSTUFH'IEI",
    "abvgdeeziyklmnoprstufh'iei");
    // Затем - "многосимвольные".
    $st=strtr($st,
                    array(
                        "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
                        "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
                        "Ж"=>"zh", "Ц"=>"ts", "Ч"=>"ch", "Ш"=>"sh",
                        "Щ"=>"shch","Ь"=>"", "Ю"=>"yu", "Я"=>"ya",
                        "ї"=>"i", "Ї"=>"yi", "є"=>"ie", "Є"=>"ye", " "=>"-", "."=>""
                        )
             );
    // Возвращаем результат.
    return $st;
  }


// Create the database object (and connect/select db)
$db = new DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, false);



$result = $db->query('SELECT id, title, alias FROM jos_content');


if ($db->num_rows($result))
{

while ($menu_data = $db->fetch_assoc($result))
{
$new_alias=encodestring($menu_data['title']);
$result1 = $db->query('UPDATE jos_content SET alias = "'.$new_alias.'" WHERE id = "'.$menu_data['id'].'"');
echo $new_alias;
echo '<br>';

}
}




?>

rewrite_alias_menu.php
Код
<?php
$db_type = 'mysql';
$db_host = '';
$db_name = '';
$db_username = '';
$db_password = '';
$db_prefix = 'jos_';
$p_connect = false;


include 'mysql.php';

function error()
{
$result['error_sql'] = @current(@end($this->saved_queries));
$result['error_no'] = @mysql_errno($this->link_id);
$result['error_msg'] = @mysql_error($this->link_id);

return $result;
}

  // функция превода текста с кириллицы в траскрипт
  function encodestring($st)
  {
    // Сначала заменяем "односимвольные" фонемы.
    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
    "abvgdeeziyklmnoprstufh'iei");
    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
    "abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"ABVGDEEZIYKLMNOPRSTUFH'IEI",
    "abvgdeeziyklmnoprstufh'iei");
    // Затем - "многосимвольные".
    $st=strtr($st,
                    array(
                        "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
                        "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
                        "Ж"=>"zh", "Ц"=>"ts", "Ч"=>"ch", "Ш"=>"sh",
                        "Щ"=>"shch","Ь"=>"", "Ю"=>"yu", "Я"=>"ya",
                        "ї"=>"i", "Ї"=>"yi", "є"=>"ie", "Є"=>"ye", " "=>"-", "."=>""
                        )
             );
    // Возвращаем результат.
    return $st;
  }


// Create the database object (and connect/select db)
$db = new DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, false);



$result = $db->query('SELECT id, name, alias FROM jos_menu');


if ($db->num_rows($result))
{

while ($menu_data = $db->fetch_assoc($result))
{
$new_alias=encodestring($menu_data['name']);
$result1 = $db->query('UPDATE jos_menu SET alias = "'.$new_alias.'" WHERE id = "'.$menu_data['id'].'"');
echo $new_alias;
echo '<br>';

}
}




?>


mysql.php
Код
<?php
/***********************************************************************

  Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)

  This file is part of PunBB.

  PunBB is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 2 of the License,
  or (at your option) any later version.

  PunBB is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  MA  02111-1307  USA

************************************************************************/


// Make sure we have built in support for MySQL
if (!function_exists('mysql_connect'))
exit('This PHP environment doesn\'t have MySQL support built in. MySQL support is required if you want to use a MySQL database to run this forum. Consult the PHP documentation for further assistance.');


class DBLayer
{
var $prefix;
var $link_id;
var $query_result;

var $saved_queries = array();
var $num_queries = 0;


function DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, $p_connect)
{
$this->prefix = $db_prefix;

if ($p_connect)
$this->link_id = @mysql_pconnect($db_host, $db_username, $db_password);
else
$this->link_id = @mysql_connect($db_host, $db_username, $db_password);

if ($this->link_id)
{
// UNCOMMENT THIS IF EXIST PROBLEMS WITH ENCODING
//@mysql_query("SET NAMES 'utf8'");
if (@mysql_select_db($db_name, $this->link_id))
return $this->link_id;
else
error('Unable to select database. MySQL reported: '.mysql_error(), __FILE__, __LINE__);
}
else
error('Unable to connect to MySQL server. MySQL reported: '.mysql_error(), __FILE__, __LINE__);
}


function start_transaction()
{
return;
}


function end_transaction()
{
return;
}


function query($sql, $unbuffered = false)
{
if (defined('PUN_SHOW_QUERIES'))
$q_start = get_microtime();

if ($unbuffered)
$this->query_result = @mysql_unbuffered_query($sql, $this->link_id);
else
$this->query_result = @mysql_query($sql, $this->link_id);

if ($this->query_result)
{
if (defined('PUN_SHOW_QUERIES'))
$this->saved_queries[] = array($sql, sprintf('%.5f', get_microtime() - $q_start));

++$this->num_queries;

return $this->query_result;
}
else
{
if (defined('PUN_SHOW_QUERIES'))
$this->saved_queries[] = array($sql, 0);

return false;
}
}


function result($query_id = 0, $row = 0)
{
return ($query_id)? @mysql_result($query_id, $row) : false;
}


function fetch_assoc($query_id = 0)
{
return ($query_id)? @mysql_fetch_assoc($query_id) : false;
}


function fetch_row($query_id = 0)
{
return ($query_id)? @mysql_fetch_row($query_id) : false;
}


function num_rows($query_id = 0)
{
return ($query_id)? @mysql_num_rows($query_id) : false;
}


function affected_rows()
{
return ($this->link_id)? @mysql_affected_rows($this->link_id) : false;
}


function insert_id()
{
return ($this->link_id)? @mysql_insert_id($this->link_id) : false;
}


function get_num_queries()
{
return $this->num_queries;
}


function get_saved_queries()
{
return $this->saved_queries;
}


function free_result($query_id = false)
{
return ($query_id)? @mysql_free_result($query_id) : false;
}


function escape($str)
{
if (is_array($str))
return '';
else if (function_exists('mysql_real_escape_string'))
return mysql_real_escape_string($str, $this->link_id);
else
return mysql_escape_string($str);
}


function error()
{
$result['error_sql'] = @current(@end($this->saved_queries));
$result['error_no'] = @mysql_errno($this->link_id);
$result['error_msg'] = @mysql_error($this->link_id);

return $result;
}


function close()
{
if ($this->link_id)
{
if ($this->query_result)
@mysql_free_result($this->query_result);

return @mysql_close($this->link_id);
}
else
return false;
}
}

*

Diman

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
k_voronin Спасибо большое! видно что в базе данных всё поменялось. Но размещенные материалы в виде блога к примеру почему то так и имеют ссыили прежнего вида. Попробовал присвоить пункт меню открывающий этот материал, тогда меняется на странице блога.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как отключить стандартный счетчик просмотров материалов

Автор Akksimo

Ответов: 5
Просмотров: 5335
Последний ответ 25.12.2019, 16:56:29
от nikolaevevge
Убрал в настройках материалов "Заголовок как ссылка" - "нет". И в разделе ссылки с заголовков исчезл

Автор Adrian1111

Ответов: 6
Просмотров: 3402
Последний ответ 22.03.2018, 22:17:44
от palexa
Тотальное изменение урлов на ЧПУ

Автор JohnGonzo

Ответов: 9
Просмотров: 4390
Последний ответ 05.11.2017, 08:35:58
от JohnGonzo
Расширение - Фильтр выводимых материалов по различным параметрам.

Автор Liana

Ответов: 4
Просмотров: 3914
Последний ответ 02.11.2016, 21:51:12
от SeBun
Re: Изменение таблиц базы данных

Автор ZAlex60

Ответов: 4
Просмотров: 1548
Последний ответ 23.09.2016, 09:57:14
от ZAlex60