/** * * CONTEXTUAL : depend on current template context (@see pushToContextStack) * * @param mixed $subpartData = current subpart "data" wich has to be injected in the subpart * @access protected * @return void */ protected function applySubpartDataIntoSubpart(&$subpartData, $subpartOriginalKey) { /* Declare */ $baseData =& $this->getContext('markers'); $subpartInfos =& $this->getContext('subpart'); $res = ''; /* Begin */ if (is_bool($subpartData)) { // BOOLEAN : Activate or not a subpart if ($subpartData) { $res = $this->applyInSubpart($baseData, $subpartInfos); } else { $res = ''; } } elseif (is_array($subpartData)) { // ARRAY : wrapper or marker array/object if (count($subpartData) == 2 && isset($subpartData[0]) && isset($subpartData[1]) && is_string($subpartData[0]) && is_string($subpartData[1])) { // Wrapper Array $res = $subpartData[0] . $this->applyInSubpart($baseData, $subpartInfos) . $subpartData[1]; } else { // Sub list Array foreach ($subpartData as $v) { $res .= $this->applyInSubpart($v, $subpartInfos); } } } elseif (is_object($subpartData)) { $res = $this->applyInSubpart($subpartData, $subpartInfos); } elseif (is_null($subpartData)) { // is_null($res) -> Non callable subpart : call recursively $res = $this->applyInSubpart($baseData, $subpartInfos); if ($this->magicMarkers->isCallable($subpartOriginalKey)) { $res = $this->magicMarkers->call($subpartOriginalKey, $baseData, $res); } else { $res = self::SUBPART_BEGIN_PREFIX . $subpartOriginalKey . self::SUBPART_BEGIN_SUFFIX . $res . self::SUBPART_END_PREFIX . $subpartOriginalKey . self::SUBPART_END_SUFFIX; } } return $res; }
/** * * * @param * @access public * @return void */ function processDateSubpart(&$content) { magicmarkers::replaceKeySubpartBy($content, 'DATE', array(&$this, 'processDateSubpart_callback')); }