forum.bitel.ru
http://forum.bitel.ru/

Вывести сообщение в ЛК при активации тарифной опции
http://forum.bitel.ru/viewtopic.php?f=22&t=5867
Страница 1 из 1

Автор:  Akhmat [ 07 сен 2011, 18:57 ]
Заголовок сообщения:  Вывести сообщение в ЛК при активации тарифной опции

Добрый день!

Как это сделать? в скрипте предобработки на активацию опции, не нашел метода как вывести месаг. Надо при активации если не выполняются некоторые условия отменить активацию, и вывести месаг клиенту.

сервер версия 5,0 сборка 766

Автор:  Akhmat [ 09 сен 2011, 18:23 ]
Заголовок сообщения:  Re: Вывести сообщение в ЛК при активации тарифной опции

никто нивкурсе?

Автор:  Cromeshnic [ 09 сен 2011, 22:42 ]
Заголовок сообщения:  Re: Вывести сообщение в ЛК при активации тарифной опции

Ну я делал свой класс-декоратор ActionCustomTariffOption extends ActionTariffOption, а там уже добавлял в xml-узлы дополнительную инфу.

Как-то так, например:

Код:
public class ActionCustomTariffOption extends ActionTariffOption {
   private String infoMessage = null;
   
   /**
    * переопределяем execute стандартного экшена, добавляем свои данные в result
    */
   @Override
   protected Result<ContractTariffOption> execute(int optionId) throws Exception
   {
      Result<ContractTariffOption> result = super.execute(optionId);
      if(null!=this.infoMessage){
         result.setAttribute("custom_info_message", this.infoMessage);
      }
      
      return result;
   }
   
   //Переопределяем activate() - добавляем уведомление о подключении опции
   @Override
   public void activate() throws Exception{
        int optionId = req.getInt("option_id", -1);

        TariffOptionManager tm = new TariffOptionManager(this.con);
        TariffOption to = tm.get(optionId);
        if(to!=null){
           this.infoMessage = "Опция '" + to.getTitle() + "' подключена";
        }
      super.activate();
   }


В xsl:
Код:
<xsl:value-of select="/data/common:result/attributes/item[@key='custom_info_message']/value"/>


Соответственно, проверку возможности подключения тоже можно сделать в activate, но тогда юзеру ничего не помешает набрать в браузере action=TariffOption вместо CustomTariffOption и подключить в обход.

По-другому только в 5.2.

Автор:  Akhmat [ 10 сен 2011, 01:45 ]
Заголовок сообщения:  Re: Вывести сообщение в ЛК при активации тарифной опции

Спасибо)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/