Beispiel #1
0
 public function helpAction()
 {
     $uri = $this->getRequest()->getParam('uri');
     $ns = new Zend_Session_Namespace();
     if (!empty($uri)) {
         $uri = Shineisp_Commons_UrlRewrites::format($uri);
         $data = $this->wiki->getPostbyUri($uri, "w.wiki_id, w.subject as subject, w.views as views, w.creationdate as creationdate, w.content as content, w.metakeywords as metakeywords, w.metadescription as metadescription, wc.category_id as category_id, wc.category as category");
         if (isset($data[0])) {
             // Set the Metatag information
             $this->view->headTitle(" | " . $data[0]['subject']);
             if (!empty($data[0]['metakeywords'])) {
                 $this->view->headMeta()->setName('keywords', $data[0]['metakeywords']);
             }
             if (!empty($data[0]['metadescription'])) {
                 $this->view->headMeta()->setName('description', $data[0]['metadescription']);
             }
             // Getting the Products
             $products = Wikilinks::getProductsAttached($data[0]['wiki_id'], $ns->langid);
             if (count($products) > 0) {
                 $this->view->placeholder("right")->append($this->view->partial('wiki/products_reference.phtml', array('products' => $products)));
                 $this->getHelper('layout')->setLayout('2columns-right');
             }
             // Update the counter
             Wiki::update_views($data[0]['wiki_id']);
             $data[0]['content'] = Shineisp_Commons_Contents::chkModule($data[0]['content']);
             $data[0]['content'] = Shineisp_Commons_Contents::chkCmsBlocks($data[0]['content'], $ns->lang);
             // Send the content to the page
             $this->view->headertitle = $this->translator->translate('Wiki page');
             $this->view->post = $data[0];
         }
     }
 }
