コード例 #1
0
/**
 * Validates imported data.
 */
function validate_data($courses)
{
    $errors = array();
    $coursecodes = array();
    foreach ($courses as $index => $course) {
        $course['line'] = $index + 1;
        // 1. Check whether mandatory fields are set.
        $mandatory_fields = array('Code', 'Title', 'CourseCategory');
        foreach ($mandatory_fields as $field) {
            if (!isset($course[$field]) || strlen($course[$field]) == 0) {
                $course['error'] = get_lang($field . 'Mandatory');
                $errors[] = $course;
            }
        }
        // 2. Check current course code.
        if (isset($course['Code']) && strlen($course['Code']) != 0) {
            // 2.1 Check whether code has been already used by this CVS-file.
            if (isset($coursecodes[$course['Code']])) {
                $course['error'] = get_lang('CodeTwiceInFile');
                $errors[] = $course;
            } else {
                // 2.2 Check whether course code has been occupied.
                $courseInfo = api_get_course_info($course['Code']);
                if (!empty($courseInfo)) {
                    $course['error'] = get_lang('CodeExists');
                    $errors[] = $course;
                }
            }
            $coursecodes[$course['Code']] = 1;
        }
        // 3. Check whether teacher exists.
        $teacherList = getTeacherListInArray($course['Teacher']);
        if (!empty($teacherList)) {
            foreach ($teacherList as $teacher) {
                $teacherInfo = api_get_user_info_from_username($teacher);
                if (empty($teacherInfo)) {
                    $course['error'] = get_lang('UnknownTeacher') . ' (' . $teacher . ')';
                    $errors[] = $course;
                } else {
                    /*if ($teacherInfo['status'] != COURSEMANAGER) {
                          $course['error'] = get_lang('UserIsNotATeacher').' ('.$teacher.')';
                          $errors[] = $course;
                      }*/
                }
            }
        }
        // 4. Check whether course category exists.
        if (isset($course['CourseCategory']) && strlen($course['CourseCategory']) != 0) {
            $categoryInfo = CourseCategory::getCategory($course['CourseCategory']);
            if (empty($categoryInfo)) {
                //@todo this is so bad even all lang variables are wrong ...
                $course['error'] = get_lang('UnkownCategoryCourseCode') . ' (' . $course['CourseCategory'] . ')';
                $errors[] = $course;
            }
        }
    }
    return $errors;
}
コード例 #2
0
<?php

