summaryrefslogtreecommitdiff
path: root/demos/quickstart/protected/pages/ActiveControls/Samples/DragDrop/Home.php
diff options
context:
space:
mode:
Diffstat (limited to 'demos/quickstart/protected/pages/ActiveControls/Samples/DragDrop/Home.php')
-rwxr-xr-xdemos/quickstart/protected/pages/ActiveControls/Samples/DragDrop/Home.php112
1 files changed, 112 insertions, 0 deletions
diff --git a/demos/quickstart/protected/pages/ActiveControls/Samples/DragDrop/Home.php b/demos/quickstart/protected/pages/ActiveControls/Samples/DragDrop/Home.php
new file mode 100755
index 00000000..276ee6a4
--- /dev/null
+++ b/demos/quickstart/protected/pages/ActiveControls/Samples/DragDrop/Home.php
@@ -0,0 +1,112 @@
+<?php
+
+prado::using ('System.Web.UI.ActiveControls.*');
+
+class Home extends TPage
+{
+ public function onInit ($param)
+ {
+ parent::onInit($param);
+ if (!$this->getIsPostBack() && !$this->getIsCallBack())
+ {
+
+ $this->populateProductList();
+ $this->populateShoppingList();
+ }
+ }
+
+ private function getProductData ()
+ {
+ return array (
+ array (
+ 'ProductId' => 'Product1',
+ 'ProductImageUrl' => $this->publishAsset('assets/product1.png'),
+ 'ProductTitle' => 'Cup'
+ ),
+ array (
+ 'ProductId' => 'Product2',
+ 'ProductImageUrl' => $this->publishAsset('assets/product2.png'),
+ 'ProductTitle' => 'T-Shirt'
+ )
+ );
+ }
+
+ private function getProduct ($key)
+ {
+ foreach ($this->getProductData() as $product)
+ if ($product['ProductId']==$key) return $product;
+ return null;
+ }
+
+ protected function populateProductList ()
+ {
+ $this->ProductList->DataSource=$this->getProductData();
+ $this->ProductList->Databind();
+ }
+
+ protected function populateShoppingList ()
+ {
+ $this->ShoppingList->DataSource=$this->getShoppingListData();
+ $this->ShoppingList->Databind();
+
+ }
+
+
+ public function getShoppingListData ()
+ {
+ return $this->getViewState('ShoppingList', array ());
+ }
+
+ public function setShoppingListData ($value)
+ {
+ $this->setViewState('ShoppingList', TPropertyValue::ensureArray($value), array ());
+ }
+
+ public function addItemToCart ($sender, $param)
+ {
+ $control=$param->getDroppedControl();
+ // Get the Key from the repeater item
+ $item=$control->getNamingContainer();
+ $key=$this->ProductList->getDataKeys()->itemAt($item->getItemIndex());
+ $product=$this->getProduct($key);
+ $shoppingList=$this->getShoppingListData();
+ if (isset ($shoppingList[$key]))
+ {
+ // Already an item of this type, increment counter
+ $shoppingList[$key]['ProductCount']++;
+ }
+ else
+ {
+ // Add an item to the shopping list
+ $shoppingList[$key]=$product;
+ $shoppingList[$key]['ProductCount']=1;
+ }
+ $this->setShoppingListData($shoppingList);
+
+ }
+
+ public function removeItemFromCart ($sender, $param)
+ {
+ $control=$param->getDroppedControl();
+ $item=$control->getNamingContainer();
+ $key=$this->ShoppingList->getDataKeys()->itemAt($item->getItemIndex());
+ $shoppingList=$this->getShoppingListData();
+ if (isset($shoppingList[$key]))
+ {
+ if ($shoppingList[$key]['ProductCount'] > 1)
+ $shoppingList[$key]['ProductCount'] --;
+ else
+ unset($shoppingList[$key]);
+ }
+ $this->setShoppingListData($shoppingList);
+
+ }
+
+ public function redrawCart ($sender, $param)
+ {
+ $this->populateShoppingList();
+ $this->cart->render($param->NewWriter);
+
+ }
+}
+?> \ No newline at end of file