LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
26.05.2013, 10:07:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [howto] Убрать "Задать вопрос продавцу" в просмотре товара  (Прочитано 2393 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SDKiller
Dev Team
******

Репутация: +273/-4
Offline Offline

Сообщений: 2523


...но войти в неё ты должен сам


« : 26.01.2011, 10:17:58 »

UPD
Разработчикам должно быть несколько неудобно - дав здесь ссылку на сайт, где можно скачать русифицированную версию компонента,
они не дают на нём никакой информации о том, что компонент был обновлён.

Бог с ними, языковыми файлами, могли бы выкладывать туда обновлённое ядро.
Итак, в версии 1.1.1 компонента, доступной на сайте разработчика, возможность отключать эту беду в настройках появилась, но при этом допущен косяк, о чем читаем в следующем посте.




Ну не нужна мне она  Grin

Есть 2 простых варианта:
1) вырезать из (закомментировать в) views\showitem\tmpl\default.php
2) через CSS сделать display:none для кнопки

Но хочется сделать красиво (вдруг потом понадобится фича).

Итак:

1) administrator\components\com_djclassifields\config.xml добавляем в параметрах

Код:
<param name="show_askform" type="list" default="0" label="SHOWASKFORM" size="30" menu="hide">
<option value="1">YES</option>
<option value="0">NO</option>
</param>

2) В языковой файл в админке добавляем строчку    SHOWASKFORM=Показать форму задать вопрос продавцу

3) пересохраняем параметры в админке;

4) В \components\com_djclassifields\views\showitem\tmpl\default.php добавляем где-нибудь вначале

Код:
$params = &JComponentHelper::getParams('com_djclassifieds');
$showask=$params->get('show_askform');

