/** * Render shortcode form * @param ctShortcode[] $shortcodes * @param array $instance * @return void */ protected function renderShortcodeForm($shortcodes, $instance) { $preffix = $this->childShortcode ? '[]' : ''; $d = new ctShortcodeDecorator($shortcodes, false, $this->childShortcode); $d->setSchemaFormat('widget-' . $this->id_base . '[' . $this->number . ']' . '%parent%[%name%]' . $preffix); $d->setDefaultValues($instance['child']); $d->setBannedAttributes($this->getDefaultAttributes()); $d->setInputSubstitutes(array('image' => 'input')); if ($this->shortcode && $this->childShortcode) { $d->setParentShortcode($this->shortcode); $d->setParentDefaultValues(isset($instance['parent']) ? $instance['parent'] : array()); } echo $d; }
/** * Popup menu */ public function popup() { wp_enqueue_style('thickbox'); wp_enqueue_style('global'); wp_enqueue_style('wp-admin'); wp_enqueue_style('colors'); wp_enqueue_style('ie'); add_thickbox(); wp_dequeue_script('theme-shortcode-menu'); wp_register_script('theme-shortcode-dialog', CT_SHORTCODE_TINYMCE_URI . '/dialog.js', array('jquery', 'common')); wp_enqueue_script('theme-shortcode-dialog'); if (defined('ICL_SITEPRESS_VERSION') && ICL_SITEPRESS_VERSION == '2.0.4.1') { wp_dequeue_script('sitepress-translation-management'); } if (!($shortcode = self::getInstance()->getShortcode($_GET['id']))) { exit("No shortcode found"); } if ($child = $shortcode->getChildShortcode()) { $shortcodes = array(); $childInfo = $shortcode->getChildShortcodeInfo(); $max = isset($childInfo['default_qty']) ? $childInfo['default_qty'] : 1; for ($x = 0; $x < $max; $x++) { $shortcodes[] = $child; } } else { $shortcodes = array($shortcode); } $defaultView = dirname(__FILE__) . '/view/popup.php'; if ($e = $shortcode->getCustomFormView(array('template' => $defaultView))) { echo $e; exit; } else { $decorator = new ctShortcodeDecorator($shortcodes, false, (bool) $child); if ((bool) $child) { $decorator->setParentShortcode($shortcode); } require $defaultView; } exit; }