Новости Joomla

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+). При отображении форм компонента в админке раньше разработчикам нужно было описывать скрытые поля в лейаутах. И выглядело это так:

<?php     // Это файл в /layouts/components/com_component/your_layout.php?><input type="hidden" name="task" value=""><input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"><input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"><?php echo HTMLHelper::_('form.token'); ?>
Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.
// В Controller/View добавляем поля$this->form  ->addControlField('task', '')  ->addControlField('return', $input->getBase64('return', ''))  ->addControlField('forcedLanguage', $forcedLanguage);
А в layout'е просто используем метод
renderControlFields()
// В layout формыecho $this->form->renderControlFields();
Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.Смотреть
Pull Request@joomlafeed#joomla #разработка #php

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

noszone

  • Захожу иногда
  • 59
  • 2 / 0
  • Люблю Жумлу и ненавижу...
Скрипт работает, но проблема с русским языком.
В базу не импортируются(просто пусто, пробелы) слова на русском языке.
База - UTF-8, сравнение UTF-8.
csv file - из Excel.

Код: php
<?php
include "config.php";
mysql_query("truncate table jos_emails_list");
$file_list_string=mysql_query("select * from info2");
if (!$file_list_string) exit(mysql_error());
[b]setlocale(LC_ALL, "ru_RU");[/b]
while(list($auto_url,$shop_name,$shop_url)=mysql_fetch_row($file_list_string))
{$filename=$shop_url;

     $handle = fopen("$filename", "r");
      echo"$filename";
     while (($data = fgetcsv($handle, 1000, ","))!== FALSE)
     {
     $import="INSERT into jos_emails_list(name,email,city,country) values('$data[0]','$data[1]','$data[2]','$data[3]')";
     mysql_query($import) or die(mysql_error());
     }
         fclose($handle);
     }

     print "Import done";

?>

Пробовал использовать iconv, может у меня неправильно пполучилось - толку нет.
Кстати, я выделил жирным, после этого появились крякозябры. Теперь от них не могу избавиться.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Скрипт импорта файла csv в MySql базу
« Ответ #1 : 18.10.2010, 13:31:41 »
$text = iconv('windows-1251', 'utf-8', $text); //перекодировка
 $text=mysql_escape_string($text); //экранирование для безопасной вставки
*

noszone

  • Захожу иногда
  • 59
  • 2 / 0
  • Люблю Жумлу и ненавижу...
Re: Скрипт импорта файла csv в MySql базу
« Ответ #2 : 18.10.2010, 14:07:31 »
Не идёт.
Код: php
<?php
include "config.php";
mysql_query("truncate table jos_emails_list");
$file_list_string=mysql_query("select * from info2");
if (!$file_list_string) exit(mysql_error());
setlocale(LC_ALL, "ru_RU");
while(list($auto_url,$shop_name,$shop_url)=mysql_fetch_row($file_list_string))
{$filename=$shop_url;

     $handle = fopen("$filename", "r");
     while (($data = fgetcsv($handle, 1000, ","))!== FALSE)
     {
        $data[0] = iconv('windows-1251','utf-8',$data[0]); //перекодировка
$data[1] = iconv('windows-1251','utf-8',$data[1]); //перекодировка
$data[2] = iconv('windows-1251','utf-8',$data[2]); //перекодировка
$data[3] = iconv('windows-1251','utf-8',$data[3]); //перекодировка
$data[0]=mysql_escape_string($data[0]);
$data[1]=mysql_escape_string($data[1]);
$data[2]=mysql_escape_string($data[2]);
$data[3]=mysql_escape_string($data[3]);
     $import="INSERT into jos_emails_list(name,email,city,country) values('$data[0]','$data[1]','$data[2]','$data[3]')";
     mysql_query($import) or die(mysql_error());
     }
         fclose($handle);
     }

     print "Import done";

?>

У екселевского файла csv кодировка какая может быть? Notepad ++ показывает ANSI.
Я вот никак въехать не могу, ANSI=Windows1251, or ANSI=UTF-8?
Кстати на Денвере всё работало. Русский язык отображался без проблем.
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Re: Скрипт импорта файла csv в MySql базу
« Ответ #3 : 18.10.2010, 14:16:38 »
var_dump($data) или print_r($data)
и смотреть что там и в какой кодировке.
*

noszone

  • Захожу иногда
  • 59
  • 2 / 0
  • Люблю Жумлу и ненавижу...
