We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28106
    • 91 Posts
    Здравствуйте! Возникла такая задача: есть 2 ТВ параметра, в один вводится одно числовое значение, а значение второго должно автоматически изменятся в соответствии с какой-либо математической операцией (сложение, умножение, вычитание). Возможно ли как-то такое реализовать?
      ----------------------------
      in ModX we trust
      • 25463
      • 61 Posts
      Первым на ум приходит написать плагин, который будет перехватывать событие onDocFormSave

      Например, вот так (я в своих разработках использую библиотечку docmanager):
      Пусть в переменной tv_1 хранится некое число Х, а в tv_2 нужно внести X*X+1

      require_once($modx->config['base_path']."assets/libs/docapi/docmanager.class.inc.php");
      
      $e = &$modx->Event;
      switch ($e->name) 
      {
          case "OnDocFormSave":
      
               // получим id сохраненного раздела  
              $id=$params['id'];
              
              // узнаем его шаблон
              $tpl=$doc['template'];
                                
              // Если шаблон соответствует Вашему
              if ($tpl==код_вашего_шаблона)
              {
                  // Отредактировать шаблон документа
                  // Внимание ! Этот класс и методы описаны в docmanager.inc.php
                  $dd=new Document($id);
                  
                  $value=$dd->GetTV('tv_1');
                  $dd->SetTV('tv_2',$value*$value+1);
                      
                  $dd->Save();
              };
              
          break;
      default : 
          return; // stop here - this is very important. 
      break;
      };
      
        • 785
        • 2,113 Posts
        Quote from: roman_yrv at Dec 01, 2010, 03:08 AM

        Например, вот так
        Не слишком удачное решение, так как совершенно зазря идут лишние обращения к базе. Подробнее я писал в теме http://modxcms.com/forums/index.php/topic,51188.0.html
          Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
          Статьи о MODx, регулярно новые публикации