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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Нужна помощь я умный но не настолько...  ::)
/components/com_community/templates/default/facebook.button.php

Код там такой:
Код
/**
 * @package JomSocial
 * @copyright (C) 2008 by Slashes & Dots Sdn Bhd - All rights reserved!
 * @license GNU/GPL, see LICENSE.php
 */
 
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die();
?>
<!-- begin: COMMUNITY_FREE_VERSION -->
<?php if( !COMMUNITY_FREE_VERSION ) { ?>
<div id="fb-root"></div>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
window.fbAsyncInit = function() {
    FB.init({appId: '<?php echo $config->get('fbconnectkey');?>', status: false, cookie: true, xfbml: true});

    /* All the events registered */
    FB.Event.subscribe('auth.login', function(response) {
joms.connect.update();
  });
};
</script>
<fb:login-button perms="read_stream,publish_stream,offline_access,email,user_birthday,status_update,user_status"><?php echo JText::_('CC SIGN IN WITH FACEBOOK');?></fb:login-button>
<?php } ?>
<!-- end: COMMUNITY_FREE_VERSION -->


Примерно так:
Код
<div id="fb-root">
    </div>
    <script type="text/javascript">
        window.fbAsyncInit = function () {
            FB.init({ appId: '<?php echo $config->get('fbconnectkey');?>', status: true, cookie: true, xfbml: true });

            /* All the events registered */
            FB.Event.subscribe('auth.login', function (response) {
                // do something with response
                alert("login success");
            });
            FB.Event.subscribe('auth.logout', function (response) {
                // do something with response
                alert("logout success");
            });

            FB.getLoginStatus(function (response) {
                if (response.session) {
                    // logged in and connected user, someone you know
                    alert("login success");
                }
            });
        };
        (function () {
            var e = document.createElement('script');
            e.type = 'text/javascript';
            e.src = document.location.protocol +
            '//connect.facebook.net/en_US/all.js';
            e.async = true;
            document.getElementById('fb-root').appendChild(e);
        } ());
    </script>

или

Этот код не совсем прижился
http://stackoverflow.com/questions/3701972/facebook-opengraph-customize-fb-login-button

Код
<fb:login-button show-faces="true" max-rows="9" perms="email" autologoutlink="true" onlogin="window.location = 'http://www.example.com/facebook/facebook_test/'"></fb:login-button>

http://developers.facebook.com/docs/reference/javascript/FB.login

Код
FB.login(function(response) {
  if (response.session) {
    if (response.perms) {
      // user is logged in and granted some permissions.
      // perms is a comma separated list of granted permissions
    } else {
      // user is logged in, but did not grant any permissions
    }
  } else {
    // user is not logged in
  }
}, {perms:'read_stream,publish_stream,offline_access'});


Вот код вроде полный но не работает:
 
Код
        <div id="fb-root"></div>
        <script>
          //initializing API
          window.fbAsyncInit = function() {
            FB.init({appId: '<?php echo $config->get('fbconnectkey');?>', status: true, cookie: true,
                     xfbml: true});
          };
          (function() {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
              '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
          }());
        </script>

        <!-- custom login button -->
        <a href="#" onclick="fblogin();return false;"><img src="images/my_login.png"></a>


        <script>
          //your fb login function
          function fblogin() {
            FB.login(function(response) {
              //...
            }, {perms:'read_stream,publish_stream,offline_access,email,user_birthday,status_update,user_status'});
          }
        </script>