Re: Скрипт импорта файла csv в MySql базу
« Ответ #4 : 18.10.2010, 14:43:13 »
Код: php
<?php
include "config.php";
mysql_query("truncate table jos_emails_list");
$file_list_string=mysql_query("select * from info2");
if (!$file_list_string) exit(mysql_error());
setlocale(LC_ALL, "ru_RU");
while(list($auto_url,$shop_name,$shop_url)=mysql_fetch_row($file_list_string))
{$filename=$shop_url;

     $handle = fopen("$filename", "r");
     while (($data = fgetcsv($handle, 1000, ","))!== FALSE)
     {
        $data[0] = iconv('windows-1251','utf-8',$data[0]); //перекодировка
$data[1] = iconv('windows-1251','utf-8',$data[1]); //перекодировка
$data[2] = iconv('windows-1251','utf-8',$data[2]); //перекодировка
$data[3] = iconv('windows-1251','utf-8',$data[3]); //перекодировка
print_r($data);
$data[0]=mysql_escape_string($data[0]);
$data[1]=mysql_escape_string($data[1]);
$data[2]=mysql_escape_string($data[2]);
$data[3]=mysql_escape_string($data[3]);
print_r($data);
     $import="INSERT into jos_emails_list(name,email,city,country) values('$data[0]','$data[1]','$data[2]','$data[3]')";
     mysql_query($import) or die(mysql_error());
     }
         fclose($handle);
     }

     print "Import done";

?>
Вывод
Array (
  • => п»ї231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 1 ) Array (
  • => п»ї231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 1 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 2 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 2 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 3 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 3 ) Array (
  • => ljlkjlj [1] => lhjkhj [2] => 41212 [3] => ЛогикоРС? [4] => 4 ) Array (
  • => ljlkjlj [1] => lhjkhj [2] => 41212 [3] => ЛогикоРС? [4] => 4 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 5 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 5 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 6 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 6 ) Array (
  • => 231 [1] => lkjhlkjh [2] => 41212 [3] => СотТел [4] => 7 ) Array (
  • => 231 [1] => lkjhlkjh [2] => 41212 [3] => СотТел [4] => 7 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 8 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 8 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 9 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 9 ) Array (
  • => зщхзщхз [1] => олдложд [2] => 41212 [3] => ЛогикоРС? [4] => 10 ) Array (
  • => зщхзщхз [1] => олдложд [2] => 41212 [3] => ЛогикоРС? [4] => 10 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 11 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 11 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 12 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 12 ) Array (
  • => 231 [1] => mlkj [2] => 41212 [3] => СотТел [4] => 13 ) Array (
  • => 231 [1] => mlkj [2] => 41212 [3] => СотТел [4] => 13 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 14 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => ЛогикоРС? [4] => 14 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 15 ) Array (
  • => 231 [1] => 1231 [2] => 41212 [3] => СотТел [4] => 15 ) Import done
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Скрипт импорта файла csv в MySql базу
« Ответ #5 : 18.10.2010, 14:45:45 »
noszone, ты можешь тупо пересохранитьт файл в другой кодировке, чтобы этот вопрос снять.
да, сам файл СКРИПТ, тоже в utf-8 без бом сохрани
*

noszone

  • Захожу иногда
  • 59
  • 2 / 0
  • Люблю Жумлу и ненавижу...
Re: Скрипт импорта файла csv в MySql базу
« Ответ #6 : 18.10.2010, 14:49:18 »
Тут вот в чём дело. Представим, что таких файлов много и они приходят от разных людей.
Список из урл файлов храниться в таблице info2.
Как сделать так, чтобы независимо от рег настроек и системной локали ВинХП, Виста 7, русский язык отображался без проблем?
Спасибо.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Скрипт импорта файла csv в MySql базу
« Ответ #7 : 18.10.2010, 14:54:00 »
ну так ты сделай хотя бы чтобы у тебя работал один пример. ты свой то файл не можешь поместить, о каких многих юзеров говоришь?
*

noszone

  • Захожу иногда
  • 59
  • 2 / 0
  • Люблю Жумлу и ненавижу...
