Source for file class.acBlockType_multi_input.php

Documentation is available at class.acBlockType_multi_input.php

  1. <?php
  2. {
  3.     function __construct(&$content_obj$params array())
  4.     {
  5.         $params['block_type''multi_input';
  6.         parent::__construct($content_obj$params);
  7.         
  8.         $this->SetProperty('inputs'isset($params['inputs']$params['inputs''');
  9.         $this->SetProperty('value_delimiter'isset($params['value_delimiter']$params['value_delimiter''<!-- multi_input_value_delimiter -->');
  10.         $this->SetProperty('input_delimiter'isset($params['input_delimiter']$params['input_delimiter''<!-- multi_input_delimiter -->');
  11.     }
  12.     
  13.     public function GetInput()
  14.     {
  15.         $AC &ac_utils::get_module('AdvancedContent');
  16.         $multi_input_ids ac_utils::CleanArray(explode(','$this->GetProperty('inputs')));
  17.         $input_values    array();
  18.         $multi_input     '';
  19.         
  20.         foreach(explode($this->GetProperty('input_delimiter')$this->GetContent()) as $input_data)
  21.             $input_values[explode($this->GetProperty('value_delimiter'),$input_data);
  22.         
  23.         $blockType        &acContentBlockManager::GetBlockType('multi_input');
  24.         $multiInput_props $blockType['props'];
  25.         foreach($multi_input_ids as $k1=>$multi_input_id)
  26.         {
  27.             if(isset($multiInput_props[$multi_input_id]))
  28.             {
  29.                 if(!isset($multiInput_props[$multi_input_id]['template']))
  30.                 {
  31.                     $multiInput_props[$multi_input_id]['template'$AC->GetTemplate($multiInput_props[$multi_input_id]['tpl_name']);
  32.                     acContentBlockManager::SetBlockTypeProperty('multi_input'$multi_input_id$multiInput_props[$multi_input_id]);
  33.                 }
  34.                 $inputs array();
  35.                 foreach ($multiInput_props[$multi_input_id]['elements'as $k2=>$inputBlock)
  36.                 {
  37.                     if($inputBlock->GetProperty('smarty'))
  38.                     {
  39.                         foreach($inputBlock->GetProperties(as $propName=>$propValue)
  40.                             $inputBlock->SetProperty($propNameac_utils::DoSmarty($content_obj$propValue));
  41.                     }
  42.                     $inputBlock->SetProperty('id''multiInput-' $this->GetProperty('id''-' $multi_input_id '-' $k1 '-' $k2);
  43.                     $inputBlock->SetContent(isset($input_values[$k1][$k2]$input_values[$k1][$k2'');
  44.                     $inputs[$inputBlock->GetProperty('id')$inputBlock;
  45.                 }
  46.                 $AC->smarty->assign_by_ref('inputs'$inputs);
  47.                 #$multi_input .= $AC->ProcessTemplateFromData($multiInput_props[$multi_input_id]['template']);
  48.                 $multi_input .= $AC->smarty->fetch('string:' $multiInput_props[$multi_input_id]['template']);
  49.             }
  50.         }
  51.         return $multi_input;
  52.     }
  53.     
  54.     public function SetBlockTypeProperties()
  55.     {
  56.         if(ac_utils::cms_access(== 'backend')
  57.         {
  58.             $AC &ac_utils::get_module('AdvancedContent');
  59.             $multi_input_ids  ac_utils::CleanArray(explode(',',$this->GetProperty('inputs')));
  60.             $blockType        &acContentBlockManager::GetBlockType('multi_input');
  61.             $multiInput_props $blockType['props'];
  62.             
  63.             foreach($multi_input_ids as $k1=>$multi_input_id)
  64.             {
  65.                 if(!isset($multiInput_props[$multi_input_id]))
  66.                 {
  67.                     $multiInput_props array_merge($multiInput_propsac_admin_ops::GetMultiInputFull($multi_input_ids));
  68.                     if(!isset($multiInput_props[$multi_input_id]))
  69.                         continue;
  70.                     
  71.                     $multiInput_props[$multi_input_id]['template'$AC->GetTemplate($multiInput_props[$multi_input_id]['tpl_name']);
  72.                     $matches array();
  73.                     $result  preg_match_all(AC_BLOCK_PATTERN$multiInput_props[$multi_input_id]['input_fields']$matches);
  74.                     
  75.                     if ($result && count($matches[1]0)
  76.                     {
  77.                         foreach ($matches[1as $k2=>$wholetag)
  78.                         {
  79.                             if(!$inputBlock acContentBlockManager::CreateContentBlock($this->content_obj$wholetag))
  80.                                 continue;
  81.                             
  82.                             if($inputBlock->GetProperty('type'== 'multi_input')
  83.                                 continue# ToDo: display message?
  84.                             
  85.                             $multiInput_props[$multi_input_id]['elements'][$k2$inputBlock;
  86.                         }
  87.                     }
  88.                 }
  89.             }
  90.             acContentBlockManager::SetBlockTypeProperties('multi_input'$multiInput_props);
  91.         }
  92.     }
  93.     
  94.     public function FillParams(&$params$editing false)
  95.     {
  96.         $blockId          $this->GetProperty('id');
  97.         $multi_inputs     array();
  98.         $value            '';
  99.         $blockType        &acContentBlockManager::GetBlockType('multi_input');
  100.         $multiInput_props $blockType['props'];
  101.         foreach(ac_utils::CleanArray(explode(',',$this->GetProperty('inputs'))) as $k1=>$multi_input_id)
  102.         {
  103.             $multi_input_values array();
  104.             foreach($multiInput_props[$multi_input_id]['elements'as $k2=>$inputBlock)
  105.             {
  106.                 if(isset($params['multiInput-' $blockId '-' $multi_input_id '-' $k1 '-' $k2]))
  107.                 {
  108.                     $inputBlock->SetProperty('id''multiInput-' $blockId '-' $multi_input_id '-' $k1 '-' $k2);
  109.                     $multi_input_values[$inputBlock->FillParams($params$editing);
  110.                 }
  111.             }
  112.             $multi_inputs[implode($this->GetProperty('value_delimiter'),$multi_input_values);
  113.         }
  114.         if(!ac_utils::IsVarEmpty($multi_inputs))
  115.             $value implode($this->GetProperty('input_delimiter')$multi_inputs);
  116.         
  117.         return $value;
  118.     }
  119. }
  120. ?>

Documentation generated on Tue, 09 Oct 2012 16:57:04 +0200 by phpDocumentor 1.4.1