function store(&$data) { if ($data['id']) { $isNew = false; } else { $isNew = true; } parent::store($data); if ($isNew) { //Update country ID $db = $this->getDbo(); $query = $db->getQuery(true); $query->update('#__osmembership_states')->set('state_id=id')->where('id=' . (int) $data['id']); $db->setQuery($query); $db->execute(); } return true; }
function store(&$data) { $app = JFactory::getApplication(); if (!$data['id']) { $isNew = true; } else { $isNew = false; //Delete the old thumb if admin decides to do that $row = $this->getTable('Osmembership', 'Plan'); $row->load($data['id']); if (isset($data['del_thumb']) && $row->thumb) { if (JFile::exists(JPATH_ROOT . '/media/com_osmembership/' . $row->thumb)) { JFile::delete(JPATH_ROOT . '/media/com_osmembership/' . $row->thumb); } $data['thumb'] = ''; } } $thumbImage = $app->input->files->get('thumb_image'); if ($thumbImage['name']) { $fileExt = JString::strtoupper(JFile::getExt($thumbImage['name'])); $supportedTypes = array('JPG', 'PNG', 'GIF'); if (in_array($fileExt, $supportedTypes)) { if (JFile::exists(JPATH_ROOT . '/media/com_osmembership/' . JString::strtolower($thumbImage['name']))) { $fileName = time() . '_' . JString::strtolower($thumbImage['name']); } else { $fileName = JString::strtolower($thumbImage['name']); } $imagePath = JPATH_ROOT . '/media/com_osmembership/' . $fileName; JFile::upload($_FILES['thumb_image']['tmp_name'], $imagePath); $data['thumb'] = $fileName; } } $ret = parent::store($data); if ($ret) { $row = $this->getTable('Osmembership', 'Plan'); $row->load($data['id']); //Trigger plugin JPluginHelper::importPlugin('osmembership'); $dispatcher = JDispatcher::getInstance(); //Trigger plugins $dispatcher->trigger('onAfterSaveSubscriptionPlan', array($row, $data, $isNew)); } $db = JFactory::getDbo(); if (!$isNew) { $sql = 'DELETE FROM #__osmembership_renewrates WHERE plan_id=' . $data['id']; $db->setQuery($sql); $db->execute(); } //Store the renewal options if (isset($data['number_days'])) { for ($i = 0, $n = count($data['number_days']); $i < $n; $i++) { $numberDays = (int) $data['number_days'][$i]; $price = $data['renew_price'][$i]; if ($numberDays > 0 && $price > 0) { $sql = "INSERT INTO #__osmembership_renewrates(plan_id, number_days, price) VALUES(" . $data['id'] . ", {$numberDays}, {$price})"; $db->setQuery($sql); $db->execute(); } } } //Store the upgrade option if (!$isNew) { //Delete old data $sql = 'DELETE FROM #__osmembership_upgraderules WHERE from_plan_id=' . (int) $data['id']; $db->setQuery($sql); $db->execute(); } if (isset($data['to_plan_id'])) { for ($i = 0; $i < count($data['to_plan_id']); $i++) { $toPlan = $data['to_plan_id'][$i]; $price = floatval($data['upgrade_price'][$i]); $publishedRule = $data['rule_published'][$i]; $sql = "INSERT INTO #__osmembership_upgraderules(from_plan_id, to_plan_id, price, published) VALUE (" . $data['id'] . ", {$toPlan}, {$price}, {$publishedRule})"; $db->setQuery($sql); $db->execute(); } } return $ret; }