Beispiel #2
0
 /**
  * Save all the data
  * 
  * 
  * @param unknown_type $data
  * @param unknown_type $locale
  */
 public static function saveAll($id, $params, $locale = 1)
 {
     $products = new Products();
     // Set the new values
     if (is_numeric($id)) {
         $products = self::find($id, null, false, $locale);
         if ($products[0]) {
             $products = $products[0];
         }
     } else {
         $products->inserted_at = date('Y-m-d H:i:s');
     }
     // Product UUID is missing, generate a new one
     if (empty($products->uuid)) {
         $products->uuid = Shineisp_Commons_Uuid::generate();
     }
     try {
         if (!empty($_FILES['attachments'])) {
             $file = $_FILES['attachments'];
             if (!empty($file)) {
                 if (!is_dir(PUBLIC_PATH . "/media/products/")) {
                     @mkdir(PUBLIC_PATH . "/media");
                     @mkdir(PUBLIC_PATH . "/media/products");
                 }
             }
         }
         if (is_array($params)) {
             $products->updated_at = date('Y-m-d H:i:s');
             $products->categories = !empty($params['categories']) ? $params['categories'] : null;
             $products->uri = !empty($params['uri']) ? Shineisp_Commons_UrlRewrites::format($params['uri']) : Shineisp_Commons_UrlRewrites::format($params['name']);
             $products->sku = !empty($params['sku']) ? $params['sku'] : '';
             $products->cost = $params['cost'];
             $products->price_1 = !empty($params['price_1']) ? $params['price_1'] : NULL;
             $products->setupfee = !empty($params['setupfee']) ? $params['setupfee'] : NULL;
             $products->enabled = !empty($params['enabled']) ? 1 : 0;
             $products->iscomparable = !empty($params['iscomparable']) ? 1 : 0;
             $products->tax_id = !empty($params['tax_id']) ? $params['tax_id'] : NULL;
             $products->type = !empty($params['type']) ? $params['type'] : "generic";
             $products->blocks = !empty($params['blocks']) ? $params['blocks'] : NULL;
             $products->group_id = !empty($params['group_id']) ? $params['group_id'] : NULL;
             $products->position = !empty($params['position']) ? $params['position'] : NULL;
             $products->setup = !empty($params['setup']) ? $params['setup'] : NULL;
             $products->ishighlighted = !empty($params['ishighlighted']) ? 1 : 0;
             $products->isrefundable = !empty($params['isrefundable']) ? 1 : 0;
             $products->showonrss = !empty($params['showonrss']) ? 1 : 0;
             $products->external_id = !empty($params['external_id']) ? $params['external_id'] : NULL;
             $products->downgradable = !empty($params['downgradable']) ? 1 : 0;
             $products->server_group_id = !empty($params['server_group_id']) ? intval($params['server_group_id']) : null;
             $products->autosetup = !empty($params['autosetup']) ? intval($params['autosetup']) : 0;
             $products->isp_id = Shineisp_Registry::get('ISP')->isp_id;
             // If 0 or NULL, se to NULL. Avoid constraint errors
             $products->welcome_mail_id = !empty($params['welcome_mail_id']) && intval($params['welcome_mail_id']) > 0 ? intval($params['welcome_mail_id']) : null;
             // Save the data
             $products->save();
             $product_id = $products->product_id;
             // Save the product attributes
             ProductsAttributesIndexes::saveAll($params, $product_id);
             $Pdata = ProductsData::findbyProductID($product_id, $locale);
             if (empty($Pdata)) {
                 $Pdata = new ProductsData();
             }
             // TODO: Guestisp: this criteria is not complete. I cannot translate a product already sold in another language
             // a solution is write the name of the product sold in the order as flat data
             //* Product name can not be changed if product is sold
             // 				if ( ! (bool)OrdersItems::CheckIfProductExist($product_id) ) {
             // 					$Pdata->name = $params ['name'];
             // 				}
             $Pdata->name = $params['name'];
             $Pdata->nickname = $params['nickname'];
             $Pdata->shortdescription = $params['shortdescription'];
             $Pdata->description = $params['description'];
             $Pdata->metakeywords = $params['metakeywords'];
             $Pdata->metadescription = $params['metadescription'];
             $Pdata->product_id = $product_id;
             $Pdata->language_id = $locale;
             $Pdata->save();
             // Create the price tranches
             if (!empty($params['tranche_qty']) && !empty($params['tranche_measure']) && !empty($params['tranche_price'])) {
                 $params['tranche_setupfee'] = isset($params['tranche_setupfee']) ? $params['tranche_setupfee'] : 0;
                 $tranches = ProductsTranches::saveAll($product_id, $params['tranche_billing_cycle_id'], $params['tranche_qty'], $params['tranche_measure'], $params['tranche_price'], $params['tranche_setupfee']);
                 $trancheid = $tranches['tranche_id'];
                 if (!empty($params['tranche_includes_domains'])) {
                     foreach ($params['tranche_includes_domains'] as $includeid) {
                         ProductsTranchesIncludes::saveAll($trancheid, $includeid, 'domains');
                     }
                 }
             }
             // Attach the wiki pages to a product
             if (!empty($params['wikipages'])) {
                 Wikilinks::addWikiPages2Products($product_id, $params['wikipages']);
             }
             // Add the related products
             if (!empty($params['related'])) {
                 self::AddRelatedProducts($product_id, $params['related']);
             }
             // Add the upgrade products
             if (!empty($params['upgrade'])) {
                 self::AddUpgradeProducts($product_id, $params['upgrade']);
             }
             // Before to get the Values of the form I upload the files in the folders
             if (!empty($file)) {
                 if ($_FILES['attachments']['error'] == 0) {
                     // Uploading the file
                     $filename = mt_rand(10, 999) . '_' . $_FILES['attachments']['name'];
                     $retval = move_uploaded_file($_FILES['attachments']['tmp_name'], PUBLIC_PATH . "/media/products/" . $filename);
                     if ($retval) {
                         $media = new ProductsMedia();
                         $media->filename = $filename;
                         $media->path = "/media/products/{$filename}";
                         $media->product_id = $product_id;
                         $media->description = $params['filedescription'];
                         $media->enabled = 1;
                         $media->save();
                     }
                 }
             }
             return $product_id;
         } else {
             throw new Exception('Parameters data are not correct.');
         }
     } catch (Exception $e) {
         echo $e->getMessage();
         die;
         return false;
     }
 }