*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #1 : 24.11.2010, 06:46:54 »
Вы вообще что хотите? Если самоцель - "переделать кнопку", то просто перекрасьте её или переверните на 180˚
« Последнее редактирование: 24.11.2010, 06:53:03 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #2 : 24.11.2010, 07:20:02 »
Вы вообще что хотите? Если самоцель - "переделать кнопку", то просто перекрасьте её или переверните на 180˚
Дело в том, что кнопка иногда не загружается... Когда не может соединиться с сервером FB. Можете убедиться на локалке.
Всё что не анархия, то фашизм...
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #3 : 24.11.2010, 09:17:48 »
Ну на локалке скорее всего поэтому и не может соединиться....
Я давно конечно не пробовал, но раньше проблем не ощущал...
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #4 : 24.11.2010, 09:30:28 »
Ну на локалке скорее всего поэтому и не может соединиться....
Я давно конечно не пробовал, но раньше проблем не ощущал...
У меня на хостинге эта кнопка через раз загружается. Потому меня интересует тема, что-бы переделать эту кнопку. Да и вообще модуль hellome давно нужно перебрать. Он глючныи.. Опера с ним криво работает, приходиться лезть в шаблон и править. И сама синхронизация с fb в опере не работает.
Всё что не анархия, то фашизм...
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #5 : 24.11.2010, 15:19:14 »
Ну так кто же ставит хелло-ми без переделки? : )

Кстати, да, авторизация в Опере через ФБ глючит. Давно говорил, что Опера еще хуже ИЕ. Там хотя бы все косяки известны. А Опера каждый раз подкидывает новые загадочные сюрпризы.

Хелло-ми сам по себе в Опере нормальный. Глючный - что именно глючного?
+
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #6 : 24.11.2010, 15:36:17 »
Ну так кто же ставит хелло-ми без переделки? : )

Кстати, да, авторизация в Опере через ФБ глючит. Давно говорил, что Опера еще хуже ИЕ. Там хотя бы все косяки известны. А Опера каждый раз подкидывает новые загадочные сюрпризы.

Хелло-ми сам по себе в Опере нормальный. Глючный - что именно глючного?
вёрстка шаблона у разработчиков...

Код
			<p id="form-login-remember">
<label for="remember">
<?php echo JText::_('Remember me')?>
<input type="checkbox" name="remember" id="remember" value="yes" alt="Remember Me" />
</label>
</p>

а нужно:

Код
				<p id="form-login-remember">

<input type="checkbox" name="remember" id="remember" value="yes" alt="Remember Me" />
<label for="remember">
<?php echo JText::_('Remember me')?>
</label>
</p>

если не изменить... то на "запомнить меня" не нажать будет в Опере.
Всё что не анархия, то фашизм...
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #7 : 24.11.2010, 15:47:04 »
А почему надпись вынесена за лейбл? Это единственное отличие? у меня вообще эта кнопка скрыта, она мешает внешнему виду : )
+
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #8 : 24.11.2010, 16:01:34 »
А почему надпись вынесена за лейбл? Это единственное отличие? у меня вообще эта кнопка скрыта, она мешает внешнему виду : )
Ну в целом да...

Но нужен др. модуль если честно. Например, мне бы хотелось видеть в меню создать блог, управление аккаунтом блога, в обще хорошо бы вынести в JomSocial-шаблон или в крайнем случае в меню модуля hellome.

Пол года назад я делал такой модуль для собственных нужд, по типу javascript аккордеона. Видимо от этого мне не уйти ведь нужно встраивать ешё ссылку на профиль VM. И  нужно сделать как то более компактно отображение запросов дружбы, ЛС, а так-же добавить запросы в группы, мероприятия и т д.
Всё что не анархия, то фашизм...
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #9 : 24.11.2010, 16:23:08 »
ну у меня два варианта хелло-ми
http://explorado.ru
http://test.domidacha.com

оба вверху справа, первый совсем компактный, особенно после авторизации, второй с наименьшими переделками + фейсбук

хотя, конечно, авторзация частенько очень мешается, хотя и нужна... а в сайдбары не хочется ее ставить
+
*

