Новости 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 Гость просматривают эту тему.
  • 16 Ответов
  • 4549 Просмотров
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Искаженные аватарки
« : 28.10.2012, 10:18:48 »
Выводится искаженные аватарки в разделах, там, где есть показ аватарок и в дополнительных модулях.
Настройки общие в роде бы разыскал \www\components\com_alphauserpoints\assets\phpThumb\phpthumb.class.php, но не знаю, что
именно править. Подскажите, пожалуйста.
Скрин: http://rghost.ru/41201856
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Re: Искаженные аватарки
« Ответ #1 : 29.10.2012, 03:54:16 »
Опишите подробнее... о каких разделах идет речь?
"The Lord Of A SandBox"
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #2 : 29.10.2012, 09:22:50 »
Опишите подробнее... о каких разделах идет речь?

Разделы "Последняя активность", "Список медалей", "Настрока пользовательского аккаунта" и везде в них выводятся вытянутые в высоту аватарки, так думаю, что за вытянутость отвечает height с лишним размером, но вот только в каком коде править не могу знать.
Еще скрин аватарки с "Настрока пользовательского аккаунта" http://rghost.ru/41223514
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Re: Искаженные аватарки
« Ответ #3 : 29.10.2012, 12:48:01 »
Теперь ясно. Эта проблема связана с тем, что у пользователей прямоугольные аватары, а вывод написан так, что они в любом случае будут квадратными.
Варианта два:
- либо принуждать пользователей загружать квадратные аватары (например в родном аккаунте AUP по-другому не загрузишь);
- либо переписывать CSS для всех раскладок, которые вы перечислили и в helpers.php убирать значение ширины и высоты.

Вот хак, который можно сделать.
Найдите в ...home.../components/com_alphauserpoints/helpers/helpers.php
код:
Код: php-brief
$setheight = ( $height!='' )? 'height="'.$height.'"' : '';
$setwidth  = ( $width!=''  )? 'width="'.$width.'"'   : 'width="'.$height.'"';
$setwidth  = ( $width!=''  )? 'width="'.$width.'"'   : '';
и замените на:
Код: php-brief
$reswidth = imagesx($avatar);
$resheight = imagesy($avatar);
if ($reswidth < $resheight){$setwidth = 'width=48px'; $setheight = '';}
при этом в настройках меню этих раскладок должен быть указан размер аватарок тоже 48px

- удачи ;)
"The Lord Of A SandBox"
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #4 : 13.11.2012, 11:05:34 »
Благодарю за ответ! В моем файле разыскал код, только похожий, а именно

Цитировать
$avatar = '';
      
$setheight = ( $height!='' )? 'height="'.$height.'"' : '';
$setwidth  = ( $width!=''  )?

'width="'.$width.'"'   : 'width="'.$height.'"';
      
if ( $width=='' ) $width = $height;
   
заменил какой есть в настройках меню выставил размер 48px.

Размер теперь растянулся только в ширину и не у всех аватарок.
Скрин:
http://rghost.ru/41538263
http://rghost.ru/41538282
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Re: Искаженные аватарки
« Ответ #5 : 13.11.2012, 20:28:43 »
Если честно, не понял - что теперь не устраивает? Чего вам хочется добиться?
"The Lord Of A SandBox"
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #6 : 13.11.2012, 21:16:45 »
Если честно, не понял - что теперь не устраивает? Чего вам хочется добиться?

48х48. Мне нужен размер, как у стандартных аватарок JomSocial.
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Re: Искаженные аватарки
« Ответ #7 : 14.11.2012, 07:10:30 »
1. Прямоугольные аватарки теперь не искажаются, причем как вертикальные, так и горизонтальные.
2. Чтобы они выводились в квадратном контейнере - оберните их в div и пропишите для него CSS.
"The Lord Of A SandBox"
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #8 : 14.11.2012, 22:59:46 »
т.е. если взять например код аватарки из модуля AlphaUserPoints - Lastest activity и завернуть его в div со стилем?

