function actionSubscriptionById($view) { $id = (int) $_GET['id']; $view->subscript = subscription::subscriptionUser($id); echo $view->render('cabinet.php'); }
$sql = "SELECT member_id, private, date, title, body FROM %sblog_posts WHERE {$auth} owner_type=%d AND owner_id=%d AND post_id=%d ORDER BY date DESC"; $post_row = queryDB($sql, array(TABLE_PREFIX, BLOGS_GROUP, $owner_id, $id), TRUE); if (isset($_POST['submit']) && $_SESSION['member_id']) { // post a comment $_POST['body'] = $addslashes(trim($_POST['body'])); $_POST['private'] = abs($_POST['private']); if ($_POST['body'] == '') { $msg->addError(array('EMPTY_FIELDS', _AT('comments'))); } if (!$msg->containsErrors()) { $sql = "INSERT INTO %sblog_posts_comments VALUES (NULL, %d, %d, NOW(), %d, '%s')"; $result = queryDB($sql, array(TABLE_PREFIX, $id, $_SESSION['member_id'], $_POST['private'], $_POST['body'])); $comments_affected_rows = $result; if (!isset($sub)) { require_once AT_INCLUDE_PATH . 'classes/subscribe.class.php'; $sub = new subscription(); } $sub->send_mail('blogcomment', $owner_id, at_insert_id()); if ($comments_affected_rows == 1) { $sql = "UPDATE %sblog_posts SET num_comments=num_comments+1, date=date WHERE post_id=%d"; queryDB($sql, array(TABLE_PREFIX, $id)); } $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY'); header('Location: ' . url_rewrite('mods/_standard/blogs/post.php?ot=' . $owner_type . SEP . 'oid=' . $owner_id . SEP . 'id=' . $id, AT_PRETTY_URL_IS_HEADER)); exit; } } if (count($post_row) == 0) { header('Location: ' . url_rewrite('mods/_standard/blogs/view.php?ot=' . $owner_type . SEP . 'oid=' . $owner_id)); exit; }
/* ATutor */ /****************************************************************/ /* Copyright (c) 2002-2010 */ /* Inclusive Design Institute */ /* http://atutor.ca */ /* */ /* This program is free software. You can redistribute it and/or*/ /* modify it under the terms of the GNU General Public License */ /* as published by the Free Software Foundation. */ /****************************************************************/ // $Id$ define('AT_INCLUDE_PATH', '../../../include/'); require (AT_INCLUDE_PATH.'vitals.inc.php'); require_once(AT_INCLUDE_PATH .'classes/subscribe.class.php'); $sub = new subscription(); if (isset($_GET)){ if ($_GET['subscribe'] == "set"){ if($sub->set_subscription('blog',$_SESSION['member_id'],$_GET['group_id'])){; $msg->addFeedback('BLOG_SUBSCRIBED'); } } else if ($_GET['subscribe'] == "unset"){ $sub->unset_subscription('blog',$_SESSION['member_id'],$_GET['group_id']); $msg->addFeedback('BLOG_UNSUBSCRIBED'); } } require (AT_INCLUDE_PATH.'header.inc.php'); $sql = "SELECT G.group_id, G.title, G.modules FROM ".TABLE_PREFIX."groups G INNER JOIN ".TABLE_PREFIX."groups_types T USING (type_id) WHERE T.course_id=$_SESSION[course_id] ORDER BY G.title";
header('Location: ' . url_rewrite('mods/_standard/blogs/view.php?ot=' . BLOGS_GROUP . SEP . 'oid=' . $_POST['oid'], AT_PRETTY_URL_IS_HEADER)); exit; } else { if (isset($_POST['submit'])) { $_POST['title'] = $addslashes(trim($_POST['title'])); $_POST['body'] = $addslashes(trim($_POST['body'])); if ($_POST['body'] == '') { $msg->addError(array('EMPTY_FIELDS', _AT('body'))); } if (!$msg->containsErrors()) { $_POST['private'] = abs($_POST['private']); $sql = "INSERT INTO " . TABLE_PREFIX . "blog_posts VALUES (NULL, {$_SESSION['member_id']}, " . BLOGS_GROUP . ", {$_POST['oid']}, {$_POST['private']}, NOW(), 0, '{$_POST['title']}', '{$_POST['body']}')"; mysql_query($sql, $db); if (!isset($sub)) { require_once AT_INCLUDE_PATH . 'classes/subscribe.class.php'; $sub = new subscription(); } $sub->send_mail('blog', $_POST['oid'], mysql_insert_id()); $msg->addFeedback('POST_ADDED_SUCCESSFULLY'); header('Location: ' . url_rewrite('mods/_standard/blogs/view.php?ot=' . BLOGS_GROUP . SEP . 'oid=' . $_POST['oid'], AT_PRETTY_URL_IS_HEADER)); exit; } } } // this will also be dynamic as the parent page changes $_pages['mods/_standard/blogs/add_post.php?ot=' . BLOGS_GROUP . SEP . 'oid=' . $_REQUEST['oid']]['title_var'] = 'add'; $_pages['mods/_standard/blogs/add_post.php?ot=' . BLOGS_GROUP . SEP . 'oid=' . $_REQUEST['oid']]['parent'] = 'mods/_standard/blogs/view.php'; $_pages['mods/_standard/blogs/add_post.php']['title_var'] = 'add'; $_pages['mods/_standard/blogs/add_post.php']['parent'] = 'mods/_standard/blogs/view.php?ot=' . BLOGS_GROUP . SEP . 'oid=' . $_REQUEST['oid']; $_pages['mods/_standard/blogs/view.php?ot=' . BLOGS_GROUP . SEP . 'oid=' . $_REQUEST['oid']]['title'] = blogs_get_blog_name(BLOGS_GROUP, $_REQUEST['oid']); $_pages['mods/_standard/blogs/view.php?ot=' . BLOGS_GROUP . SEP . 'oid=' . $_REQUEST['oid']]['parent'] = 'mods/_standard/blogs/index.php';
/** * update students subscription status in the passed instance to * either SUBSCRIBED or TERMINATED as appropriate, checking if * $duration_subscription + student subscription date is in the past or not * * @param number $instance_id * @param number $duration_subscription * * @author giorgio 02/apr/2015 */ private function _update_students_subscription_after_course_instance_set($instance_id, $duration_subscription) { require_once ROOT_DIR . '/switcher/include/Subscription.inc.php'; $subscriptions = Subscription::findSubscriptionsToClassRoom($instance_id); if (!AMA_DB::isError($subscriptions) && is_array($subscriptions) && count($subscriptions) > 0) { foreach ($subscriptions as $subscription) { $updateSubscription = false; $subscritionEndDate = $this->add_number_of_days($duration_subscription, intval($subscription->getSubscriptionDate())); if ($subscription->getSubscriptionStatus() == ADA_STATUS_SUBSCRIBED && $subscritionEndDate <= time()) { $subscription->setSubscriptionStatus(ADA_STATUS_TERMINATED); $updateSubscription = true; } else { if ($subscription->getSubscriptionStatus() == ADA_STATUS_TERMINATED && $subscritionEndDate > time()) { $subscription->setSubscriptionStatus(ADA_STATUS_SUBSCRIBED); $updateSubscription = true; } } if ($updateSubscription) { $subscription->setStartStudentLevel(null); // null means no level update subscription::updateSubscription($subscription); } } } }
* @package * @todo */ !defined('SDG') ? die('Triple protection!') : null; // инициируем "Наименование страницы" отображаемое в форме $arrNamePage = array(array('name' => MENU_ADMIN_MAIN, 'link' => CONF_ADMIN_FILE), array('name' => MENU_MANAGER, 'link' => false)); /** * иницализация массива подключаемых шаблонов: по умолчанию все значения - false * для подключения шаблона, необходимо установить значение - true * шаблоны подключаются в порядке установленном в файле головного шаблона */ $arrActions = array('config' => false, 'announce' => false, 'payment' => false); // определяем шаблон для отображения isset($_GET['action']) && isset($arrActions[$_GET['action']]) ? $arrActions[$_GET['action']] = true : null; // создаем объект $subscription = new subscription(); /** * Настройки подписок */ if ($arrActions['config']) { // инициируем "Наименование страницы" отображаемое в форме $arrNamePage[] = array('name' => MENU_MANAGER_SUBSCRIPTIONS, 'link' => CONF_ADMIN_FILE . '?m=manager&s=subscriptions'); $arrNamePage[] = array('name' => MENU_CONFIG, 'link' => false); if (isset($_POST['save'])) { $startTime = isset($_POST['start_time']) && isset($_POST['start_time']['Hour']) && isset($_POST['start_time']['Minute']) ? mktime($_POST['start_time']['Hour'], $_POST['start_time']['Minute']) : 0; $data = "<?php\n\n" . "(!defined('SDG')) ? die ('Triple protection!') : null;\n\n" . 'define("CONF_SUBSCRIPTIONS_STRINGS_PERPAGE_ADMIN_PANEL", "' . ((int) $_POST['perpage'] ? (int) abs($_POST['perpage']) : 30) . '");' . "\n\n" . 'define("CONF_SUBSCRIPTIONS_FREE_VACANCY", "' . ((int) $_POST['free_vacancy'] ? (int) abs($_POST['free_vacancy']) : 0) . '");' . "\n\n" . 'define("CONF_SUBSCRIPTIONS_FREE_RESUME", "' . ((int) $_POST['free_resume'] ? (int) abs($_POST['free_resume']) : 0) . '");' . "\n\n" . 'define("CONF_SUBSCRIPTIONS_PAYMENT_DELETE", "' . ((int) $_POST['payment'] ? (int) abs($_POST['payment']) : 48) . '");' . "\n\n" . 'define("CONF_SUBSCRIPTIONS_ANNOUNCE_PERIOD", "' . ((int) $_POST['announce_period'] ? (int) abs($_POST['announce_period']) : $arrSysDict['SubscriptionPeriod']['values'][0]) . '");' . "\n\n" . 'define("CONF_SUBSCRIPTIONS_START_TIME", ' . $startTime . ');' . "\n"; if (!tools::saveConfig('core/conf/const.config.subscriptions.php', $data, CONF_ADMIN_FILE . '?m=manager&s=subscriptions&action=config')) { $arrErrors[] = ERROR_FILES_MISSING_FILE; } } } elseif ($arrActions['payment']) {
/** * protected функция выполняет действия над группой строк в таблице БД * * @param string $action * @param array $arrFields * * @return bool */ protected function actionCategorys($action, $arrFields, $silentMode = false) { switch ($action) { case 'edit': foreach ($arrFields as $key => $value) { $arrData = isset($value['arrNoBindFields']) ? $value['arrBindFields'] + $value['arrNoBindFields'] : $value['arrBindFields']; $result = $this->editEntrys(secure::escQuoteData($arrData), "id IN (" . secure::escQuoteData($key) . ")"); } break; case 'sort': foreach ($arrFields as $key => $value) { $arrSort[$value][] = $key; } foreach ($arrSort as $key => $value) { $result = $this->editEntrys(array('sort' => "'{$key}'"), "id IN (" . implode(',', secure::escQuoteData($value)) . ")"); } break; case 'del': $table = $this->retTableName(); $strFields = implode(',', secure::escQuoteData($arrFields)); $vacancy = new vacancy(); $result = $vacancy->delAnnounces('id_' . $table . ' IN (' . $strFields . ')'); $resume = new resume(); $result = $resume->delAnnounces('id_' . $table . ' IN (' . $strFields . ')'); $subscription = new subscription(); $strWhere = 'profession' !== $table ? 'id_' . $table . ' IN (' . $strFields . ')' : 'id_' . $table . ' IN (' . $strFields . ') OR id_' . $table . '_1 IN (' . $strFields . ') OR id_' . $table . '_2 IN (' . $strFields . ')'; $result = $subscription->delSubscriptions($strWhere); $result = $this->delCategorys('id IN (' . $strFields . ')'); break; case 'setcapital': $result = $this->editEntrys(array('capital' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('0')"); break; case 'resetcapital': $result = $this->editEntrys(array('capital' => "'0'"), "parent_id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('on')"); break; case 'setRegionMajor': $result = $this->editEntrys(array('major' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('0')"); break; case 'resetRegionMajor': $result = $this->editEntrys(array('major' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('on')"); break; case 'setAddCityAllowed': $result = $this->editEntrys(array('add_city_allowed' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('0')"); break; case 'resetAddCityAllowed': $result = $this->editEntrys(array('add_city_allowed' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('on')"); break; default: if ($silentMode) { $result = false; } else { messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE); } } return $result; }
/** * Sort by date, with the deleted ones at the end, with usort() * * Return 1 if $a goes after $b, and -1 otherwise * * @param subscription $a The first subscription * @param subscription $b The second subscription */ function date_sort($a, $b) { if ($a->sub_date_created === $b->sub_date_created) { return 0; } return strtotime($a->sub_date_created) < strtotime($b->sub_date_created) || $a->sub_status === 'deleted' && $b->sub_status !== 'deleted' ? 1 : -1; } $subs = subscription::get_by_user($user_id); usort($subs, "date_sort"); if ($subs) { echo '<table class="table">' . '</td><td>Plan</td><td>Start Date</td><td>Payment Schedule</td><td></td></tr>'; foreach ($subs as $_sub) { $date = strtotime($_sub->sub_date_created); echo '<tr class="' . ($_sub->sub_status === 'active' ? 'success' : ($_sub->sub_status === 'suspended' ? 'warning' : ($_sub->sub_status === 'pending' ? 'info' : 'danger'))) . '">' . '<td>' . plan::get_instance($_sub->sub_plan)->plan_name . '</td>' . '<td>' . (date('y', $date) == '15' ? date('F j', $date) : date('n/j/Y', $date)) . '</td>' . "<td>{$_sub->sub_pmt_schedule}</td>" . '<td>'; if ($_sub->sub_status === 'suspended') { if ($_sub->sub_balance > 0) { echo "Suspended - Balance due \${$_sub->sub_balance}"; } } else { if ($_sub->sub_status === 'pending') { echo 'Awaiting verification'; } else { if ($_sub->sub_status === 'active') {
/** * Replace place holders in the template with respective content. * * @param string $template Message template. * @param subscription $subscription subscription instance * @param \stdclass $eventobj Event data * @param \context $context context object * * @return mixed final template string. */ protected function replace_placeholders($template, subscription $subscription, $eventobj, $context) { $template = str_replace('{link}', $eventobj->link, $template); if ($eventobj->contextlevel == CONTEXT_MODULE && !empty($eventobj->contextinstanceid) && strpos($template, '{modulelink}') !== false) { $cm = get_fast_modinfo($eventobj->courseid)->get_cm($eventobj->contextinstanceid); $modulelink = $cm->url; $template = str_replace('{modulelink}', $modulelink, $template); } $template = str_replace('{rulename}', $subscription->get_name($context), $template); $template = str_replace('{description}', $subscription->get_description($context), $template); $template = str_replace('{eventname}', $subscription->get_event_name(), $template); return $template; }
static function actionsControl(&$arrActions) { $user = new user(); $subscription = new subscription(); $vacancy = new vacancy(); $resume = new resume(); foreach ($arrActions as $action => $type) { switch ($action) { case 'updateCounters': $result = caching::dropCache(); break; case 'delNonverifyUsers': $uData = $user->getCombinedUsersData(array(array('users', 'id')), "users.token IN ('new') AND users.token_datetime < NOW()", false, false); if (!empty($uData) && is_array($uData)) { foreach ($uData as $data) { $arrId[] = $data['id']; } } $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true; break; case 'delNontypeUsers': $uData = $user->getCombinedUsersData(array(array('users', 'id')), "conf_users.token IN ('new') AND users.token IN ('active') AND users.token_datetime < NOW()", false, false); if (!empty($uData) && is_array($uData)) { foreach ($uData as $data) { $arrId[] = $data['id']; } } $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true; break; case 'delUnpaidUsers': $uData = $user->getCombinedUsersData(array(array('users', 'id')), "conf_users.token IN ('payment') AND users.token_datetime < NOW()", false, false); if (!empty($uData) && is_array($uData)) { foreach ($uData as $data) { $arrId[] = $data['id']; } } $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true; break; case 'delUnpaidSubscr': $result = $subscription->delSubscriptions("token IN ('payment') AND token_datetime < NOW()"); break; case 'vacDelNonverify': $result = $vacancy->delAnnounces("token IN ('new') AND token_datetime < NOW()"); break; case 'resDelNonverify': $result = $resume->delAnnounces("token IN ('new') AND token_datetime < NOW()"); break; case 'vacDelUnpaid': $result = $vacancy->delAnnounces("token IN ('payment') AND token_datetime < NOW()"); break; case 'resDelUnpaid': $result = $resume->delAnnounces("token IN ('payment') AND token_datetime < NOW()"); break; case 'vacVipResetSlo': $result = $vacancy->controlAnnounces("vip AND token IN ('active') AND vip_unset_datetime NOT IN ('0000-00-00 00:00:00') AND vip_unset_datetime < NOW()", 'vip'); break; case 'resVipResetSlo': $result = $resume->controlAnnounces("vip AND token IN ('active') AND vip_unset_datetime NOT IN ('0000-00-00 00:00:00') AND vip_unset_datetime < NOW()", 'vip'); break; case 'vacHotResetSlo': $result = $vacancy->controlAnnounces("hot AND token IN ('active') AND hot_unset_datetime NOT IN ('0000-00-00 00:00:00') AND hot_unset_datetime < NOW()", 'hot'); break; case 'resHotResetSlo': $result = $resume->controlAnnounces("hot AND token IN ('active') AND hot_unset_datetime NOT IN ('0000-00-00 00:00:00') AND hot_unset_datetime < NOW()", 'hot'); break; case 'vacActionSlo': $result = $vacancy->controlAnnounces("token IN ('active') AND token_datetime < NOW()", $type); break; case 'resActionSlo': $result = $resume->controlAnnounces("token IN ('active') AND token_datetime < NOW()", $type); break; default: $result = true; break; } if (!$result) { return false; } else { continue; } } return true; }
<?php /******************************************************** JobExpert v1.0 powered by Script Developers Group (SD-Group) email: info@sd-group.org.ua url: http://sd-group.org.ua/ Copyright 2010-2015 (c) SD-Group All rights reserved ========================================================= Выполнение рассылки объявлений в соответствии с подписками пользователей ********************************************************/ /** * @package * @todo */ !defined('SDG') ? die('Triple protection!') : null; $subscription = new subscription(); $arrSubscr = $subscription->getSubscriptions("(TO_DAYS(NOW())-TO_DAYS(date_lastsend))>=period AND token IN ('active')", false, false, false); if ($arrSubscr) { foreach ($arrSubscr as $value) { $subscription->runSubscription($value); } }
!defined('SDG') ? die('Triple protection!') : null; /** * иницализация массива подключаемых шаблонов: по умолчанию все значения - false * для подключения шаблона, необходимо установить значение - true * шаблоны подключаются в порядке установленном в файле головного шаблона */ $arrAction = array('edit' => false); /** * Массив статистических данных по подпискам */ $statData = array('allSubscr' => false, 'paySubscrR' => false, 'paySubscrV' => false, 'anSubscr' => false, 'availFreeSubscrV' => false, 'availFreeSubscrR' => false); // проверяем, включена ли регистрация if (CONF_USER_REGISTER) { // проверяем, вошел ли пользователь if ($user->getAuthorized()) { $subscription = new subscription(); /** * Добавляем подписку */ if (isset($_POST['save'])) { // получаем из формы поля обязательные для заполнения $arrBindFields = $_POST['arrBindFields']; // получаем из формы поля необязательные для заполнения $arrNoBindFields = $_POST['arrNoBindFields']; if ('agent' !== $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type']) { $arrBindFields['type_subscription'] = 'competitor' === $_SESSION['sd_user'][DB_PREFIX . 'conf']['user_type'] ? 'vacancy' : 'resume'; } /////////////////////////////////////////////////////////////// // Проверка данных, полученных из формы /////////////////////////////////////////////////////////////// if (empty($arrBindFields['id_section'])) {
/** * protected Функция удаления контента пользователей * Ф-я удаляет все объявления, подписки, статьи и новости пользователей * * @param (array) $arrId - массив, содержащий ID пользователей, контент которых нужно удалить * @param (bool) $vacancy, $resume, $subscription, $articles, $news - параметры, определяющие удаление соответствующих данных пользователя (TRUE || FALSE) * * @return void */ protected function deleteUsersContent($arrId, $vacancy, $resume, $subscription, $articles, $news) { // формируем запрос, для выбора всех необходимых пользователей $strWhere = "id_user IN (" . implode(',', secure::escQuoteData($arrId)) . ")"; // удаление вакансий if ($vacancy) { $vacancy = new vacancy(); $vacancy->delAnnounces($strWhere); } // удаление резюме if ($resume) { $resume = new resume(); $resume->delAnnounces($strWhere); } // удаление подписок if ($subscription) { $subscription = new subscription(); $subscription->delSubscriptions($strWhere); } // удаление статей if ($articles) { $articles = new articles(); $articles->deleteArticles(false, $strWhere); } // удаление новостей if ($news) { $news = new news(); $news->deleteNews(false, $strWhere); } }