예제 #1
0
 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;
 }
예제 #2
0
 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;
 }