From 485b3d703febd1730df926e4ca657ebc91a986cb Mon Sep 17 00:00:00 2001 From: fisharebest Date: Sat, 5 Nov 2011 16:40:41 +0000 Subject: Clippings cart - recent MVC changes caused the cart to be cleared after every page. This is because we now close the PHP session when we print the header. --- modules_v3/clippings/clippings_ctrl.php | 28 +++++++++++++--------------- modules_v3/clippings/index.php | 9 ++++----- modules_v3/clippings/module.php | 26 ++++++++++++-------------- 3 files changed, 29 insertions(+), 34 deletions(-) (limited to 'modules_v3') diff --git a/modules_v3/clippings/clippings_ctrl.php b/modules_v3/clippings/clippings_ctrl.php index 4f733b8249..037afaf91d 100644 --- a/modules_v3/clippings/clippings_ctrl.php +++ b/modules_v3/clippings/clippings_ctrl.php @@ -67,7 +67,7 @@ class WT_Controller_Clippings extends WT_Controller_Base { var $level3; // number of levels of descendents public function __construct() { - global $SCRIPT_NAME, $MEDIA_DIRECTORY, $MEDIA_FIREWALL_ROOTDIR, $GEDCOM, $cart; + global $SCRIPT_NAME, $MEDIA_DIRECTORY, $MEDIA_FIREWALL_ROOTDIR, $GEDCOM; parent::__construct(); @@ -89,7 +89,6 @@ class WT_Controller_Clippings extends WT_Controller_Base { $this->level3 = safe_GET('level3', WT_REGEX_INTEGER, PHP_INT_MAX); $others = safe_GET('others'); $item = safe_GET('item'); - if (!isset($cart)) $cart = $_SESSION['cart']; $this->type = safe_GET('type'); $this->conv_path = stripLRMRLM($this->conv_path); @@ -161,21 +160,20 @@ class WT_Controller_Clippings extends WT_Controller_Base { } } else if ($this->action == 'remove') { - $ct = count($cart); + $ct = count($_SESSION['cart']); for ($i = $item +1; $i < $ct; $i++) { - $cart[$i -1] = $cart[$i]; + $_SESSION['cart'][$i -1] = $_SESSION['cart'][$i]; } - unset ($cart[$ct -1]); + unset ($_SESSION['cart'][$ct -1]); } else if ($this->action == 'empty') { - $cart = array (); - $_SESSION["cart"] = $cart; + $_SESSION['cart'] = array(); } else if ($this->action == 'download') { - usort($cart, "same_group"); + usort($_SESSION['cart'], "same_group"); $media = array (); $mediacount = 0; - $ct = count($cart); + $ct = count($_SESSION['cart']); $filetext = gedcom_header(WT_GEDCOM); // Include SUBM/SUBN records, if they exist $subn= @@ -213,7 +211,7 @@ class WT_Controller_Clippings extends WT_Controller_Base { } for ($i = 0; $i < $ct; $i++) { - $clipping = $cart[$i]; + $clipping = $_SESSION['cart'][$i]; if ($clipping['gedcom'] == WT_GEDCOM) { $object=WT_GedcomRecord::getInstance($clipping['id']); list($record)=$object->privatizeGedcom($access_level); @@ -286,10 +284,10 @@ class WT_Controller_Clippings extends WT_Controller_Base { } public static function id_in_cart($id) { - global $cart, $GEDCOM; - $ct = count($cart); + global $GEDCOM; + $ct = count($_SESSION['cart']); for ($i = 0; $i < $ct; $i++) { - $temp = $cart[$i]; + $temp = $_SESSION['cart'][$i]; if ($temp['id'] == $id && $temp['gedcom'] == $GEDCOM) { return true; } @@ -355,7 +353,7 @@ class WT_Controller_Clippings extends WT_Controller_Base { * @param */ function add_clipping($clipping) { - global $cart, $GEDCOM; + global $GEDCOM; if (!$clipping || !$clipping->canDisplayName()) { return; @@ -372,7 +370,7 @@ class WT_Controller_Clippings extends WT_Controller_Base { $ged_id=get_id_from_gedcom($GEDCOM); $gedrec=WT_GedcomRecord::getInstance($clipping['id']); if ($gedrec->canDisplayName()) { - $cart[] = $clipping; + $_SESSION['cart'][] = $clipping; $this->addCount++; } else { $this->privCount++; diff --git a/modules_v3/clippings/index.php b/modules_v3/clippings/index.php index 2a9c8d2179..8efdafec98 100644 --- a/modules_v3/clippings/index.php +++ b/modules_v3/clippings/index.php @@ -30,7 +30,7 @@ if (!defined('WT_WEBTREES')) { exit; } -global $ENABLE_AUTOCOMPLETE, $cart, $MAX_PEDIGREE_GENERATIONS, $TEXT_DIRECTION, $GEDCOM, $WT_IMAGES; +global $ENABLE_AUTOCOMPLETE, $MAX_PEDIGREE_GENERATIONS, $TEXT_DIRECTION, $GEDCOM, $WT_IMAGES; require_once WT_ROOT.WT_MODULES_DIR.'clippings/clippings_ctrl.php'; @@ -43,7 +43,7 @@ echo WT_JS_START; echo 'function radAncestors(elementid) {var radFamilies=document.getElementById(elementid);radFamilies.checked=true;}'; echo WT_JS_END; -if (count($cart)==0) { ?> +if (count($_SESSION['cart'])==0) { ?>

action=='add') { privCount>0) { echo "".WT_I18N::translate('Some items could not be added due to privacy restrictions')."

"; @@ -277,7 +277,7 @@ if ($ct==0) { SOUR //print_r($clipping); //-- don't show clippings from other gedcoms @@ -309,4 +309,3 @@ if ($ct==0) { id=$record->getXref(); $controller->type=$record->getType(); $ret = $controller->add_clipping($record); - if (isset($_SESSION["cart"])) $_SESSION["cart"]=$cart; if ($ret) return $this->askAddOptions($record); } } elseif (!empty($add1)) { @@ -176,32 +175,32 @@ class clippings_WT_Module extends WT_Module implements WT_Module_Menu, WT_Module } } else if ($remove!=-1) { - $ct = count($cart); + $ct = count($_SESSION['cart']); for ($i = $remove +1; $i < $ct; $i++) { - $cart[$i -1] = $cart[$i]; + $_SESSION['cart'][$i -1] = $_SESSION['cart'][$i]; } - unset ($cart[$ct -1]); + unset ($_SESSION['cart'][$ct -1]); } else if (isset($_REQUEST['empty'])) { - $cart = array (); - $_SESSION["cart"] = $cart; + $_SESSION['cart'] = array (); + $_SESSION["cart"] = $_SESSION['cart']; } else if (isset($_REQUEST['download'])) { return $this->downloadForm(); } - if (isset($_SESSION["cart"])) $_SESSION["cart"]=$cart; + if (isset($_SESSION["cart"])) $_SESSION["cart"]=$_SESSION['cart']; return $this->getCartList(); } public function getCartList() { - global $WT_IMAGES, $cart; + global $WT_IMAGES; $out =''; - if (count($cart)>0) { + if (count($_SESSION['cart'])>0) { $out .= ''.WT_I18N::translate('Empty Cart').''.help_link('empty_cart', $this->getName()); $out .= '
'.WT_I18N::translate('Download Now').''; } @@ -315,7 +314,6 @@ class clippings_WT_Module extends WT_Module implements WT_Module_Menu, WT_Module public function downloadForm() { global $TEXT_DIRECTION, $controller; - $controller = $controller; $out = WT_JS_START; $out .= 'function cancelDownload() { var link = "sidebar.php?sb_action=clippings"; -- cgit v1.3