session_start();
define("CONST_FILE_PATH", "includes/constants.php");
define("CURRENT_PAGE", "courses");
require 'classes/WebPage.php';
//Set up page as a web page
$thisPage = new WebPage();
//Create new instance of webPage class
$dbObj = new Database();
//Instantiate database
$thisPage->dbObj = $dbObj;
$courseObj = new Course($dbObj);
$categoryObj = new CourseCategory($dbObj);
$clientObj = new Sponsor($dbObj);
$quoteObj = new Quote($dbObj);
$calendar = new Calendar($dbObj);
include 'includes/other-settings.php';
require 'includes/page-properties.php';
$recordPerPage = Setting::getValue($dbObj, 'TOTAL_DISPLAYABLE_COURSES') ? trim(strip_tags(Setting::getValue($dbObj, 'TOTAL_DISPLAYABLE_COURSES'))) : 100;
$pageNum = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT) ? filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT) : 1;
$categoryParam = filter_input(INPUT_GET, 'category', FILTER_VALIDATE_INT) ? filter_input(INPUT_GET, 'category', FILTER_VALIDATE_INT) : 0;
$classParam = filter_input(INPUT_GET, 'class') ? filter_input(INPUT_GET, 'class') : '';
$classVal = '';
$classLink = '';
//Handler for sector based search
switch ($classParam) {
    case 'private-sector':
        $classVal = ' AND featured = 1 ';
        $classLink = 'private-sector/';
        $thisPage->title = "Private Sector Courses" . ' - ' . WEBSITE_AUTHOR;
コード例 #3
0
 /**
  * Show the Session Catalogue with filtered session by a query term
  * @param array $limit
  */
 public function sessionListBySearch(array $limit)
 {
     $q = isset($_REQUEST['q']) ? Security::remove_XSS($_REQUEST['q']) : null;
     $hiddenLinks = isset($_GET['hidden_links']) ? intval($_GET['hidden_links']) == 1 : false;
     $courseUrl = CourseCategory::getCourseCategoryUrl(1, $limit['length'], null, 0, 'subscribe');
     $searchDate = isset($_POST['date']) ? $_POST['date'] : date('Y-m-d');
     $sessions = $this->model->browseSessionsBySearch($q, $limit);
     $sessionsBlocks = $this->getFormatedSessionsBlock($sessions);
     echo Container::getTemplating()->render('@temaplte_style/auth/session_catalog.html.twig', ['show_courses' => CoursesAndSessionsCatalog::showCourses(), 'show_sessions' => CoursesAndSessionsCatalog::showSessions(), 'show_tutor' => api_get_setting('session.show_session_coach') === 'true' ? true : false, 'course_url' => $courseUrl, 'already_subscribed_label' => $this->getAlreadyRegisteredInSessionLabel(), 'hidden_links' => $hiddenLinks, 'search_token' => Security::get_token(), 'search_date' => Security::remove_XSS($searchDate), 'search_tag' => Security::remove_XSS($q), 'sessions' => $sessionsBlocks]);
 }
コード例 #4
0
 } else {
     // Ensure the database prefix + database name do not get over 40 characters.
     $maxlength = 40;
     // Build the form.
     $form = new FormValidator('add_course', 'post', 'course_request_edit.php?id=' . $id . '&caller=' . $caller);
     // Form title.
     $form->addElement('header', $tool_name);
     // Title.
     $form->addElement('text', 'title', get_lang('CourseName'), array('size' => '60', 'id' => 'title'));
     $form->applyFilter('title', 'html_filter');
     $form->addRule('title', get_lang('ThisFieldIsRequired'), 'required');
     // Course category.
     $url = api_get_path(WEB_AJAX_PATH) . 'course.ajax.php?a=search_category';
     $courseSelect = $form->addElement('select_ajax', 'category_code', get_lang('CourseFaculty'), null, array('url' => $url));
     if (!empty($course_request_info['category_code'])) {
         $data = CourseCategory::getCategory($course_request_info['category_code']);
         $courseSelect->addOption($data['name'], $data['code'], ['selected' => 'selected']);
     }
     // Course code.
     $form->addText('wanted_code', get_lang('Code'), false, array('size' => '$maxlength', 'maxlength' => $maxlength));
     $form->applyFilter('wanted_code', 'html_filter');
     $form->addRule('wanted_code', get_lang('Max'), 'maxlength', $maxlength);
     $form->addRule('wanted_code', get_lang('ThisFieldIsRequired'), 'required');
     // The teacher.
     $titular = $form->addText('tutor_name', get_lang('Professor'), null, array('size' => '60', 'disabled' => 'disabled'));
     // Description of the requested course.
     $form->addElement('textarea', 'description', get_lang('Description'), array('style' => 'border:#A5ACB2 solid 1px; font-family:arial,verdana,helvetica,sans-serif; font-size:12px', 'rows' => '3', 'cols' => '116'));
     $form->addRule('description', get_lang('ThisFieldIsRequired'), 'required');
     // Objectives of the requested course.
     $form->addElement('textarea', 'objetives', get_lang('Objectives'), array('style' => 'border:#A5ACB2 solid 1px; font-family:arial,verdana,helvetica,sans-serif; font-size:12px', 'rows' => '3', 'cols' => '116'));
     $form->addRule('objetives', get_lang('ThisFieldIsRequired'), 'required');
コード例 #5
0
<?php

session_start();
define("CONST_FILE_PATH", "includes/constants.php");
define("CURRENT_PAGE", "course-categories");
require 'classes/WebPage.php';
//Set up page as a web page
$thisPage = new WebPage();
//Create new instance of webPage class
$dbObj = new Database();
//Instantiate database
$thisPage->dbObj = $dbObj;
$courseObj = new Course($dbObj);
$categoryObj = new CourseCategory($dbObj);
$clientObj = new Sponsor($dbObj);
$quoteObj = new Quote($dbObj);
$calendar = new Calendar($dbObj);
include 'includes/other-settings.php';
require 'includes/page-properties.php';
?>
<!DOCTYPE html>
<html lang="en-US">
<head>
    <?php 
include 'includes/meta-tags.php';
?>
    <style type="text/css">img.wp-smiley,img.emoji {display: inline !important;border: none !important;box-shadow: none !important;height: 1em !important;width: 1em !important;margin: 0 .07em !important;vertical-align: -0.1em !important;background: none !important;padding: 0 !important; }</style>
    <link rel='stylesheet' id='rs-plugin-settings-css'  href='<?php 
echo SITE_URL;
?>
plugins/revslider/rs-plugin/css/settings1dc6.css?ver=4.6.5' type='text/css' media='all' />
コード例 #6
0
<?php

/* @var $this CourseController */
/* @var $dataProvider CActiveDataProvider */
?>
<div class="row ">
<?php 
?>
	<div class="span2 dxd-course-category">
		<?php 
$this->widget('bootstrap.widgets.TbMenu', array('type' => 'list', 'items' => CourseCategory::getItems()));
?>
	</div>
	<div class="span10">
	<h3 class="side-lined"><?php 
echo '关注话题';
?>
</h3>
	<br/>
	<?php 
$this->widget('bootstrap.widgets.TbThumbnails', array('dataProvider' => $dataProvider, 'template' => "{items}\n{pager}", 'itemView' => '_card'));
?>
	</div>
</div>
コード例 #7
0
        $text = get_lang('Save');
        $form->setDefaults($categoryInfo);
        $form->addButtonSave($text);
    } else {
        $class = "add";
        $text = get_lang('AddCategory');
        $form->setDefaults(array('auth_course_child' => 'TRUE'));
        $form->addButtonCreate($text);
    }
    $form->display();
} else {
    // If multiple URLs and not main URL, prevent deletion and inform user
    if ($action == 'delete' && api_get_multiple_access_url() && api_get_current_access_url_id() != 1) {
        Display::display_warning_message(get_lang('CourseCategoriesAreGlobal'));
    }
    echo '<div class="actions">';
    $link = null;
    if (!empty($parentInfo)) {
        $parentCode = $parentInfo['parent_id'];
        echo Display::url(Display::return_icon('back.png', get_lang("Back"), '', ICON_SIZE_MEDIUM), api_get_path(WEB_CODE_PATH) . 'admin/course_category.php?category=' . $parentCode);
    }
    if (empty($parentInfo) || $parentInfo['auth_cat_child'] == 'TRUE') {
        echo Display::url(Display::return_icon('new_folder.png', get_lang("AddACategory"), '', ICON_SIZE_MEDIUM), api_get_path(WEB_CODE_PATH) . 'admin/course_category.php?action=add&category=' . Security::remove_XSS($category));
    }
    echo '</div>';
    if (!empty($parentInfo)) {
        echo Display::page_subheader($parentInfo['name'] . ' (' . $parentInfo['code'] . ')');
    }
    echo CourseCategory::listCategories($category);
}
Display::display_footer();
コード例 #8
0
 /** Method that fetches courses from database
  * @param string $column Column name of the data to be fetched
  * @param string $condition Additional condition e.g category_id > 9
  * @param string $sort column name to be used as sort parameter
  * @return JSON JSON encoded course details
  */
 public function fetch($column = "*", $condition = "", $sort = "id")
 {
     $sql = "SELECT {$column} FROM course ORDER BY {$sort}";
     if (!empty($condition)) {
         $sql = "SELECT {$column} FROM course WHERE {$condition} ORDER BY {$sort}";
     }
     $data = $this->dbObj->fetchAssoc($sql);
     $result = array();
     if (count($data) > 0) {
         foreach ($data as $r) {
             $result[] = array("id" => $r['id'], "name" => utf8_encode($r['name']), "image" => utf8_encode($r['image']), 'shortName' => utf8_encode($r['short_name']), 'category' => utf8_encode($r['category']), 'startDate' => utf8_encode($r['start_date']), 'endDate' => utf8_encode($r['end_date']), 'code' => utf8_encode($r['code']), 'description' => utf8_encode(StringManipulator::trimStringToFullWord(200, stripcslashes(strip_tags($r['description'])))), 'media' => utf8_encode($r['media']), 'currency' => utf8_encode($r['currency']), 'amount' => utf8_encode($r['amount']), 'cost' => utf8_encode($r['currency'] . number_format($r['amount'], 2)), 'status' => utf8_encode($r['status']), 'dateRegistered' => utf8_encode($r['date_registered']), 'categoryName' => utf8_encode(CourseCategory::getName($this->dbObj, $r['category'])));
         }
         $json = array("status" => 1, "info" => $result);
     } else {
         $json = array("status" => 2, "msg" => "Necessary parameters not set. Or empty result. " . mysqli_error($this->dbObj->connection));
     }
     $this->dbObj->close();
     header('Content-type: application/json');
     return json_encode($json);
 }