Beispiel #3
0
 /**
  * Get a record and populate the application form 
  * @return unknown_type
  */
 public function editAction()
 {
     $form = $this->getForm('/admin/products/process');
     $id = $this->getRequest()->getParam('id');
     $orders = "";
     // Create the buttons in the edit form
     $this->view->buttons = array(array("url" => "#", "label" => $this->translator->translate('Save'), "params" => array('css' => null, 'id' => 'submit')), array("url" => "/admin/products/list", "label" => $this->translator->translate('List'), "params" => array('css' => null, 'id' => 'submit')), array("url" => "/admin/products/new/", "label" => $this->translator->translate('New'), "params" => array('css' => null)));
     if (!empty($id) && is_numeric($id)) {
         $this->session->productid = $id;
         $rs = $this->products->getAllInfo($id, $this->session->langid);
         if (!empty($rs)) {
             // Join the translated data information to populate the form
             $data = !empty($rs['ProductsData'][0]) ? $rs['ProductsData'][0] : array();
             $rs = array_merge($rs, $data);
             $form = $this->createAttributesElements($form, $rs['group_id']);
             $this->view->isrecurring = $rs['ProductsAttributesGroups']['isrecurring'];
             $rs['language_id'] = $this->session->langid;
             // added to the form the language id selected
             $rs['related'] = ProductsRelated::getItemsbyProductID($rs['product_id']);
             //add panel for select upgrade
             $rs['upgrade'] = ProductsUpgrades::getItemsbyProductID($rs['product_id']);
             // Get the wiki pages attached to the product selected
             $rs['wikipages'] = Wikilinks::getWikiPagesList($rs['product_id'], "products", $this->session->langid);
             $form->populate($rs);
             $categories = explode("/", $rs['categories']);
             $this->view->categories = json_encode($this->createCategoryTree(0, $categories));
             $this->view->title = !empty($rs['name']) ? $rs['name'] : "";
             $this->view->icon = "fa fa-barcode";
             $this->view->titlelink = !empty($rs['uri']) ? "/" . $rs['uri'] . ".html" : "";
             $media = ProductsMedia::getMediabyProductId($id, "pm.media_id, pm.filename, pm.path");
             if (isset($media[0])) {
                 $this->view->media = array('records' => $media, 'delete' => array('controller' => 'products', 'action' => 'delmedia'));
             }
             $tranches = ProductsTranches::getTranches($id, "tranche_id, quantity, measurement, setupfee, price, bc.name as billingcycle, selected");
             if (isset($tranches[0])) {
                 $onclick = array();
                 foreach ($tranches as &$tranche) {
                     $trancheid = $tranche['tranche_id'];
                     $include = ProductsTranchesIncludes::getIncludeForTrancheId($trancheid);
                     $textInclude = array();
                     if (array_key_exists('domains', $include)) {
                         $textInclude[] = "Domains: " . implode(", ", $include['domains']);
                     }
                     $tranche['include'] = implode("<br/>", $textInclude);
                 }
                 $this->view->tranches = array('records' => $tranches, 'actions' => array('/admin/products/setdefaultrance/id/' => 'Set as default'), 'delete' => array('controller' => 'products', 'action' => 'deltranche'));
             }
         }
         $orders = array('records' => OrdersItems::ProductsInOrdersItems($id), 'edit' => array('controller' => 'ordersitems', 'action' => 'edit'));
         $this->view->buttons[] = array("url" => "/admin/products/confirm/id/{$id}", "label" => $this->translator->translate('Delete'), "params" => array('css' => null));
     }
     $this->view->description = $this->translator->translate("Here you can edit the product details");
     $this->view->mex = $this->getRequest()->getParam('mex');
     $this->view->mexstatus = $this->getRequest()->getParam('status');
     $this->view->orders = $orders;
     $this->view->isSold = (bool) OrdersItems::CheckIfProductExist($id);
     $this->view->form = $form;
     $this->render('applicantform');
 }
