public function mergeStylesFromPost($post) { $values = array(); $styles = $this->getEditableStylesList(); foreach($styles as $sto) { foreach($sto as $st) { $ptes = new PageThemeEditableStyle(); $ptes->ptsHandle = $st->getHandle(); $ptes->ptsType = $st->getType(); $ptes->ptsProperty = $st->getProperty(); switch($st->getType()) { case PageThemeEditableStyle::TSTYPE_COLOR: if (isset($post['input_theme_style_' . $st->getHandle() . '_' . $st->getType()])) { $ptes->ptsValue = $ptes->getProperty() . ':' . $post['input_theme_style_' . $st->getHandle() . '_' . $st->getType()] . ';'; $values[] = $ptes; } break; case PageThemeEditableStyle::TSTYPE_CUSTOM: if (isset($post['input_theme_style_' . $st->getHandle() . '_' . $st->getType()])) { $ptes->ptsValue = $post['input_theme_style_' . $st->getHandle() . '_' . $st->getType()]; $values[] = $ptes; } break; case PageThemeEditableStyle::TSTYPE_FONT: if (isset($post['input_theme_style_' . $st->getHandle() . '_' . $st->getType()])) { $value = $post['input_theme_style_' . $st->getHandle() . '_' . $st->getType()]; // now we transform it from it's post, which has pipes and separators and crap $fv = explode('|', $value); $ptes->ptsValue = $ptes->getProperty() . ':' . $fv[0] . ' ' . $fv[1] . ' ' . $fv[2] . 'px ' . $fv[3] . ';'; $values[] = $ptes; } break; } } } return $values; }