Re: Скрипт импорта файла csv в MySql базу
« Ответ #8 : 18.10.2010, 15:18:41 »
Вывод
Array (
  • => 23123;4ыва;45345;ывфыв [1] => [2] => [3] => ) Array (
  • => 23123;4ыва;45345;ывфыв [1] => [2] => [3] => ) Array (
  • => 213;2ваыва;345345;ываыва [1] => [2] => [3] => ) Array (
  • => 213;2ваыва;345345;ываыва [1] => [2] => [3] => ) Array (
  • => 3;2ваыва;3453;asda [1] => [2] => [3] => ) Array (
  • => 3;2ваыва;3453;asda [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;5;sd [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;5;sd [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;435;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;435;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;345;ыпа [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;345;ыпа [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;3;asda [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;3;asda [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;453;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;453;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;45;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;45;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;34;ываыва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;34;ываыва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;5;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;5;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;345;ыв [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;345;ыв [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;34;аы [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;34;аы [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;53;ваыва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;53;ваыва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;45;ы [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;45;ы [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;34;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;34;ва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;5;ываыва [1] => [2] => [3] => ) Array (
  • => вфвфыв;2ваыва;5;ываыва [1] => [2] => [3] => ) Import done


В базе всё равно крякозябры, в жумле на фроннтенде тоже самое.
Ничего не понимаю
*

noszone

  • Захожу иногда
  • 59
  • 2 / 0
  • Люблю Жумлу и ненавижу...
Re: Скрипт импорта файла csv в MySql базу
« Ответ #9 : 18.10.2010, 15:21:14 »
Разве Виндоувсу не всё равно? Независимо от редактора (блокнот, Word пад,ворд) он сохраняет в утф 16 я читал. Получается база виновата? А чем утф-8 ей не нравиться..
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Скрипт импорта файла csv в MySql базу
« Ответ #10 : 18.10.2010, 15:26:03 »
noszone, СОВСЕМ не всё равно.
ставь notepad++
смотри в какой кодировке у тебя база.
файл скрипт сохраняй строго как utf, файл, который ВЫВОДИТ из базы тоже должен содержать хаголовок в utf
*

noszone

  • Захожу иногда
  • 59
  • 2 / 0
  • Люблю Жумлу и ненавижу...
Re: Скрипт импорта файла csv в MySql базу
« Ответ #11 : 18.10.2010, 15:51:21 »
SHOW VARIABLES LIKE "character\_set\_database"; = утф 8
сравнение - утф -8
Все файлы скрипта и компонента вывода данных в таблицу на фронт - перевёл в утф-8.
При експорте из базы блокнот ++ показывает утф 8

Что ещё осталось сделать? Наверное ещё дома полазию на денвере, там всё пашет, только куда скорее всего копать?
*

maxsell

  • Новичок
  • 2
  • 0 / 0
Re: Скрипт импорта файла csv в MySql базу
« Ответ #12 : 22.03.2011, 14:38:24 »
добрый день уважаемые
Объясните где ошибка есть вот такой скрипт для загрузки csv в базу
Код
<?php
if (isset($f_file))
 {
  include("php/db.php");
  mysql_query("truncate table `hyundai`");
  $fp=fopen($f_file,"r");
  while(!feof($fp))
   {
    $arrstr=fgets($fp, 2000);
    $arr=explode(";",$arrstr);
    $prc=str_replace(",",".",$arr[4]);
    if ($arr[4]!="")
     {
      if ($arr[3]=="0") {$avail="n";} else {$avail="y";}
      $arr[1]=str_replace(" ","",$arr[1]);
      $arr[2]=strtolower($arr[2]);
      mysql_query("insert into `hyundai`(`cat`, `name`, `price`, `currency`, `available`) values('$arr[1]', '$arr[2]', '$prc', '$arr[5]', '$avail')");
      echo(mysql_error());
     }
   }
  fclose($fp);
  echo("Файл успешно загружен в базу данных.<br>");
 }
?>
в базе создал таблицу hyundai

текст в csv файле такой
Код
96407485/TA2068;Наконечник рулевой лев;644,00
96407486/TA2069;Наконечник рулевой прав;644,00
94580547;Направляющая выжимного подшипника Lanos Aveo;193,20
96350526;Направляющий ролик Laccetti  1,4  1,6;1035,00
96930074;Насос водяной =96352650;2346,00
96518977;Насос водяной =96666219;1545,60
96352650/Febi17507;Насос водяной =96930074;1706,60
94535236;Опорный подшипник Lacetti;368,00
96518121;Отбойник амортизатора Matiz;126,50
*

maxsell

  • Новичок
  • 2
  • 0 / 0
Re: Скрипт импорта файла csv в MySql базу
« Ответ #13 : 22.03.2011, 23:26:22 »
хелп
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор bigrash

Ответов: 10
Просмотров: 6329
Последний ответ 17.02.2024, 20:12:05
от Vastriet
Ошибка при загрузке модулей:MySQL server has gone away

Автор svskach

Ответов: 13
Просмотров: 6380
Последний ответ 31.01.2018, 10:56:15
от Evrokub
два файла htaccess

Автор panzerfater

Ответов: 0
Просмотров: 1707
Последний ответ 24.11.2017, 16:31:54
от panzerfater
Не видно ссылок на скачивание файла

Автор maximi

Ответов: 5
Просмотров: 1891
Последний ответ 23.10.2017, 21:21:30
от SeBun
Вместо главной страницы - содержимое файла корневого каталога index.php

Автор Igoritaly

Ответов: 2
Просмотров: 1938
Последний ответ 10.08.2017, 17:03:57
от Gosha5767