function fetchElement() { $element = new SimpleXMLElement('<param type="hidden" label="' . NextendText::_($this->_label) . '" default="' . NextendText::_($this->_label) . '" name="' . $this->_name . 'customlabel" />'); $customlabel = new NextendElementHidden($this->_form, $this, $element); $h = $customlabel->render($this->control_name, false); return $h[1] . parent::fetchElement(); }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/fontmanager.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/fontmanager.js'); $this->_value = $this->_form->get($this->_name, $this->_default); $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $html = ''; $fontmanager = NextendFontmanager::getInstance(); $fontmanager->_currentform = $this->_form; $html .= $fontmanager->render(); $html .= '<a id="nextend-' . $this->_name . '-button" class="nextend-font-button" href="#">Font</a>'; $html .= '<a id="nextend-' . $this->_name . '-button-export" class="nextend-button-css nextend-font-export nextend-element-hastip" title="Export" href="#"></a>'; $html .= '<a id="nextend-' . $this->_name . '-button-import" class="nextend-button-css nextend-font-import nextend-element-hastip" title="Import" href="#"></a>'; $html .= '<div id="nextend-' . $this->_name . '-message" class="nextend-message"></div>'; $html .= "<div class='nextend-fontmanager clearfix'>"; $hiddenhtml = $hidden->render($this->control_name); $html .= $hiddenhtml[1]; $html .= "</div>"; $tabs = explode('|', NextendXmlGetAttribute($this->_xml, 'tabs')); $js->addLibraryJs('dojo', ' new NextendElementFontmanager({ hidden: "' . $this->_id . '", button: "nextend-' . $this->_name . '-button", importbtn: "nextend-' . $this->_name . '-button-import", exportbtn: "nextend-' . $this->_name . '-button-export", message: "nextend-' . $this->_name . '-message", tabs: ' . json_encode($tabs) . ', firsttab: "' . $tabs[0] . '" }); '); return $html; }
function fetchElement() { $this->_values = array(); $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/switcher.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/switcher.js'); $html = ""; $html .= "<div class='nextend-switcher' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $html .= "<div class='nextend-switcher-vertical'>"; $html .= "<div class='nextend-switcher-vertical-dot'>"; $html .= "</div>"; $html .= "</div>"; $html .= "<div class='nextend-switcher-units'>"; foreach ($this->_xml->unit as $unit) { $this->_values[] = (string) $unit->attributes()->value; $html .= "<span class='nextend-switcher-units-unit'>"; $html .= NextendText::_((string) $unit); $html .= "</span>"; } $html .= "</div>"; $this->_value = $this->_form->get($this->_name, $this->_default); $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $hiddenhtml = $hidden->render($this->control_name, false); $html .= $hiddenhtml[1]; $html .= "</div>"; $js->addLibraryJs('dojo', ' new NextendElementSwitcher({ hidden: "' . $this->_id . '", values: ' . json_encode($this->_values) . ' }); '); return $html; }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/fontmanager.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/fontmanager.js'); $this->_value = $this->_form->get($this->_name, $this->_default); if (intval(NextendXmlGetAttribute($this->_xml, 'base64'))) { $this->base64 = 1; $js->addLibraryJsFile('jquery', NEXTENDLIBRARYASSETS . 'js' . DIRECTORY_SEPARATOR . 'base64.js'); $json = json_decode($this->_value); if ($json != null && $json != $this->_value) { $this->_value = base64_encode($this->_value); $this->_form->set($this->_name, $this->_value); } } $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $html = ''; $fontmanager = NextendFontmanager::getInstance(); $fontmanager->_currentform = $this->_form; $html .= $fontmanager->render(); $html .= '<a id="nextend-' . $this->_name . '-button" class="nextend-font-button" href="#">' . NextendText::_('Font') . '</a>'; $html .= '<a id="nextend-' . $this->_name . '-button-export" class="nextend-button-css nextend-font-export nextend-element-hastip" title="' . NextendText::_('FONTMANAGER_Export') . '" href="#"></a>'; $html .= '<a id="nextend-' . $this->_name . '-button-import" class="nextend-button-css nextend-font-import nextend-element-hastip" title="' . NextendText::_('FONTMANAGER_Import') . '" href="#"></a>'; $html .= '<div id="nextend-' . $this->_name . '-message" class="nextend-message"></div>'; $html .= "<div class='nextend-fontmanager nextend-clearfix'>"; $hiddenhtml = $hidden->render($this->control_name, false); $html .= $hiddenhtml[1]; $html .= "</div>"; $tabs = explode('|', NextendXmlGetAttribute($this->_xml, 'tabs')); $translatedTabs = array(); for ($i = 0; $i < count($tabs); $i++) { $translatedTabs[$i] = NextendText::_($tabs[$i]); } $this->printjs = ' new NextendElementFontmanager({ hidden: "' . $this->_id . '", button: "nextend-' . $this->_name . '-button", importbtn: "nextend-' . $this->_name . '-button-import", exportbtn: "nextend-' . $this->_name . '-button-export", message: "nextend-' . $this->_name . '-message", tabs: ' . json_encode($tabs) . ', translatedTabs: ' . json_encode($translatedTabs) . ', firsttab: "' . $tabs[0] . '", txt: { importingdone: "' . NextendText::_('FONTMANAGER_Importing_done') . '", youcanimport: "' . NextendText::_('FONTMANAGER_Now_you_can_import_the_settings_of_this_font') . '" }, base64: ' . $this->base64 . ' }); '; if ($this->_includeJS) { $js->addLibraryJs('dojo', $this->printjs); } return $html; }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/mixed.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/mixed.js'); $this->_translateable = NextendXmlGetAttribute($this->_xml, 'translateable'); $this->_translateable = $this->_translateable === '0' ? false : true; $default = explode($this->_separator, $this->_default); $this->_value = $this->_form->get($this->_name, $this->_default); $value = explode($this->_separator, $this->_value); $value = $value + $default; $html = "<div class='nextend-mixed' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $this->_elements = array(); $i = 0; foreach ($this->_xml->param as $element) { $html .= "<div class='nextend-mixed-group' style='" . NextendXmlGetAttribute($element, 'mixedstyle') . "'>"; $type = NextendXmlGetAttribute($element, 'type'); $class = 'NextendElement' . $type; if (!class_exists($class, false)) { if (!nextendimportpath($this->_form->_xmlfolder . 'element/' . $type)) { nextendimport('nextend.form.element.' . $type); } } $element->addAttribute('name', $this->_name . '_' . $i); $element->addAttribute('hidename', 1); if (isset($value[$i])) { $element->addAttribute('default', $value[$i]); } $el = new $class($this->_form, $this, $element); $el->parent =& $this; $elementHtml = $el->render($this->_name . $this->control_name, $this->_translateable); $html .= "<div class='nextend-mixed-label'>"; $html .= $elementHtml[0]; $html .= "</div>"; $html .= "<div class='nextend-mixed-element'>"; $html .= $elementHtml[1]; $html .= "</div>"; $this->_elements[$i] = $el->_id; $i++; $html .= "</div>"; } $this->_form->set($this->_name, $this->_value); $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $hiddenhtml = $hidden->render($this->control_name, false); $html .= $hiddenhtml[1]; $html .= "</div>"; $js->addLibraryJs('dojo', ' new NextendElementMixed({ hidden: "' . $this->_id . '", elements: ' . json_encode($this->_elements) . ', separator: "' . $this->_separator . '" }); '); return $html; }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/gradient.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/gradient.js'); $this->_value = $this->_form->get($this->_name, $this->_default); $gradient = explode('-', $this->_value); $this->validate($gradient); $html = "<div class='nextend-gradient' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $html .= "<table><tr>"; $html .= "<td class='nextend-gradient-onoff'>"; $attr = $this->_xml->attributes(); $onoffXml = new SimpleXMLElement('<param type="onoff" default="' . $gradient[0] . '" name="' . $attr->name . '_onoff' . '" />'); $onoff = new NextendElementOnoff($this->_form, $this->_tab, $onoffXml); $onoffHtml = $onoff->render($this->control_name, false); $html .= $onoffHtml[1]; $html .= "</td>"; $html .= "<td class='nextend-gradient-start'>"; $startColorXml = new SimpleXMLElement('<param type="color" default="' . $gradient[1] . '" name="' . $attr->name . '_start' . '" />'); $startColor = new NextendElementColor($this->_form, $this->_tab, $startColorXml); $startColorHtml = $startColor->render($this->control_name, false); $html .= $startColorHtml[1]; $html .= "</td>"; $html .= "<td class='nextend-grandient-bg'>"; $html .= "</td>"; $html .= "<td class='nextend-gradient-end'>"; $endColorXml = new SimpleXMLElement('<param type="color" default="' . $gradient[2] . '" name="' . $attr->name . '_end' . '" />'); $endColor = new NextendElementColor($this->_form, $this->_tab, $endColorXml); $endColorHtml = $endColor->render($this->control_name, false); $html .= $endColorHtml[1]; $html .= "</td>"; $html .= "</tr></table>"; $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $hiddenhtml = $hidden->render($this->control_name, false); $html .= $hiddenhtml[1]; $html .= "</div>"; $alpha = NextendXmlGetAttribute($this->_xml, 'alpha'); if ($alpha != 1) { $alpha = 0; } $js->addLibraryJs('dojo', ' new NextendElementGradient({ hidden: "' . $this->_id . '", onoff: "' . $onoff->_id . '", start: "' . $startColor->_id . '", end: "' . $endColor->_id . '", value: "' . $this->_value . '" }); '); return $html; }
function fetchElement() { $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/list.js'); $this->_value = $this->_form->get($this->_name, $this->_default); $this->_values = explode('||', $this->_value); if (!is_array($this->_values)) { $this->_values = array(); } $this->_multiple = intval(NextendXmlGetAttribute($this->_xml, 'multiple')); $this->_translateable = intval(NextendXmlGetAttribute($this->_xml, 'translateable')); $size = NextendXmlGetAttribute($this->_xml, 'size'); if ($size != '') { $size = " size='" . $size . "'"; } $html = "<div class='nextend-list' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $html .= "<select id='" . $this->_id . "_select' class='nextend-select' name='select" . $this->_inputname . "' " . $size . $this->isMultiple() . " style='font-family:Arial !important;' autocomplete='off'>"; $html .= $this->generateOptions($this->_xml); if ($this->_xml->optgroup) { $html .= $this->generateOptgroup($this->_xml); } $html .= "</select>"; $html .= "</div>"; $html .= parent::fetchElement(); $js->addLibraryJs('dojo', ' new NextendElementList({ hidden: "' . $this->_id . '", multiple: ' . $this->_multiple . ', value: "' . $this->_value . '" }); '); return $html; }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/onoff.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/onoff.js'); $this->_value = $this->_form->get($this->_name, $this->_default); $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $html = "<div class='nextend-onoff nextend-clearfix gk_hack" . $this->isOn() . "' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $hiddenhtml = $hidden->render($this->control_name, false); $html .= $hiddenhtml[1]; $html .= "</div>"; $js->addLibraryJs('dojo', ' new NextendElementOnoff({ hidden: "' . $this->_id . '" }); '); return $html; }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/checkbox.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsAssetsFile('dojo', 'element.js'); $js->addLibraryJsAssetsFile('dojo', 'element/checkbox.js'); $this->_value = $this->_form->get($this->_name, $this->_default); $hidden = new NextendElementHidden($this->_form, $this->_tab, $this->_xml); $html = "<div class='nextend-checkbox nextend-clearfix' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $html .= $this->generateOptions($this->_xml); $hiddenhtml = $hidden->render($this->control_name, false); $html .= $hiddenhtml[1]; $html .= "</div>"; $js->addLibraryJs('dojo', ' new NextendElementCheckbox({ hidden: "' . $this->_id . '", values: ' . json_encode($this->_values) . ' }); '); return $html; }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/subform.css'); $html = "<div class='nextend-subform " . $this->_form->get('class', '') . "' style='" . NextendXmlGetAttribute($this->_xml, 'style') . "'>"; $this->_value = $this->_form->get($this->_name, $this->_default); $html .= parent::fetchElement(); $js = NextendJavascript::getInstance(); $js->addLibraryJsLibraryFile('dojo', 'dojo/window.js'); $js->addLibraryJsAssetsFile('dojo', 'window.js'); $js->addLibraryJs('dojo', ' var a = new NextendWindow({ button: dojo.byId("' . $this->_id . 'nextend-' . $this->_name . '-button"), node: dojo.byId("' . $this->_id . 'nextend-' . $this->_name . '-lightbox"), save: dojo.byId("' . $this->_id . 'nextend-' . $this->_name . '-save") }); '); $html .= '<div id="' . $this->_id . 'nextend-' . $this->_name . '-lightbox" class="gk_hack nextend-window">'; $html .= '<div class="gk_hack nextend-window-container">'; $html .= '<div class="gk_hack nextend-topbar"><div class="gk_hack nextend-topbar-logo"></div>'; $manual = $this->_form->get('manual'); if ($manual != "") { $html .= '<a href="' . $manual . '" target="_blank" class="gk_hack nextend-topbar-button nextend-topbar-manual">Manual</a>'; } $support = $this->_form->get('support'); if ($support != "") { $html .= '<a href="' . $support . '" target="_blank" class="gk_hack nextend-topbar-button nextend-topbar-support">Support</a>'; } $html .= '<div id="' . $this->_id . 'nextend-' . $this->_name . '-save" class="nextend-window-save"><div class="NextendWindowSave">APPLY</div></div>'; $html .= '</div>'; $html .= '<div class="gk_hack nextend-window-container-inner">'; $html .= '<fieldset id="nextend-' . $this->_name . '-panels" class="gk_hack panelform">'; $html .= '<div id="nextend-' . $this->_name . '-panel" class="gk_hack pane-sliders">'; $html .= $this->renderForm(); $html .= '</div>'; $html .= '</fieldset>'; $html .= '</div>'; $html .= '</div>'; $html .= '</div>'; $html .= '<a id="' . $this->_id . 'nextend-' . $this->_name . '-button" class="nextend-configurator-button" href="#">Configure</a>'; $html .= '</div>'; return $html; }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssLibraryFile('element/pluginmatrix.css'); $html = "<div id='nextend-pluginmatrix-" . $this->_id . "'>"; $widgetTypes = $this->getOptions(); $html .= "<div class='nextend-pluginmatrix-views nextend-button-grey nextend-clearfix'>"; $value = $this->_form->get($this->_name, 'arrow'); $test = false; foreach ($widgetTypes as $type => $v) { if ($value == $type) { $test = true; break; } } if (!$test) { $value = 'arrow'; } foreach ($widgetTypes as $type => $v) { if ($value == $type) { $active = 'active '; } else { $active = ''; } $html .= "<div onclick=\"njQuery('#" . $this->_id . "').val('" . $type . "')\" class='" . $active . "nextend-button-grey nextend-button-blue-active nextend-pluginmatrix-view nextend-pluginmatrix-view-" . $type . "'>\r\n <div class='nextend-border'>"; $html .= $v[0]; $html .= "</div></div>"; } $html .= "</div>"; $html .= "<div class='nextend-pluginmatrix-panes nextend-clearfix'>"; foreach ($widgetTypes as $type => $v) { if ($value == $type) { $active = 'active '; } else { $active = ''; } $html .= "<div class='" . $active . "nextend-pluginmatrix-pane nextend-pluginmatrix-pane-" . $type . "'>"; $GLOBALS['nextendbuffer'] = ''; $form = new NextendForm(); $form->_data =& $this->_form->_data; $form->loadXMLFile($v[1] . 'config.xml'); ob_start(); $form->render($this->control_name); $html .= ob_get_clean(); $html .= $GLOBALS['nextendbuffer']; $html .= "</div>"; } $html .= "</div>"; $html .= "</div>"; $js = NextendJavascript::getInstance(); $js->addLibraryJs('jquery', ' (function(){ var parent = $("#nextend-pluginmatrix-' . $this->_id . '"), views = parent.find("> .nextend-pluginmatrix-views > .nextend-pluginmatrix-view"), panes = parent.find("> .nextend-pluginmatrix-panes > .nextend-pluginmatrix-pane"); views.on("click", function(){ views.not(this).removeClass("active"); panes.removeClass("active"); var i = views.index(this); views.eq(i).addClass("active"); panes.eq(i).addClass("active"); njQuery(window).trigger("resize"); }); })(); '); return $html . parent::fetchElement(); }
function fetchElement() { $css = NextendCss::getInstance(); $css->addCssFile(NEXTEND_SMART_SLIDER2_ASSETS . 'admin/css/createquick.css'); $css->addCssLibraryFile('element/textarea.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.core.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.widget.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.mouse.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.sortable.min.js'); $this->_value = $this->_form->get($this->_name, $this->_default); $images = json_decode($this->_value, true); $html = '<div id="selected-images-container" class="">'; if (nextendIsWordpress()) { add_filter('media_view_strings', 'custom_media_uploader_tabs', 5); function custom_media_uploader_tabs($strings) { $strings['insertMediaTitle'] = "Image"; $strings['insertIntoPost'] = "Add to slider"; // remove options if (isset($strings['createGalleryTitle'])) { unset($strings['createGalleryTitle']); } if (isset($strings['insertFromUrlTitle'])) { unset($strings['insertFromUrlTitle']); } return $strings; } wp_enqueue_style('editor'); if (function_exists('wp_enqueue_media')) { wp_enqueue_media(); } else { wp_enqueue_style('thickbox'); wp_enqueue_script('media-upload'); wp_enqueue_script('thickbox'); } $html .= '<a title="Add Image" data-editor="content" class="button add-image" href="#"> <span class="wp-media-buttons-icon"></span> Add Image </a> <div style="clear: both;"></div>'; } else { if (nextendIsMagento()) { $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'extjs/ext-tree.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'extjs/ext-tree-checkbox.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'extjs/fix-defer.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'mage/adminhtml/variables.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'mage/adminhtml/wysiwyg/widget.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'lib/flex.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'lib/FABridge.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'mage/adminhtml/flexuploader.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'mage/adminhtml/browser.js"></script>'; $html .= '<script type="text/javascript" src="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'prototype/window.js"></script>'; $html .= '<link rel="stylesheet" type="text/css" href="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS) . 'prototype/windows/themes/default.css" media="screen"/>'; $html .= '<link rel="stylesheet" type="text/css" href="' . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'adminhtml/default/default/lib/prototype/windows/themes/magento.css" media="screen"/>'; $html .= '<a title="Add Image" data-editor="content" class="button add-image" href="#"> <span class="wp-media-buttons-icon"></span> Add Image </a> <input type="hidden" id="magentohidden" /> <div style="clear: both;"></div>'; } } $html .= '<div id="delete-image"></div> <ul id="selected-images">'; if (is_array($images)) { $i = 0; foreach ($images as $img) { $html .= '<li>'; $html .= '<img src="' . NextendUri::fixrelative($img['image']) . '" data-src="' . $img['image'] . '" /><div class="field-container">'; $html .= ' <div class="nextend-mixed-group"> <div class="nextend-mixed-label"> <label for="title' . $i . '" id="title' . $i . '-lbl">Title</label> </div> <div class="nextend-mixed-element"> <div class="nextend-text "> <input type="text" autocomplete="off" style="width:390px;" value="' . $img['title'] . '" name="" id="title' . $i . '"> </div> </div> </div>'; $html .= ' <div class="nextend-mixed-group" style="clear: both;"> <div class="nextend-mixed-label"> <label for="link' . $i . '" id="link' . $i . '-lbl">Link</label> </div> <div class="nextend-mixed-element"> <div class="nextend-text"> <input type="text" autocomplete="off" style="width:390px;" value="' . $img['url'] . '" name="" id="link' . $i . '"> </div> </div> </div>'; $html .= ' <div class="nextend-mixed-group" style="clear: both;"> <div class="nextend-mixed-label"> <label for="description' . $i . '" id="description' . $i . '-lbl">Description</label> </div> <div class="nextend-mixed-element"> <div class="nextend-textarea "> <textarea autocomplete="off" style="width:400px; height: 40px;" name="" id="description' . $i . '">' . $img['description'] . '</textarea> </div> </div> </div>'; $html .= '</div><div style="clear:both;"></div></li>'; $i++; } } $html .= '</ul> <div style="clear: both;"></div> </div>' . parent::fetchElement(); if (nextendIsJoomla()) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $extension = $app->input->get('option'); $link = 'index.php?option=com_media&view=images&tmpl=component&e_name=&asset=' . $extension . '&author=' . $user->id; $html .= '<div style="margin: 0 -10px -5px;"><h2>Choose images</h2> <div class="blue-container"> <iframe frameborder="0" src="' . $link . '" id="image-chooser" width="100%" style="float: left; width: 100%;" height="0"></iframe> </div></div>'; } ob_start(); ?> <script type="text/html" id="image-form-skeleton"> <div class="field-container"> <div class="nextend-mixed-group"> <div class="nextend-mixed-label"> <label for="title'.$i.'" id="title'.$i.'-lbl">Title</label> </div> <div class="nextend-mixed-element"> <div class="nextend-text "> <input type="text" autocomplete="off" style="width:390px;" value="" name="" id="title'.$i.'"> </div> </div> </div> <div class="nextend-mixed-group" style="clear: both;"> <div class="nextend-mixed-label"> <label for="link'.$i.'" id="link'.$i.'-lbl">Link</label> </div> <div class="nextend-mixed-element"> <div class="nextend-text"> <input type="text" autocomplete="off" style="width:390px;" value="" name="" id="link'.$i.'"> </div> </div> </div> <div class="nextend-mixed-group" style="clear: both;"> <div class="nextend-mixed-label"> <label for="description'.$i.'" id="description'.$i.'-lbl">Description</label> </div> <div class="nextend-mixed-element"> <div class="nextend-textarea "> <textarea autocomplete="off" style="width:400px; height: 40px;" name="" id="description'.$i.'"></textarea> </div> </div> </div> </div> <div style="clear:both;"></div> </script> <script> njQuery(window).ready(function(){ var $ = njQuery, images = $('#selected-images'), deleteimage = $('#delete-image'), form = $('#smartslider-form'), skeleton = njQuery('#image-form-skeleton').html(), iii = 10000; function addImageToList(img){ var el = $('<li><img src="'+nextendFixRelative(img)+'" data-src="'+img+'" />'+skeleton.replace(/'\.\$i\.'/g, iii)+'</li>').appendTo(images); iii++; images.sortable( "refresh" ); $(window).trigger('resize'); return el; } <?php if (nextendIsJoomla()) { ?> var folder = "<?php echo JComponentHelper::getParams('com_media')->get('image_path', 'images') . '/'; ?> ", base_uri = "<?php echo NextendUri::getBaseUri(); ?> ", iframe = $('#image-chooser'), frame = $('#image-chooser'); frame.on('load', function(){ frame = $(this.contentWindow.document); frame.find('#imageframe').next('.well').remove(); frame.find('#imageframe').next('fieldset').remove(); frame.find('#imageframe').prev('fieldset').find('.fltrt').remove(); frame.find('#imageForm').find('.pull-right').remove(); frame.find('#upbutton').css('verticalAlign', 'top'); this.contentWindow.ImageManager.populateFields = function(file){ var uri = ''; if(window.nextendimageurl == 0) uri = base_uri; addImageToList(uri+folder+file); } frame.find('#system-message-container').css('paddingTop', '15px'); frame.find('body').css('overflow', 'hidden').css('padding', '0 15px'); iframe.css('height', frame.find('html').prop('scrollHeight')); $(window).trigger('resize'); }); <?php } elseif (nextendIsWordpress()) { ?> var file_frame; jQuery('#smartslider-admin .add-image').on('click', function(event){ event.preventDefault(); // If the media frame already exists, reopen it. if ( file_frame ) { file_frame.open(); return; } // Create the media frame. file_frame = wp.media.frames.file_frame = wp.media({ multiple: 'add', frame: 'post', library: {type: 'image'} }); // When an image is selected, run a callback. file_frame.on('insert', function(selection) { var state = file_frame.state(); selection = selection || state.get('selection'); if ( ! selection ) return; selection.map( function( attachment ) { var display = state.display( attachment ).toJSON(); attachment = attachment.toJSON(); var el = addImageToList(attachment.url); el.find('input[id^=title]').val(attachment.title); if(attachment.caption != '') el.find('textarea[id^=description]').val(attachment.caption); else if(attachment.description != '') el.find('textarea[id^=description]').val(attachment.description); if(typeof display !== 'undefined' && typeof display.linkUrl !== 'undefined') el.find('input[id^=link]').val(display.linkUrl); }); }); file_frame.open(); // Remove the Media Library tab (media_upload_tabs filter is broken in 3.6) jQuery(".media-menu a:contains('Media Library')").remove(); }); <?php } elseif (nextendIsMagento()) { ?> var magentohidden = document.getElementById('magentohidden'); Mediabrowser.prototype.insert = Mediabrowser.prototype.insert.wrap(function(parentMethod, event) { var div; if (event != undefined) { div = $(Event.findElement(event, 'DIV')); } else { $$('div.selected').each(function (e) { div = $('#'+e.id); }); } if (div.length == 0) { return false; } var targetEl = this.getTargetElement(); if (! targetEl) { alert("Target element not found for content update"); Windows.close('browser_window'); return; } div = div[0]; var params = {filename:div.id, node:this.currentNode.id, store:this.storeId}; if (targetEl.tagName.toLowerCase() == 'textarea') { params.as_is = 1; } new Ajax.Request(this.onInsertUrl, { parameters: params, onSuccess: function(transport) { try { this.onAjaxSuccess(transport); if (this.getMediaBrowserOpener()) { self.blur(); } Windows.close('browser_window'); if (targetEl.tagName.toLowerCase() == 'input') { targetEl.value = transport.responseText; // AntoineK overload START if (varienGlobalEvents) { varienGlobalEvents.fireEvent('mediachooserChange' + targetEl.id, transport.responseText); } // AntoineK overload END } else { updateElementAtCursor(targetEl, transport.responseText); if (varienGlobalEvents) { varienGlobalEvents.fireEvent('tinymceChange'); } } } catch (e) { alert(e.message); } }.bind(this) }); }); jQuery('#smartslider-admin .add-image').on('click', function(event){ event.preventDefault(); MediabrowserUtility.openDialog('<?php echo Mage::helper("adminhtml")->getUrl('adminhtml/cms_wysiwyg_images_chooser/index', array('target_element_id' => 'magentohidden', 'store' => 'undefined', 'type' => 'image')); ?> '); }); varienGlobalEvents.attachEventHandler('mediachooserChangemagentohidden', function(url){ addImageToList(url); }); <?php } ?> $(document.body).css('overflow', 'auto'); images.sortable({ connectWith: deleteimage, placeholder: "ui-state-highlight", forcePlaceholderSize: true, appendTo: document.body, tolerance: 'pointer', handle: "img", over: function(){ $(window).trigger('resize'); }, out: function(){ $(window).trigger('resize'); } }); $(window).on('resize', function(){ deleteimage.height(images.height()); }); deleteimage.sortable({ tolerance: 'pointer', appendTo: document.body, over: function(){ deleteimage.addClass('over'); $(window).trigger('resize'); }, out: function(){ deleteimage.removeClass('over'); $(window).trigger('resize'); }, update: function(event, ui) { ui.item.remove(); $(window).trigger('resize'); } }); images.find('img').disableSelection(); form.on('submit', function(){ var data = {}, i = 0; images.find('img').each(function(){ data[i] = {}; data[i].image = $(this).data('src'); var cont = $(this).parent(); data[i].title = cont.find('input[id^=title]').val(); data[i].url = cont.find('input[id^=link]').val(); data[i].description = cont.find('textarea[id^=description]').val(); i++; }); $('#<?php echo $this->_id; ?> ').val(JSON.stringify(data)); }); }); </script> <?php $html .= ob_get_clean(); return $html; }