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

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
можно ли сделать более подробную карму, то есть больше ступенек
там по умолчанию ( то есть тока 6 ступенек)
0,5
1
2
3
4
5
А хотелось что бы было
0,5
1
1,5
2
2,5
3 ....  и.т.д.
ибо даже еще более подробнее
« Последнее редактирование: 11.01.2011, 21:52:19 от kharol »
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Вы хотите уменьшить шаг кармы или сделать ее больше 5?
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Откройте файл:
components/com_community/libraries/karma.php
Начиная со строки:
Код
else if ($points <= $config->get('point0') )
идет шаг кармы с присвоением результату соответствующей картинки.
Измените шаг:
Код
else if ($points <= $config->get('point0.5') )
и так далее (как Вам нравится)
Добавьте еще одну или несколько градаций в конце (если Вам мало будет 5 существующих)
Код
      if( $points > $config->get('point6') )
      {
         $filename = 'karma-6-6';
      }
Соответственно нарисовав новую картинку кармы karma-6-6.gif
И дав о ней знать здесь:
administrator/components/com_community/views/configuration/view.html.php

после строки 226 кодом:
Код
case 'point6':
$image = JURI::root(). 'components/com_community/templates/default/images/karma-6-6.gif';
break;
Затем в файле:
administrator/components/com_community/views/configuration/tmpl/karma.php
После:
Код
                            <tr>
                <td class="key">
                    <span class="hasTip" title="<?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>::<?php echo JText::_('CC KARMA POINTS TIPS'); ?>">
                        <?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>
                    </span>
                </td>
                <td valign="top">
                    <?php echo $this->getKarmaHTML( 'point5' , $this->config->get('point5') );?>
                </td>
            </tr>
Еще один шестой блок (если он у Вас крайний):
Код
         <tr>
            <td class="key">
               <span class="hasTip" title="<?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>::<?php echo JText::_('CC KARMA POINTS TIPS'); ?>">
                  <?php echo JText::_( 'CC KARMA POINTS GREATER THAN' ); ?>
               </span>
            </td>
            <td valign="top">
               <?php echo $this->getKarmaHTML( 'point6' , $this->config->get('point6') );?>
            </td>
         </tr>
ВАЖНО: следите за шагами кармы "point0" и т.д.
скорее всего Вам везде придется их подстраивать. Я не пробовал, но теоретически все получится.
« Последнее редактирование: 05.10.2010, 22:37:26 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
спасибо! завтра попробую и отпишусь
я так понял то что вы описали это увеличение кармы а не шаг кармы?
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Если не дробить на 0.5 и так далее, то сделайте просто добавление 6-го блока.
Если Вы хотите изменить шаг, то дробите "pointxx"
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

moskit

  • Захожу иногда
  • 64
  • 6 / 0
  • ......
А ни у кого не было проблем с отображением активности? Как то странно выглядит.Баллов почти такое же количество что и активность.В правилах начисления ни чего ни менял.

*

kharol

  • Moderator
  • 1721
  • 217 / 0
А в чем здесь странность? Активность активностью... А баллы набираются и учитываются согласно правилам описанным в "Системе баллов"
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Пытаюсь прикрутить торрент-трекер к сообществу. Насколько разумно будет позволить юзерам обменивать поинты на возможность скачать несколько Гб информации? Тут 2 варианта:
1) обрабатывать все запросы вручную (уменьшать рейтинг, но увеличивать трафик в компоненте торрента)
2) создать подарок в jPresent (которого у меня нет). Разные подарки - разный объем данных для скачиваний. Администратору останется только добавить объем... и, наверное, удалить подарок. Что так, что так - равносильно. Уж проще 1-й вариант.
Помог? Поставь(те) плюс в репутацию.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Вообще вопрос конечно интересный... русская смекалка нужна
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

nikolinho

  • Захожу иногда
  • 71
  • 0 / 0
Стандартно карма 5 рангов. хочу сделать 10.
кто знает подскажите.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #10 : 03.12.2010, 00:00:12 »
Стандартно карма 5 рангов. хочу сделать 10.
кто знает подскажите.
Читайте в этой теме выше
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

nikolinho

  • Захожу иногда
  • 71
  • 0 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #11 : 03.12.2010, 00:29:42 »
Читайте в этой теме выше
спасибо тебе большое!
*

Katya

  • Захожу иногда
  • 53
  • 1 / 1
Увеличиваем значения "Рейтинг / Карма"
« Ответ #12 : 23.12.2010, 20:52:48 »
Можно ли как-то добавить условия, при которых добавляются баллы пользователям. Хотелось бы сделать как-то так, чтобы за каждого приглашенного в сеть друга, пользователь получал сколько-то баллов. И как узнать кто и сколько пригласил?))
*