コード例 #9
0
<div class="sidebar widget_area bg_tint_light sidebar_style_light" role="complementary">
    <aside id="woocommerce_product_categories-3" class="widget_number_1 widget woocommerce widget_product_categories">
        <h5 class="widget_title">Categories</h5>
        <ul class="product-categories">
            <?php 
$sideCategoryObj = new CourseCategory($dbObj);
foreach ($sideCategoryObj->fetchRaw("*", " 1=1 ", " name ASC LIMIT 10") as $category) {
    $categoryData = array('id' => 'id', 'name' => 'name', 'image' => 'image', 'description' => 'description');
    foreach ($categoryData as $key => $value) {
        switch ($key) {
            case 'image':
                $sideCategoryObj->{$key} = MEDIA_FILES_PATH1 . 'category/' . $category[$value];
                break;
            default:
                $sideCategoryObj->{$key} = $category[$value];
                break;
        }
    }
    ?>
            <li class="cat-item cat-item-65"><a href="<?php 
    echo SITE_URL . 'courses/category/' . $sideCategoryObj->id . '/' . StringManipulator::slugify($sideCategoryObj->name) . '/';
    ?>
"><?php 
    echo $sideCategoryObj->name;
    ?>
</a> <span class="count">(<?php 
    echo Course::getSingleCategoryCount($dbObj, $sideCategoryObj->id);
    ?>
)</span></li>
            <?php 
}
コード例 #10
0
 /**
  * Updates the access_url_rel_course_category table with a given list
  * @author Julio Montoya
  * @param array course category list
  * @param int access_url_id
  **/
 public static function updateUrlRelCourseCategory($list, $urlId)
 {
     $table = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE_CATEGORY);
     $sql = "SELECT course_category_id FROM {$table} WHERE access_url_id = " . intval($urlId);
     $result = Database::query($sql);
     $existingItems = array();
     while ($row = Database::fetch_array($result)) {
         $existingItems[] = $row['course_category_id'];
     }
     // Adding
     foreach ($list as $id) {
         UrlManager::addCourseCategoryToUrl($id, $urlId);
         $categoryInfo = CourseCategory::getCategoryById($id);
         $children = CourseCategory::getChildren($categoryInfo['code']);
         if (!empty($children)) {
             foreach ($children as $category) {
                 UrlManager::addCourseCategoryToUrl($category['id'], $urlId);
             }
         }
     }
     // Deleting old items
     foreach ($existingItems as $id) {
         if (!in_array($id, $list)) {
             UrlManager::deleteUrlRelCourseCategory($id, $urlId);
             $categoryInfo = CourseCategory::getCategoryById($id);
             $children = CourseCategory::getChildren($categoryInfo['code']);
             if (!empty($children)) {
                 foreach ($children as $category) {
                     UrlManager::deleteUrlRelCourseCategory($category['id'], $urlId);
                 }
             }
         }
     }
 }
