Commit c8de44489bb1f81f502028d7695579f91fa137be
Merge branch 'edge' of github.com:ktgit/knowledgetree into edge
Showing
4 changed files
with
142 additions
and
139 deletions
plugins/user-preferences/KTUserPreferences.php
| ... | ... | @@ -37,6 +37,7 @@ require_once('UserPreferences.inc.php'); |
| 37 | 37 | */ |
| 38 | 38 | class KTUserPreferences |
| 39 | 39 | { |
| 40 | + private $oUserPreference; | |
| 40 | 41 | |
| 41 | 42 | /** |
| 42 | 43 | * Constructor function for the class |
| ... | ... | @@ -47,14 +48,54 @@ class KTUserPreferences |
| 47 | 48 | */ |
| 48 | 49 | public function __construct() |
| 49 | 50 | { |
| 51 | + $this->oUserPreference = new UserPreferences(); | |
| 50 | 52 | } |
| 51 | 53 | |
| 52 | 54 | /** |
| 53 | - * Check if user is logged in | |
| 55 | + * | |
| 54 | 56 | * |
| 55 | 57 | * @author KnowledgeTree Team |
| 56 | 58 | * @access public |
| 57 | - * @return html | |
| 59 | + * @return | |
| 60 | + */ | |
| 61 | + function saveUserPreferences() { | |
| 62 | + $iUserId = KTUtil::arrayGet($_GET, 'user_id', $_SESSION['userID']); | |
| 63 | + $sKey = KTUtil::arrayGet($_GET, 'key', null); | |
| 64 | + $sValue = KTUtil::arrayGet($_GET, 'value', null); | |
| 65 | + if(is_null($iUserId) || is_null($sKey) || is_null($sValue)) { | |
| 66 | + exit("Missing Required options : user_id = $iUserId key = $sKey value = $sValue"); | |
| 67 | + } | |
| 68 | + $this->oUserPreference->saveUserPreferences($iUserId, $sKey, $sValue); | |
| 69 | + } | |
| 70 | + | |
| 71 | + /** | |
| 72 | + * | |
| 73 | + * | |
| 74 | + * @author KnowledgeTree Team | |
| 75 | + * @access public | |
| 76 | + * @return | |
| 77 | + */ | |
| 78 | + function getUserPreferences() { | |
| 79 | + | |
| 80 | + } | |
| 81 | + | |
| 82 | + /** | |
| 83 | + * | |
| 84 | + * | |
| 85 | + * @author KnowledgeTree Team | |
| 86 | + * @access public | |
| 87 | + * @return | |
| 88 | + */ | |
| 89 | + function deleteUserPreferences() { | |
| 90 | + | |
| 91 | + } | |
| 92 | + | |
| 93 | + /** | |
| 94 | + * | |
| 95 | + * | |
| 96 | + * @author KnowledgeTree Team | |
| 97 | + * @access public | |
| 98 | + * @return boolean | |
| 58 | 99 | */ |
| 59 | 100 | function isLoggedIn() { |
| 60 | 101 | $session = new Session(); |
| ... | ... | @@ -73,16 +114,9 @@ if (!$oKTUserPreferences->isLoggedIn()) { |
| 73 | 114 | exit; |
| 74 | 115 | } |
| 75 | 116 | |
| 76 | -switch($_GET['action']){ | |
| 77 | - case 'getUserPreferences': | |
| 78 | - | |
| 79 | - break; | |
| 80 | - case 'addUserPreferences': | |
| 81 | - | |
| 82 | - break; | |
| 83 | - default: | |
| 84 | - echo "No action defined"; | |
| 85 | - break; | |
| 117 | +if(isset($_GET['action'])) { | |
| 118 | + $action = $_GET['action']; | |
| 119 | + $oKTUserPreferences->$action(); | |
| 86 | 120 | } |
| 87 | 121 | |
| 88 | 122 | exit; | ... | ... |
plugins/user-preferences/UserPreferences.inc.php
| ... | ... | @@ -75,7 +75,16 @@ class UserPreferences extends KTEntity { |
| 75 | 75 | return KTEntityUtil::getList2('UserPreferences', $sWhereClause, $aOptions); |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | - public function getUserPreferences($iUserId, $sKey, $aOptions = null) { | |
| 78 | + /** | |
| 79 | + * | |
| 80 | + * | |
| 81 | + * @author KnowledgeTree Team | |
| 82 | + * @access public | |
| 83 | + * @param | |
| 84 | + * @param | |
| 85 | + * @return | |
| 86 | + */ | |
| 87 | + public function getPreferences($iUserId, $sKey, $aOptions = null) { | |
| 79 | 88 | $sWhereClause = "WHERE user_id = '$iUserId' AND prefkey = '$sKey'"; |
| 80 | 89 | |
| 81 | 90 | return KTEntityUtil::getList2('UserPreferences', $sWhereClause, $aOptions); |
| ... | ... | @@ -154,16 +163,30 @@ class UserPreferences extends KTEntity { |
| 154 | 163 | // Utility |
| 155 | 164 | |
| 156 | 165 | /** |
| 157 | - * Set the template name | |
| 166 | + * | |
| 158 | 167 | * |
| 159 | 168 | * @author KnowledgeTree Team |
| 160 | 169 | * @access public |
| 161 | - * @param $sName - string - the template node name | |
| 162 | - * @param $iParentId - int - the template id | |
| 163 | - * @return boolean | |
| 170 | + * @param | |
| 171 | + * @param | |
| 172 | + * @param | |
| 173 | + * @return | |
| 164 | 174 | */ |
| 165 | 175 | public function exists($iUserId, $sKey, $sValue) { |
| 166 | - return UserPreferencesUtil::userPreferenceExists($iUserId, $sKey, $sValue); | |
| 176 | + $sQuery = "SELECT id, name FROM " . KTUtil::getTableName('user_preferences') . " WHERE user_id = ? AND prefkey = ? AND prefvalue = ?";/*ok*/ | |
| 177 | + $aParams = array($iUserId, $sKey, $sValue); | |
| 178 | + $res = DBUtil::getResultArray(array($sQuery, $aParams)); | |
| 179 | + if (count($res) != 0) { | |
| 180 | + foreach ($res as $user_pref){ | |
| 181 | + $userid = isset($user_pref['user_id']) ? $user_pref['user_id'] : ''; | |
| 182 | + $key = isset($user_pref['prefkey']) ? $user_pref['prefkey'] : ''; | |
| 183 | + if($sKey == $key && $iUserId == $userid) { | |
| 184 | + return true; | |
| 185 | + } | |
| 186 | + } | |
| 187 | + return false; | |
| 188 | + } | |
| 189 | + return false; | |
| 167 | 190 | } |
| 168 | 191 | |
| 169 | 192 | /** |
| ... | ... | @@ -180,33 +203,54 @@ class UserPreferences extends KTEntity { |
| 180 | 203 | $sWhereClause = "WHERE user_id = '$userId'"; |
| 181 | 204 | return KTEntityUtil::getList2('UserPreferences', $sWhereClause, $aOptions); |
| 182 | 205 | } |
| 183 | -} | |
| 184 | - | |
| 185 | -class UserPreferencesUtil { | |
| 186 | - | |
| 187 | - /** | |
| 188 | - * | |
| 189 | - * | |
| 190 | - * @author KnowledgeTree Team | |
| 191 | - * | |
| 192 | - * @return | |
| 193 | - */ | |
| 194 | - function userPreferenceExists($iUserId, $sKey, $sValue) { | |
| 195 | - $sQuery = "SELECT id, name FROM " . KTUtil::getTableName('user_preferences') . " WHERE user_id = ? AND prefkey = ? AND prefvalue = ?";/*ok*/ | |
| 196 | - $aParams = array($iUserId, $sKey, $sValue); | |
| 197 | - $res = DBUtil::getResultArray(array($sQuery, $aParams)); | |
| 198 | - if (count($res) != 0) { | |
| 199 | - foreach ($res as $user_pref){ | |
| 200 | - $userid = isset($user_pref['user_id']) ? $user_pref['user_id'] : ''; | |
| 201 | - $key = isset($user_pref['prefkey']) ? $user_pref['prefkey'] : ''; | |
| 202 | - if($sKey == $key && $iUserId == $userid) { | |
| 203 | - return true; | |
| 204 | - } | |
| 205 | - } | |
| 206 | - return false; | |
| 206 | + | |
| 207 | + /** | |
| 208 | + * | |
| 209 | + * | |
| 210 | + * @author KnowledgeTree Team | |
| 211 | + * @access public | |
| 212 | + * @param $aOptions - array | |
| 213 | + * @return | |
| 214 | + */ | |
| 215 | + public function getUserPreferenceValue($iUserId, $sKey) { | |
| 216 | + $aPref = UserPreferences::getPreferences($iUserId, $sKey); | |
| 217 | + if(PEAR::isError($aPref)) { | |
| 218 | + return false; | |
| 219 | + } | |
| 220 | + if(count($aPref) > 1) { | |
| 221 | + return false; | |
| 222 | + } | |
| 223 | + | |
| 224 | + foreach ($aPref as $oPref) { | |
| 225 | + return $oPref->getValue(); | |
| 226 | + } | |
| 227 | + } | |
| 228 | + | |
| 229 | + /** | |
| 230 | + * | |
| 231 | + * | |
| 232 | + * @author KnowledgeTree Team | |
| 233 | + * @access public | |
| 234 | + * @param $aOptions - array | |
| 235 | + * @return | |
| 236 | + */ | |
| 237 | + public function saveUserPreferences($iUserId, $sKey, $sValue) { | |
| 238 | + $oUser = User::get($iUserId); // Get the user | |
| 239 | + if (PEAR::isError($oUser)) { | |
| 240 | + return false; | |
| 241 | + } | |
| 242 | + $aUserPreference = UserPreferences::getPreferences($iUserId, 'zohoWarning'); // Get user preference | |
| 243 | + if(empty($aUserPreference) || is_null($aUserPreference)) { // Create the preference | |
| 244 | + $oUserPreference = new UserPreferences($iUserId, 'zohoWarning', $sValue); | |
| 245 | + $oUserPreference->create(); | |
| 246 | + } else { | |
| 247 | + foreach ($aUserPreference as $oUserPreference) { // Access object | |
| 248 | + if($oUserPreference->getValue() != $sValue) { // Check if value needs to be updated | |
| 249 | + $oUserPreference->setValue($sValue); // Set the new value | |
| 250 | + $oUserPreference->update(); // Update preference | |
| 251 | + } | |
| 252 | + } | |
| 207 | 253 | } |
| 208 | - return false; | |
| 209 | - } | |
| 254 | + } | |
| 210 | 255 | } |
| 211 | - | |
| 212 | 256 | ?> | ... | ... |
plugins/user-preferences/UserPreferencesPlugin.php
| ... | ... | @@ -20,26 +20,24 @@ |
| 20 | 20 | * |
| 21 | 21 | */ |
| 22 | 22 | |
| 23 | -define('PLUGINDIR_UserPreferencesPlugin', dirname(__FILE__)); | |
| 23 | +define('UserPreferences_PluginDir', dirname(__FILE__)); | |
| 24 | +$start = strpos(dirname(__FILE__), 'plugins'); | |
| 25 | +$path = substr(dirname(__FILE__), $start); | |
| 26 | +$path = str_replace("\\", "/", $path); | |
| 27 | +$file = $path.'/KTUserPreferences.php'; | |
| 28 | +define('UserPreferencesPlugin_KTFile', $file); | |
| 29 | + | |
| 24 | 30 | /* */ |
| 25 | 31 | require_once("UserPreferences.inc.php"); |
| 26 | 32 | /* Plugin Base */ |
| 27 | 33 | require_once(KT_LIB_DIR . '/plugins/plugin.inc.php'); |
| 28 | 34 | require_once(KT_LIB_DIR . '/plugins/pluginregistry.inc.php'); |
| 29 | -require_once(KT_LIB_DIR . '/database/sqlfile.inc.php'); | |
| 30 | -require_once(KT_LIB_DIR . '/database/dbutil.inc'); | |
| 31 | - | |
| 32 | -/* Folder Actions */ | |
| 33 | -require_once(KT_LIB_DIR . '/actions/folderaction.inc.php'); | |
| 34 | -require_once(KT_LIB_DIR . '/permissions/permission.inc.php'); | |
| 35 | -require_once(KT_LIB_DIR . '/permissions/permissionutil.inc.php'); | |
| 36 | -require_once(KT_LIB_DIR . '/browse/browseutil.inc.php'); | |
| 37 | 35 | |
| 38 | 36 | class UserPreferencesPlugin extends KTPlugin { |
| 39 | - public $sNamespace = 'up.UserPreferencesPlugin.plugin'; | |
| 37 | + public $sNamespace = 'user.preferences.plugin'; | |
| 40 | 38 | public $iVersion = 0; |
| 41 | 39 | public $autoRegister = true; |
| 42 | - //public $showInAdmin = false; | |
| 40 | + public $showInAdmin = false; | |
| 43 | 41 | |
| 44 | 42 | /** |
| 45 | 43 | * User Preferences constructor |
| ... | ... | @@ -50,94 +48,13 @@ class UserPreferencesPlugin extends KTPlugin { |
| 50 | 48 | function UserPreferencesPlugin($sFilename = null) { |
| 51 | 49 | parent::KTPlugin($sFilename); |
| 52 | 50 | $this->sFriendlyName = _kt('User Preferences Plugin'); |
| 53 | - $this->sSQLDir = PLUGINDIR_UserPreferencesPlugin . DIRECTORY_SEPARATOR. 'sql' . DIRECTORY_SEPARATOR; | |
| 51 | + $this->sSQLDir = UserPreferences_PluginDir . DIRECTORY_SEPARATOR. 'sql' . DIRECTORY_SEPARATOR; | |
| 54 | 52 | $this->dir = dirname(__FILE__); |
| 55 | 53 | } |
| 56 | 54 | |
| 57 | - /** | |
| 58 | - * Basic plugin setup | |
| 59 | - * | |
| 60 | - * @param none | |
| 61 | - * @return none | |
| 62 | - */ | |
| 63 | - function setup() { | |
| 64 | - $this->registerAdminPage("adminuserpreferencesmanagement", | |
| 65 | - 'adminManageUserPreferencesDispatcher', | |
| 66 | - 'misc', | |
| 67 | - _kt('User Preferences'), | |
| 68 | - _kt('User Preferences'), | |
| 69 | - 'manageUserPreferences.php', | |
| 70 | - null); | |
| 71 | - $this->registerPage('userpreferencesmanagement', 'ManageUserPreferencesDispatcher', 'manageUserPreferences.php'); | |
| 72 | - $plugin_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR; | |
| 73 | - require_once(KT_LIB_DIR . '/templating/templating.inc.php'); | |
| 74 | - $oTemplating =& KTTemplating::getSingleton(); | |
| 75 | - $oTemplating->addLocation('UserPreferencesPlugin', $plugin_dir.'templates', 'fs.UserPreferencesPlugin.plugin'); | |
| 76 | - $this->applySQL(); // Create Table | |
| 77 | - } | |
| 78 | - | |
| 79 | - function applySQL() | |
| 80 | - { | |
| 81 | - $sql = "select * from user_preferences"; | |
| 82 | - $result = DBUtil::getResultArray($sql); | |
| 83 | - | |
| 84 | - if (!PEAR::isError($result)) | |
| 85 | - { | |
| 86 | - return; // if we find the table, we assume it has been applied | |
| 87 | - } | |
| 88 | - $filename = $this->sSQLDir . 'user_preferences.sql'; | |
| 89 | - $content = file_get_contents($filename); | |
| 90 | - | |
| 91 | - global $default; | |
| 92 | - DBUtil::setupAdminDatabase(); | |
| 93 | - $db = $default->_admindb; | |
| 94 | - $aQueries = SQLFile::splitSQL($content); | |
| 95 | - DBUtil::startTransaction(); | |
| 96 | - $res = DBUtil::runQueries($aQueries, $db); | |
| 97 | - if (PEAR::isError($res)) { | |
| 98 | - DBUtil::rollback(); | |
| 99 | - return $res; | |
| 100 | - } | |
| 101 | - DBUtil::commit(); | |
| 102 | - } | |
| 103 | - | |
| 104 | - /** | |
| 105 | - * Method to setup the plugin on rendering it | |
| 106 | - * | |
| 107 | - * @param none | |
| 108 | - * @return boolean | |
| 109 | - */ | |
| 110 | - function run_setup() { | |
| 111 | - | |
| 112 | - return true; | |
| 113 | - } | |
| 114 | - | |
| 115 | - /** | |
| 116 | - * Register the plugin | |
| 117 | - * | |
| 118 | - * @return unknown | |
| 119 | - */ | |
| 120 | - function register() { | |
| 121 | - $oEnt = parent::register(); | |
| 122 | 55 | |
| 123 | - return $oEnt; | |
| 124 | - } | |
| 125 | - | |
| 126 | - public function getUserPreferences($iUserId, $sKey) { | |
| 127 | - $aPref = UserPreferences::getUserPreferences($iUserId, $sKey); | |
| 128 | - if(PEAR::isError($aPref)) { | |
| 129 | - return false; | |
| 130 | - } | |
| 131 | - if(count($aPref) > 1) { | |
| 132 | - return false; | |
| 133 | - } | |
| 134 | - | |
| 135 | - foreach ($aPref as $oPref) { | |
| 136 | - return $oPref->getValue(); | |
| 137 | - } | |
| 138 | - } | |
| 139 | 56 | } |
| 140 | 57 | |
| 141 | 58 | $oPluginRegistry =& KTPluginRegistry::getSingleton(); |
| 142 | -$oPluginRegistry->registerPlugin('UserPreferencesPlugin', 'up.UserPreferencesPlugin.plugin', __FILE__); | |
| 59 | +$oPluginRegistry->registerPlugin('UserPreferencesPlugin', 'user.preferences.plugin', __FILE__); | |
| 143 | 60 | ?> |
| 144 | 61 | \ No newline at end of file | ... | ... |
plugins/user-preferences/sql/upgradeto0.sql
0 → 100644
| 1 | +CREATE TABLE IF NOT EXISTS `user_preferences` ( | |
| 2 | + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, | |
| 3 | + `user_id` int(11) unsigned NOT NULL, | |
| 4 | + `prefkey` varchar(255) NOT NULL, | |
| 5 | + `prefvalue` varchar(255) NOT NULL, | |
| 6 | + PRIMARY KEY (`id`), | |
| 7 | + KEY `user_id` (`user_id`) | |
| 8 | +) ENGINE=MyISAM DEFAULT CHARSET=latin1; | |
| 0 | 9 | \ No newline at end of file | ... | ... |