Жук

  • Захожу иногда
  • 79
  • 7 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #13 : 28.12.2010, 19:52:45 »
А ни у кого не было проблем с отображением активности? Как то странно выглядит.Баллов почти такое же количество что и активность.В правилах начисления ни чего ни менял.


Это картинка из Alpha UserPoints?
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #14 : 28.12.2010, 20:20:10 »
Нет, это отображение баллов в шаблоне blueface
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #15 : 03.01.2011, 01:48:06 »
вот решил сегодня сделать подробную карму, и думаю ну все уже все работает, а тут нет оказалось что в админке все нормально а как только меняю балы пользователю так тока доходит переваливает 300 (смотрите скрин) так сразу становится на сайте 100% карма, почему?
все файлы в приложении, картинки кармы не стал атачить итак думаю понятно))


[вложение удалено Администратором]
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #16 : 03.01.2011, 02:37:52 »
Дробили так как я писал?
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #17 : 03.01.2011, 11:49:09 »
да дробил вот  так типа
Код
			$filename = 'karma-0-11';
}
else if ($points <= $config->get('point0') )
{
$filename = 'karma-0.5-11';
}

if( $points > $config->get('point1') ) {
$filename = 'karma-1-11';
}

if( $points > $config->get('point2') )
{
$filename = 'karma-2-11';
}

if( $points > $config->get('point3') )
{
$filename = 'karma-3-11';
}

if( $points > $config->get('point4') )
{
$filename = 'karma-4-11';
}

if( $points > $config->get('point5') )
{
$filename = 'karma-5-11';
}

      if( $points > $config->get('point6') )
      {
         $filename = 'karma-6-11';
      }
        if( $points > $config->get('point7') )
      {
         $filename = 'karma-7-11';
      }
        if( $points > $config->get('point8') )
      {
         $filename = 'karma-8-11';
      }
        if( $points > $config->get('point9') )
      {
         $filename = 'karma-9-11';
      }
        if( $points > $config->get('point6') )
      {
         $filename = 'karma-10-11';
      }
        if( $points > $config->get('point6') )
      {
         $filename = 'karma-11-11';
      }
$imageFile .= $filename;
ну и соответственно в других файлах так же
может вы мне забыли где то еще че поменять?
подскажите пожалуйста очень нужно
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #18 : 03.01.2011, 16:01:26 »
может вы мне забыли где то еще че поменять?
Интересная фраза...
 А Вам не приходила в голову идея, что это Вы допускаете ошибки?
 Посмотрите, что вы "нарисовали" в шагах, начиная отсюда:
 $filename = 'karma-9-11';
Я предупреждал о том, что нужно следить за шагами кармы и почему шагом у Вас выбрана единица?
Экспериментируйте... результат будет

Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #19 : 03.01.2011, 16:16:10 »
спасибо)) да там действительно ошибка была))) исправил и все пошло как по маслу
кому надо карму до 12 шагов то выкладываю файлы (версия JomSocial 2.0.4, на более ранних не побывал)
файлы просто заменить
вот так будет выглядеть ваша карма после замены файлов (картинки прилагаются, но каждый может нарисовать под себя)


[вложение удалено Администратором]
Прошлое лишено смысла
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Увеличиваем значения "Рейтинг / Карма"
« Ответ #20 : 03.01.2011, 16:27:25 »
Немного оффтопа - идея хорошая, но такой гимор каждый раз это менять после обновления версии...
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Увеличиваем значения "Рейтинг / Карма"
« Ответ #21 : 03.01.2011, 16:31:23 »
не много там менять
тем болие там тока три файла и я думаю с новыми версиями они не будут меняться (эти фалы) разве что они сами сделают такую карму )))
Прошлое лишено смысла
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Увеличиваем значения "Рейтинг / Карма"
« Ответ #22 : 03.01.2011, 16:38:46 »
Немного оффтопа - идея хорошая, но такой гимор каждый раз это менять после обновления версии...
Ой, bzikk ... знал бы ты сколько всякого хлама я перетаскиваю из версии в версию ручным вышиванием... :)
А иначе никак :)
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

cresh12

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Кто знает как сделать чтобы Карма брала баллы не из JomSocial, а из AlphaUserPoints?
Заранее спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Рейтинг как в контакте!

Автор SuperStar

Ответов: 6
Просмотров: 1954
Последний ответ 23.05.2011, 20:44:46
от JomTime
Не показывается карма :(

Автор kulybko

Ответов: 2
Просмотров: 1710
Последний ответ 26.02.2010, 17:33:37
от kulybko