public function load_from_post() { global $website; // it can only be extension options! if (!empty($this->definition->options)) { foreach ($this->definition->options as $extension_option) { // get property info $property = new property(); $property->load_from_object($extension_option, $this->settings->{$extension_option->id}, $this); $value = ''; switch ($property->type) { case 'text': case 'textarea': // multilang $value = array(); foreach ($website->languages_list as $lang) { $value[$lang] = $_REQUEST['property-' . $extension_option->id . '-' . $lang]; } break; case 'link': // multilang and title+link $value = array(); foreach ($website->languages_list as $lang) { $value[$lang] = $_REQUEST['property-' . $extension_option->id . '-' . $lang . '-link'] . '##' . $_REQUEST['property-' . $extension_option->id . '-' . $lang . '-title']; } break; case 'date': case 'datetime': $value = core_date2ts($_REQUEST['property-' . $extension_option->id]); break; case 'moption': $value = implode(',', $_REQUEST['property-' . $extension_option->id]); break; case 'coordinates': $value = $_REQUEST['property-' . $extension_option->id . '-latitude'] . '#' . $_REQUEST['property-' . $extension_option->id . '-longitude']; break; case 'boolean': $value = 0; if ($_REQUEST['property-' . $extension_option->id] == '1') { $value = 1; } break; default: // direct value $value = $_REQUEST['property-' . $extension_option->id]; } $this->settings[$extension_option->id] = $value; } } }
function extensions_options($extension, $saved = null) { global $layout; global $website; global $events; $layout = null; $layout = new layout('navigate'); if ($saved !== null) { if ($saved) { $layout->navigate_notification(t(53, "Data saved successfully."), false, false, 'fa fa-check'); } else { $layout->navigate_notification(t(56, "Unexpected error"), true, true); } } $navibars = new navibars(); $naviforms = new naviforms(); $navibars->title(t(327, 'Extensions')); $layout->navigate_media_browser(); // we can use media browser in this function $navibars->add_actions(array('<a href="#" onclick="javascript: navigate_media_browser();"><img height="16" align="absmiddle" width="16" src="img/icons/silk/images.png"> ' . t(36, 'Media') . '</a>')); $navibars->add_actions(array('<a href="#" onclick="navigate_tabform_submit(0);"><img height="16" align="absmiddle" width="16" src="img/icons/silk/accept.png"> ' . t(34, 'Save') . '</a>')); $navibars->form(); $navibars->add_tab(t(7, 'Configuration')); $navibars->add_tab_content($naviforms->hidden('form-sent', 'true')); // show a language selector (only if it's a multi language website and has properties) if (!empty($extension->definition->options) && count($website->languages) > 1) { $website_languages_selector = $website->languages(); $website_languages_selector = array_merge(array('' => '(' . t(443, 'All') . ')'), $website_languages_selector); $navibars->add_tab_content_row(array('<label>' . t(63, 'Languages') . '</label>', $naviforms->buttonset('language_selector', $website_languages_selector, '', "navigate_tabform_language_selector(this);")), "navigate-form-language_selector"); // hide languages selector if there isn't a multilanguage property $layout->add_script(' $(document).ready(function() { if($("#navigate-content-tabs-1 .navigate-form-row[lang]").length < 1) { $("#navigate-form-language_selector").css("display", "none"); } }); '); } foreach ($extension->definition->options as $option) { $property = new property(); $property->load_from_object($option, $extension->settings[$option->id], $extension); if ($property->type == 'tab') { $navibars->add_tab($property->name); if (count($website->languages) > 1) { $website_languages_selector = $website->languages(); $website_languages_selector = array_merge(array('' => '(' . t(443, 'All') . ')'), $website_languages_selector); $navibars->add_tab_content_row(array('<label>' . t(63, 'Languages') . '</label>', $naviforms->buttonset('language_selector', $website_languages_selector, '', "navigate_tabform_language_selector(this);"))); } } if ($property->type == 'function') { $fname = $option->dvalue; if (empty($fname)) { $fname = $option->function; } // load the extension source code, if not already done extension::include_php($extension->code); if (!function_exists($fname)) { continue; } call_user_func($fname, array('extension' => $extension, 'navibars' => $navibars, 'naviforms' => $naviforms)); } else { $navibars->add_tab_content(navigate_property_layout_field($property, $extension)); } } $layout->add_content('<div id="navigate-content" class="navigate-content ui-corner-all">' . $navibars->generate() . '</div>'); $layout->navigate_additional_scripts(); navigate_property_layout_scripts(); // add javascript to enable special buttons and functions (Copy from, etc.) $layout->add_script(' $("html").css("background", "transparent"); '); $out = $layout->generate(); return $out; }
function block_group_extension_block_options($block_group, $block_extension, $block_id, $block_uid, $status) { global $layout; global $website; global $theme; if (empty($block_extension)) { throw new Exception("Unknown extension: {" . $block_extension . "} for block with uid:" . $block_uid); } $extension = new extension(); $extension->load($block_extension); $block = block::extension_block($extension, $block_id); $properties = $block->properties; if (empty($properties)) { return; } $layout = null; $layout = new layout('navigate'); if ($status !== null) { if ($status) { $layout->navigate_notification(t(53, "Data saved successfully."), false, false, 'fa fa-check'); } else { $layout->navigate_notification(t(56, "Unexpected error"), true, true); } } $navibars = new navibars(); $naviforms = new naviforms(); $navibars->title(t(437, 'Block') . ' [' . $block_extension . ' / ' . $block_id . ']'); $layout->navigate_media_browser(); // we can use media browser in this function $navibars->add_actions(array('<a href="#" onclick="javascript: navigate_media_browser();"> <img height="16" align="absmiddle" width="16" src="img/icons/silk/images.png"> ' . t(36, 'Media') . '</a>')); $navibars->add_actions(array('<a href="#" onclick="navigate_tabform_submit(0);"> <img height="16" align="absmiddle" width="16" src="img/icons/silk/accept.png"> ' . t(34, 'Save') . '</a>')); $navibars->form(); $navibars->add_tab(t(200, 'Options')); $navibars->add_tab_content($naviforms->hidden('form-sent', 'true')); // show a language selector (only if it's a multi language website) if (count($website->languages) > 1) { $website_languages_selector = $website->languages(); $website_languages_selector = array_merge(array('' => '(' . t(443, 'All') . ')'), $website_languages_selector); $navibars->add_tab_content_row(array('<label>' . t(63, 'Languages') . '</label>', $naviforms->buttonset('language_selector', $website_languages_selector, '', "navigate_tabform_language_selector(this);"))); } $properties_values = property::load_properties(NULL, $block_id, "extension_block", $block_group, $block_uid); foreach ($properties as $option) { $property = new property(); $property_value = ''; foreach ($properties_values as $pv) { if ($pv->id == $option->id) { $property_value = $pv->value; } } $property->load_from_object($option, $property_value, $extension); if ($property->type == 'tab') { $navibars->add_tab($property->name); if (count($website->languages) > 1) { $website_languages_selector = $website->languages(); $website_languages_selector = array_merge(array('' => '(' . t(443, 'All') . ')'), $website_languages_selector); $navibars->add_tab_content_row(array('<label>' . t(63, 'Languages') . '</label>', $naviforms->buttonset('language_selector', $website_languages_selector, '', "navigate_tabform_language_selector(this);"))); } } $navibars->add_tab_content(navigate_property_layout_field($property, $extension)); } $layout->add_content('<div id="navigate-content" class="navigate-content ui-corner-all">' . $navibars->generate() . '</div>'); navigate_property_layout_scripts(); $layout->navigate_additional_scripts(); $layout->add_script(' $("html").css("background", "transparent"); '); $out = $layout->generate(); return $out; }