'', 'element' => '', 'selector' => '', 'classes' => '', 'styles' => '', 'attributes' => ''); // pass to items $items = $this->value; if (is_string($items)) { $items = json_decode(htmlspecialchars_decode($this->value), true); } // cast to array $items = (array) $items; /* Convert legacy styles */ $theme_advanced_styles = $wf->getParam('editor.theme_advanced_styles', ''); if (!empty($theme_advanced_styles)) { foreach (explode(',', $theme_advanced_styles) as $styles) { $style = json_decode('{' . preg_replace('#([^=]+)=([^=]+)#', '"title":"$1","classes":"$2"', $styles) . '}', true); if ($style) { $items[] = $style; } } } // create default array if no items if (empty($items)) { $items = array($default); } $subForm = new JForm($this->name); // editor manifest $manifest = JPATH_ADMINISTRATOR . '/components/com_jce/models/forms/styleformat.xml'; $xml = simplexml_load_file($manifest); $subForm->load($xml); $fields = $subForm->getFieldset(); $output[] = '
'; $x = 0; foreach ($items as $item) { $elements = array('
'); foreach($fields as $field) { $key = (string) $field->element['name']; // default value $field->value = ""; if (array_key_exists($key, $item)) { $field->value = htmlspecialchars_decode($item[$key], ENT_QUOTES); } $field->setup($field->element, $field->value, $this->group); $field->id = ''; $field->name = ''; $elements[] = '
' . $field->renderField(array('description' => $field->description)) . '
'; } $elements[] = '
'; // handle $elements[] = ''; // delete button $elements[] = ''; // collapse $elements[] = ''; $elements[] = '
'; $elements[] = '
'; $output[] = implode('', $elements); $x++; } $output[] = ''; // hidden field $output[] = ''; if (!empty($theme_advanced_styles)) { $output[] = ''; } $output[] = '
'; return implode("\n", $output); } }