コード例 #1
0
 function actionSubscriptionById($view)
 {
     $id = (int) $_GET['id'];
     $view->subscript = subscription::subscriptionUser($id);
     echo $view->render('cabinet.php');
 }
コード例 #2
0
ファイル: post.php プロジェクト: genaromendezl/ATutor
$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;
}
コード例 #3
0
ファイル: index.php プロジェクト: radiocontrolled/ATutor
/* 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";
コード例 #4
0
ファイル: add_post.php プロジェクト: vicentborja/ATutor
    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';
コード例 #5
0
ファイル: ama.inc.php プロジェクト: eguicciardi/ada
 /**
  * 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);
             }
         }
     }
 }
コード例 #6
0
* @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&amp;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']) {
コード例 #7
0
 /**
  * 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;
 }
コード例 #8
0
ファイル: users.php プロジェクト: xornob/fcc-signup
 /**
  * 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') {
コード例 #9
0
 /**
  * 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;
 }
コード例 #10
0
 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;
 }
コード例 #11
0
<?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);
    }
}
コード例 #12
0
!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'])) {
コード例 #13
0
 /**
  * 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);
     }
 }