Beispiel #4
0
 public function getAction()
 {
     $ns = new Zend_Session_Namespace();
     $product = array();
     $uri = $this->getRequest()->getParam('q');
     if (!empty($uri)) {
         $fields = "p.*,pd.productdata_id as productdata_id, \n                           pd.name as name, \n                           pd.shortdescription as shortdescription,\n                           pd.description as description,\n                           pd.metakeywords as metakeywords,\n                           pd.metadescription as metadescription,\n                           pai.*";
         $data = Products::getProductbyUriID($uri, $fields, $ns->langid);
         if (!empty($data) && $data['enabled']) {
             if (!empty($data['blocks'])) {
                 $this->getHelper('layout')->setLayout('2columns-right');
             }
             $this->view->group = Products::GetAttributeGroupByProductID($data['product_id']);
             if (!empty($ns->cart)) {
                 $ns->lastproduct = $uri;
             }
             $refund = false;
             if (is_array($ns->upgrade)) {
                 //Check if the product is OK for upgrade and if OK take refund
                 foreach ($ns->upgrade as $orderid => $upgradeProduct) {
                     if (in_array($data['product_id'], $upgradeProduct)) {
                         $refundInfo = OrdersItems::getRefundInfo($orderid);
                         $refund = $refundInfo['refund'];
                         break;
                     }
                 }
             }
             $form = $this->CreateProductForm();
             $items = ProductsTranches::getList($data['product_id'], $refund);
             // Check the default quantity value
             $term = ProductsTranches::getDefaultItem($data['product_id']);
             if (!empty($term)) {
                 $data['term'] = $term;
             }
             // Check if there are custom terms / billing cycles options
             if (count($items) > 0) {
                 $form->addElement('select', 'term', array('label' => $this->translator->translate('Term'), 'required' => true, 'multiOptions' => $items, 'decorators' => array('Bootstrap'), 'class' => 'form-control input-sm select-billing-cycle'));
                 $form->addElement('hidden', 'quantity', array('value' => '1', 'decorators' => array('ViewHelper')));
             } else {
                 $form->addElement('text', 'quantity', array('label' => $this->translator->translate('Quantity'), 'required' => true, 'value' => '1', 'decorators' => array('Bootstrap'), 'class' => 'form-control input-sm'));
                 $form->addElement('hidden', 'term', array('decorators' => array('ViewHelper')));
             }
             // Adding the product attributes
             $attributes = ProductsAttributesIndexes::getAttributebyProductID($data['product_id'], $ns->langid);
             if (count($attributes) > 0) {
                 $this->view->placeholder("features")->append($this->view->partial('partials/attributes.phtml', array('attributes' => $attributes)));
             }
             $layout = $this->getHelper('layout')->getLayout();
             // Adding the related products
             $related = ProductsRelated::get_products($data['product_id'], $ns->langid);
             if (count($related) > 0) {
                 if ($layout == "1column") {
                     $placeholder = $this->view->placeholder("right");
                     $this->getHelper('layout')->setLayout('2columns-right');
                 } else {
                     list($columns, $sidebar) = explode("-", $layout);
                     $placeholder = $this->view->placeholder($sidebar);
                 }
                 $placeholder->append($this->view->partial('products/related.phtml', array('products' => $related)));
             }
             // Attaching the WIKI Pages
             $wikipages = Wikilinks::getWikiPages($data['product_id'], "products", $ns->langid);
             if (count($wikipages) > 0) {
                 if ($layout == "1column") {
                     $placeholder = $this->view->placeholder("right");
                     $this->getHelper('layout')->setLayout('2columns-right');
                 } else {
                     list($columns, $sidebar) = explode("-", $layout);
                     $placeholder = $this->view->placeholder($sidebar);
                 }
                 $placeholder->append($this->view->partial('products/wikipages.phtml', array('wikipages' => $wikipages)));
             }
             $this->view->reviewsdata = Reviews::getbyProductId($data['product_id']);
             // Set the Metatag information
             $this->view->headTitle()->prepend($data['name']);
             if (!empty($data['metakeywords'])) {
                 $this->view->headMeta()->setName('keywords', $data['metakeywords']);
             }
             if (!empty($data['metadescription'])) {
                 $this->view->headMeta()->setName('description', $data['metadescription']);
             }
             // Send the variables to the view
             $this->view->headertitle = $data['name'];
             $this->view->product = $data;
             $this->view->prices = Products::getPrices($data['product_id'], $refund);
             $this->view->form = $form;
             $form->populate($data);
         } else {
             // Check if there is an url rewrite redirection
             $newuri = UrlRewrite::getTarget($uri);
             if ($newuri) {
                 header("HTTP/1.1 301 Moved Permanently");
                 header("Location: {$newuri}");
                 die;
             } else {
                 return $this->_helper->redirector('index', 'notfound', 'default', array('uri' => $uri));
             }
         }
     } else {
         return $this->_helper->redirector('index', 'index', 'default', array('mex' => 'The request is not correct.', 'status' => 'danger'));
     }
     $this->_helper->viewRenderer('details');
 }
 /**
  * processAction
  * Update the record previously selected
  * @return unknown_type
  */
 public function processAction()
 {
     $i = 0;
     $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
     $form = $this->getForm("/admin/productscategories/process");
     $request = $this->getRequest();
     // Create the buttons in the edit form
     $this->view->buttons = array(array("url" => "#", "label" => $this->translator->translate('Save'), "params" => array('css' => null, 'id' => 'submit')), array("url" => "/admin/productscategories/list", "label" => $this->translator->translate('List'), "params" => array('css' => null, 'id' => 'submit')), array("url" => "/admin/productscategories/new/", "label" => $this->translator->translate('New'), "params" => array('css' => null)));
     // Check if we have a POST request
     if (!$request->isPost()) {
         return $this->_helper->redirector('list', 'productscategories', 'admin');
     }
     if ($form->isValid($request->getPost())) {
         // Get the id
         $id = $this->getRequest()->getParam('category_id');
         // Get the values posted
         $params = $form->getValues();
         try {
             $id = ProductsCategories::SaveAll($id, $params);
             // Attach the wiki pages to the category
             Wikilinks::addWikiPages2Categories($id, $params['wikipages']);
             // Attach the products
             Products::add2category($id, $params['products']);
             $this->_helper->redirector('edit', 'productscategories', 'admin', array('id' => $id, 'mex' => 'The task requested has been executed successfully.', 'status' => 'success'));
         } catch (Exception $e) {
             $this->_helper->redirector('edit', 'productscategories', 'admin', array('id' => $id, 'mex' => $this->translator->translate('Unable to process the request at this time.') . ": " . $e->getMessage(), 'status' => 'danger'));
         }
         $redirector->gotoUrl("/admin/productscategories/edit/id/{$id}");
     } else {
         $this->view->form = $form;
         $this->view->title = $this->translator->translate("Edit Category");
         $this->view->description = $this->translator->translate("Here you can edit the product category.");
         return $this->render('applicantform');
     }
 }