From: Sylvie G. <sgr...@gm...> - 2009-07-09 19:55:47
|
Hi Stephane, THis one breaks the tab view/no tab in ajax is not on. If you have an idea, thx sylvie On Fri, 2009-06-05 at 09:20 +0000, se...@us... wrote: > Revision: 19333 > http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=19333&view=rev > Author: sept_7 > Date: 2009-06-05 09:20:27 +0000 (Fri, 05 Jun 2009) > > Log Message: > ----------- > [FIX] fix tab and tabset : use cookie instead of mix of REQUEST and SESSION > [FIX] ajaxlib : put script at the end of the ajax request to allow script to > interact with the new HTML > [FIX] Cookie handling for tab setting via ?cookietab= and set the global variable $cookietab > [FIX] jaxa_href : solve interaction betwwen _onclick and ajax by prepending the _onclick script to the ajax call > > Modified Paths: > -------------- > trunk/lib/ajax/ajaxlib.php > trunk/lib/setup/cookies.php > trunk/lib/smarty_tiki/block.ajax_href.php > trunk/lib/smarty_tiki/block.self_link.php > trunk/lib/smarty_tiki/block.tab.php > trunk/lib/smarty_tiki/block.tabset.php > trunk/tiki-admin.php > > Modified: trunk/lib/ajax/ajaxlib.php > =================================================================== > --- trunk/lib/ajax/ajaxlib.php 2009-06-05 09:16:35 UTC (rev 19332) > +++ trunk/lib/ajax/ajaxlib.php 2009-06-05 09:20:27 UTC (rev 19333) > @@ -180,21 +180,15 @@ > // This has to be done here, since it is tikitabs() is usually called when loading the <body> tag > // which is not done again when replacing content by the XAJAX response > // > - $max_tikitabs = (int)$max_tikitabs; > - if ( $max_tikitabs > 0 && $prefs['feature_tabs'] == 'y' ) { > - global $cookietab; > - $tab = ( $cookietab != '' ) ? (int)$cookietab : 1; > - $objResponse->script("tikitabs($tab,$max_tikitabs);"); > - } > - > + > // take out javascript from the html response because it needs to be sent specifically as javascript > // using $objResponse->script($s) below > - > + > preg_match_all('/(?:<script.*type=[\'"]?text\/javascript[\'"]?.*>\s*?)(.*)(?:\s*<\/script>)/Umis', $content, $jsarr); > if (count($jsarr) > 1 && is_array($jsarr[1])) { > $js = preg_replace('/\s*?<\!--\/\/--><\!\[CDATA\[\/\/><\!--\s*?/Umis', '', $jsarr[1]); // strip out CDATA XML wrapper if there > $js = preg_replace('/\s*?\/\/--><\!\]\]>\s*?/Umis', '', $js); > - > + > // change 'function fName (' to 'fName = function(' (as it seems to work then) > $js = preg_replace('/function (.*)\(/Umis', "$1 = function(", $js); > //taginsert = function ( > @@ -216,7 +210,7 @@ > $js = $jsarr[1]; > $js_files = array_merge($js_files, $js); > } > - > + > if (preg_match('/overlib\(/Umis', $content)) { > //array_unshift($js_files, 'lib/overlib.js'); // just for now... (it stops the JS error on rollover but the tooltip doesn't appear - TODO replace with JQuery tips) > $js_script[] = file_get_contents('lib/overlib.js'); > @@ -233,9 +227,9 @@ > global $area; > > $params = array( > - '_tag' => 'n', > - '_keepall' => 'y' > - ); > + '_tag' => 'n', > + '_keepall' => 'y' > + ); > > if ( $prefs['feature_ticketlib2'] == 'y' ) { > $objResponse->confirmCommands(1, $smarty->get_template_vars('confirmation_text')); > @@ -254,7 +248,7 @@ > } > > $js_files[] = 'tiki-jsplugin.php'; > - > + > if (sizeof($js_files)) { > foreach($js_files as $f) { > if (trim($f) != '') { > @@ -278,6 +272,12 @@ > $objResponse->call("auto_save"); > } > } > + $max_tikitabs = (int)$max_tikitabs; > + if ( $max_tikitabs > 0 && $prefs['feature_tabs'] == 'y' ) { > + global $cookietab; > + $tab = ( $cookietab != '' ) ? (int)$cookietab : 1; > + $objResponse->script("tikitabs($tab,$max_tikitabs);"); > + } > > return $objResponse; > } > > Modified: trunk/lib/setup/cookies.php > =================================================================== > --- trunk/lib/setup/cookies.php 2009-06-05 09:16:35 UTC (rev 19332) > +++ trunk/lib/setup/cookies.php 2009-06-05 09:20:27 UTC (rev 19333) > @@ -53,18 +53,23 @@ > } > } > > +global $cookietab; > if ($prefs['feature_tabs'] == 'y') { > if( isset($_GET['cookietab'])) { > $smarty->assign('cookietab',$_GET['cookietab']); > + $cookietab = $_GET['cookietab']; > } else if (count($_POST) > 0 and preg_replace(array('/\?.*$/','/^http.?:\/\//'),'',$_SERVER['HTTP_REFERER']) == preg_replace('/\?.*$/','',$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) && isset($_COOKIE['tab'])) { > $smarty->assign('cookietab',$_COOKIE['tab']); > + $cookietab = $_COOKIE['tab']; > } else if (isset($_SERVER['HTTP_REFERER']) && preg_replace(array('/\?.*$/','/^http.?:\/\//'),'',$_SERVER['HTTP_REFERER']) == preg_replace('/\?.*$/','',$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) && isset($_COOKIE['tab'])) { > preg_match('/[\?\&]page=([^\&]*)/', $_SERVER['REQUEST_URI'], $q_match); // TODO replace with better way to get a param? > preg_match('/[\?\&]page=([^\&]*)/', $_SERVER['HTTP_REFERER'], $ref_match); > if ($q_match == $ref_match) { // for admin includes when staying on same panel > $smarty->assign('cookietab',$_COOKIE['tab']); > + $cookietab = $_COOKIE['tab']; > } > } else { > $smarty->assign('cookietab',1); > + $cookietab = 1; > } > } > > Modified: trunk/lib/smarty_tiki/block.ajax_href.php > =================================================================== > --- trunk/lib/smarty_tiki/block.ajax_href.php 2009-06-05 09:16:35 UTC (rev 19332) > +++ trunk/lib/smarty_tiki/block.ajax_href.php 2009-06-05 09:20:27 UTC (rev 19333) > @@ -10,6 +10,11 @@ > global $prefs, $user; > if ( $repeat ) return; > > + if ( !empty($params['_onclick']) ) { > + $onclick = $params['_onclick']; > + } else { > + $onclick = ''; > + } > $url = $content; > $template = $params['template']; > $htmlelement = $params['htmlelement']; > @@ -20,6 +25,6 @@ > return " href=\"$url\" "; > } else { > $max_tikitabs = 50; // Same value as in header.tpl, <body> tag onload's param > - return " href=\"#main\" onclick=\"$func('$url','$template','$htmlelement',$max_tikitabs,'$last_user');return false;\" "; > + return " href=\"#main\" onclick=\"$onclick ;$func('$url','$template','$htmlelement',$max_tikitabs,'$last_user');return false;\" "; > } > } > > Modified: trunk/lib/smarty_tiki/block.self_link.php > =================================================================== > --- trunk/lib/smarty_tiki/block.self_link.php 2009-06-05 09:16:35 UTC (rev 19332) > +++ trunk/lib/smarty_tiki/block.self_link.php 2009-06-05 09:20:27 UTC (rev 19333) > @@ -80,11 +80,12 @@ > $params['_template'] = ''; > } > $ret = smarty_block_ajax_href( > - array('template' => $params['_template'], 'htmlelement' => $params['_htmlelement']), > + array('template' => $params['_template'], 'htmlelement' => $params['_htmlelement'], '_onclick' => $params['_onclick']), > $ret, > $smarty, > false > ); > + unset($params['_onclick']); > } else { > $ret = 'href="'.$ret.'"'; > } > > Modified: trunk/lib/smarty_tiki/block.tab.php > =================================================================== > --- trunk/lib/smarty_tiki/block.tab.php 2009-06-05 09:16:35 UTC (rev 19332) > +++ trunk/lib/smarty_tiki/block.tab.php 2009-06-05 09:20:27 UTC (rev 19333) > @@ -34,11 +34,12 @@ > } > > $ret = "<fieldset "; > - if ($prefs['feature_tabs'] == 'y' and $_SESSION["tabbed_$smarty_tabset_name"] == 'y') { > + if ($prefs['feature_tabs'] == 'y' and $_COOKIE["tabbed_$smarty_tabset_name"] != 'n') { > $ret .= "id='content".sizeof($smarty_tabset)."' class='tabcontent' style='clear:both;display:block;'"; > + } else { > + $ret .= ">"; > } > - $ret .= ">"; > - if ($prefs['feature_tabs'] != 'y' or $_SESSION["tabbed_$smarty_tabset_name"] == 'n') { > + if ($prefs['feature_tabs'] != 'y' or $_COOKIE["tabbed_$smarty_tabset_name"] == 'n') { > $ret .= '<legend class="heading"><a href="#"><span>'.$params['name'].'</span></a></legend>'; > } > > > Modified: trunk/lib/smarty_tiki/block.tabset.php > =================================================================== > --- trunk/lib/smarty_tiki/block.tabset.php 2009-06-05 09:16:35 UTC (rev 19332) > +++ trunk/lib/smarty_tiki/block.tabset.php 2009-06-05 09:20:27 UTC (rev 19333) > @@ -36,30 +36,24 @@ > $smarty_tabset_name = "tiki_tabset"; > } > global $smarty_tabset_name, $smarty_tabset; > - if ( !empty($_REQUEST['tabbed_'.$smarty_tabset_name]) ) { > - $_SESSION["tabbed_$smarty_tabset_name"] = $_REQUEST['tabbed_'.$smarty_tabset_name] ; > - } else { > - $_SESSION["tabbed_$smarty_tabset_name"] = 'y'; > - } > return; > } else { > //closing > if ( $prefs['feature_tabs'] == 'y') { > require_once $smarty->_get_plugin_filepath('function','button'); > - if (isset($_SESSION["tabbed_$smarty_tabset_name"]) and $_SESSION["tabbed_$smarty_tabset_name"] == 'n') { > + if (isset($_COOKIE["tabbed_$smarty_tabset_name"]) and $_COOKIE["tabbed_$smarty_tabset_name"] == 'n') { > $button_params['_text'] = tra('Tab View'); > } else { > $button_params['_text'] = tra('No Tab'); > } > - $notabs = '<input type="hidden" name="tabbed_'.$smarty_tabset_name.'" value="'.($_SESSION["tabbed_$smarty_tabset_name"] == 'n' ? 'n' : 'y').'"/>'; > - $button_params['_script'] = '#'; > - $button_params['_onclick'] = "tabbed_input = document.getElementsByName('tabbed_$smarty_tabset_name')[0]; tabbed_input.value ='".($_SESSION["tabbed_$smarty_tabset_name"] == 'n' ? 'y' : 'n' )."' ; tabbed_input.form.submit();"; > + $button_params['_auto_args']='*'; > + $button_params['_onclick'] = "setCookie('tabbed_$smarty_tabset_name','".($_COOKIE["tabbed_$smarty_tabset_name"] == 'n' ? 'y' : 'n' )."') ;"; > $notabs .= smarty_function_button($button_params,$smarty); > } else { > return $content; > } > $ret = "<div class='floatright'>$notabs</div><br class='clear'/>"; > - if ( $_SESSION["tabbed_$smarty_tabset_name"] == 'n' ) { > + if ( $_COOKIE["tabbed_$smarty_tabset_name"] == 'n' ) { > return $ret.$content; > } > $ret .= '<div class="tabs"> > > Modified: trunk/tiki-admin.php > =================================================================== > --- trunk/tiki-admin.php 2009-06-05 09:16:35 UTC (rev 19332) > +++ trunk/tiki-admin.php 2009-06-05 09:20:27 UTC (rev 19333) > @@ -13,6 +13,7 @@ > include_once ('lib/admin/adminlib.php'); > > $tikifeedback = array(); > +$auto_query_args = array('page'); > > if ($tiki_p_admin != 'y') { > $smarty->assign('errortype', 401); > > > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. > > ------------------------------------------------------------------------------ > OpenSolaris 2009.06 is a cutting edge operating system for enterprises > looking to deploy the next generation of Solaris that includes the latest > innovations from Sun and the OpenSource community. Download a copy and > enjoy capabilities such as Networking, Storage and Virtualization. > Go to: http://p.sf.net/sfu/opensolaris-get > _______________________________________________ > Tikiwiki-cvs mailing list > Tik...@li... > https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs |