/** * UI.Layout creates a 'page-layout' that has auto-sizing 'center pane' * surrounded by up to four collapsible and resizable 'border panes' * (north, south, east & west). It can also create multiple headers & * footers inside each pane. * @param string $layoutName The layout name * @param string $selector jQuery Selector * @param array() $configurations Array. See the options and events in * http://layout.jquery-dev.net/documentation.html#Options */ function ui_layout_configure_to($layoutName, $selector, $configurations = array()) { $configurations = get_default_widget_configuration('app_ys_jquery_ui_layout_defaults', $configurations); if (isset($configurations['yml'])) { $ymlItems = sfYaml::load($configurations['yml']); $ymlIndex = isset($configurations['ymlKey']) ? $configurations['ymlKey'] : 'layout'; $ymlConfigurations = isset($ymlItems[$ymlIndex]) ? $ymlItems[$ymlIndex] : array(); $configurations = array_merge($ymlConfigurations, $configurations); unset($configurations['yml'], $configurations['ymlKey']); } $support = core_init_javasacript_tag(); $support .= 'var ' . $layoutName . ';'; $pattern = ui_layout_pattern($configurations); $utilityMethods = ''; if (!is_array($configurations) || !sizeof($configurations) > 0) { $configurations = array('applyDefaultStyles' => true); } else { if (!isset($configurations['name'])) { $configurations['name'] = $layoutName; } $utilityMethods = ui_layout_utility_methods_pattern($layoutName, $configurations); } if (isset($configurations['cache']) && $configurations['cache'] === true) { echo add_jquery_support('window', 'unload', like_function("layoutState.save('{$layoutName}')")); $pattern = "\$.extend( {$pattern} , layoutState.load('{$layoutName}'))"; } $jsVar = like_function($layoutName . ' = ' . jquery_support($selector, 'layout', $pattern, true, $utilityMethods)); $support .= jquery_support($selector, 'ready', $jsVar); echo $support .= core_end_javasacript_tag(); }
/** * * @param string $selector A jQuery Selector * @param string $events An event type to unbind * @param string $args Arguments or a javascript function sintax. * @param bollean $unescapeId The jQUery selector without "'" * @param string $accesors Accesor for the jQuery object * @return string jQuery syntax */ function add_jquery_support($selector, $event = 'ready', $args = "function(){return false;}", $unescapeId = true, $accesors = '', $addSeparator = true) { $support = core_init_javasacript_tag(); if ($event === 'ready') { $support .= jquery_support($selector, 'ready', $args); } else { $support .= jquery_support($selector, 'ready', like_function(jquery_support($selector, $event, $args))); } $support .= core_end_javasacript_tag(); return $support; }