Новости Joomla

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

BARD

  • Захожу иногда
  • 61
  • 1 / 0
условие в mod_login шаблона
« : 11.11.2015, 18:05:19 »
Здравствуйте.
Подскажите как сделать условие: Если в профиле "Дисконтная карта" указана, вывести текст "Количество бонусов:" если нет, то вывести "Дисконтная карта не зарегистрирована"

Пытаюсь сделать так:
Код
<?php
if($user->get('profile-require_discontcard')!= "") : {
     echo JText::sprintf('MOD_LOGIN_BONUS');
   } else : {
     echo JText::sprintf('MOD_LOGIN_NOCARD');
   } endif; ?>
Пишет в любом случае "Дисконтная карта не зарегистрирована"

в /plugins/user/profile/profile.xml прописал:
Код
<field name="profile-require_discontcard" type="list"
description="PLG_USER_PROFILE_FIELD_DISCONTCARD_DESC"
label="PLG_USER_PROFILE_FIELD_DISCONTCARD_LABEL">
<option value="2">JOPTION_REQUIRED</option>
<option value="1">JOPTION_OPTIONAL</option>
<option value="0">JDISABLED</option>
</field>
в /plugins/user/profile/profiles/profile.xml прописал:
Код
<field
name="discontcard"
type="text"
id="discontcard"
description="PLG_USER_PROFILE_FIELD_DISCONTCARD_DESC"
filter="string"
label="PLG_USER_PROFILE_FIELD_DISCONTCARD_LABEL"
message=""
size="30"
/>
В языковом файле прописал
MOD_LOGIN_BONUS="Бонусов на балансе:"
MOD_LOGIN_NOCARD="Бонусная карта не зарегистрирована:"
« Последнее редактирование: 11.11.2015, 23:20:43 от BARD »
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: условие в mod_login шаблона
« Ответ #1 : 11.11.2015, 18:23:07 »
Код
<?php
if($user->get('profile-require_discontcard')!= "") : {
     echo JText::sprintf('MOD_LOGIN_BONUS');
   } else : {
     echo JText::sprintf('MOD_LOGIN_NOCARD');
   } endif; ?>

Может я и не такой спец, но почему
Код
$user->get

Это получается что данные выводишь из столбца под название profile-require_discontcard
Тебе же надо вывести параметры пользователя?

Да и вообще придумай какое нибудь имя покороче и не используй тире "-"
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

BARD

  • Захожу иногда
  • 61
  • 1 / 0
Re: условие в mod_login шаблона
« Ответ #2 : 12.11.2015, 10:25:19 »
Может я и не такой спец, но почему
Код
$user->get

Это получается что данные выводишь из столбца под название profile-require_discontcard
Тебе же надо вывести параметры пользователя?

Да и вообще придумай какое нибудь имя покороче и не используй тире "-"
$user->get я взял из стандартного вывода имени $user->get('name').
у меня добавлены дополнительные поля в XML мне нужно эти поля прочитать...
*

BARD

  • Захожу иногда
  • 61
  • 1 / 0
Re: условие в mod_login шаблона
« Ответ #3 : 12.11.2015, 12:04:42 »
Сделал так:
В /templates/shaper_myestate/html/mod_login/default.php
Код


<?php
$db = JFactory::getDBO();
$sql = "SELECT profile_value FROM #__user_profiles WHERE profile_key='profile.discontcard'";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)
$discontcard = json_decode($user->profile_value);
?>

<?php if ($discontcard != "") : {
  echo JText::sprintf('MOD_LOGIN_DISCONTCARD');
{
   echo $discontcard;
} ?>
 <BR>
   
<?php
echo JText::sprintf('MOD_LOGIN_BONUS');


  } endif; ?>
   </div>
<?php endif; ?>
В языковом файле добавил
Код
MOD_LOGIN_DISCONTCARD=" Бонусная карта:"

Проблема в том, что показывается не та дисконтная карта, и выводит текст "Бонусов на балансе" если хоть у одного кого то прописана в профиле карта, как сделать отбор по пользователю который залогинился, и выдавал дисконтную карту только этого ползователя?
« Последнее редактирование: 12.11.2015, 13:44:44 от BARD »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: условие в mod_login шаблона
« Ответ #4 : 12.11.2015, 12:41:06 »
Да и вообще придумай какое нибудь имя покороче и не используй тире "-"
Все нормально, ТС сделал по аналогии со стандартными полями.
Код: php-brief
$user=JFactory::getUser();
if(!$user->guest){
JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_users/models','UsersModel');
$profile_model=JModelLegacy::getInstance('Profile','UsersModel');
$user_data=$profile_model->getData();
}
$discontcard=$user_data->profile['discontcard'];
И что у вас за инструкция
Код: php-brief
if () : {
} endif;
?
P.S. Исправил ошибку.
« Последнее редактирование: 12.11.2015, 13:06:56 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

BARD

  • Захожу иногда
  • 61
  • 1 / 0
Re: условие в mod_login шаблона
« Ответ #5 : 12.11.2015, 13:46:24 »

И что у вас за инструкция
Код: php-brief
if () : {
} endif;
Брал условие тоже с типового из Joomla
*

BARD

  • Захожу иногда
  • 61
  • 1 / 0
Re: условие в mod_login шаблона
« Ответ #6 : 12.11.2015, 13:52:47 »
Все нормально, ТС сделал по аналогии со стандартными полями.
Код: php-brief
$user=JFactory::getUser();
if(!$user->guest){
JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_users/models','UsersModel');
$profile_model=JModelLegacy::getInstance('Profile','UsersModel');
$user_data=$profile_model->getData();
}
$discontcard=$user_data->profile['discontcard'];
И что у вас за инструкция
Код: php-brief
if () : {
} endif;
?
P.S. Исправил ошибку.

Спасибо. Помогло=)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Изменение шаблона Joomla! 2.5.24

Автор SecondPC

Ответов: 0
Просмотров: 2627
Последний ответ 26.03.2021, 18:09:33
от SecondPC
Руководство - создание шаблона для Joomla 2.5

Автор dynamit

Ответов: 6
Просмотров: 27268
Последний ответ 02.02.2020, 22:28:15
от AlinaBut
Ошибка при установке шаблона - Fatal error: Call to a member function setDebug() on a non-object in

Автор Mirotvoretz

Ответов: 33
Просмотров: 65834
Последний ответ 11.11.2018, 13:22:26
от vik38
При установки шаблона ошибка <<HTTP 500 (Internal Server Error)>>

Автор nekitko

Ответов: 16
Просмотров: 15674
Последний ответ 21.06.2017, 20:39:11
от bonny
Не могу поменять шрифт шаблона сайта

Автор Ерема

Ответов: 6
Просмотров: 1447
Последний ответ 29.03.2017, 10:16:54
от darkghost