Новости Joomla

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

Спект

  • Новичок
  • 4
  • 0 / 0
Здравствуйте.
Я из РФ, браузер работает на кодировке Windows 1251. Создаю сайт на Joomla, и при добавлении страницы в пункт меню выводит такие символы Типичный . Понятное дело что это проблема с кодировкой. Подскажите что и где нужно прописать для корректной работы.
На скриншоте слева вверху картинка, а справа HTML код.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #1 : 23.06.2015, 11:05:28 »
в файле .хтасес пропишите кодировку по умолчанию --- UTF-8
*

Спект

  • Новичок
  • 4
  • 0 / 0
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #2 : 23.06.2015, 11:43:09 »
в файле .хтасес пропишите кодировку по умолчанию --- UTF-8

подскажите как?
по пути Z:\home\localhost\www\kapitalstroy\templates\corporate\font лежит сам .хтасес
в нем такие строки:
 <FilesMatch ".(ttf|otf|eot|woff)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #3 : 23.06.2015, 12:02:34 »
браузер работает на кодировке Windows 1251
Это что ж за браузер такой? Браузет отображет то, что дает ему сервер, в не зависимости от кодировки.

Joomla работает с UTF-8. Ваша проблема может заключаться в том, что таблицы в базе имеют кодировку, отличную от utf8_general. Проверьте таблицы.

Задать явно кодировку можно, добавив в htaccess строку
Код
AddDefaultCharset UTF-8
Этот файл должен лежать в Z:\home\localhost\www\kapitalstroy\, а не в папке шрифтов шаблона.

P.S. Так же возможна проблема со шрифтами, если в них отсутствует латиница. Смотрите, какие шрифты использует ваш шаблон.
« Последнее редактирование: 23.06.2015, 12:07:29 от SeBun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Спект

  • Новичок
  • 4
  • 0 / 0
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #4 : 23.06.2015, 13:40:53 »
Это что ж за браузер такой? Браузет отображет то, что дает ему сервер, в не зависимости от кодировки.

Joomla работает с UTF-8. Ваша проблема может заключаться в том, что таблицы в базе имеют кодировку, отличную от utf8_general. Проверьте таблицы.

Задать явно кодировку можно, добавив в htaccess строку
Код
AddDefaultCharset UTF-8
Этот файл должен лежать в Z:\home\localhost\www\kapitalstroy\, а не в папке шрифтов шаблона.

P.S. Так же возможна проблема со шрифтами, если в них отсутствует латиница. Смотрите, какие шрифты использует ваш шаблон.
Браузер Яндекс
Если хтассес добавлять в корень то сайт вообще не хочет работать
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #5 : 23.06.2015, 16:02:49 »
Если вы создаете сайт на Joomla, то этот файл есть по умолчанию в корневой папке сайта. Он может называться htaccess.txt. Обычно, когда сайт размещают на хостинге, его переименовывают в .htaccess. А Яндекс-браузер построен на основе движка Blink, на котором сделан Хром. И проблема однозначно не в нем.
« Последнее редактирование: 23.06.2015, 16:11:04 от SeBun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #6 : 23.06.2015, 16:12:44 »
проще всего в index.php шаблона прописать в начале:
Код
header('Content-Type: text/html; charset=utf-8');
*

Спект

  • Новичок
  • 4
  • 0 / 0
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #7 : 24.06.2015, 03:51:36 »
код index.php
<?php
/**
 * @package    Joomla.Site
 *
 * @copyright  Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

if (version_compare(PHP_VERSION, '5.3.10', '<'))
{
   die('Your host needs to use PHP 5.3.10 or higher to run this version of Joomla!');
}

/**
 * Constant that is checked in included files to prevent direct access.
 * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower
 */
define('_JEXEC', 1);

if (file_exists(__DIR__ . '/defines.php'))
{
   include_once __DIR__ . '/defines.php';
}

if (!defined('_JDEFINES'))
{
   define('JPATH_BASE', __DIR__);
   require_once JPATH_BASE . '/includes/defines.php';
}

require_once JPATH_BASE . '/includes/framework.php';

// Mark afterLoad in the profiler.
JDEBUG ? $_PROFILER->mark('afterLoad') : null;

// Instantiate the application.
$app = JFactory::getApplication('site');

// Execute the application.
$app->execute();

Куда прописывать: header('Content-Type: text/html; charset=utf-8'); ?
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Проблема с кодировкой UTF8 и W 1251
« Ответ #8 : 24.06.2015, 10:27:56 »
Цитировать
Куда прописывать: header('Content-Type: text/html; charset=utf-8');
эту строку прописывают в файл шаблона -- Z:\home\localhost\www\kapitalstroy\templates\corporate\ Если эти строки с файла шаблона, то искать надо исходный файл в котором выводится шапка (зависит от структуры шаблона)
Если правите исходные файлы сайта --- они должны иметь кодировку UTF-8
Как-то странно, что у Вас даже и адресная строка в крякозябликах.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с offcanvas для меню

Автор help-tend

Ответов: 14
Просмотров: 2889
Последний ответ 08.09.2021, 21:13:03
от gartes
Проблема с стилями (файлами) CSS

Автор Leo1986

Ответов: 17
Просмотров: 1414
Последний ответ 23.04.2021, 09:13:44
от Leo1986
Проблема с версткой шаблона на bootstrap4

Автор bartes

Ответов: 5
Просмотров: 1591
Последний ответ 03.02.2021, 16:46:10
от sivers
Helix Ultimate - Layout Builder Проблема

Автор romagromov

Ответов: 29
Просмотров: 5045
Последний ответ 13.03.2020, 22:26:00
от nick71
Проблема с выводом меню helix ultimate

Автор blind

Ответов: 0
Просмотров: 1318
Последний ответ 23.02.2020, 13:07:37
от blind