コード例 #11
0
ファイル: auth.lib.php プロジェクト: jloguercio/chamilo-lms
 /**
  * Display all the courses in the given course category. I could have used a parameter here
  * @param string $categoryCode Category code
  * @param int $randomValue
  * @param array $limit will be used if $random_value is not set.
  * This array should contains 'start' and 'length' keys
  * @return array Courses data
  */
 public function browse_courses_in_category($categoryCode, $randomValue = null, $limit = array())
 {
     return CourseCategory::browseCoursesInCategory($categoryCode, $randomValue, $limit);
 }
コード例 #12
0
echo SITE_URL . 'courses/private-sector/';
?>
">Private Sector Courses</a></li>
                                                <li id="menu-item-1154" class="menu-item menu-item-type-post_type menu-item-object-courses menu-item-1154"><a href="<?php 
echo SITE_URL . 'courses/public-sector/';
?>
">Public Sector Courses</a></li>
                                            </ul>
                                        </li>
                                        <li id="menu-item-1398" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1398"><a href="<?php 
echo SITE_URL . 'course-categories/';
?>
">Course Categories</a>
                                            <ul class="sub-menu">
                                                <?php 
$menuCatObj = new CourseCategory($dbObj);
foreach ($menuCatObj->fetchRaw("*", " 1=1 ", " name ASC ") as $menuCategory) {
    ?>
                                                <li id="menu-item-1399" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1399"><a href="<?php 
    echo SITE_URL . 'courses/category/' . $menuCategory['id'] . '/' . StringManipulator::slugify($menuCategory['name']) . '/';
    ?>
"><?php 
    echo $menuCategory['name'];
    ?>
</a></li>
                                                <?php 
}
?>
                                            </ul>
                                        </li>
                                    </ul>
