public function __get($name) { if (strpos($name, '[')) { $basePropertyName = substr($name, 0, strpos($name, '[')); $index = substr($name, strpos($name, '[') + 1); if (property_exists($this, $basePropertyName)) { return ArrayUtil::getNestedValue($this->{$basePropertyName}, $index); } } return parent::__get($name); }
protected function renderControlContentNonEditable() { $src = $this->resolveDividerImageUrl(); $alt = static::resolveLabel(); $imageOptions = array(); $imageHeight = ArrayUtil::getNestedValue($this->properties, "frontend['inlineStyles']['border-top-width']"); if (isset($imageHeight)) { // get rid of px as for border-top-width we have to save it with px(it appears in style property). $imageHeight = substr($imageHeight, 0, -2); $imageOptions = array('height' => $imageHeight); } $content = ZurmoHtml::image($src, $alt, $imageOptions); return $content; }
protected function resolveColumnCssClassesByRowConfiguration() { $configuration = ArrayUtil::getNestedValue($this->properties, "backend['configuration']"); if (!isset($configuration)) { return array(); } $columnCssClasses = null; $columnKeysAndCssClasses = null; $columnKeys = array_keys($this->content); if (strpos($configuration, ':') == false) { $columnCount = intval($configuration); $columnWidth = NumberToWordsUtil::convert(static::MAX_COLUMN_WIDTH / $columnCount); $columnCssClasses = array(BuilderColumnElement::TABLE_CSS_CLASSES_PARAM_KEY => $columnWidth); $columnCssClasses = array_fill(0, count($columnKeys), $columnCssClasses); } else { $ratios = explode(':', $configuration); $total = array_sum($ratios); $unitRatioWidth = static::MAX_COLUMN_WIDTH / $total; foreach ($ratios as $ratio) { $width = NumberToWordsUtil::convert($ratio * $unitRatioWidth); $columnCssClasses[] = array(BuilderColumnElement::TABLE_CSS_CLASSES_PARAM_KEY => $width); } } $columnKeysAndCssClasses = array_combine($columnKeys, $columnCssClasses); return $columnKeysAndCssClasses; }
protected function resolveNonEditableWrapperHtmlOptions() { $htmlOptions = parent::resolveNonEditableWrapperHtmlOptions(); $htmlOptions['class'] .= ' ' . $this->properties['backend']['sizeClass']; $htmlOptions['align'] = ArrayUtil::getArrayValue($this->properties['backend'], 'align'); $width = ArrayUtil::getNestedValue($this->properties, "backend['width']"); if ($width) { $htmlOptions['width'] = $width; } return $htmlOptions; }
protected function resolveInlineStylesForBorderDirectionNegationFromBackendPropertiesNonEditable(array &$mergedProperties) { $borderNegationStyles = ArrayUtil::getNestedValue($this->properties, 'backend[border-negation]'); if (!empty($borderNegationStyles)) { $borderNegationKeys = array_keys($borderNegationStyles, 'none'); foreach ($borderNegationKeys as $borderNegationKey) { $mergedProperties['style'] .= "{$borderNegationKey}:none;"; } } }