Katya

  • Захожу иногда
  • 53
  • 1 / 1
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #10 : 14.12.2010, 01:37:20 »
Здравствуйте. Поменяла код, теперь "запомнить меня" работает. Спасибо большое.
Есть еще один вопрос. В форме регистрации нового пользователя я использую чекбоксы, они сейчас не работают. Я так понимаю, что решение аналогично rememberme. Вот только где менять? Может подскажете?
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #11 : 14.12.2010, 01:55:00 »
Здравствуйте. Поменяла код, теперь "запомнить меня" работает. Спасибо большое.
Есть еще один вопрос. В форме регистрации нового пользователя я использую чекбоксы, они сейчас не работают. Я так понимаю, что решение аналогично rememberme. Вот только где менять? Может подскажете?
Шаблон JomSocial видимо... Я не знаю где точно. Вообще по шаблону, я торкал разработчиков носом, когда у меня не работали стилизованные чикбоксы, кто помнит. Возможно, если у вас официальные шаблоны, и лицензионный компонент, они обязаны помочь. Иначе, при каждом обновлении вам нужно будет снова и снова править этот недостаток.
Всё что не анархия, то фашизм...
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #12 : 14.12.2010, 05:21:38 »
Возможно, если у вас официальные шаблоны, и лицензионный компонент, они обязаны помочь.
We support:

    * Installation issues
    * Basic configuration
    * How-to use questions

We do not support:

    * Template design and customizations
    * Conflict with other 3rd party component or templates
    * Anything that require modifications to the core code, such as adding new customized features.
    * Modified JomSocial codes
    * Server migration
    * 3rd party integration
    * Any beta or trial release
    * Installation on localhost
    * Non JomSocial-related issues

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

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #13 : 14.12.2010, 06:05:08 »
We support:

    * Installation issues
    * Basic configuration
    * How-to use questions

We do not support:

    * Template design and customizations
    * Conflict with other 3rd party component or templates
    * Anything that require modifications to the core code, such as adding new customized features.
    * Modified JomSocial codes
    * Server migration
    * 3rd party integration
    * Any beta or trial release
    * Installation on localhost
    * Non JomSocial-related issues


Я уверен в этом, что они обязаны решать такие проблемы. Иначе, нечего тогда продавать PRO версию, основным отличием которои, является несколько дополнительных шаблонов.

Если они не могут отвечать за, шаблоны которые они верстают и продают, то это называется мошенничество. И никакие ихние правила их не играют значения.

Далее немного по смыслу:
Шаблон - это грубо говоря упаковка компонента. И когда вы покупаете товар, по идее он по любому должен быть нормально упакован. И я не говорю о каких-то излишествах. А о самом стандартном шаблоне - в стандартной поставке.

Вот например, недавно работал с одним человеком... Купили шаблон Movie plazza, в результате туда не Jomocial, не флекси-контент не поставить. Даже самые элементарные модули и то пропадают - не отображаются.
Всё что не анархия, то фашизм...
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Переделка кода кнопки facebook в JomSocial
« Ответ #14 : 14.12.2010, 09:02:50 »
Я им картинку рисовал как то.
Собственно для наглядности их поддержки и работы компонента...
Они ее правда быстро убрали с их сети...
Поддержка: 3 пункта
Не подлежит поддержке: 9 пунктов..
Ну о чем тут рассуждать?
Хотя на самом деле на оф. форуме они охотно помогают и у меня нареканий к ним по поводу молчания нет
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Регистрация и Авторизация в JomSocial - проблемы, вопросы

Автор AlexAl

Ответов: 294
Просмотров: 83326
Последний ответ 15.05.2019, 16:08:31
от AdWeb
Подключение JomSocial к Amazon S3 | Нужна помощь?

Автор Wassup

Ответов: 14
Просмотров: 9226
Последний ответ 07.04.2019, 09:38:31
от powerful888
Как изменить поля регистрации в JomSocial?

Автор 1ncom1ng

Ответов: 7
Просмотров: 7043
Последний ответ 29.03.2019, 01:03:37
от DomBeri
Письма уведомления от JomSocial

Автор coder-max

Ответов: 84
Просмотров: 21821
Последний ответ 12.01.2017, 18:07:39
от FitMe
Вопросы по настройке JomSocial

Автор evteev

Ответов: 37
Просмотров: 20050
Последний ответ 17.07.2015, 00:34:21
от belperson