コード例 #13
0
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      CourseCategory $value A CourseCategory object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(CourseCategory $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
コード例 #14
0
ファイル: infocours.php プロジェクト: jloguercio/chamilo-lms
}
$a_profs[0] = '-- ' . get_lang('NoManager') . ' --';
while ($a_titulars = Database::fetch_array($q_result_titulars)) {
    $s_username = $a_titulars['username'];
    $s_lastname = $a_titulars['lastname'];
    $s_firstname = $a_titulars['firstname'];
    if (api_get_person_name($s_firstname, $s_lastname) == $s_tutor) {
        $s_selected_tutor = api_get_person_name($s_firstname, $s_lastname);
    }
    $s_disabled_select_titular = '';
    if (!api_is_course_admin()) {
        $s_disabled_select_titular = 'disabled=disabled';
    }
    $a_profs[api_get_person_name($s_firstname, $s_lastname)] = api_get_person_name($s_lastname, $s_firstname) . ' (' . $s_username . ')';
}
$categories = CourseCategory::getCategoriesCanBeAddedInCourse($_course['categoryCode']);
$linebreak = '<div class="row"><div class="label"></div><div class="formw" style="border-bottom:1px dashed grey"></div></div>';
// Build the form
$form = new FormValidator('update_course', 'post', api_get_self() . '?' . api_get_cidreq());
// COURSE SETTINGS
$form->addElement('html', '<div><h3>' . Display::return_icon('settings.png', Security::remove_XSS(get_lang('CourseSettings')), '', ICON_SIZE_SMALL) . ' ' . Security::remove_XSS(get_lang('CourseSettings')) . '</h3><div>');
$image_html = '';
// Display course picture
$course_path = api_get_path(SYS_COURSE_PATH) . $currentCourseRepository;
// course path
if (file_exists($course_path . '/course-pic85x85.png')) {
    $course_web_path = api_get_path(WEB_COURSE_PATH) . $currentCourseRepository;
    // course web path
    $course_medium_image = $course_web_path . '/course-pic85x85.png?' . rand(1, 1000);
    // redimensioned image 85x85
    $image_html = '<div class="row"><label class="col-md-2 control-label">' . get_lang('Image') . '</label> <div class="col-md-8"><img src="' . $course_medium_image . '" /></div></div>';
コード例 #15
0
                                                    <h6 class="small-text">Email:</h6>
                                                    <p><a href="mailto:<?php 
echo COMPANY_EMAIL;
?>
"><?php 
echo COMPANY_EMAIL;
?>
</a></p>
                                                </div>
                                                <div class="event-cta"> </div>
                                                <div class="related-event ">
                                                    <h3>Other Categories</h3>
                                                    <div class="ev-content">
                                                        <div class="row">
                                                            <?php 
$relatedCategoryObj = new CourseCategory($dbObj);
foreach ($relatedCategoryObj->fetchRaw("*", " id != {$categoryObj->id} ", " RAND() LIMIT 2 ") as $relatedCategory) {
    $categoryData = array('id' => 'id', 'name' => 'name', 'image' => 'image', 'description' => 'description');
    foreach ($categoryData as $key => $value) {
        switch ($key) {
            case 'image':
                $relatedCategoryObj->{$key} = MEDIA_FILES_PATH1 . 'category/' . $relatedCategory[$value];
                break;
            default:
                $relatedCategoryObj->{$key} = $relatedCategory[$value];
                break;
        }
    }
    ?>
                                                            <div class="col-md-6 col-sm-6 related-item">
                                                                <div class="thumb">
コード例 #16
0
}
$noUserGroupList = $userGroupList = array();
$ajax_search = $add_type == 'unique' ? true : false;
if ($ajax_search) {
    $userGroups = UrlManager::getUrlRelCourseCategory($access_url_id);
    foreach ($userGroups as $item) {
        $userGroupList[$item['id']] = $item;
    }
} else {
    $userGroups = UrlManager::getUrlRelCourseCategory();
    foreach ($userGroups as $item) {
        if ($item['access_url_id'] == $access_url_id) {
            $userGroupList[$item['id']] = $item;
        }
    }
    $noUserGroupList = CourseCategory::getCourseCategoryNotInList(array_keys($userGroupList));
}
if ($add_type == 'multiple') {
    $link_add_type_unique = '<a href="' . api_get_self() . '?add_type=unique&access_url_id=' . $access_url_id . '">' . get_lang('SessionAddTypeUnique') . '</a>';
    $link_add_type_multiple = get_lang('SessionAddTypeMultiple');
} else {
    $link_add_type_unique = get_lang('SessionAddTypeUnique');
    $link_add_type_multiple = '<a href="' . api_get_self() . '?add_type=multiple&access_url_id=' . $access_url_id . '">' . get_lang('SessionAddTypeMultiple') . '</a>';
}
$url_list = UrlManager::get_url_data();
?>
<div style="text-align: left;">
	<?php 
echo $link_add_type_unique;
?>
&nbsp;|&nbsp;<?php 
コード例 #17
0
                                    <div class="post_info">
                                        <span class="post_info_item post_info_posted">
                                            <a href="<?php 
        echo SITE_URL . 'course/' . $courseObj->id . '/' . StringManipulator::slugify($courseObj->name) . '/';
        ?>
" class="post_info_date"><?php 
        echo $courseObj->startDate;
        ?>
</a>
                                        </span>
                                        <span class="post_info_item post_info_posted_by"> |  
                                            <a href="<?php 
        echo SITE_URL . 'category/' . $courseObj->category . '/' . StringManipulator::slugify(CourseCategory::getName($dbObj, $courseObj->category)) . '/';
        ?>
" class="post_info_author"><?php 
        echo CourseCategory::getName($dbObj, $courseObj->category);
        ?>
</a>
                                        </span>
                                        <span class="post_info_item post_info_counters">
                                            <a href="<?php 
        echo SITE_URL . 'course/' . $courseObj->id . '/' . StringManipulator::slugify($courseObj->name) . '/';
        ?>
" class="post_counters_item post_counters_rating icon-star-1">
                                                <span class="post_counters_number"><?php 
        echo $courseObj->currency . ' ' . number_format($courseObj->amount, 2);
        ?>
</span>
                                            </a>
                                                
                                        </span>
コード例 #18
0
 /**
  * Exclude object from result
  *
  * @param     CourseCategory $courseCategory Object to remove from the list of results
  *
  * @return    CourseCategoryQuery The current query, for fluid interface
  */
 public function prune($courseCategory = null)
 {
     if ($courseCategory) {
         $this->addUsingAlias(CourseCategoryPeer::ID, $courseCategory->getId(), Criteria::NOT_EQUAL);
     }
     return $this;
 }
コード例 #19
0
 /** Method that fetches courses from database for JQuery Data Table
  * @param string $column Column name of the data to be fetched
  * @param string $condition Additional condition e.g category_id > 9
  * @param string $sort column name to be used as sort parameter
  * @return JSON JSON encoded course details
  */
 public function fetchForJQDT($draw, $totalData, $totalFiltered, $customSql = "", $column = "*", $condition = "", $sort = "id")
 {
     $sql = "SELECT {$column} FROM course ORDER BY {$sort}";
     if (!empty($condition)) {
         $sql = "SELECT {$column} FROM course WHERE {$condition} ORDER BY {$sort}";
     }
     if ($customSql != "") {
         $sql = $customSql;
     }
     $data = $this->dbObj->fetchAssoc($sql);
     $result = array();
     $fetCourseStat = 'icon-check-empty';
     $fetCourseRolCol = 'btn-warning';
     $fetCourseRolTit = "Activate Course";
     if (count($data) > 0) {
         foreach ($data as $r) {
             $courseMediaLink = '';
             $fetCourseStat = 'icon-check-empty';
             $fetCourseRolCol = 'btn-warning';
             $fetCourseRolTit = "Activate Course";
             $fetCourseFeat = 'icon-eye-close';
             $fetCourseFeatCol = 'btn-warning';
             $fetCourseFeatTit = "Make Featured Course";
             if ($r['status'] == 1) {
                 $fetCourseStat = 'icon-check';
                 $fetCourseRolCol = 'btn-success';
                 $fetCourseRolTit = "De-activate Course";
             }
             if ($r['featured'] == 1) {
                 $fetCourseFeat = 'icon-eye-open';
                 $fetCourseFeatCol = 'btn-success';
                 $fetCourseFeatTit = "Remove Course as Featured";
             }
             if ($r['media'] != '') {
                 $courseMediaLink = '<a href="' . SITE_URL . 'media/course/' . $r['media'] . '">View Media</a>';
             }
             $result[] = array($r['id'], utf8_encode($r['name']), utf8_encode($r['short_name']), CourseCategory::getName($this->dbObj, $r['category']), utf8_encode($r['start_date']), utf8_encode($r['end_date']), utf8_encode($r['code']), StringManipulator::trimStringToFullWord(60, utf8_encode(stripcslashes(strip_tags($r['description'])))), utf8_encode($courseMediaLink), utf8_encode($r['currency'] . ' ' . number_format($r['amount'])), utf8_encode('<img src="../media/course-image/' . utf8_encode($r['image']) . '" width="60" height="50" style="width:60px; height:50px;" alt="Pix">'), utf8_encode($r['date_registered']), utf8_encode(' <button data-id="' . $r['id'] . '" data-name="' . $r['name'] . '" data-currency="' . $r['currency'] . '" data-short-name="' . $r['short_name'] . '" data-category="' . $r['category'] . '" data-start-date="' . $r['start_date'] . '" data-end-date="' . $r['end_date'] . '" data-code="' . $r['code'] . '" data-description ="" data-media="' . $r['media'] . '"  data-image="' . $r['image'] . '" data-amount="' . $r['amount'] . '" data-date-registered="' . $r['date_registered'] . '" class="btn btn-info btn-sm edit-course"  title="Edit"><i class="btn-icon-only icon-pencil"> </i> <span class="hidden" id="JQDTdescriptionholder">' . $r['description'] . '</span> </button> <button data-id="' . $r['id'] . '" data-name="' . $r['name'] . '" data-currency="' . $r['currency'] . '" data-status="' . $r['status'] . '"  class="btn ' . $fetCourseRolCol . ' btn-sm activate-course"  title="' . $fetCourseRolTit . '"><i class="btn-icon-only ' . $fetCourseStat . '"> </i></button> <button data-id="' . $r['id'] . '" data-media="' . $r['media'] . '"  data-image="' . $r['image'] . '" data-name="' . $r['name'] . '" class="btn btn-danger btn-sm delete-course" title="Delete"><i class="btn-icon-only icon-trash"> </i></button> <button data-id="' . $r['id'] . '" data-name="' . $r['name'] . '" data-currency="' . $r['currency'] . '" data-featured="' . $r['featured'] . '"  class="btn ' . $fetCourseFeatCol . ' btn-sm make-featured-course"  title="' . $fetCourseFeatTit . '"><i class="btn-icon-only ' . $fetCourseFeat . '"> </i></button>'));
             //
         }
         $json = array("status" => 1, "draw" => intval($draw), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $result);
     } else {
         $json = array("status" => 2, "msg" => "Necessary parameters not set. Or empty result. " . mysqli_error($this->dbObj->connection), "draw" => intval($draw), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => false);
     }
     $this->dbObj->close();
     //header('Content-type: application/json');
     return json_encode($json);
 }
コード例 #20
0
ファイル: IndexController.php プロジェクト: stan5621/eduwind
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Course'])) {
         $model->attributes = $_POST['Course'];
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->courseId));
         }
     }
     $cates = CourseCategory::model()->findAll(array('condition' => 'referid=0'));
     $this->render('update', array('model' => $model, 'cates' => $cates));
 }