И бывшую строку 88
Код:
<?php if($i->user_id>0){ ?>

приводим в следующий вид:

Код:
<?php if($i->user_id>0 AND $showask==1){ ?>

Всё - теперь у нас отображение формы можно задавать в параметрах, по умолчанию она выключена.
« Последнее редактирование: 21.03.2011, 15:46:00 от SDKiller » Записан
SDKiller
Dev Team
******

Репутация: +273/-4
Offline Offline

Сообщений: 2523


...но войти в неё ты должен сам


« Ответ #1 : 26.01.2011, 18:19:54 »

Косяк в версии 1.1.1 имеет место при построении условия вида:

Код:

if($par->get('ask_seller','0')){
if($i->user_id>0){?>...

Условия сформировано наоборот, так как в параметрах 0 как раз означает скрывать форму.

Есть ещё один недочёт, на который я не обратил внимания раньше -  при включенном отображении формы "Задать вопрос продавцу", кнопку видят незарегистрированные пользователи, которые, как это жёстко задано в компоненте, вопросов продавцу задавать не могут.

Исправляем так:

Код:
if($par->get('ask_seller','1') AND !($user->guest)){


Кстати, не совсем понятно, почему далее разработчики сделали проверку на то, гость это или нет через $user_id=='0'

Не всякий каким-либо образом переданный в запрос ненулевой id будет валидным.

Записан
AlexSF
Живу я здесь
******

Репутация: +67/-0
Offline Offline

Пол: Мужской
Сообщений: 808


В споре истина рождается


« Ответ #2 : 04.02.2011, 14:40:04 »

Спасибо весьма полезно.
Теперь вопрос по теме Вырезать/Скрыть.
Как можно Вырубить из показа на сайте Имя автора(ну не нужно оно) и количество просмотров объявления.
Ещё раз спасибо.
Записан
SDKiller
Dev Team
******

Репутация: +273/-4
Offline Offline

Сообщений: 2523


...но войти в неё ты должен сам


« Ответ #3 : 04.02.2011, 15:02:17 »

В версии 1.1.1 - в параметрах - "Показывать информацию об объявлении" - Нет

Можем скрыть таким образом следующее:

Цитировать
Информация
ID объявления:105
Просмотров:11
Истекает:2011-11-26
Добавлено:2011-01-30

Имя автора - в шаблоне

views\showitem\tmpl\default.php

Код:
<div class="row user_name">
<span><?php echo JText::_('Sold by:'); ?></span>
<?php
if($i->user_id==0){
echo JText::_('Guest');
}else{
echo '<a href="index.php?option=com_djclassifieds&view=show&uid='.$i->user_id.'">'.$i->username.' <span>('.$this->user_items_c.')</span></a>';
}
?>
</div>
Записан
AlexSF
Живу я здесь
******

Репутация: +67/-0
Offline Offline

Пол: Мужской
Сообщений: 808


В споре истина рождается


« Ответ #4 : 04.02.2011, 15:23:32 »

Вырезать данный код это хорошо, но вот я вдруг подумал о скрытии имени для гостей.
То есть внеся соответственно в config.xml параметр скрывать имя автора(допустим usernames)
И добавив
 $usernames=$par->get('usernames');

И соответственно
Код:
<div class="row user_name">
<span><?php echo JText::_('usernames'); ?></span>
<?php
                 if($par->get('usernames','1') AND !($user->guest)){
                 if($i->user_id==0){
echo JText::_('Guest');
}else{
echo '<a href="index.php?option=com_djclassifieds&view=show&uid='.$i->user_id.'">'.$i->username.' <span>('.$this->user_items_c.')</span></a>';
}
?>
Я смогу по необходимости выключать данный параметр(usernames)
Я Вас правильно понял?

Приношу свои извинения за быстрые изменения в своих потребностях, просто подумал что потом пользователь не сможет видеть список своих объявлений.
Да я умолчал что пилю версию 1.1.2
« Последнее редактирование: 04.02.2011, 15:54:09 от AlexSF » Записан
SDKiller
Dev Team
******

Репутация: +273/-4
Offline Offline

Сообщений: 2523


...но войти в неё ты должен сам


« Ответ #5 : 04.02.2011, 15:54:57 »

Ну если смысл в том, стобы скрывать имя от гостей, то должно сработать.
Только ещё одну закрывающую } скобку в конце добавить.

1.1.2 от 1.1.1 отличается только исправленным польским языковым файлом и номером версии в xml-файлах.
Записан
AlexSF
Живу я здесь
******

Репутация: +67/-0
Offline Offline

Пол: Мужской
Сообщений: 808


В споре истина рождается


« Ответ #6 : 04.02.2011, 16:01:21 »

Цитировать
1.1.2 от 1.1.1 отличается только исправленным польским языковым файлом и номером версии в xml-файлах.

Плюс ещё пропущено пару тройку переменных в языковом файле админки
Записан
SDKiller
Dev Team
******

Репутация: +273/-4
Offline Offline

Сообщений: 2523


...но войти в неё ты должен сам


« Ответ #7 : 04.02.2011, 16:02:21 »

Кстати, подумал, смысл этой ссылки - возможность показать все объявления этого продавца, что может быть полезно.

Тогда можно .$i->username. заменить на текст, например Показать все объявления этого продавца


А вот это не нужно
Код:
php echo JText::_('usernames')
Записан
SDKiller
Dev Team
******

Репутация: +273/-4
Offline Offline

Сообщений: 2523


...но войти в неё ты должен сам


« Ответ #8 : 04.02.2011, 16:11:16 »

Вот как то так:

Код:
<div class="row user_name">
<span><?php echo JText::_('Sold by:'); ?></span>
<?php
                 if($par->get('usernames','1') AND !($user->guest)){$to_show = $i->username;} else {$to_show = JText::_('To show:');}
                 if($i->user_id==0){
echo JText::_('Guest');
}else{
echo '<a href="index.php?option=com_djclassifieds&view=show&uid='.$i->user_id.'">'.$to_show.' <span>('.$this->user_items_c.')</span></a>';
}
?>

И добавляем в языковой файл TO SHOW:=Показать все объявления этого продавца
Записан
AlexSF
Живу я здесь
******

Репутация: +67/-0
Offline Offline

Пол: Мужской
Сообщений: 808


В споре истина рождается


« Ответ #9 : 04.02.2011, 16:15:21 »

Упредили. Cheesy Спасибо!

В оригинале эта строка выглядит так:
Код:
<span><?php echo JText::_('Sold by:'); ?></span>

Sold by: - есть в языковых файлах. Так
Код:
echo JText::_('usernames')
думал привязать usernames к языковому файлу данную точку.
Записан
SDKiller
Dev Team
******

Репутация: +273/-4
Offline Offline

Сообщений: 2523


...но войти в неё ты должен сам


« Ответ #10 : 11.03.2011, 20:42:14 »

Самое смешное - в компоненте не реализован функционал просмотра этих самых вопросов )))
Ни с фронта, ни из админки.

Если только через phpMyAdmin )))
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet