예제 #1
0
 /**
  * Gets the Time
  * @return 
  */
 function GetClock()
 {
     $db =& $this->db;
     $response = new ResponseManager();
     $datemanager = new DateManager($db);
     $output = $datemanager->GetClock();
     $response->SetFormRequestResponse($output, __('Date / Time Information'), '480px', '240px');
     $response->clockUpdate = true;
     $response->success = false;
     $response->Respond();
 }
예제 #2
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // 基本情報
     $anken =& $m->getAnkenData($ankenId);
     $this->appendDataFrom($anken);
     // ログインクライアントIDチェック
     if ($this->_core->getLoginKind() == 'client' && $this->_loginClientId != $anken['client_id']) {
         throw new RequestParamsException('ログインクライアントIDと要求したクライアントIDが一致しません。');
     }
     // 締め日
     $shime = $anken['shime_date'];
     // キャンペーン期間
     $from = $anken['campaign_from'];
     $to = $anken['campaign_to'];
     // 空の期間配列を作成
     $blank = DateManager::getArrayShimeSpan($ankenId, $from, $to, $shime);
     // 集計
     $data =& $m->Result_ClientReportResult_counting($anken, $blank);
     // テンプレートに渡す
     $this->_dataFrom['list'] =& $data;
     ///////////////////////////////////////////////
     // UPLOAD用のフォームのカスタム処理
     ///////////////////////////////////////////////
     $path = $m->Result_ClientReportResult_getUploadFormTmplPath($ankenId);
     $this->_dataFrom["upform_path"] = $path;
     ///////////////////////////////////////////////
     // 拡張リンク用のカスタム処理
     ///////////////////////////////////////////////
     $tmpl = $m->Result_ClientReportResult_getExtraLinkTmplPath($ankenId);
     $this->_dataFrom["extra_link_path"] = $tmpl;
 }
예제 #3
0
/**
 * 対象案件の売上と支払を、締め日区切りで集計します
 */
function &getSummaryDataGroupByShimebi(&$db, &$anken)
{
    $code = $anken['campaign_code'];
    $ankenId = $anken['anken_id'];
    $campaignFrom = $anken['campaign_from'];
    $campaignTo = $anken['campaign_to'];
    $shime = $anken['shime_date'];
    // 締め日区切りの配列を取得
    // 締め日から締め日を from, to で配列にする
    $span =& DateManager::getArrayShimeSpan($ankenId, $campaignFrom, $campaignTo, $shime);
    // 戻り値用配列を初期化
    $total = array();
    // 期間ごとに処理
    foreach ($span as $key => $value) {
        // 条件配列を初期化
        $like = array();
        // 対象期間(締め日区切り)
        $like['from'] = $value['from'];
        $like['to'] = $value['to'];
        // 集計オブジェクトを取得
        $client =& ListSummaryManager::createForClient($ankenId, $db, $code, $like);
        $media =& ListSummaryManager::createForMedia($ankenId, $db, $code, $like);
        $year = date('Y', strtotime($like['from']));
        $month = date('m', strtotime($like['from']));
        $total[$year][$month]['input'] = $client->getAmountReward();
        $total[$year][$month]['output'] = $media->getAmountReward();
    }
    return $total;
}
예제 #4
0
 public static function save($code, $value, $lang = null)
 {
     // Save specific locale value by given key
     if (!$lang) {
         $lang = self::getLanguage();
     }
     // Check if locale already exists
     $sql = new SqlManager();
     $sql->setQuery("\n\t\t\tSELECT code FROM locale \n\t\t\tWHERE code = '{{code}}' \n\t\t\tAND language = {{lang}}\n\t\t\tLIMIT 1");
     $sql->bindParam('{{code}}', $code);
     $sql->bindParam('{{lang}}', $lang, "int");
     $check = $sql->result();
     $loc = array('code' => $sql->escape($code), 'language' => $sql->escape($lang, "int"), 'text' => $sql->escape($value), 'lastchanged' => DateManager::now());
     // Either update database or insert new entry for given locale
     if (!$check['code']) {
         $loc['created'] = DateManager::now();
         $sql->insert("locale", $loc);
     } else {
         $sql->update("locale", $loc);
     }
     // Refresh cache to make sure new locale entry will be used
     $cachekey = "locale:" . $lang;
     Cache::clear($cachekey);
     self::load($lang);
 }
예제 #5
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // 基本情報
     $anken =& $m->getAnkenData($ankenId);
     $this->appendDataFrom($anken);
     // ログインクライアントIDチェック
     if ($this->_core->getLoginKind() == 'client' && $this->_loginClientId != $anken['client_id']) {
         throw new RequestParamsException('ログインクライアントIDと要求したクライアントIDが一致しません。');
     }
     // 締め日
     $shime = $anken['shime_date'];
     // キャンペーン期間
     $from = $anken['campaign_from'];
     $to = $anken['campaign_to'];
     // 空の期間配列を作成
     $blank = DateManager::getArrayShimeSpan($ankenId, $from, $to, $shime);
     // 集計
     $data =& $m->Result_ClientReportResult_counting($anken, $blank);
     // テンプレートに渡す
     $this->_dataFrom['list'] =& $data;
     // 案件情報のアクションID対応の値
     $enum = new AcceptUseActionIdEnum();
     $this->_dataFrom["accept_use_action"] = $enum->getKey('アクションID');
     // 案件情報の定率対応の値
     $enum = new PriceTypeCdEnum();
     $this->_dataFrom["price_use_rate"] = $enum->getKey('定率');
     //---------------------------------------
     // UPLOAD用のフォームのカスタム処理
     //---------------------------------------
     $path = $m->Result_ClientReportResult_getUploadFormTmplPath($ankenId);
     $this->_dataFrom["upform_path"] = $path;
     //---------------------------------------
     // CSVの追加オプション表示
     //---------------------------------------
     $this->_dataFrom["add_option_name"] = $m->Result_ClientReportResult_getAddLabelForUploadForm($ankenId);
     //---------------------------------------
     // 流通売上合計金額表示設定の表示
     //---------------------------------------
     $this->_dataFrom["sales_distribution_amount_flg"] = $m->Result_ClientReportResult_GetSalesDistributionAmountFlag($ankenId);
     //---------------------------------------
     // フッターのリンク
     //---------------------------------------
     $tmpl = $m->getExtraLinkTmplPath($ankenId);
     $this->_dataFrom["extra_link_path"] = $tmpl;
     //---------------------------------------
     // レポートの表示/非表示制御
     //---------------------------------------
     $this->_dataFrom["disp"] =& $m->getReportDisp($ankenId, $this->_core->getLoginKind());
 }
예제 #6
0
 /**
  * Get a local date
  * @param int $timestamp
  * @param string $format
  * @param bool $allowInternational
  * @return bool|string
  */
 public static function getLocalDate($timestamp = NULL, $format = NULL, $allowInternational = true)
 {
     if ($timestamp == NULL) {
         $timestamp = time();
     }
     if ($format == NULL) {
         $format = DateManager::getDefaultFormat();
     }
     if (DateManager::getCalendarType() == 'Jalali') {
         return JDateTime::date($format, $timestamp, false);
     } else {
         // Do we have the international date formatter?
         if ($allowInternational && Config::GetSetting('USE_INTL_DATEFORMAT') == 1 && Config::CheckIntlDateFormat()) {
             $formatter = new IntlDateFormatter(Config::GetSetting('DEFAULT_LANGUAGE'), IntlDateFormatter::FULL, IntlDateFormatter::FULL, Config::GetSetting('DEFAULT_TIMEZONE'), IntlDateFormatter::GREGORIAN, $format);
             return $formatter->format($timestamp);
         } else {
             return date($format, $timestamp);
         }
     }
 }
예제 #7
0
 private function create()
 {
     // Create a new session
     $this->id = session_id();
     // And write session into database
     $insert = array("phpkey" => $this->id, "created" => DateManager::now());
     $sql = new SqlManager();
     $sql->insert("session", $insert);
     // Save data in instance
     $this->data = $insert;
     $this->data['id'] = $sql->getLastInsertID();
     // Write meta data into database
     foreach ($_SERVER as $key => $value) {
         Meta::save("session", $this->data['id'], $key, $value);
     }
     // Set login status
     $this->loggedin = false;
     // Create user and config object for session
     $this->user = new User();
     $this->config = new Config();
 }
예제 #8
0
 function Grid()
 {
     $db =& $this->db;
     $response = new ResponseManager();
     $type = Kit::GetParam('filter_type', _POST, _WORD);
     $fromDt = Kit::GetParam('filter_fromdt', _POST, _STRING);
     setSession('sessions', 'Filter', Kit::GetParam('XiboFilterPinned', _REQUEST, _CHECKBOX, 'off'));
     setSession('sessions', 'filter_type', $type);
     setSession('sessions', 'filter_fromdt', $fromDt);
     $SQL = "SELECT session.userID, user.UserName,  IsExpired, LastPage,  session.LastAccessed,  RemoteAddr,  UserAgent ";
     $SQL .= "FROM `session` LEFT OUTER JOIN user ON user.userID = session.userID ";
     $SQL .= "WHERE 1 = 1 ";
     if ($fromDt != '') {
         // From Date is the Calendar Formatted DateTime in ISO format
         $SQL .= sprintf(" AND session.LastAccessed < '%s' ", DateManager::getMidnightSystemDate(DateManager::getTimestampFromString($fromDt)));
     }
     if ($type == "active") {
         $SQL .= " AND IsExpired = 0 ";
     }
     if ($type == "expired") {
         $SQL .= " AND IsExpired = 1 ";
     }
     if ($type == "guest") {
         $SQL .= " AND session.userID IS NULL ";
     }
     // Load results into an array
     $log = $db->GetArray($SQL);
     Debug::LogEntry('audit', $SQL);
     if (!is_array($log)) {
         trigger_error($db->error());
         trigger_error(__('Error getting the log'), E_USER_ERROR);
     }
     $cols = array(array('name' => 'lastaccessed', 'title' => __('Last Accessed')), array('name' => 'isexpired', 'title' => __('Active'), 'icons' => true), array('name' => 'username', 'title' => __('User Name')), array('name' => 'lastpage', 'title' => __('Last Page')), array('name' => 'ip', 'title' => __('IP Address')), array('name' => 'browser', 'title' => __('Browser')));
     Theme::Set('table_cols', $cols);
     $rows = array();
     foreach ($log as $row) {
         $row['userid'] = Kit::ValidateParam($row['userID'], _INT);
         $row['username'] = Kit::ValidateParam($row['UserName'], _STRING);
         $row['isexpired'] = Kit::ValidateParam($row['IsExpired'], _INT) == 1 ? 0 : 1;
         $row['lastpage'] = Kit::ValidateParam($row['LastPage'], _STRING);
         $row['lastaccessed'] = DateManager::getLocalDate(strtotime(Kit::ValidateParam($row['LastAccessed'], _STRING)));
         $row['ip'] = Kit::ValidateParam($row['RemoteAddr'], _STRING);
         $row['browser'] = Kit::ValidateParam($row['UserAgent'], _STRING);
         // Edit
         $row['buttons'][] = array('id' => 'sessions_button_logout', 'url' => 'index.php?p=sessions&q=ConfirmLogout&userid=' . $row['userid'], 'text' => __('Logout'));
         $rows[] = $row;
     }
     Theme::Set('table_rows', $rows);
     $response->SetGridResponse(Theme::RenderReturn('table_render'));
     $response->Respond();
 }
예제 #9
0
 public static function Updatesession($s_id, $s_name, $s_date, $s_active = 0)
 {
     global $database;
     if ($s_active == 1) {
         self::desactivate();
     }
     $s_id = $database->escape_value($s_id);
     $s_name = $database->escape_value($s_name);
     $s_date = $database->escape_value($s_date);
     $s_active = $database->escape_value($s_active);
     $s_date = DateManager::convertdate2tmstp($s_date);
     $insert_query = "UPDATE  `class_session` SET  `name` =  '" . $s_name . "',`date` =  '" . $s_date . "', `active` =  '" . $s_active . "' WHERE  `class_session`.`id` ='" . $s_id . "' ";
     return $database->query($insert_query);
 }
예제 #10
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // メディア企業ID
     $mediaCompanyId = $this->_request['media_company_id'];
     // モデル
     $m =& $this->_model;
     //-------------------------
     // メディア企業絞り込み処理
     //-------------------------
     $mediaCompanyId = $this->_request['media_company_id'];
     $mediaCompany =& $m->getMediaCompanyData($mediaCompanyId);
     $this->_dataFrom['media_company'] =& $mediaCompany;
     $this->_dataFrom['like_media_company'] = true;
     // 基本情報
     $anken =& $m->getAnkenData($ankenId);
     $this->appendDataFrom($anken);
     // 締め日
     $shime = $anken['shime_date'];
     // キャンペーン期間
     $from = $anken['campaign_from'];
     $to = $anken['campaign_to'];
     // 空の期間配列を作成
     $blank = DateManager::getArrayShimeSpan($ankenId, $from, $to, $shime);
     // 集計
     $like = array();
     $like['media_company_id'] = $mediaCompanyId;
     $data =& $m->Result_ClientReportResult_counting($anken, $blank, $like);
     // テンプレートに渡す
     $this->_dataFrom['list'] =& $data;
     //---------------------------------------------
     // UPLOAD用のフォームのカスタム処理
     //---------------------------------------------
     $path = $m->Result_ClientReportResult_getUploadFormTmplPath($ankenId);
     $this->_dataFrom["upform_path"] = $path;
 }
예제 #11
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // メディアID
     $mediaId = $this->_request['mid'];
     // モデル
     $m =& $this->_model;
     // 基本情報
     $anken =& $m->getAnkenAndMediaData($ankenId, $mediaId);
     $this->appendDataFrom($anken);
     // キャンペーンコード
     $code = $anken['campaign_code'];
     // 提携メディア情報
     $teikei = $m->Result_MediaReportResult_getTeikeiMediaData($code, $mediaId, $this->_loginMediaCompanyId);
     // ダウンロードフラグ
     if ($this->_loginClientId == null) {
         $this->_dataFrom['download_flag'] = $teikei['download_flag'];
     }
     // キャンペーン期間
     $from = $anken['campaign_from'];
     $to = $anken['campaign_to'];
     // 締め日
     $shime = $anken['shime_date'];
     // 空データを作成
     $blank = DateManager::getArrayShimeSpan($ankenId, $from, $to, $shime);
     // 集計
     $data =& $m->Result_MediaReportResult_counting($anken, $teikei, $blank);
     //----------------------------------
     // メディア今月請求対象明確化
     //----------------------------------
     // 注意文の基準日を取得
     $baseDay = MEDIA_REPORT_RESULT_NOTICE_BASE_DAY;
     $shimeDay = $anken['shime_date'];
     $nowY = date('Y');
     $nowM = date('m');
     $nowD = date('d');
     $nowYM = date('Y-m');
     if ($baseDay < $shimeDay) {
         if ($nowD <= $baseDay) {
             $d = mktime(0, 0, 0, $nowM - 1, 1, $nowY);
             $this->_dataFrom['notice_target_ym'] = date('Y-m', $d);
             $this->_dataFrom['notice_text_m'] = date('m', $d);
         } else {
             $this->_dataFrom['notice_target_ym'] = $nowYM;
             $this->_dataFrom['notice_text_m'] = $nowM;
         }
     } else {
         if ($nowD <= $baseDay) {
             $d = mktime(0, 0, 0, $nowM - 1, 1, $nowY);
             $this->_dataFrom['notice_target_ym'] = $nowYM;
             $this->_dataFrom['notice_text_m'] = date('m', $d);
         } else {
             $d = mktime(0, 0, 0, $nowM + 1, 1, $nowY);
             $this->_dataFrom['notice_target_ym'] = date('Y-m', $d);
             $this->_dataFrom['notice_text_m'] = $nowM;
         }
     }
     // テンプレートに渡す
     $this->_dataFrom['list'] =& $data;
 }
예제 #12
0
 /**
  * 締め日を取得します。
  */
 public function &Result_AdminReportSalesSalesEdit_getFromTo(&$anken, $toYear, $toMonth)
 {
     // 案件IDを取得
     $ankenId = intval($anken['anken_id']);
     // 締め日
     $shime = $anken['shime_date'];
     // 開始日と終了日
     $from = date('Y-m-d', mktime(0, 0, 0, $toMonth, 1, $toYear));
     $to = date('Y-m-d', mktime(0, 0, 0, $toMonth + 1, 1, $toYear));
     // 集計期間を取得
     $blank = DateManager::getArrayShimeSpanStrictTo($ankenId, $from, $to, $shime);
     return $blank[0];
 }
예제 #13
0
 public static function write($type, $message)
 {
     // Write new log message into database
     $sql = new SqlManager();
     $log = array('type' => $type, 'time' => DateManager::now(), 'trace' => serialize(debug_backtrace()), 'session' => null, 'user' => null, 'message' => $message);
 }
예제 #14
0
 public function Edit()
 {
     // Check the token
     if (!Kit::CheckToken()) {
         trigger_error('Token does not match', E_USER_ERROR);
     }
     $response = new ResponseManager();
     // Create a form out of the config object.
     $displayProfile = new DisplayProfile();
     $displayProfile->displayProfileId = Kit::GetParam('displayprofileid', _POST, _INT);
     if (!$displayProfile->Load()) {
         trigger_error($displayProfile->GetErrorMessage(), E_USER_ERROR);
     }
     if ($this->user->usertypeid != 1 && $this->user->userid != $displayProfile->userId) {
         trigger_error(__('You do not have permission to edit this profile'), E_USER_ERROR);
     }
     if (empty($displayProfile->type)) {
         trigger_error(__('Unknown Client Type'), E_USER_ERROR);
     }
     $displayProfile->name = Kit::GetParam('name', _POST, _STRING);
     $displayProfile->isDefault = Kit::GetParam('isdefault', _POST, _CHECKBOX);
     // Capture and validate the posted form parameters in accordance with the display config object.
     include 'config/client.config.php';
     if (!isset($CLIENT_CONFIG[$displayProfile->type])) {
         trigger_error(__('CMS Config not supported for ' . $displayProfile->type . ' displays.'), E_USER_ERROR);
     }
     $combined = array();
     foreach ($CLIENT_CONFIG[$displayProfile->type]['settings'] as $setting) {
         // Validate the parameter
         $value = Kit::GetParam($setting['name'], _POST, $setting['type'], $setting['type'] == 'checkbox' ? NULL : $setting['default']);
         // If we are a time picker, then process the received time
         if ($setting['fieldType'] == 'timePicker') {
             $value = $value == '00:00' ? '0' : DateManager::getTimestampFromTimeString($value) * 1000;
         }
         // Add to the combined array
         $combined[] = array('name' => $setting['name'], 'value' => $value, 'type' => $setting['type']);
     }
     // Recursively merge the arrays and update
     $displayProfile->config = $combined;
     if (!$displayProfile->Save()) {
         trigger_error($displayProfile->GetErrorMessage(), E_USER_ERROR);
     }
     $response->SetFormSubmitResponse(__('Display Configuration Saved.'));
     $response->Respond();
 }
예제 #15
0
function modTransaction()
{
    require_once _base_ . '/lib/lib.table.php';
    require_once _base_ . '/lib/lib.form.php';
    require_once _base_ . '/lib/lib.dialog.php';
    require_once _lms_ . '/lib/lib.course.php';
    require_once _lms_ . '/lib/lib.date.php';
    $lang =& DoceboLanguage::createInstance('transaction');
    $acl_man = Docebo::user()->getAclManager();
    $man_transaction = new Man_Transaction();
    $course_man = new Man_Course();
    $date_man = new DateManager();
    $id_transaction = Get::req('id', DOTY_INT, 0);
    $transaction_info = $man_transaction->getTransactionInfo($id_transaction);
    if (isset($_POST['update'])) {
        $payment_status = Get::req('payment_status', DOTY_INT, 0);
        $course_status = Get::req('course_status', DOTY_INT, 0);
        $note = Get::req('note', DOTY_MIXED, '');
        if ($man_transaction->updateTransaction($id_transaction, $payment_status, $course_status, $note)) {
            if (isset($_POST['confirm'])) {
                $activations = array();
                foreach ($_POST['confirm'] as $id => $n) {
                    list($id_course, $id_date) = explode('_', $id);
                    if ($id_date != 0) {
                        $activations[$id_course]['dates'][$id_date] = $id_date;
                    } else {
                        $activations[$id_course] = $id_course;
                    }
                }
                if ($man_transaction->activateCourses($id_transaction, $transaction_info['id_user'], $activations)) {
                    Util::jump_to('index.php?modname=transaction&op=transaction&res=ok');
                }
            } else {
                Util::jump_to('index.php?modname=transaction&op=transaction&res=ok');
            }
        }
        Util::jump_to('index.php?modname=transaction&op=transaction&res=err_up');
    }
    $array_title = array('index.php?modname=transaction&amp;op=transaction' => $lang->def('_TRANSACTION'), $lang->def('_MOD_TRANSACTION'));
    //Status info & note
    $array_payment_status = array('-1' => $lang->def('_CANCELLED'), '0' => $lang->def('_WAITING_PAYMENT'), '1' => $lang->def('_PARTIAL_PAID'), '2' => $lang->def('_PAID'));
    $array_course_status = array('-1' => $lang->def('_CANCELLED'), '0' => $lang->def('_NO_COURSE_ACTIVATED'), '1' => $lang->def('_SOME_COURSE_ACTIVATED'), '2' => $lang->def('_ALL_COURSE_ACTIVATED'));
    cout(getTitleArea($array_title) . '<div class="std_block">' . Form::openForm('transaction_info', 'index.php?modname=transaction&amp;op=mod&amp;id=' . $id_transaction) . Form::openElementSpace() . Form::getDropdown($lang->def('_PAYMENT_STATUS_FILTER'), 'payment_status', 'payment_status', $array_payment_status, $transaction_info['payment_status']) . Form::getDropdown($lang->def('_COURSE_STATUS_FILTER'), 'course_status', 'course_status', $array_course_status, $transaction_info['course_status']) . Form::getSimpleTextarea($lang->def('_NOTES'), 'note', 'note', $transaction_info['note']) . Form::closeElementSpace());
    //User info
    $user_info = $acl_man->getUser($transaction_info['id_user'], false);
    $tb_user = new Table(0, $lang->def('_USER_INFO'), $lang->def('_USER_INFO'));
    $cont_h = array($lang->def('_USERNAME'), $lang->def('_FIRSTNAME'), $lang->def('_LASTNAME'), $lang->def('_EMAIL'));
    $type_h = array('', '', '', '');
    $tb_user->setColsStyle($type_h);
    $tb_user->addHead($cont_h);
    $tb_user->addBody(array($acl_man->relativeId($user_info[ACL_INFO_USERID]), $user_info[ACL_INFO_FIRSTNAME], $user_info[ACL_INFO_LASTNAME], $user_info[ACL_INFO_EMAIL]));
    cout('<br />' . $tb_user->getTable());
    //Payment info if we need it
    //Product info
    $tb_product = new Table(0, $lang->def('_PRODUCT_INFO'), $lang->def('_PRODUCT_INFO'));
    $cont_h = array($lang->def('_CODE'), $lang->def('_NAME'), $lang->def('_DATE_BEGIN'), $lang->def('_DATE_END'), $lang->def('_COURSE_PRIZE'), $lang->def('_CONFIRM_COURSE'));
    $type_h = array('', '', '', '', '', '');
    $tb_product->setColsStyle($type_h);
    $tb_product->addHead($cont_h);
    $transaction_course = $man_transaction->getTransactionCourses($id_transaction);
    foreach ($transaction_course as $id_course => $details) {
        if (is_array($details)) {
            foreach ($details['dates'] as $id_date) {
                $date_info = $date_man->getDateInfo($id_date);
                $checked = false;
                $other = '';
                if ($man_transaction->controlActivation($id_transaction, $id_course, $id_date)) {
                    $checked = true;
                    $other = 'disabled="disabled"';
                }
                $tb_product->addBody(array($date_info['code'], $date_info['name'], Format::date($date_info['date_begin']), Format::date($date_info['date_end']), $date_info['price'], Form::getInputCheckbox($id_course . '_' . $id_date, 'confirm[' . $id_course . '_' . $id_date . ']', 1, $checked, $other)));
            }
        } else {
            $course_info = $course_man->getCourseInfo($id_course);
            $checked = false;
            $other = '';
            if ($man_transaction->controlActivation($id_transaction, $id_course)) {
                $checked = true;
                $other = 'disabled="disabled"';
            }
            $tb_product->addBody(array($course_info['code'], $course_info['name'], $course_info['date_begin'] !== '0000-00-00' ? Format::date($course_info['date_begin'], 'date') . ($course_info['hour_begin'] !== '-1' ? $course_info['hour_begin'] : '') : '', $course_info['date_end'] !== '0000-00-00' ? Format::date($course_info['date_end'], 'date') . ($course_info['hour_end'] !== '-1' ? $course_info['hour_end'] : '') : '', $course_info['prize'] == '' ? '0' : $course_info['prize'], Form::getInputCheckbox($id_course . '_0', 'confirm[' . $id_course . '_0]', 1, $checked, $other)));
        }
    }
    cout('<br />' . $tb_product->getTable() . Form::openButtonSpace() . Form::getButton('update', 'update', $lang->def('_UPDATE')) . Form::getButton('back_mod', 'back_mod', $lang->def('_BACK')) . Form::closeButtonSpace() . Form::closeForm());
    cout('</div>');
}
예제 #16
0
 protected function getTwitterFeed($displayId = 0, $isPreview = true)
 {
     if (!extension_loaded('curl')) {
         trigger_error(__('cURL extension is required for Twitter'));
         return false;
     }
     // Do we need to add a geoCode?
     $geoCode = '';
     $distance = $this->GetOption('tweetDistance');
     if ($distance != 0) {
         // Use the display ID or the default.
         if ($displayId != 0) {
             // Look up the lat/long
             $display = new Display();
             $display->displayId = $displayId;
             $display->Load();
             $defaultLat = $display->latitude;
             $defaultLong = $display->longitude;
         } else {
             $defaultLat = Config::GetSetting('DEFAULT_LAT');
             $defaultLong = Config::GetSetting('DEFAULT_LONG');
         }
         // Built the geoCode string.
         $geoCode = implode(',', array($defaultLat, $defaultLong, $distance)) . 'mi';
     }
     // Connect to twitter and get the twitter feed.
     $key = md5($this->GetOption('searchTerm') . $this->GetOption('resultType') . $this->GetOption('tweetCount', 15) . $geoCode);
     if (!Cache::has($key) || Cache::get($key) == '') {
         Debug::Audit('Querying API for ' . $this->GetOption('searchTerm'));
         // We need to search for it
         if (!($token = $this->getToken())) {
             return false;
         }
         // We have the token, make a tweet
         if (!($data = $this->searchApi($token, $this->GetOption('searchTerm'), $this->GetOption('resultType'), $geoCode, $this->GetOption('tweetCount', 15)))) {
             return false;
         }
         // Cache it
         Cache::put($key, $data, $this->GetSetting('cachePeriod'));
     } else {
         Debug::Audit('Served from Cache');
         $data = Cache::get($key);
     }
     Debug::Audit(var_export(json_encode($data), true));
     // Get the template
     $template = $this->GetRawNode('template');
     // Parse the text template
     $matches = '';
     preg_match_all('/\\[.*?\\]/', $template, $matches);
     // Build an array to return
     $return = array();
     // Media Object to get profile images
     $media = new Media();
     $layout = new Layout();
     // Expiry time for any media that is downloaded
     $expires = time() + $this->GetSetting('cachePeriodImages') * 60 * 60;
     // Remove URL setting
     $removeUrls = $this->GetOption('removeUrls', 1);
     // If we have nothing to show, display a no tweets message.
     if (count($data->statuses) <= 0) {
         // Create ourselves an empty tweet so that the rest of the code can continue as normal
         $user = new stdClass();
         $user->name = '';
         $user->screen_name = '';
         $user->profile_image_url = '';
         $tweet = new stdClass();
         $tweet->text = $this->GetOption('noTweetsMessage', __('There are no tweets to display'));
         $tweet->created_at = date("Y-m-d H:i:s");
         $tweet->user = $user;
         // Append to our statuses
         $data->statuses[] = $tweet;
     }
     // This should return the formatted items.
     foreach ($data->statuses as $tweet) {
         // Substitute for all matches in the template
         $rowString = $template;
         foreach ($matches[0] as $sub) {
             // Always clear the stored template replacement
             $replace = '';
             // Maybe make this more generic?
             switch ($sub) {
                 case '[Tweet]':
                     // Get the tweet text to operate on
                     $tweetText = $tweet->text;
                     // Replace URLs with their display_url before removal
                     if (isset($tweet->entities->urls)) {
                         foreach ($tweet->entities->urls as $url) {
                             $tweetText = str_replace($url->url, $url->display_url, $tweetText);
                         }
                     }
                     // Handle URL removal if requested
                     if ($removeUrls == 1) {
                         $tweetText = preg_replace("((https?|ftp|gopher|telnet|file|notes|ms-help):((\\/\\/)|(\\\\))+[\\w\\d:#\\@%\\/;\$()~_?\\+-=\\\\.&]*)", '', $tweetText);
                     }
                     $replace = emoji_unified_to_html($tweetText);
                     break;
                 case '[User]':
                     $replace = $tweet->user->name;
                     break;
                 case '[ScreenName]':
                     $replace = $tweet->user->screen_name;
                     break;
                 case '[Date]':
                     $replace = date($this->GetOption('dateFormat', Config::GetSetting('DATE_FORMAT')), DateManager::getDateFromGregorianString($tweet->created_at));
                     break;
                 case '[ProfileImage]':
                     // Grab the profile image
                     if ($tweet->user->profile_image_url != '') {
                         $file = $media->addModuleFileFromUrl($tweet->user->profile_image_url, 'twitter_' . $tweet->user->id, $expires);
                         // Tag this layout with this file
                         $layout->AddLk($this->layoutid, 'module', $file['mediaId']);
                         $replace = $isPreview ? '<img src="index.php?p=module&mod=image&q=Exec&method=GetResource&mediaid=' . $file['mediaId'] . '" />' : '<img src="' . $file['storedAs'] . '" />';
                     }
                     break;
                 case '[Photo]':
                     // See if there are any photos associated with this tweet.
                     if (isset($tweet->entities->media) && count($tweet->entities->media) > 0) {
                         // Only take the first one
                         $photoUrl = $tweet->entities->media[0]->media_url;
                         if ($photoUrl != '') {
                             $file = $media->addModuleFileFromUrl($photoUrl, 'twitter_photo_' . $tweet->user->id . '_' . $tweet->entities->media[0]->id_str, $expires);
                             $replace = $isPreview ? '<img src="index.php?p=module&mod=image&q=Exec&method=GetResource&mediaid=' . $file['mediaId'] . '" />' : '<img src="' . $file['storedAs'] . '" />';
                             // Tag this layout with this file
                             $layout->AddLk($this->layoutid, 'module', $file['mediaId']);
                         }
                     }
                     break;
                 default:
                     $replace = '';
             }
             $rowString = str_replace($sub, $replace, $rowString);
         }
         // Substitute the replacement we have found (it might be '')
         $return[] = $rowString;
     }
     // Return the data array
     return $return;
 }
예제 #17
0
include 'includes/pagestructure.php';
include 'includes/smartbanner.php';
include 'includes/smartnav.php';
head('Welcome to Urban Illustration');
topbar();
?>

 <div id="content">

     

 		<div id="maincontent">

        	<div class="textcontentalone">
<h1>join the class of <?php 
echo DateManager::frontdisplaytimefromtmstp($classtojoin->c_date);
?>
 part of the <?php 
echo $sessiontojoin->name;
?>
</h1>
<p>Please fill out the form below to register for a class in the upcoming Spring Session. Please be sure to look at DAY and TIME to be sure you are registering for the correct time slot. </p>

<?php 
$stillspots = Classes::anyspots($classtojoin->id);
if ($stillspots) {
    echo '<h2>CLASS FULL</h2>';
} else {
    if (isset($captchaerror)) {
        $p_firstname = $database->escape_value($_POST['p_firstname']);
        $p_lastname = $database->escape_value($_POST['p_lastname']);
예제 #18
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // フォーム初期化
     $m->initFormData();
     if (isset($this->_request['search']) == true || $this->_isDownload == true) {
         // 日にちの空データを作成
         $from = $this->_like['from'];
         $to = $this->_like['to'];
         $blank = DateManager::getArrayDaily($ankenId, $from, $to);
         // キャンペーンコード
         $code = $this->_anken['campaign_code'];
         // レポート種別
         $reportKind = $this->_like['report_kind'];
         // 該当メディア/メディア企業一覧取得
         $groupList =& $m->getGropuList($code, $this->_like);
         // PVデータ
         $dataPv =& $m->getDailyPv($code, $this->_like);
         // 成果データ
         $dataSeika =& $m->getDailySeika($code, $this->_like);
         if ($reportKind == 1) {
             ////////////////////
             // 総合
             ////////////////////
             // マージ
             $formData =& $m->counting($blank, $dataPv, $dataSeika);
             // テンプレート変数追加
             $this->_dataFrom['show'] = true;
             $this->_dataFrom['group'] =& $groupList;
             $this->_dataFrom['list'] =& $formData;
             $as = new ArraySort();
             if (is_array($groupList['media']) == true) {
                 $as->keySort($groupList['media'], 'id');
             }
             if (is_array($groupList['media_company']) == true) {
                 $as->keySort($groupList['media_company'], 'id');
             }
             $this->_dataFrom['search_group'] =& $groupList;
         } else {
             if ($reportKind == 2) {
                 ////////////////////
                 // メディア別
                 ////////////////////
                 $group = $groupList['media'];
             } else {
                 if ($reportKind == 3) {
                     ////////////////////
                     // メディア企業別
                     ////////////////////
                     $group = $groupList['media_company'];
                 }
             }
             if (count($group) > 0) {
                 // マージ
                 $formData =& $m->countingGroup($blank, $dataPv, $dataSeika, $group);
                 // テンプレート変数追加
                 $this->_dataFrom['show'] = true;
                 $this->_dataFrom['search_group'] =& $groupList;
                 $this->_dataFrom['group'] =& $group;
                 $this->_dataFrom['list'] =& $formData;
                 $as = new ArraySort();
                 if (is_array($groupList['media']) == true) {
                     $as->keySort($groupList['media'], 'id');
                 }
                 if (is_array($groupList['media_company']) == true) {
                     $as->keySort($groupList['media_company'], 'id');
                 }
                 $this->_dataFrom['search_group'] =& $groupList;
             }
         }
     }
     // モデル内の値をテンプレートに設定
     $d =& $m->getFormData();
     $this->appendDataFrom($d);
 }
예제 #19
0
    ?>
</h2>
<form action="classes-view.php?sid=<?php 
    echo $_GET['sid'];
    ?>
" method="post">
<input type="hidden" value="<?php 
    echo $updateclass->id;
    ?>
" name="cls_id" />
Class Date: <input type="datetime" maxlength="40" name="class-date" value="<?php 
    echo DateManager::displaydatefromtmstp($updateclass->c_date);
    ?>
"/> MM/DD/YY
Class Time: <input type="text" maxlength="40" name="class-time" value="<?php 
    echo DateManager::backdisplaytimefromtmstp($updateclass->c_date);
    ?>
"/>HH:MM<br />
Available Spots: <input type="text" maxlength="40" name="spots" value="<?php 
    echo $updateclass->spots;
    ?>
"/>
<br />Note:<br /> <textarea rows="2" cols="60" name="note">
<?php 
    echo $updateclass->note;
    ?>
</textarea><br />
<input type="submit" name="Update" value="Update" />
</form>
<?php 
} else {
예제 #20
0
function presence()
{
    checkPerm('view');
    require_once _base_ . '/lib/lib.form.php';
    require_once _base_ . '/lib/lib.table.php';
    YuiLib::load();
    Util::get_js(Get::rel_path('lms') . '/admin/views/classroom/classroom.js', true, true);
    $id_date = Get::req('id_date', DOTY_INT, 0);
    $lang =& DoceboLanguage::CreateInstance('admin_date', 'lms');
    $date_man = new DateManager();
    $user_date = $date_man->getUserDateForCourse(getLogUserId(), $_SESSION['idCourse']);
    $date_info = $date_man->getDateInfoForPublicPresence($user_date);
    foreach ($date_info as $info_date) {
        $date_for_dropdown[$info_date['id_date']] = $info_date['code'] . ' - ' . $info_date['name'] . ' (' . Format::date($info_date['date_begin'], 'date') . ')';
    }
    if ($id_date == 0) {
        $id_date = isset($date_info[0]['id_date']) ? $date_info[0]['id_date'] : 0;
    }
    cout(getTitleArea(Lang::t('_ATTENDANCE')) . '<div class="std_block">', 'content');
    if (isset($_POST['save'])) {
        require_once $GLOBALS['where_lms'] . '/lib/lib.date.php';
        $date_man = new DateManager();
        $id_date = Get::req('id_date', DOTY_INT, 0);
        $score_min = Get::req('score_min', DOTY_INT, 0);
        $user = $date_man->getUserForPresence($id_date);
        $day = $date_man->getDateDay($id_date);
        $test_type = $date_man->getTestType($id_date);
        foreach ($user as $id_user => $user_info) {
            $user[$id_user]['score'] = Get::req('score_' . $id_user, DOTY_INT, 0);
            $user[$id_user]['note'] = Get::req('note_' . $id_user, DOTY_MIXED, '');
            $user[$id_user]['day_presence'] = array();
            for ($i = 0; $i < count($day); $i++) {
                $user[$id_user]['day_presence'][$day[$i]['id_day']] = Get::req('date_' . $day[$i]['id_day'] . '_' . $id_user, DOTY_INT, 0);
            }
        }
        if ($date_man->insDatePresence($_SESSION['id_course_date'], $id_date, $user, $day, $score_min)) {
            UIFeedback::info(Lang::t('_ATTENDANCE_SAVED', 'admin_date'));
        } else {
            UIFeedback::error(Lang::t('_ATTENDANCE_SAVED_ERROR', 'admin_date'));
        }
    }
    if ($id_date == 0) {
        cout(Lang::t('_NO_CONTENT', 'admin_date'), 'content');
    } else {
        $user = $date_man->getUserForPresence($id_date);
        $day = $date_man->getDateDay($id_date);
        $test_type = $date_man->getTestType($id_date);
        $user_presence = $date_man->getUserPresenceForDate($id_date);
        $tb = new Table(0, Lang::t('_ATTENDANCE', 'admin_date'), Lang::t('_ATTENDANCE', 'admin_date'));
        $cont_h = array(Lang::t('_USERNAME', 'admin_date'), Lang::t('_FULLNAME', 'admin_date'));
        $type_h = array('', '');
        foreach ($day as $id_day => $day_info) {
            $cont_h[] = Format::date($day_info['date_begin'], 'date') . '<br />' . '<a href="javascript:;" onClick="checkAllDay(' . $id_day . ')">' . Get::img('standard/checkall.png', Lang::t('_CHECK_ALL_DAY', 'presence') . '</a>') . ' ' . '<a href="javascript:;" onClick="unCheckAllDay(' . $id_day . ')">' . Get::img('standard/uncheckall.png', Lang::t('_UNCHECK_ALL_DAY', 'presence') . '</a>');
            $type_h[] = 'align_center';
        }
        $cont_h[] = '';
        $type_h[] = 'img-cell';
        if ($test_type == _DATE_TEST_TYPE_PAPER) {
            $cont_h[] = Lang::t('_SCORE', 'admin_date');
            $type_h[] = 'align_center';
        }
        $cont_h[] = Lang::t('_NOTES', 'admin_date');
        $type_h[] = 'align_center';
        $tb->setColsStyle($type_h);
        $tb->addHead($cont_h);
        cout(Form::openForm('presence_form', 'index.php?modname=presence&amp;op=presence') . Form::openElementSpace() . Form::getDropdown(Lang::t('_SELECT_EDITION', 'admin_date'), 'id_date', 'id_date', $date_for_dropdown, $id_date) . Form::closeElementSpace() . Form::openElementSpace() . ($test_type == 1 ? Form::getTextfield(Lang::t('_MIN_SCORE', 'admin_date'), 'score_min', 'score_min', 255, '') : ''), 'content');
        $array_user_id = array();
        foreach ($user as $id_user => $user_info) {
            reset($day);
            $array_user_id[] = $id_user;
            $cont = array();
            $cont[] = $user_info['userid'];
            $cont[] = $user_info['lastname'] . ' ' . $user_info['firstname'];
            foreach ($day as $id_day => $day_info) {
                if (isset($user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]) && $user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]['presence'] == 1) {
                    $presence = true;
                } elseif (isset($user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]) && $user_presence[$id_user][substr($day_info['date_begin'], 0, 10)]['presence'] == 0) {
                    $presence = false;
                } else {
                    $presence = false;
                }
                $cont[] = Form::getInputCheckbox('date_' . $id_day . '_' . $id_user, 'date_' . $id_day . '_' . $id_user, 1, $presence, false);
            }
            $cont[] = '<a href="javascript:;" onClick="checkAllUser(' . $id_user . ')">' . Get::img('standard/checkall.png', Lang::t('_CHECK_ALL_USER', 'presence') . '</a>') . '<br />' . '<a href="javascript:;" onClick="unCheckAllUser(' . $id_user . ')">' . Get::img('standard/uncheckall.png', Lang::t('_UNCHECK_ALL_USER', 'presence') . '</a>');
            if ($test_type == _DATE_TEST_TYPE_PAPER) {
                if (isset($user_presence[$id_user]['0000-00-00']) && $user_presence[$id_user]['0000-00-00']['presence'] == 1) {
                    $passed = true;
                } else {
                    $passed = false;
                }
                $cont[] = Form::getTextfield('', 'score_' . $id_user, 'score_' . $id_user, 255, isset($user_presence[$id_user]['0000-00-00']['score']) ? $user_presence[$id_user]['0000-00-00']['score'] : '0');
            }
            $cont[] = Form::getSimpleTextarea('', 'note_' . $id_user, 'note_' . $id_user, isset($user_presence[$id_user]['0000-00-00']['note']) ? $user_presence[$id_user]['0000-00-00']['note'] : '', false, false, false, 2);
            $tb->addBody($cont);
        }
        cout($tb->getTable() . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('save', 'save', Lang::t('_SAVE', 'admin_date')) . Form::closeElementSpace() . Form::closeForm() . '</div>', 'content');
        cout('<script type="text/javascript">' . 'var _MIN_SCORE_NOT_SET = "' . Lang::t('_MIN_SCORE_NOT_SET', 'admin_date') . '";' . 'YAHOO.util.Event.addListener("save", "click", controlMinScore);' . 'YAHOO.util.Event.addListener("id_date", "change", formSubmit);' . 'function checkAllDay(id_day)
{
	var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_day + \'_]\');
	var i;

	for(i = 0; i < days.length; i++)
		days[i].checked = true;
}

function unCheckAllDay(id_day)
{
	var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_day + \'_]\');
	var i;

	for(i = 0; i < days.length; i++)
		days[i].checked = false;
}

function checkAllUser(id_user)
{
	var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_user + \']\');
	var i;

	for(i = 0; i < days.length; i++)
		days[i].checked = true;
}

function unCheckAllUser(id_user)
{
	var days = YAHOO.util.Selector.query(\'input[id*=_\' + id_user + \']\');
	var i;

	for(i = 0; i < days.length; i++)
		days[i].checked = false;
}' . '</script>', 'content');
    }
    cout('</div>', 'content');
}
예제 #21
0
    /**
     * 成果件数を取得します
     * @param array $ankenList 対象メディアデータ
     * @param array $like 検索条件配列
     */
    public function &Result_MediaCompanyDownload_getSeikaData(&$ankenList, &$like)
    {
        $db =& $this->_core->getDB();
        // 条件を作成
        $where = "";
        $param = array();
        // メディア企業ID (検索条件)
        if (empty($like['media_company_id']) == false) {
            $mediaCompanyId = $like['media_company_id'];
            $where .= " and M.media_company_id=? ";
            $param[] = $mediaCompanyId;
        }
        // ステータス
        if (empty($like['status']) == false && count($like['status']) != 3) {
            $status = $like['status'];
            if (in_array(1, $status) == true) {
                $list[] = " CS.accept_flg=1 ";
            }
            if (in_array(2, $status) == true) {
                $list[] = " CS.accept_flg=0 ";
            }
            if (in_array(3, $status) == true) {
                $list[] = " CS.accept_flg is null ";
            }
            $s = implode(' or ', $list);
            if (strlen($s) != 0) {
                $where .= " and ({$s}) ";
            }
        }
        // 対象日付条件
        $targetData = 'CS.action_date';
        if (empty($like['date_target']) == false && $like['date_target'] == 2) {
            $targetData = 'CS.accept_date';
        }
        $result = array();
        // 拡張処理用SQL文
        $sql = <<<SQL
select
is_custom,
result_media_company_download as flg
from ald_custom_status
where anken_id=?
SQL;
        // 案件毎に成果データを取得し整理します。
        foreach ($ankenList as $key => $anken) {
            $ankenId = intval($anken['anken_id']);
            // 検索範囲を取得
            $from = trim($like['target_month']);
            $next = strtotime("{$month} + 1 month");
            $to = date('Y-m-d', $next);
            $shime = $anken['anken_shime_date'];
            $ankenWhere = $where . " and {$targetData} between ? and ?";
            $span =& DateManager::getArrayShimeSpan($ankenId, $from, $to, $shime);
            $ankenParam = $param;
            $ankenParam[] = $span[0]['from'];
            $ankenParam[] = $span[0]['to'];
            // 拡張テーブルから拡張確認
            $data =& $db->query($sql, array($ankenId));
            // 対象モデル
            $model =& $this;
            if (count($data) == 1) {
                $isCustom = $data[0]['is_custom'];
                $flag = $data[0]['flg'];
                // 拡張処理であれば一時的にモデル入れ替え
                if ($isCustom == '1' && $flag == '1') {
                    // ファイルパス
                    $base = $this->_core->getBaseName();
                    $path = ABS_MODEL . "alladinExtend/{$ankenId}/{$base}_{$ankenId}_model.php";
                    require_once $path;
                    // クラス名称
                    $b = str_replace('/', '_', $base);
                    $className = "{$b}_{$ankenId}_model";
                    // インスタンス生成
                    $model = new $className($this->_core);
                }
                // 成果データ取得
                $data =& $model->Result_MediaCompanyDownload_getAnkenSeikaData($anken, $ankenWhere, $ankenParam);
                if (count($data) != 0) {
                    // 整理
                    $model->Result_MediaCompanyDownload_formatAnkenSeikaData($anken, $data);
                    // 結果を連結
                    array_splice($result, count($result), 0, $data);
                }
            }
        }
        return $result;
    }
예제 #22
0
 /**
  * Edits an event
  * @return 
  */
 public function EditEvent()
 {
     // Check the token
     if (!Kit::CheckToken(Kit::GetParam('token_id', _POST, _STRING))) {
         trigger_error(__('Sorry the form has expired. Please refresh.'), E_USER_ERROR);
     }
     $db =& $this->db;
     $user =& $this->user;
     $response = new ResponseManager();
     $eventId = Kit::GetParam('EventID', _POST, _INT, 0);
     $campaignId = Kit::GetParam('CampaignID', _POST, _INT, 0);
     $fromDT = Kit::GetParam('starttime', _POST, _STRING);
     $toDT = Kit::GetParam('endtime', _POST, _STRING);
     $displayGroupIDs = Kit::GetParam('DisplayGroupIDs', _POST, _ARRAY);
     $isPriority = Kit::GetParam('is_priority', _POST, _CHECKBOX);
     $repeatType = Kit::GetParam('rec_type', _POST, _STRING);
     $repeatInterval = Kit::GetParam('rec_detail', _POST, _INT);
     $repeatToDt = Kit::GetParam('rec_range', _POST, _STRING);
     $displayOrder = Kit::GetParam('DisplayOrder', _POST, _INT);
     $isNextButton = Kit::GetParam('next', _GET, _BOOL, false);
     // Convert our ISO strings
     $fromDT = DateManager::getTimestampFromString($fromDT);
     $toDT = DateManager::getTimestampFromString($toDT);
     if ($repeatToDt != '') {
         $repeatToDt = DateManager::getTimestampFromString($repeatToDt);
     }
     Debug::Audit('Times received are: FromDt=' . $fromDT . '. ToDt=' . $toDT . '. RepeatToDt=' . $repeatToDt);
     // Validate layout
     if ($campaignId == 0) {
         trigger_error(__("No layout selected"), E_USER_ERROR);
     }
     // check that at least one display has been selected
     if ($displayGroupIDs == '') {
         trigger_error(__("No displays selected"), E_USER_ERROR);
     }
     // validate the dates
     if ($toDT < $fromDT) {
         trigger_error(__('Can not have an end time earlier than your start time'), E_USER_ERROR);
     }
     // Check recurrence dT is in the future or empty
     if ($repeatToDt != '' && $repeatToDt < time() - 86400) {
         trigger_error(__("Your repeat until date is in the past. Cannot schedule events to repeat in to the past"), E_USER_ERROR);
     }
     // Ready to do the edit
     $scheduleObject = new Schedule($db);
     if (!$scheduleObject->Edit($eventId, $displayGroupIDs, $fromDT, $toDT, $campaignId, $repeatType, $repeatInterval, $repeatToDt, $isPriority, $this->user->userid, $displayOrder)) {
         trigger_error($scheduleObject->GetErrorMessage(), E_USER_ERROR);
     }
     $response->SetFormSubmitResponse(__("The Event has been Modified."));
     $response->callBack = 'CallGenerateCalendar';
     $response->Respond();
 }
예제 #23
0
 public function getClassrooms($params)
 {
     require_once _lms_ . '/lib/lib.course.php';
     require_once _lms_ . '/lib/lib.date.php';
     $output = array();
     $output['success'] = true;
     $course_id = isset($params['course_id']) ? (int) $params['course_id'] : false;
     $course_code = isset($params['course_code']) ? $params['course_code'] : false;
     if (empty($course_id) && empty($course_code)) {
         return false;
         // return array('success'=>true, 'debug'=>print_r($params, true));
     } else {
         if (empty($course_id) && !empty($course_code)) {
             // grab course info by code:
             $db = DbConn::getInstance();
             $qtxt = "SELECT * FROM %lms_course\r\n\t\t\t\t\tWHERE code='" . $course_code . "'\r\n\t\t\t\t\tLIMIT 0,1";
             $q = $db->query($qtxt);
             $course_info = $db->fetch_assoc($q);
             if (!empty($course_info)) {
                 $course_id = (int) $course_info['idCourse'];
             } else {
                 // course not found
                 return false;
                 // return array('success'=>'true', 'debug'=>print_r($course_info));
             }
         }
     }
     $classroom_man = new DateManager();
     $course_list = $classroom_man->getCourseDate($course_id);
     $course_man = new Man_Course();
     $course = $course_man->getCourseInfo($course_id);
     foreach ($course_list as $key => $course_info) {
         $output[]['course_info'] = array('course_id' => $course['idCourse'], 'date_id' => $course_info['id_date'], 'code' => str_replace('&', '&amp;', $course_info['code']), 'course_name' => str_replace('&', '&amp;', $course_info['name']), 'course_description' => str_replace('&', '&amp;', $course_info['description']), 'status' => $course_info['status'], 'selling' => $course['selling'], 'price' => $course_info['price'], 'subscribe_method' => $course['subscribe_method'], 'sub_start_date' => $course_info['sub_start_date'], 'sub_end_date' => $course_info['sub_end_date'], 'date_begin' => $course_info['date_begin'], 'date_end' => $course_info['date_end'], 'num_day' => $course_info['num_day'], 'classroom' => $course_info['classroom'], 'course_link' => Get::sett('url') . _folder_lms_ . '/index.php?modname=course&amp;op=aula&amp;idCourse=' . $course['idCourse']);
     }
     //$output['debug']=print_r($course_list, true).print_r($course, true);
     return $output;
 }
예제 #24
0
 public function createAuthCode()
 {
     // Save random auth code in users meta data
     $authcode = Crypt::hash("random:authcode:" . DateManager::now() . ":" . rand());
     Meta::remove("user", $this->id, "authcode");
     Meta::save("user", $this->id, "authcode", Crypt::createHash($authcode));
 }
예제 #25
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // メディアID
     $mediaId = $this->_request['mid'];
     // モデル
     $m =& $this->_model;
     // フォーム初期化
     $m->Result_MediaReportDaily_initFormData();
     if (isset($this->_request['search']) == true || $this->_isDownload == true) {
         // キャンペーンコード
         $code = $this->_anken['campaign_code'];
         // 空データを作成
         $blank = DateManager::getArrayDaily($ankenId, $this->_like['from'], $this->_like['to']);
         // PVデータ
         $dataPv = $m->Result_MediaReportDaily_getDailyPv($code, $mediaId, $this->_like);
         // 成果データ
         $dataSeika =& $m->Result_MediaReportDaily_getDailySeika($code, $mediaId, $this->_like);
         // マージ
         $formData =& $m->Result_MediaReportDaily_counting($blank, $dataPv, $dataSeika);
         // テンプレート変数追加
         $this->_dataFrom['show'] = true;
         $this->_dataFrom['list'] =& $formData;
     }
     // モデル内の値をテンプレートに設定
     $d =& $m->getFormData();
     $this->appendDataFrom($d);
 }
예제 #26
0
 function load()
 {
     $isFirst = TRUE;
     // check if the user attende the course
     if ($GLOBALS['course_descriptor']->getValue('course_type') == 'classroom') {
         require_once _lms_ . '/lib/lib.date.php';
         $man_date = new DateManager();
         $this->user_presence = $man_date->checkUserPresence(getLogUserId(), $_SESSION['idCourse']);
     }
     $tree = $this->printState();
     $coll = $this->_retrieveData();
     $stack = array();
     $level = 0;
     $count = 0;
     $tree .= '<div class="TreeViewContainer">' . "\n";
     $folder = $this->tdb->getRootFolder();
     $stack[$level] = array();
     $stack[$level]['folder'] = $folder;
     $stack[$level]['childs'] = $this->posTree[0];
     $stack[$level]['isLast'] = TRUE;
     $stack[$level]['isLeaf'] = FALSE;
     $stack[$level]['isExpanded'] = FALSE;
     $stack[$level]['idSeq'] = $folder->id;
     $stack[$level]['isFirst'] = $isFirst;
     $tree .= '<div class="TreeViewRowOdd" id="row_' . $stack[$level]['idSeq'] . '">';
     $tree .= $this->printElement($stack, $level);
     $tree .= '</div>';
     $level++;
     if ($coll !== FALSE) {
         while ($folder = $coll->getNext()) {
             list($key, $val) = each($stack[$level - 1]['childs']);
             $stack[$level] = array();
             $stack[$level]['folder'] = $folder;
             $stack[$level]['childs'] = $val;
             $stack[$level]['isFirst'] = $isFirst;
             $isFirst = FALSE;
             if (current($stack[$level - 1]['childs'])) {
                 $stack[$level]['isLast'] = false;
             } else {
                 $stack[$level]['isLast'] = true;
             }
             if (is_array($val)) {
                 $stack[$level]['isExpanded'] = TRUE;
             } else {
                 $stack[$level]['isExpanded'] = FALSE;
             }
             if ($folder->countChildrens() > 0) {
                 $stack[$level]['isLeaf'] = FALSE;
             } else {
                 $stack[$level]['isLeaf'] = TRUE;
             }
             $stack[$level]['idSeq'] = $stack[$level - 1]['idSeq'] . '.' . $folder->id;
             $row_content = $this->printElement($stack, $level);
             if ($row_content !== false) {
                 $count++;
                 if ($count % 2 == 0) {
                     $tree .= '<div class="TreeViewRowOdd" id="row_' . $stack[$level]['idSeq'] . '">';
                 } else {
                     $tree .= '<div class="TreeViewRowEven" id="row_' . $stack[$level]['idSeq'] . '">';
                 }
                 $tree .= $row_content;
                 $tree .= '</div>';
                 if (is_array($val)) {
                     $level++;
                     $isFirst = TRUE;
                 } else {
                     if ($stack[$level]['isLast']) {
                         while ($stack[$level]['isLast'] && $level > 1) {
                             $level--;
                         }
                     }
                 }
             }
         }
     } else {
         $tree .= "\n<!-- coll is null -->";
     }
     /* echo "\n<!-- diag ";
     		print_r( $this->posTree );
     		print_r( $this->posFlat );
     		print_r( $this->expandList );
     		print_r( $this->compressList );
     		echo "-->\n"; */
     $tree .= '</div>' . "\n";
     return $tree;
 }
예제 #27
0
 /**
  * Grid of Displays
  * @return
  */
 function DisplayGrid()
 {
     // validate displays so we get a realistic view of the table
     Display::ValidateDisplays();
     $db =& $this->db;
     $user =& $this->user;
     $response = new ResponseManager();
     // Filter by Name
     $filter_display = Kit::GetParam('filter_display', _POST, _STRING);
     setSession('display', 'filter_display', $filter_display);
     // Filter by Name
     $filterMacAddress = Kit::GetParam('filterMacAddress', _POST, _STRING);
     setSession('display', 'filterMacAddress', $filterMacAddress);
     // Display Group
     $filter_displaygroupid = Kit::GetParam('filter_displaygroup', _POST, _INT);
     setSession('display', 'filter_displaygroup', $filter_displaygroupid);
     // Thumbnail?
     $filter_showView = Kit::GetParam('filter_showView', _REQUEST, _INT);
     setSession('display', 'filter_showView', $filter_showView);
     $filterVersion = Kit::GetParam('filterVersion', _REQUEST, _STRING);
     setSession('display', 'filterVersion', $filterVersion);
     // filter_autoRefresh?
     $filter_autoRefresh = Kit::GetParam('filter_autoRefresh', _REQUEST, _INT, 0);
     setSession('display', 'filter_autoRefresh', $filter_autoRefresh);
     // Pinned option?
     setSession('display', 'DisplayFilter', Kit::GetParam('XiboFilterPinned', _REQUEST, _CHECKBOX, 'off'));
     $displays = $user->DisplayList(array('displayid'), array('displaygroupid' => $filter_displaygroupid, 'display' => $filter_display, 'macAddress' => $filterMacAddress, 'clientVersion' => $filterVersion));
     if (!is_array($displays)) {
         trigger_error($db->error());
         trigger_error(__('Unable to get list of displays'), E_USER_ERROR);
     }
     // Do we want to make a VNC link out of the display name?
     $vncTemplate = Config::GetSetting('SHOW_DISPLAY_AS_VNCLINK');
     $linkTarget = Kit::ValidateParam(Config::GetSetting('SHOW_DISPLAY_AS_VNC_TGT'), _STRING);
     $cols = array(array('name' => 'displayid', 'title' => __('ID')), array('name' => 'displayWithLink', 'title' => __('Display')), array('name' => 'status', 'title' => __('Status'), 'icons' => true, 'iconDescription' => 'statusDescription'), array('name' => 'licensed', 'title' => __('License'), 'icons' => true), array('name' => 'currentLayout', 'title' => __('Current Layout'), 'hidden' => $filter_showView != 3), array('name' => 'storageAvailableSpaceFormatted', 'title' => __('Storage Available'), 'hidden' => $filter_showView != 3), array('name' => 'storageTotalSpaceFormatted', 'title' => __('Storage Total'), 'hidden' => $filter_showView != 3), array('name' => 'storagePercentage', 'title' => __('Storage Free %'), 'hidden' => $filter_showView != 3), array('name' => 'description', 'title' => __('Description'), 'hidden' => $filter_showView != 4), array('name' => 'layout', 'title' => __('Default Layout'), 'hidden' => $filter_showView != 0), array('name' => 'inc_schedule', 'title' => __('Interleave Default'), 'icons' => true, 'hidden' => $filter_showView == 1 || $filter_showView == 2), array('name' => 'email_alert', 'title' => __('Email Alert'), 'icons' => true, 'hidden' => $filter_showView != 0), array('name' => 'loggedin', 'title' => __('Logged In'), 'icons' => true), array('name' => 'lastaccessed', 'title' => __('Last Accessed')), array('name' => 'clientVersionCombined', 'title' => __('Version'), 'hidden' => $filter_showView != 3), array('name' => 'clientaddress', 'title' => __('IP Address'), 'hidden' => $filter_showView == 1), array('name' => 'macaddress', 'title' => __('Mac Address'), 'hidden' => $filter_showView == 1), array('name' => 'screenShotRequested', 'title' => __('Screen shot?'), 'icons' => true, 'hidden' => $filter_showView != 1 && $filter_showView != 2), array('name' => 'thumbnail', 'title' => __('Thumbnail'), 'hidden' => $filter_showView != 1 && $filter_showView != 2));
     Theme::Set('table_cols', $cols);
     Theme::Set('rowClass', 'rowColor');
     $rows = array();
     foreach ($displays as $row) {
         // VNC Template as display name?
         if ($vncTemplate != '' && $row['clientaddress'] != '') {
             if ($linkTarget == '') {
                 $linkTarget = '_top';
             }
             $row['displayWithLink'] = sprintf('<a href="' . $vncTemplate . '" title="VNC to ' . $row['display'] . '" target="' . $linkTarget . '">' . Theme::Prepare($row['display']) . '</a>', $row['clientaddress']);
         } else {
             $row['displayWithLink'] = $row['display'];
         }
         // Format last accessed
         $row['lastaccessed'] = DateManager::getLocalDate($row['lastaccessed']);
         // Create some login lights
         $row['rowColor'] = $row['mediainventorystatus'] == 1 ? 'success' : ($row['mediainventorystatus'] == 2 ? 'danger' : 'warning');
         // Set some text for the display status
         switch ($row['mediainventorystatus']) {
             case 1:
                 $row['statusDescription'] = __('Display is up to date');
                 break;
             case 2:
                 $row['statusDescription'] = __('Display is downloading new files');
                 break;
             case 3:
                 $row['statusDescription'] = __('Display is out of date but has not yet checked in with the server');
                 break;
             default:
                 $row['statusDescription'] = __('Unknown Display Status');
         }
         $row['status'] = $row['mediainventorystatus'] == 1 ? 1 : ($row['mediainventorystatus'] == 2 ? 0 : -1);
         // Thumbnail
         $row['thumbnail'] = '';
         // If we aren't logged in, and we are showThumbnail == 2, then show a circle
         if ($filter_showView == 2 && $row['loggedin'] == 0) {
             $row['thumbnail'] = '<i class="fa fa-times-circle"></i>';
         } else {
             if ($filter_showView != 0 && file_exists(Config::GetSetting('LIBRARY_LOCATION') . 'screenshots/' . $row['displayid'] . '_screenshot.jpg')) {
                 $row['thumbnail'] = '<a data-toggle="lightbox" data-type="image" href="index.php?p=display&q=ScreenShot&DisplayId=' . $row['displayid'] . '"><img class="display-screenshot" src="index.php?p=display&q=ScreenShot&DisplayId=' . $row['displayid'] . '&' . Kit::uniqueId() . '" /></a>';
             }
         }
         // Version
         $row['clientVersionCombined'] = $row['client_type'] . ' / ' . $row['client_version'];
         // Format the storage available / total space
         $row['storageAvailableSpaceFormatted'] = Kit::formatBytes($row['storageAvailableSpace']);
         $row['storageTotalSpaceFormatted'] = Kit::formatBytes($row['storageTotalSpace']);
         $row['storagePercentage'] = $row['storageTotalSpace'] == 0 ? 100 : round($row['storageAvailableSpace'] / $row['storageTotalSpace'] * 100.0, 2);
         // Edit and Delete buttons first
         if ($row['edit'] == 1) {
             // Edit
             $row['buttons'][] = array('id' => 'display_button_edit', 'url' => 'index.php?p=display&q=displayForm&displayid=' . $row['displayid'], 'text' => __('Edit'));
         }
         // Delete
         if ($row['del'] == 1) {
             $row['buttons'][] = array('id' => 'display_button_delete', 'url' => 'index.php?p=display&q=DeleteForm&displayid=' . $row['displayid'], 'text' => __('Delete'));
         }
         if ($row['edit'] == 1 || $row['del'] == 1) {
             $row['buttons'][] = array('linkType' => 'divider');
         }
         // Schedule Now
         if ($row['edit'] == 1 || Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'Yes') {
             $row['buttons'][] = array('id' => 'display_button_schedulenow', 'url' => 'index.php?p=schedule&q=ScheduleNowForm&displayGroupId=' . $row['displaygroupid'], 'text' => __('Schedule Now'));
         }
         if ($row['edit'] == 1) {
             // Default Layout
             $row['buttons'][] = array('id' => 'display_button_defaultlayout', 'url' => 'index.php?p=display&q=DefaultLayoutForm&DisplayId=' . $row['displayid'], 'text' => __('Default Layout'));
             // File Associations
             $row['buttons'][] = array('id' => 'displaygroup_button_fileassociations', 'url' => 'index.php?p=displaygroup&q=FileAssociations&DisplayGroupID=' . $row['displaygroupid'], 'text' => __('Assign Files'));
             // Screen Shot
             $row['buttons'][] = array('id' => 'display_button_requestScreenShot', 'url' => 'index.php?p=display&q=RequestScreenShotForm&displayId=' . $row['displayid'], 'text' => __('Request Screen Shot'), 'multi-select' => true, 'dataAttributes' => array(array('name' => 'multiselectlink', 'value' => 'index.php?p=display&q=RequestScreenShot'), array('name' => 'rowtitle', 'value' => $row['display']), array('name' => 'displayId', 'value' => $row['displayid'])));
             $row['buttons'][] = array('linkType' => 'divider');
         }
         // Media Inventory
         $row['buttons'][] = array('id' => 'display_button_mediainventory', 'url' => 'index.php?p=display&q=MediaInventory&DisplayId=' . $row['displayid'], 'text' => __('Media Inventory'));
         if ($row['edit'] == 1) {
             // Logs
             $row['buttons'][] = array('id' => 'displaygroup_button_logs', 'url' => 'index.php?p=log&q=LastHundredForDisplay&displayid=' . $row['displayid'], 'text' => __('Recent Log'));
             $row['buttons'][] = array('linkType' => 'divider');
         }
         if ($row['modifypermissions'] == 1) {
             // Display Groups
             $row['buttons'][] = array('id' => 'display_button_group_membership', 'url' => 'index.php?p=display&q=MemberOfForm&DisplayID=' . $row['displayid'], 'text' => __('Display Groups'));
             // Permissions
             $row['buttons'][] = array('id' => 'display_button_group_membership', 'url' => 'index.php?p=displaygroup&q=PermissionsForm&DisplayGroupID=' . $row['displaygroupid'], 'text' => __('Permissions'));
             // Version Information
             $row['buttons'][] = array('id' => 'display_button_version_instructions', 'url' => 'index.php?p=displaygroup&q=VersionInstructionsForm&displaygroupid=' . $row['displaygroupid'] . '&displayid=' . $row['displayid'], 'text' => __('Version Information'));
             $row['buttons'][] = array('linkType' => 'divider');
         }
         if ($row['edit'] == 1) {
             // Wake On LAN
             $row['buttons'][] = array('id' => 'display_button_wol', 'url' => 'index.php?p=display&q=WakeOnLanForm&DisplayId=' . $row['displayid'], 'text' => __('Wake on LAN'));
         }
         // Assign this to the table row
         $rows[] = $row;
     }
     Theme::Set('table_rows', $rows);
     $output = Theme::RenderReturn('table_render');
     $response->SetGridResponse($output);
     $response->refresh = Kit::GetParam('filter_autoRefresh', _REQUEST, _INT, 0);
     $response->Respond();
 }
예제 #28
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // フォーム初期化
     $m->Result_ClientReportDaily_initFormData();
     if (isset($this->_request['search']) == true || $this->_isDownload == true) {
         // 日にちの空データを作成
         $from = $this->_like['from'];
         $to = $this->_like['to'];
         $blank = DateManager::getArrayDaily($ankenId, $from, $to);
         // キャンペーンコード
         $code = $this->_anken['campaign_code'];
         // PVデータ
         $dataPv =& $m->getDailyPv($code, $this->_like);
         // 成果データ
         $dataSeika =& $m->Result_ClientReportDaily_getDailySeika($code, $this->_like);
         // マージ
         $formData =& $m->counting($blank, $dataPv, $dataSeika);
         // テンプレート変数追加
         $this->_dataFrom['show'] = true;
         $this->_dataFrom['list'] =& $formData;
     }
     // モデル内の値をテンプレートに設定
     $d =& $m->getFormData();
     $this->appendDataFrom($d);
     ///////////////////////////////////////////////
     // 拡張リンク用のカスタム処理
     ///////////////////////////////////////////////
     $tmpl = $m->Result_ClientReportDaily_getExtraLinkTmplPath($ankenId);
     $this->_dataFrom["extra_link_path"] = $tmpl;
 }