コード例 #21
0
                                $link_url = '';
                            } else {
                                $filename = '';
                            }
                        }
                        break;
                    }
                }
                break;
        }
        //end of second switch($action) (when POST['formSent'] was not set, yet)
    }
    // end of "else" in if($_POST['formSent']) condition
} else {
    //if $action is empty, then prepare a list of the course categories to display (?)
    $Categories = CourseCategory::getCategoriesToDisplayInHomePage();
}
// Display section
Display::display_header($tool_name);
switch ($action) {
    case 'open_link':
        if (!empty($link)) {
            // $link is only set in case of action=open_link and is filtered
            $open = @(string) file_get_contents($homep . $link);
            $open = api_to_system_encoding($open, api_detect_encoding(strip_tags($open)));
            echo $open;
        }
        break;
    case 'edit_notice':
        // Display for edit_notice case
        ?>
コード例 #22
0
             //TODO change this function to search not only courses STARTING with $_GET['q']
             if (api_is_platform_admin()) {
                 $courseList = CourseManager::get_courses_list(0, 0, 1, 'ASC', -1, $_GET['q'], null, true);
             } elseif (api_is_teacher()) {
                 $courseList = CourseManager::get_course_list_of_user_as_course_admin(api_get_user_id(), $_GET['q']);
             }
         }
         $results = array();
         if (empty($courseList)) {
             echo json_encode([]);
             break;
         }
         foreach ($courseList as $course) {
             $title = $course['title'];
             if (!empty($course['category_code'])) {
                 $parents = CourseCategory::getParentsToString($course['category_code']);
                 $title = $parents . $course['title'];
             }
             $results['items'][] = array('id' => $course['id'], 'text' => $title);
         }
         echo json_encode($results);
     }
     break;
 case 'search_course_by_session':
     if (api_is_platform_admin()) {
         $results = SessionManager::get_course_list_by_session_id($_GET['session_id'], $_GET['q']);
         $results2 = array();
         if (!empty($results)) {
             foreach ($results as $item) {
                 $item2 = array();
                 foreach ($item as $id => $internal) {
コード例 #23
0
ファイル: courses.php プロジェクト: jloguercio/chamilo-lms
    $user_can_view_page = false;
} else {
    $user_can_view_page = true;
}
//For teachers/admins
if (api_is_platform_admin() || api_is_course_admin() || api_is_allowed_to_create_course()) {
    $user_can_view_page = true;
}
// filter actions
$actions = array('sortmycourses', 'createcoursecategory', 'subscribe', 'deletecoursecategory', 'display_courses', 'display_random_courses', 'subscribe_user_with_password', 'display_sessions', 'subscribe_to_session', 'search_tag', 'search_session');
$action = CoursesAndSessionsCatalog::is(CATALOG_SESSIONS) ? 'display_sessions' : 'display_courses';
if (isset($_GET['action']) && in_array($_GET['action'], $actions)) {
    $action = Security::remove_XSS($_GET['action']);
}
$categoryCode = isset($_GET['category_code']) ? $_GET['category_code'] : 'ALL';
$nameTools = CourseCategory::getCourseCatalogNameTools($action);
if (empty($nameTools)) {
    $nameTools = get_lang('CourseManagement');
} else {
    if (!in_array($action, array('sortmycourses', 'createcoursecategory', 'display_random_courses', 'display_courses', 'subscribe'))) {
        $interbreadcrumb[] = array('url' => api_get_path(WEB_CODE_PATH) . 'auth/courses.php', 'name' => get_lang('CourseManagement'));
    }
    if ($action == 'createcoursecategory') {
        $interbreadcrumb[] = array('url' => api_get_path(WEB_CODE_PATH) . 'auth/courses.php?action=sortmycourses', 'name' => get_lang('SortMyCourses'));
    }
    $interbreadcrumb[] = array('url' => '#', 'name' => $nameTools);
}
// course description controller object
$courses_controller = new CoursesController();
// We are moving a course or category of the user up/down the list (=Sort My Courses).
if (isset($_GET['move'])) {
コード例 #24
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return CourseCategory the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = CourseCategory::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
コード例 #25
0
        }
        $groupName = 'session_coaches[' . $sessionId . ']';
        $platformTeacherId = 'platform_teachers_by_session_' . $sessionId;
        $coachId = 'coaches_by_session_' . $sessionId;
        $platformTeacherName = 'platform_teachers_by_session';
        $coachName = 'coaches_by_session';
        $sessionUrl = api_get_path(WEB_CODE_PATH) . 'session/resume_session.php?id_session=' . $sessionId;
        $form->addElement('advmultiselect', $groupName, Display::url($session['name'], $sessionUrl, array('target' => '_blank')) . ' - ' . get_lang('Coaches'), $allTeachers);
        $courseInfo[$groupName] = $sessionTeachers;
    }
}
// Category code
$url = api_get_path(WEB_AJAX_PATH) . 'course.ajax.php?a=search_category';
$categorySelect = $form->addElement('select_ajax', 'category_code', get_lang('CourseFaculty'), null, array('url' => $url));
if (!empty($courseInfo['categoryCode'])) {
    $data = CourseCategory::getCategory($courseInfo['categoryCode']);
    $categorySelect->addOption($data['name'], $data['code']);
}
$form->addText('department_name', get_lang('CourseDepartment'), false, array('size' => '60'));
$form->applyFilter('department_name', 'html_filter');
$form->applyFilter('department_name', 'trim');
$form->addText('department_url', get_lang('CourseDepartmentURL'), false, array('size' => '60'));
$form->applyFilter('department_url', 'html_filter');
$form->applyFilter('department_url', 'trim');
$form->addElement('select_language', 'course_language', get_lang('CourseLanguage'));
$form->applyFilter('select_language', 'html_filter');
$group = array();
$group[] = $form->createElement('radio', 'visibility', get_lang("CourseAccess"), get_lang('OpenToTheWorld'), COURSE_VISIBILITY_OPEN_WORLD);
$group[] = $form->createElement('radio', 'visibility', null, get_lang('OpenToThePlatform'), COURSE_VISIBILITY_OPEN_PLATFORM);
$group[] = $form->createElement('radio', 'visibility', null, get_lang('Private'), COURSE_VISIBILITY_REGISTERED);
$group[] = $form->createElement('radio', 'visibility', null, get_lang('CourseVisibilityClosed'), COURSE_VISIBILITY_CLOSED);
コード例 #26
0
<?php

session_start();
define("CONST_FILE_PATH", "../includes/constants.php");
include '../classes/WebPage.php';
//Set up page as a web page
$thisPage = new WebPage();
//Create new instance of webPage class
$dbObj = new Database();
//Instantiate database
$coursCatObj = new CourseCategory($dbObj);
// Create an object of CourseCategory class
$errorArr = array();
//Array of errors
$oldMedia = "";
$newMedia = "";
$coursCatMedFil = "";
if (!isset($_SESSION['TSILoggedInAdmin']) || !isset($_SESSION["TSIadminEmail"])) {
    $json = array("status" => 0, "msg" => "You are not logged in.");
    echo json_encode($json);
} else {
    if (filter_input(INPUT_POST, "addNewCategory") != NULL && filter_input(INPUT_POST, "addNewCategory") == "addNewCategory") {
        $postVars = array('name', 'description', 'image');
        // Form fields names
        //Validate the POST variables and add up to error message if empty
        foreach ($postVars as $postVar) {
            switch ($postVar) {
                case 'image':
                    $coursCatObj->{$postVar} = basename($_FILES["image"]["name"]) ? rand(100000, 1000000) . "_" . strtolower(str_replace(" ", "_", filter_input(INPUT_POST, 'name'))) . "." . pathinfo(basename($_FILES["image"]["name"]), PATHINFO_EXTENSION) : "";
                    $coursCatMedFil = $coursCatObj->{$postVar};
                    if ($coursCatObj->{$postVar} == "") {
コード例 #27
0
<?php

session_start();
define("CONST_FILE_PATH", "../includes/constants.php");
include '../classes/WebPage.php';
//Set up page as a web page
$thisPage = new WebPage();
//Create new instance of webPage class
$dbObj = new Database();
//Instantiate database
$coursCatObj = new CourseCategory($dbObj);
// Create an object of CourseCategory class
$errorArr = array();
//Array of errors
//fetch all users
header('Content-type: application/json');
echo $coursCatObj->fetch();
コード例 #28
0
    $form .= '</div>';
    $form .= '</form>';
    echo $form;
    ?>
    </div>
    </div>
<?php 
    if ($showSessions) {
        ?>
        <div class="col-md-4">
            <h5><?php 
        echo get_lang('Sessions');
        ?>
</h5>
            <a class="btn btn-default btn-block" href="<?php 
        echo CourseCategory::getCourseCategoryUrl(1, $pageLength, null, 0, 'display_sessions');
        ?>
">
                <?php 
        echo get_lang('SessionList');
        ?>
            </a>
        </div>
    <?php 
    }
    ?>
</div>
 <?php 
}
?>
<div class="row">