Цитировать
<?php
echo '<a href="'.$profil.'">';
echo getAvatar( $useAvatarFrom, $userinfo, 42 );
echo '</a>';
?>

а именно
<div class=mod_last_ava>
<?php
echo '<a href="'.$profil.'">';
echo getAvatar( $useAvatarFrom, $userinfo, 42 );
echo '</a>';
?>
</div>

указав в CSS height:48px, то изменений нет.
« Последнее редактирование: 14.11.2012, 23:06:27 от 321 »
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #9 : 14.11.2012, 23:11:09 »
не ужели автор AlphaUserPoints не проверял, как выглядят аватарки после настроек для JomSocial??
или только я один такой у кого показ Неправильный.
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Re: Искаженные аватарки
« Ответ #10 : 15.11.2012, 06:31:35 »
указав в CSS height:48px, то изменений нет.
попробуйте прописать CSS контейнера, напр.:
Код: css
div.mod_last_ava {
border : 1px solid #ccc;
background-color : #e0e0e0;
width : 51px;
height : 51px;
float : left;
padding : 0 0 3px 3px;
text-align : center;
}

не ужели автор AlphaUserPoints не проверял, как выглядят аватарки после настроек для JomSocial??
У автора есть нативные аватары AUP...
"The Lord Of A SandBox"
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #11 : 15.11.2012, 17:31:48 »
оказывается размер аватарки JomSocial 46х46.

прописал
Код: css
div.mod_last_ava {
border : 1px solid #ccc;
background-color : #e0e0e0;
width : 51px;
height : 51px;
float : left;
padding : 0 0 3px 3px;
text-align : center;
}

получается, что на скрине
http://rghost.ru/41584459

может из-за размера, который уже указан в коде, а именно
Цитировать
, 42
??
« Последнее редактирование: 15.11.2012, 17:48:54 от 321 »
*

migus

  • Moderator
  • 992
  • 144 / 0
  • OPEN THE BOX
Re: Искаженные аватарки
« Ответ #12 : 15.11.2012, 23:00:35 »
может из-за размера, который уже указан в коде, а именно ??
Конечно... пересчитайте и измените CSS. Вот хороший ресурс вам в помощь.
- удачи ;)
"The Lord Of A SandBox"
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #13 : 23.11.2012, 16:43:20 »
Конечно... пересчитайте и измените CSS. Вот хороший ресурс вам в помощь.
- удачи ;)
Благодарю за совет!
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Искаженные аватарки
« Ответ #14 : 23.11.2012, 16:53:37 »
Задание не соответствующих значений изображений стилями CSS. Как называется такой подход сами догадываетесь.
Один из правильных ответов здесь проскакивал
Цитировать
либо принуждать пользователей загружать квадратные аватары
Можно еще установить какой нибудь плагин или расширение которое изменяло размер изображений и использовать приведенное как аваторку.
Вот примеры аналогичного ресайза изображений, но для других целей. Я думаю адаптировать под ваш компонент будет несложно
Создание превьюшек при сохранении материала
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #15 : 23.11.2012, 21:06:40 »
Вариант с
Цитировать
либо принуждать пользователей загружать квадратные аватары
конечно отличный был бы, если бы еще знать тот самый код для правки. Как, я понимаю за загрузку изображений в JomSocial отвечает \www\components\com_community\helpers\image.php  и именно в нем нужно искать и прописывать код для принудительной загрузки квадратных аватаров?
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Искаженные аватарки
« Ответ #16 : 21.07.2014, 22:18:49 »
Актуально!

Чем может быть вызвано плохое качество изображения аватаров?
http://rghost.ru/57020905
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не отображаются аватарки в модулях

Автор lehantrop

Ответов: 12
Просмотров: 1903
Последний ответ 08.11.2015, 18:21:49
от vipiusss
Как изменить размер аватарки в профиле?

Автор Сergei

Ответов: 2
Просмотров: 3818
Последний ответ 08.03.2013, 19:30:22
от migus