123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- <?php
- /*
- ==============================================================================
- Dokeos - elearning and course management software
- Copyright (c) 2009 Dokeos SPRL
- Copyright (c) 2009 Julio Montoya Armas <gugli100@gmail.com>
- For a full list of contributors, see "credits.txt".
- The full license can be read in "license.txt".
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
- See the GNU General Public License for more details.
- Contact: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium, info@dokeos.com
- ==============================================================================
- */
- /**
- ==============================================================================
- * This library provides functions for the URL management.
- * Include/require it in your code to use its functionality.
- *
- * @package dokeos.library
- ==============================================================================
- */
- class UrlManager
- {
- /**
- * Creates a new url access to Dokeos
- *
- * @author Julio Montoya <gugli100@gmail.com>,
- *
- * @param string The URL of the site
- * @param string The description of the site
- * @param int is active or not
- * @param int the user_id of the owner
- * @return boolean if success
- */
- function add($url, $description, $active)
- {
- $tms = time();
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql = "INSERT INTO $table_access_url
- SET url = '".Database::escape_string($url)."/',
- description = '".Database::escape_string($description)."',
- active = '".Database::escape_string($active)."',
- created_by = '".Database::escape_string(api_get_user_id())."',
- tms = FROM_UNIXTIME(".$tms.")";
- $result = api_sql_query($sql, __FILE__, __LINE__);
- return $result;
- }
- /**
- * Updates an URL access to Dokeos
- * @author Julio Montoya <gugli100@gmail.com>,
- *
- * @param int The url id
- * @param string The description of the site
- * @param int is active or not
- * @param int the user_id of the owner
- * @return boolean if success
- */
- function udpate($url_id, $url, $description, $active)
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $tms = time();
- $sql = "UPDATE $table_access_url
- SET url = '".Database::escape_string($url)."',
- description = '".Database::escape_string($description)."',
- active = '".Database::escape_string($active)."',
- created_by = '".Database::escape_string(api_get_user_id())."',
- tms = FROM_UNIXTIME(".$tms.")
- WHERE id = '$url_id'";
- $result = api_sql_query($sql, __FILE__, __LINE__);
- return $result;
- }
-
- /**
- *
- * */
- function url_exist($url)
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql = "SELECT id FROM $table_access_url WHERE url = '".Database::escape_string($url)."' ";
- $res = api_sql_query($sql,__FILE__,__LINE__);
- $num = Database::num_rows($res);
- return $num;
- }
-
- /**
- *
- * */
- function url_id_exist($url)
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql = "SELECT id FROM $table_access_url WHERE id = '".Database::escape_string($url)."' ";
- $res = api_sql_query($sql,__FILE__,__LINE__);
- $num = Database::num_rows($res);
- return $num;
- }
-
- /**
- * This function get the quantity of URL
- * @author Julio Montoya
- * @return int count of urls
- * */
- function url_count()
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql = "SELECT count(id) as count_result FROM $table_access_url";
- $res = api_sql_query($sql, __FILE__, __LINE__);
- $url = Database::fetch_row($res);
- $result = $url['0'];
- return $result;
- }
-
- /**
- * Gets the id, url, description, and active status of ALL URLs
- * @author Julio Montoya
- * @return array
- * */
- function get_url_data()
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql = "SELECT id, url, description, active FROM $table_access_url";
- $res = api_sql_query($sql, __FILE__, __LINE__);
- $urls = array ();
- while ($url = Database::fetch_row($res))
- {
- $urls[] = $url;
- }
- return $urls;
- }
-
- /**
- * Gets the id, url, description, and active status of ALL URLs
- * @author Julio Montoya
- * @return array
- * */
- function get_url_data_from_id($url_id)
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql = "SELECT id, url, description, active FROM $table_access_url WHERE id = ".Database::escape_string($url_id);
- $res = api_sql_query($sql, __FILE__, __LINE__);
- $row = Database::fetch_array($res);
- return $row;
- }
-
- /** Gets the inner join of users and urls table
- * @author Julio Montoya
- * @return int access url id
- * @return array api_store_result of the result
- * */
- function get_url_rel_user_data($access_url_id='')
- {
- $where ='';
- $table_url_rel_user = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
- $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
-
- if (!empty($access_url_id))
- $where ="WHERE $table_url_rel_user.access_url_id = ".Database::escape_string($access_url_id);
-
- $sql="SELECT u.user_id, lastname, firstname, username, access_url_id
- FROM $tbl_user u
- INNER JOIN $table_url_rel_user
- ON $table_url_rel_user.user_id = u.user_id
- $where
- ORDER BY lastname,firstname,username";
-
- $result=api_sql_query($sql,__FILE__,__LINE__);
- $Users=api_store_result($result);
- return $Users;
- }
-
-
- /**
- * Sets the status of an URL 1 or 0
- * @author Julio Montoya
- * @param string lock || unlock
- * @param int url id
- * */
- function set_url_status($status,$url_id)
- {
- $url_table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- if ($status=='lock') {
- $status_db='0';
- }
- if ($status=='unlock') {
- $status_db='1';
- }
- if(($status_db=='1' OR $status_db=='0') AND is_numeric($url_id)) {
- $sql="UPDATE $url_table SET active='".Database::escape_string($status_db)."' WHERE id='".Database::escape_string($url_id)."'";
- $result = api_sql_query($sql, __FILE__, __LINE__);
- }
- }
-
- /**
- * Deletes an url
- * @author Julio Montoya
- * @param int url id
- * @return boolean true if success
- * */
- function delete($id)
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql= "DELETE FROM $table_access_url WHERE id = ".Database::escape_string($id);
- $result = api_sql_query($sql, __FILE__, __LINE__);
- return $result;
- }
-
-
- /**
- * Deletes an url
- * @author Julio Montoya
- * @param int user id
- * @param int url id
- * @return boolean true if success
- * */
- function relation_url_user_exist($user_id, $url_id)
- {
- $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
- $sql= "SELECT user_id FROM $table_url_rel_user WHERE access_url_id = ".Database::escape_string($url_id)." AND user_id = ".Database::escape_string($user_id)." ";
- $result = api_sql_query($sql, __FILE__, __LINE__);
- $num = Database::num_rows($result);
- return $num;
- }
-
- /**
- * Add a group of users into a group of URLs
- * @author Julio Montoya
- * @param array of user_ids
- * @param array of url_ids
- * */
- function add_users_to_urls($user_list,$url_list)
- {
- $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
- $result_array=array();
-
- if (is_array($user_list) && is_array($url_list)){
- foreach ($url_list as $url_id) {
- foreach ($user_list as $user_id) {
- $count = UrlManager::relation_url_user_exist($user_id,$url_id);
- if ($count==0) {
- $sql = "INSERT INTO $table_url_rel_user
- SET user_id = ".Database::escape_string($user_id).", access_url_id = ".Database::escape_string($url_id);
- $result = api_sql_query($sql, __FILE__, __LINE__);
- if($result)
- $result_array[$url_id][$user_id]=1;
- else
- $result_array[$url_id][$user_id]=0;
- }
- }
- }
- }
- return $result_array;
- }
-
-
- /**
- * Add a user into a url
- * @author Julio Montoya
- * @param user_id
- * @param url_id
- * @return boolean true if success
- * */
- function add_user_to_url($user_id,$url_id=1)
- {
- $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
- $count = UrlManager::relation_url_user_exist($user_id,$url_id);
- if (empty($count)) {
- $sql = "INSERT INTO $table_url_rel_user
- SET user_id = ".Database::escape_string($user_id).", access_url_id = ".Database::escape_string($url_id);
- $result = api_sql_query($sql, __FILE__, __LINE__);
- }
- return $result;
- }
-
-
- /**
- * Deletes an url and user relationship
- * @author Julio Montoya
- * @param int url id
- * @return boolean true if success
- * */
- function delete_url_rel_user($user_id, $url_id)
- {
- $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
- $sql= "DELETE FROM $table_url_rel_user WHERE user_id = ".Database::escape_string($user_id)." AND access_url_id=".Database::escape_string($url_id)." ";
- $result = api_sql_query($sql, __FILE__, __LINE__);
- return $result;
- }
-
- /**
- * Updates the url_rel_user table with a given user list
- * @author Julio Montoya
- * @param array user list
- * @param int access_url_id
- * */
- function update_urls_rel_user($user_list,$access_url_id)
- {
- $table_access_url = Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $table_url_rel_user = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
-
- $sql = "SELECT user_id FROM $table_url_rel_user WHERE access_url_id=".Database::escape_string($access_url_id);
- $result = api_sql_query($sql,__FILE__,__LINE__ );
- $existingUsers = array();
-
- while($row = Database::fetch_array($result)){
- $existingUsers[] = $row['user_id'];
- }
-
- //adding users
- foreach($user_list as $enreg_user) {
- if(!in_array($enreg_user, $existingUsers)) {
- UrlManager::add_user_to_url($enreg_user,$access_url_id);
- }
- }
- //deleting old users
- foreach($existingUsers as $existing_user) {
- if(!in_array($existing_user, $user_list)) {
- UrlManager::delete_url_rel_user($existing_user,$access_url_id);
- }
- }
- }
- /**
- *
- * */
- function get_url_id($url)
- {
- $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
- $sql = "SELECT id FROM $table_access_url WHERE url = '".Database::escape_string($url)."'";
- $result = api_sql_query($sql);
- $access_url_id = Database::result($result, 0, 0);
- return $access_url_id;
- }
- }
- ?>
|