예제 #29
0
 /**
  * 行を処理します。
  */
 private function &actionLine($useActionId, $code, &$keys, &$values)
 {
     // 無視するぎょうは return null します。
     // 致命的なエラーで行処理を中断する場合は例外をスローします。
     try {
         // 空白行は無視します
         if (empty($values) == true) {
             return null;
         }
         // 例外配列初期化
         $eList = array();
         // 配列の数が合わない
         if (count($keys) != count($values)) {
             //↓↓========nm00137 start===================================
             //配列の数が合わないの場合、配列エラーのメッセージ表示
             $this->_dataFrom['showMismatchErr'] = 'true';
             //↑↑===========nm00137 end==================================
             $e = new ItemCountMismatchException();
             $eList[] = $e;
             // エラー表示するためのダミーデータ
             $data = 1;
             // 処理中断
             throw $e;
         }
         // 連想配列作成
         $data = array_combine($keys, $values);
         ///////////////////////////////
         // 任意のIDから「nm」削除
         ///////////////////////////////
         $addNm = intval($this->_anken['client_user_id_add_nm']);
         if (is_int($addNm) === true && $addNm == 1) {
             $clientUserId = $data['client_user_id'];
             if (substr($clientUserId, 0, 2) == 'nm') {
                 $data['client_user_id'] = substr($clientUserId, 2);
             }
         }
         ///////////////////////////////
         // ゼロ埋め
         ///////////////////////////////
         $padding = intval($this->_anken['client_user_id_padding']);
         if (is_int($padding) === true && $padding != 0) {
             $wantLen = $padding;
             $len = strlen($data['client_user_id']);
             if ($len != 0 && $len != $wantLen) {
                 $id = $data['client_user_id'];
                 $id = str_pad($id, $wantLen, '0', STR_PAD_LEFT);
                 $data['client_user_id'] = $id;
             }
         }
         ///////////////////////////////
         // !error 日付が不正の場合は、対象外
         // !error 日付が現在より新しい場合は、対象外
         ///////////////////////////////
         $data['accept_date'] = trim($data['accept_date']);
         //↓↓========nm00137 start===================================
         //締め日チェック結果対象
         $shimeDateCheckResult = null;
         //↑↑===========nm00137 end==================================
         if (ereg("^([0-9]{4})[\\/\\-]([0-9]{1,2})[\\/\\-]([0-9]{1,2})", $data['accept_date'], $regs) !== false && checkdate($regs[2], $regs[3], $regs[1]) == true) {
             $date = "{$regs['1']}-{$regs['2']}-{$regs['3']}";
             $data['accept_date'] = $date;
             // メール送信用文面
             if (in_array($date, $this->_acceptDateList) == false) {
                 $this->_acceptDateList[$date] = $date;
             }
             //↓↓========nm00137 start===================================
             ///////////////////////////////
             // !error 効締め日無効
             ///////////////////////////////
             //案件締め日
             $anken_shime_date = $this->_anken['shime_date'];
             //確認フラグ
             $confirmFlg = mb_strtoupper(trim($data['accept_flg']));
             $confirmFlg = mb_convert_kana($confirmFlg, 'r');
             //締め日チェック結果
             $shimeDateCheckResult = DateManager::checkValidityShimeDate($anken_shime_date, $date, $confirmFlg);
             if ($shimeDateCheckResult['E'] == true) {
                 $eList[] = new AcceptDateIsInvalidityException();
             }
             //↑↑===========nm00137 end==================================
         } else {
             $eList[] = new AcceptDateFormatException();
         }
         ///////////////////////////////
         // !error statusがY,D,Nではない場合は、対象外
         ///////////////////////////////
         $flg = mb_strtoupper(trim($data['accept_flg']));
         $flg = mb_convert_kana($flg, 'r');
         if (strstr('YDN', $flg) == false) {
             $eList[] = new AcceptFlagFormatException();
         }
         $data['accept_flg'] = $flg;
         // 該当数をカウント
         $this->_updateCount['sum']++;
         ///////////////////////////////
         // !continue 保留のため更新しません。
         ///////////////////////////////
         if ($flg == 'N') {
             // 保留行を表示しないようにします
             $this->_updateCount['N']++;
             $eList = array();
             $eList[] = new AcceptFlagIsSuspensionException();
             //---------------------------------------------------
             // N:保留のため処理終了→表示用処理
             //---------------------------------------------------
             $d["data"] =& $data;
             $d["eListCount"] = count($eList);
             $d["eList"] =& $eList;
             return $d;
         } else {
             if ($flg == 'Y') {
                 $data['int_accept_flg'] = 1;
             } else {
                 if ($flg == 'D') {
                     $data['int_accept_flg'] = 0;
                 }
             }
         }
         if ($useActionId == false) {
             //-----------------------------------------------------
             // !error client_user_id がNULLの場合は、対象外
             //-----------------------------------------------------
             $data['client_user_id'] = trim($data['client_user_id']);
             if (empty($data['client_user_id'])) {
                 $eList[] = new ClientUserIdNotFountException();
             }
             //-----------------------------------------------------
             // !error client_user_idがDBに存在しない場合は、対象外
             //-----------------------------------------------------
             $m =& $this->_model;
             $target =& $m->Result_ClientReportResultUpload_getTargetSeika($code, $data['client_user_id']);
             $count = count($target);
             if ($count == 0) {
                 // 該当する成果無し
                 $eList[] = new SeikaNotFountException();
             } else {
                 if ($count != 1) {
                     // 該当する複数有り
                     $e = new SeikaNotFountException("複数({$count}項目) 該当します。");
                     $eList[] = $e;
                     $this->_updateCount['E']++;
                     // 処理中断
                     throw $e;
                 }
             }
             //-----------------------------------------------------
             // !error 既にuidで更新されていれば、対象外
             //-----------------------------------------------------
             $flg = $target[0]['accept_flg'];
             if (strstr('01', $flg) != false) {
                 $eList[] = new SeikaIsAcceptedException();
             }
             //--------------------------------------------------
             // DB update
             //--------------------------------------------------
             if (count($eList) == 0) {
                 //↓↓========nm00137 start===================================
                 //月度カウントアップ
                 if ($shimeDateCheckResult != null) {
                     $this->_updateCount['Y_1'] += $shimeDateCheckResult['Y_1'];
                     $this->_updateCount['Y_2'] += $shimeDateCheckResult['Y_2'];
                     $this->_updateCount['D_1'] += $shimeDateCheckResult['D_1'];
                     $this->_updateCount['D_2'] += $shimeDateCheckResult['D_2'];
                 }
                 //↑↑===========nm00137 end==================================
                 // update
                 $clientUserId = $data['client_user_id'];
                 $date = $data['accept_date'];
                 $flg = $data['int_accept_flg'];
                 //↓↓========nm00137 start===================================
                 //データチェックの場合、DB更新不要
                 if ($this->_dataFrom['is_data_check'] != true) {
                     $m->Result_ClientReportResultUpload_update($code, $clientUserId, $flg, $date);
                 }
                 //↑↑===========nm00137 end==================================
                 // カウントアップ
                 if ($flg == 1) {
                     $this->_updateCount['Y']++;
                 } else {
                     if ($flg == 0) {
                         $this->_updateCount['D']++;
                     }
                 }
             } else {
                 $this->_updateCount['E']++;
             }
         } else {
             //-----------------------------------------------------
             // !error action_id がNULLの場合は、対象外
             //-----------------------------------------------------
             $data['action_id'] = trim($data['action_id']);
             if (empty($data['action_id'])) {
                 $eList[] = new ActionIdNotFountException();
             }
             //-----------------------------------------------------
             // !error seika_idがDBに存在しない場合は、対象外
             //-----------------------------------------------------
             $m =& $this->_model;
             // 成果IDを取得
             $prefix = $this->_anken['id_prefix'];
             $actionId = $data['action_id'];
             $sessionId = $m->detachPrefixActionId($prefix, $actionId);
             $target =& $m->Result_ClientReportResultUpload_getTargetSeikaBySessionId($code, $sessionId);
             $count = count($target);
             if ($count == 0) {
                 // 該当する成果無し
                 $eList[] = new SeikaNotFountException();
             } else {
                 if ($count != 1) {
                     // 該当する複数有り
                     $e = new SeikaNotFountException("複数({$count}項目) 該当します。");
                     $eList[] = $e;
                     $this->_updateCount['E']++;
                     // 処理中断
                     throw $e;
                 }
             }
             //-----------------------------------------------------
             // !error 既にuidで更新されていれば、対象外
             //-----------------------------------------------------
             $flg = $target[0]['accept_flg'];
             if (strstr('01', $flg) != false) {
                 $eList[] = new SeikaIsAcceptedException();
             }
             //--------------------------------------------------
             // DB update
             //--------------------------------------------------
             if (count($eList) == 0) {
                 //↓↓========nm00137 start===================================
                 //月度カウントアップ
                 if ($shimeDateCheckResult != null) {
                     $this->_updateCount['Y_1'] += $shimeDateCheckResult['Y_1'];
                     $this->_updateCount['Y_2'] += $shimeDateCheckResult['Y_2'];
                     $this->_updateCount['D_1'] += $shimeDateCheckResult['D_1'];
                     $this->_updateCount['D_2'] += $shimeDateCheckResult['D_2'];
                 }
                 //↑↑===========nm00137 end==================================
                 // update
                 $date = $data['accept_date'];
                 $flg = $data['int_accept_flg'];
                 //↓↓========nm00137 start===================================
                 //データチェックの場合、DB更新不要
                 if ($this->_dataFrom['is_data_check'] != true) {
                     $m->Result_ClientReportResultUpload_updateBySessionId($code, $sessionId, $flg, $date);
                 }
                 //↑↑===========nm00137 end==================================
                 // カウントアップ
                 if ($flg == 1) {
                     $this->_updateCount['Y']++;
                 } else {
                     if ($flg == 0) {
                         $this->_updateCount['D']++;
                     }
                 }
             } else {
                 $this->_updateCount['E']++;
             }
         }
     } catch (Exception $e) {
         // 処理中断した場合ここを通ります
         // 想定してない例外が発生した場合ここを通ります
         $this->log->fatal($e);
     }
     //---------------------------------------------------
     // 表示用処理
     //---------------------------------------------------
     $d["data"] =& $data;
     $d["eListCount"] = count($eList);
     $d["eList"] =& $eList;
     return $d;
 }
예제 #30
0
    $query_selmenun = "SELECT *\n\tFROM " . $GLOBALS['prefix_lms'] . "_htmlfront\n\tWHERE id_course = '" . $id_dupcourse . "' ";
    $result_selmenun = sql_query($query_selmenun);
    while ($list_selmenun = sql_fetch_array($result_selmenun)) {
        $query_dupmen = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_htmlfront\n\t\t(id_course, textof)\n\t\tVALUES\n\t\t('" . $new_course_dup . "', '" . mysql_escape_string($list_selmenun['textof']) . "')";
        $result_dupmen = sql_query($query_dupmen);
    }
    //Util::jump_to('index.php?modname=course&amp;op=course_list&result=ok_course');
    return true;
}
switch ($op) {
    case "course_autocomplete":
        require_once _lms_ . '/lib/lib.edition.php';
        require_once _lms_ . '/lib/lib.date.php';
        require_once _base_ . '/lib/lib.json.php';
        $ed_man = new EditionManager();
        $dt_man = new DateManager();
        $json = new Services_JSON();
        $output = array('courses' => array());
        $filter = Get::req('query', DOTY_STRING, "");
        $results = Get::req('results', DOTY_INT, Get::sett('visuItem', 25));
        if ($filter != "") {
            $query = "SELECT idCourse, code, name, course_type, course_edition FROM %lms_course " . " WHERE code LIKE '%" . $filter . "%' OR name LIKE '%" . $filter . "%' ORDER BY code, name " . ($results > 0 ? " LIMIT 0, " . (int) $results : "");
            $res = sql_query($query);
            if ($res) {
                while (list($id_course, $code, $name, $course_type, $course_edition) = sql_fetch_row($res)) {
                    //construct record for course instance
                    $record = array('cname' => ($code != "" ? '[' . $code . '] ' : '') . $name, 'id_course' => $id_course, 'code' => $code, 'name' => $name, 'code_highlight' => Layout::highlight($code, $filter), 'name_highlight' => Layout::highlight($name, $filter));
                    //detect if the course is of type classroom or has editions
                    //TO DO: optimization, do not put queries in iterations
                    if ($course_type == 'elearning' && $course_edition > 0) {
                        $record['has_editions'] = true;