/** * The default action - show the home page */ public function indexAction() { $form = Model_Static_Loader::loadForm("basket"); $session = new Zend_Session_Namespace("basket"); $model = new Model_DbTable_Products(); $items = array(); foreach ($session->items as $item_id => $count) { $items[$item_id] = (object) array("item" => $model->find($item_id)->current(), "count" => $count); } if ($this->getRequest()->isPost() && $form->isValid($_POST) && $items) { $data = $form->getValues(); $orderItems = $this->getRequest()->getParam("items"); /* ****************************************** * EMAIL MESSAGE * ******************************************/ ob_start(); ?> Новый заказ на сайте альфа гидро: <ul><?php foreach ($orderItems as $item => $count) { $item = $items[$item]->item; ?> <li><?php echo $item->sku; ?> , кол-во: <?php echo $count; ?> шт.</li> <?php } ?> </ul> Имя: <?php echo $data['name']; ?> <br/> Email: <?php echo $data['email']; ?> <br/> Телефон: <?php echo $data['phone']; ?> <br/> Примечание:<br/><pre><?php echo strip_tags($data['content']); ?> </pre><br/> <?php $messageHtml = ob_get_clean(); /* ************************************************ * MESSAGE END * ************************************************/ $message = new Zend_Mail("UTF-8"); $message->setFrom("*****@*****.**", "Альфа-Гидро"); $message->setSubject("Новый заказ на сайта Альфа-Гидро"); $message->setBodyHtml($messageHtml, "utf8", "UTF-8"); $users = new Zend_Config_Xml(APPLICATION_PATH . "/config/admins.xml"); $users = $users->toArray(); $message->addTo("*****@*****.**", "Альфа-Гидро"); $message->addTo("*****@*****.**", "Быков Дмитрий Владимирович"); foreach ($users as $user) { if ($user["role"] == "administrator") { $message->addTo($user['email'], $user['name']); } } $message->send(); $session->items = array(); $this->_helper->viewRenderer("index-success"); } $this->view->items = $items; $this->_helper->layout()->setLayout("basket"); }
public function ajaxAction() { $product_id = $this->getRequest()->getParam('id'); $productsModel = new Model_DbTable_Products(); $product = $productsModel->find($product_id)->current(); $subproductsModel = new Model_DbTable_Subproducts(); $select = $subproductsModel->select()->order('order ASC'); $subProducts = $product->findDependentRowset("Model_DbTable_Subproducts", 'SubproductsRel', $select); if (!empty($subProducts)) { $this->view->modifications = $subProducts; $subProductParams = $product->getSubParams(); if (!empty($subProductParams)) { $headTable = array(); $headTable[] = 'Название'; foreach ($subProductParams as $subProductParam) { $headTable[] = $subProductParam->name; } $this->view->tableHead = $headTable; } $tableBody = array(); foreach ($subProducts as $modification) { $tableBody[] = $modification->sku; $paramsVavues = $modification->getParamsValues(); foreach ($paramsVavues as $values) { $tableBody['params'][] = $values->value; } } } $this->view->product = $product; }
public function saveNewParams($newParams) { $oldParams = $this->getParamsValues(); $db = $this->getTable()->getAdapter(); // проходим по массиву новых параметров, апдейтим существующие, с нулевым param_id - добавляем. for ($i = 0; $i < count($newParams); $i++) { if ($newParams[$i]["param_id"] != "") { // апдейт значения параметра // для начала надо проверить существование значения параметра (может быть это новый подпродукт) // если можно, заменить это на более зендовое $result = $db->fetchRow("SELECT * FROM subproduct_params_values WHERE param_id = " . $newParams[$i]["param_id"] . " AND subproduct_id = " . $this->id); if ($result) { $data = array('value' => $newParams[$i]["value"]); $where = array(); $where[] = "param_id = " . $newParams[$i]["param_id"]; $where[] = "subproduct_id = " . $this->id; $db->update("subproduct_params_values", $data, $where); } else { // параметр для нового подпродукта $data = array('subproduct_id' => $this->id, 'param_id' => $newParams[$i]["param_id"], 'value' => $newParams[$i]["value"]); $db->insert("subproduct_params_values", $data); } // апдейт параметра (наименование и порядок) $data = array('name' => $newParams[$i]["name"], 'order' => $newParams[$i]["order"]); $where = array(); $where[] = "id = " . $newParams[$i]["param_id"]; $db->update("subproduct_params", $data, $where); } else { if ($this->parent_id) { // новый параметр $data = array('product_id' => $this->parent_id, 'name' => $newParams[$i]["name"], 'order' => $newParams[$i]["order"]); $db->insert("subproduct_params", $data); $newid = $db->lastInsertId(); if ($newid) { // запилить этот параметр для всех подпродуктов товара $productsModel = new Model_DbTable_Products(); $parentProduct = $productsModel->find($this->parent_id)->current(); if ($parentProduct) { $select = $productsModel->select()->order('order ASC'); $allSubproducts = $parentProduct->findDependentRowset("Model_DbTable_Subproducts", 'SubproductsRel', $select); foreach ($allSubproducts as $currentSubproduct) { $data = array('subproduct_id' => $currentSubproduct->id, 'param_id' => $newid, 'value' => $this->id == $currentSubproduct->id ? $newParams[$i]["value"] : 0); $db->insert("subproduct_params_values", $data); } } } } } } // теперь проходим по массиву старых параметров и смотрим какие надо удалить for ($i = 0; $i < count($oldParams); $i++) { $found = false; for ($j = 0; $j < count($newParams); $j++) { if ($oldParams[$i]->param_id == $newParams[$j]["param_id"]) { $found = true; } } if (!$found) { // удалить параметр с индексом $i $where = array(); $where[] = "param_id = " . $oldParams[$i]->param_id; $db->delete("subproduct_params_values", $where); $where = array(); $where[] = "id = " . $oldParams[$i]->param_id; $db->delete("subproduct_params", $where); } } }