Annotation of /mambo/branches/4.6/includes/cmtclasses.php
Parent Directory
|
Revision Log
Revision 392 - (view) (download)
| 1 : | counterpoi | 126 | t <?php |
| 2 : | t | ||
| 3 : | t class mosComponentHandler { | ||
| 4 : | t var $_buffer = ''; | ||
| 5 : | t | ||
| 6 : | t function &getInstance () { | ||
| 7 : | t static $instance; | ||
| 8 : | t if (!is_object($instance)) $instance = new mosComponentHandler(); | ||
| 9 : | t return $instance; | ||
| 10 : | t } | ||
| 11 : | t | ||
| 12 : | t function &getParamsByName ($name) { | ||
| 13 : | t $params = null; | ||
| 14 : | counterpoi | 392 | t $row = new mosComponent(); |
| 15 : | counterpoi | 126 | t $query = "SELECT a.params, a.option" |
| 16 : | t . "\n FROM #__components AS a" | ||
| 17 : | t . "\n WHERE a.name = '$name'" | ||
| 18 : | t ; | ||
| 19 : | counterpoi | 238 | t $database =& mamboDatabase::getInstance(); |
| 20 : | counterpoi | 126 | t $database->setQuery( $query ); |
| 21 : | t // load the row from the db table | ||
| 22 : | t if ($database->loadObject($row)) { | ||
| 23 : | t // get params definitions | ||
| 24 : | counterpoi | 238 | t $mainframe =& mosMainFrame::getInstance(); |
| 25 : | csouza | 138 | $params =& new mosParameters( $row->params); |
| 26 : | counterpoi | 126 | t } |
| 27 : | t return $params; | ||
| 28 : | t } | ||
| 29 : | t | ||
| 30 : | t function mosMainBody() { | ||
| 31 : | t // message passed via the url | ||
| 32 : | t $mosmsg = mosGetParam($_REQUEST, 'mosmsg', ''); | ||
| 33 : | t if ($mosmsg) { | ||
| 34 : | t if (!get_magic_quotes_gpc()) $mosmsg = addslashes( $mosmsg ); | ||
| 35 : | t echo "\n<div class=\"message\">$mosmsg</div>"; | ||
| 36 : | t } | ||
| 37 : | t echo $this->_buffer; | ||
| 38 : | t // Alternative if "popmessages" - apparently never implemented | ||
| 39 : | t // echo "\n<script language=\"javascript\">alert('$mosmsg');</script>"; | ||
| 40 : | t } | ||
| 41 : | t | ||
| 42 : | t function startBuffer () { | ||
| 43 : | t $this->_buffer = ''; | ||
| 44 : | t ob_start(); | ||
| 45 : | t } | ||
| 46 : | t | ||
| 47 : | t function endBuffer () { | ||
| 48 : | t $this->_buffer = ob_get_contents(); | ||
| 49 : | t ob_end_clean(); | ||
| 50 : | t } | ||
| 51 : | t | ||
| 52 : | t } | ||
| 53 : | t | ||
| 54 : | t /** | ||
| 55 : | t * Component database table class | ||
| 56 : | t * @package Mambo | ||
| 57 : | t */ | ||
| 58 : | t class mosComponent extends mosDBTable { | ||
| 59 : | t /** @var int Primary key */ | ||
| 60 : | t var $id=null; | ||
| 61 : | t /** @var string */ | ||
| 62 : | t var $name=null; | ||
| 63 : | t /** @var string */ | ||
| 64 : | t var $link=null; | ||
| 65 : | t /** @var int */ | ||
| 66 : | t var $menuid=null; | ||
| 67 : | t /** @var int */ | ||
| 68 : | t var $parent=null; | ||
| 69 : | t /** @var string */ | ||
| 70 : | t var $admin_menu_link=null; | ||
| 71 : | t /** @var string */ | ||
| 72 : | t var $admin_menu_alt=null; | ||
| 73 : | t /** @var string */ | ||
| 74 : | t var $option=null; | ||
| 75 : | t /** @var string */ | ||
| 76 : | t var $ordering=null; | ||
| 77 : | t /** @var string */ | ||
| 78 : | t var $admin_menu_img=null; | ||
| 79 : | t /** @var int */ | ||
| 80 : | t var $iscore=null; | ||
| 81 : | t /** @var string */ | ||
| 82 : | t var $params=null; | ||
| 83 : | t | ||
| 84 : | t /** | ||
| 85 : | t * @param database A database connector object | ||
| 86 : | t */ | ||
| 87 : | counterpoi | 392 | t function mosComponent() { |
| 88 : | t $db = mamboDatabase::getInstance(); | ||
| 89 : | counterpoi | 126 | t $this->mosDBTable( '#__components', 'id', $db ); |
| 90 : | t } | ||
| 91 : | t } | ||
| 92 : | t | ||
| 93 : | counterpoi | 392 | t class mosComponentUserSide { |
| 94 : | t var $magic_quotes_value = 0; | ||
| 95 : | t var $option = ''; | ||
| 96 : | counterpoi | 126 | t |
| 97 : | counterpoi | 392 | t function mosComponentUserSide ($component, $control_name, $alternatives, $default, $title) { |
| 98 : | t $this->option = mamboCore::get('option'); | ||
| 99 : | t // Is magic quotes on? | ||
| 100 : | t if (get_magic_quotes_gpc()) { | ||
| 101 : | t // Yes? Strip the added slashes | ||
| 102 : | t $_REQUEST = $this->remove_magic_quotes($_REQUEST); | ||
| 103 : | t $_GET = $this->remove_magic_quotes($_GET); | ||
| 104 : | t $_POST = $this->remove_magic_quotes($_POST); | ||
| 105 : | t } | ||
| 106 : | t $this->magic_quotes_value = get_magic_quotes_runtime(); | ||
| 107 : | t set_magic_quotes_runtime(0); | ||
| 108 : | t $mainframe =& mosMainFrame::getInstance(); | ||
| 109 : | t $mainframe->SetPageTitle($title); | ||
| 110 : | t $func = mosGetParam ($_REQUEST, $control_name, $default); | ||
| 111 : | t if (isset($alternatives[$func])) $method = $alternatives[$func]; | ||
| 112 : | t else $method = $func; | ||
| 113 : | t $classname = $component.'_'.$method.'_Controller'; | ||
| 114 : | t if (class_exists($classname)) { | ||
| 115 : | t $controller =& new $classname($this); | ||
| 116 : | t if (is_callable(array(&$controller,$method))) $controller->$method($func); | ||
| 117 : | t else trigger_error("Component $component error: attempt to use non-existent method $method in $controller"); | ||
| 118 : | t } | ||
| 119 : | t else trigger_error("Component $component error: attempt to use non-existent class $classname"); | ||
| 120 : | t $this->restore_magic_quotes(); | ||
| 121 : | t } | ||
| 122 : | t | ||
| 123 : | t function &remove_magic_quotes (&$array) { | ||
| 124 : | t foreach ($array as $k => $v) { | ||
| 125 : | t if (is_array($v)) $array[$k] = $this->remove_magic_quotes($v); | ||
| 126 : | t else $array[$k] = stripslashes($v); | ||
| 127 : | t } | ||
| 128 : | t return $array; | ||
| 129 : | t } | ||
| 130 : | t | ||
| 131 : | t function restore_magic_quotes () { | ||
| 132 : | t set_magic_quotes_runtime($this->magic_quotes_value); | ||
| 133 : | t } | ||
| 134 : | t | ||
| 135 : | t function newHTMLClassCheck ($name, &$controller, $total_items, $clist) { | ||
| 136 : | t if (class_exists($name)) return new $name ($controller, $this->limit, $clist); | ||
| 137 : | t trigger_error("Component $this->plugin_name error: attempt to use non-existent class ".$name); | ||
| 138 : | t return false; | ||
| 139 : | t } | ||
| 140 : | t | ||
| 141 : | t function checkCallable ($object, $method) { | ||
| 142 : | t if (is_callable(array(&$object, $method))) return true; | ||
| 143 : | t $name = get_class($object); | ||
| 144 : | t trigger_error("Component $this->plugin_name error: attempt to use non-existent class $method in $name"); | ||
| 145 : | t return false; | ||
| 146 : | t } | ||
| 147 : | t | ||
| 148 : | t } | ||
| 149 : | t | ||
| 150 : | counterpoi | 126 | t /** |
| 151 : | t * Template Table Class | ||
| 152 : | t * | ||
| 153 : | t * Provides access to the mos_templates table | ||
| 154 : | t * @package Mambo | ||
| 155 : | t */ | ||
| 156 : | t class mosTemplate extends mosDBTable { | ||
| 157 : | t /** @var int */ | ||
| 158 : | t var $id=null; | ||
| 159 : | t /** @var string */ | ||
| 160 : | t var $cur_template=null; | ||
| 161 : | t /** @var int */ | ||
| 162 : | t var $col_main=null; | ||
| 163 : | t | ||
| 164 : | t /** | ||
| 165 : | t * @param database A database connector object | ||
| 166 : | t */ | ||
| 167 : | t function mosTemplate( &$database ) { | ||
| 168 : | t $this->mosDBTable( '#__templates', 'id', $database ); | ||
| 169 : | t } | ||
| 170 : | t } | ||
| 171 : | t | ||
| 172 : | t /** | ||
| 173 : | t * Class mosMambot | ||
| 174 : | t * @package Mambo | ||
| 175 : | t */ | ||
| 176 : | t class mosMambot extends mosDBTable { | ||
| 177 : | t /** @var int */ | ||
| 178 : | t var $id=null; | ||
| 179 : | t /** @var varchar */ | ||
| 180 : | t var $name=null; | ||
| 181 : | t /** @var varchar */ | ||
| 182 : | t var $element=null; | ||
| 183 : | t /** @var varchar */ | ||
| 184 : | t var $folder=null; | ||
| 185 : | t /** @var tinyint unsigned */ | ||
| 186 : | t var $access=null; | ||
| 187 : | t /** @var int */ | ||
| 188 : | t var $ordering=null; | ||
| 189 : | t /** @var tinyint */ | ||
| 190 : | t var $published=null; | ||
| 191 : | t /** @var tinyint */ | ||
| 192 : | t var $iscore=null; | ||
| 193 : | t /** @var tinyint */ | ||
| 194 : | t var $client_id=null; | ||
| 195 : | t /** @var int unsigned */ | ||
| 196 : | t var $checked_out=null; | ||
| 197 : | t /** @var datetime */ | ||
| 198 : | t var $checked_out_time=null; | ||
| 199 : | t /** @var text */ | ||
| 200 : | t var $params=null; | ||
| 201 : | t | ||
| 202 : | t function mosMambot( &$db ) { | ||
| 203 : | t $this->mosDBTable( '#__mambots', 'id', $db ); | ||
| 204 : | t } | ||
| 205 : | t } | ||
| 206 : | t | ||
| 207 : | t class mosModuleHandler { | ||
| 208 : | t var $_db = null; | ||
| 209 : | t var $_modules = null; | ||
| 210 : | t | ||
| 211 : | t function mosModuleHandler () { | ||
| 212 : | counterpoi | 238 | t $this->_db =& mamboDatabase::getInstance(); |
| 213 : | counterpoi | 126 | t } |
| 214 : | t | ||
| 215 : | t function &getInstance () { | ||
| 216 : | t static $instance; | ||
| 217 : | t if (!is_object($instance)) $instance = new mosModuleHandler(); | ||
| 218 : | t return $instance; | ||
| 219 : | t } | ||
| 220 : | t | ||
| 221 : | t /** | ||
| 222 : | t * Cache some modules information | ||
| 223 : | t * @return array | ||
| 224 : | t */ | ||
| 225 : | t function initModules($isAdmin=false) { | ||
| 226 : | t if (!isset($this->_modules)) { | ||
| 227 : | t if ($isAdmin) { | ||
| 228 : | t $query = "SELECT id, title, module, position, content, showtitle, params" | ||
| 229 : | t . "\n FROM #__modules AS m" | ||
| 230 : | t . "\n WHERE m.published = '1'" | ||
| 231 : | t . "\n AND (m.client_id = 1)" | ||
| 232 : | t . "\n ORDER BY m.ordering"; | ||
| 233 : | t } | ||
| 234 : | t else { | ||
| 235 : | t $my = mamboCore::get('currentUser'); | ||
| 236 : | t $Itemid = mamboCore::get('Itemid'); | ||
| 237 : | t $query = "SELECT id, title, module, position, content, showtitle, params" | ||
| 238 : | t ."\nFROM #__modules AS m, #__modules_menu AS mm" | ||
| 239 : | t . "\nWHERE m.published='1' AND m.access <= '$my->gid' AND m.client_id='0'" | ||
| 240 : | t . "\nAND mm.moduleid=m.id" | ||
| 241 : | t . "\nAND (mm.menuid = '$Itemid' OR mm.menuid = '0')" | ||
| 242 : | t . "\nORDER BY ordering"; | ||
| 243 : | t } | ||
| 244 : | t $this->_db->setQuery( $query ); | ||
| 245 : | t $modules = $this->_db->loadObjectList(); | ||
| 246 : | t foreach ($modules as $module) { | ||
| 247 : | t $this->_modules[$module->position][] = $module; | ||
| 248 : | t } | ||
| 249 : | t } | ||
| 250 : | t } | ||
| 251 : | t /** | ||
| 252 : | t * @param string THe template position | ||
| 253 : | t */ | ||
| 254 : | t function mosCountModules( $position='left', $isAdmin=false ) { | ||
| 255 : | t $this->initModules($isAdmin); | ||
| 256 : | t return isset($this->_modules[$position]) ? count($this->_modules[$position]) : 0; | ||
| 257 : | t } | ||
| 258 : | t | ||
| 259 : | t /** | ||
| 260 : | counterpoi | 392 | t * @param string Name of module required |
| 261 : | t */ | ||
| 262 : | t function &getByName( $name, $isAdmin=false ) { | ||
| 263 : | t $this->initModules($isAdmin); | ||
| 264 : | t foreach ($this->_modules as $position) { | ||
| 265 : | t foreach ($position as $module) if ($module->module == $name) return $module; | ||
| 266 : | t } | ||
| 267 : | t $module = null; | ||
| 268 : | t return $module; | ||
| 269 : | t } | ||
| 270 : | t | ||
| 271 : | t /** | ||
| 272 : | counterpoi | 126 | t * @param string The position |
| 273 : | t * @param int The style. 0=normal, 1=horiz, -1=no wrapper | ||
| 274 : | t */ | ||
| 275 : | t function mosLoadModules( $position='left', $style=0, $isAdmin=false ) { | ||
| 276 : | t $Itemid = mamboCore::get('Itemid'); | ||
| 277 : | t $tp = mosGetParam( $_GET, 'tp', 0 ); | ||
| 278 : | t if ($tp) { | ||
| 279 : | t echo '<div style="height:50px;background-color:#eee;margin:2px;padding:10px;border:1px solid #f00;color:#700;">'; | ||
| 280 : | t echo $position; | ||
| 281 : | t echo '</div>'; | ||
| 282 : | t return; | ||
| 283 : | t } | ||
| 284 : | t $style = intval($style); | ||
| 285 : | t $cache =& mosCache::getCache('com_content'); | ||
| 286 : | t require_once( mamboCore::get('mosConfig_absolute_path').'/includes/frontend.html.php'); | ||
| 287 : | t $this->initModules($isAdmin); | ||
| 288 : | t if (isset($this->_modules[$position] )) $modules = $this->_modules[$position]; | ||
| 289 : | t else { | ||
| 290 : | t $modules = array(); | ||
| 291 : | t $style = 0; | ||
| 292 : | t } | ||
| 293 : | t if ($style == 1) { | ||
| 294 : | t echo "<table cellspacing=\"1\" cellpadding=\"0\" border=\"0\" width=\"100%\">\n"; | ||
| 295 : | t echo "<tr>\n"; | ||
| 296 : | t } | ||
| 297 : | t $prepend = ($style == 1) ? "<td valign=\"top\">\n" : ''; | ||
| 298 : | t $postpend = ($style == 1) ? "</td>\n" : ''; | ||
| 299 : | t $count = 1; | ||
| 300 : | t foreach ($modules as $module) { | ||
| 301 : | t $params =& new mosParameters($module->params); | ||
| 302 : | t echo $prepend; | ||
| 303 : | t if ((substr("$module->module",0,4))=="mod_") $modfunc = 'module2'; | ||
| 304 : | t else $modfunc = 'module'; | ||
| 305 : | t if ($params->get('cache') == 1 AND mamboCore::get('mosConfig_caching') == 1) { | ||
| 306 : | t $cache->call("modules_html::$modfunc", $module, $params, $Itemid, $style ); | ||
| 307 : | t } | ||
| 308 : | t else modules_html::$modfunc($module, $params, $Itemid, $style, $count); | ||
| 309 : | t echo $postpend; | ||
| 310 : | t $count++; | ||
| 311 : | t } | ||
| 312 : | t if ($style == 1) echo "</tr>\n</table>\n"; | ||
| 313 : | t } | ||
| 314 : | t | ||
| 315 : | t /** | ||
| 316 : | t * Loads admin modules via module position | ||
| 317 : | t * @param string The position | ||
| 318 : | t * @param int 0 = no style, 1 = tabbed | ||
| 319 : | t */ | ||
| 320 : | t function mosLoadAdminModules( $position='left', $style=0 ) { | ||
| 321 : | t global $my, $acl; | ||
| 322 : | t $this->initModules(true); | ||
| 323 : | t $cache =& mosCache::getCache( 'com_content' ); | ||
| 324 : | t if (isset($this->_modules[$position] )) $modules = $this->_modules[$position]; | ||
| 325 : | t else $modules = array(); | ||
| 326 : | t | ||
| 327 : | t switch ($style) { | ||
| 328 : | t case 0: | ||
| 329 : | t default: | ||
| 330 : | t foreach ($modules as $module) { | ||
| 331 : | t $params =& new mosParameters( $module->params ); | ||
| 332 : | t if ( $module->module == '' ) mosLoadCustomModule( $module, $params ); | ||
| 333 : | t else mosLoadAdminModule( substr( $module->module, 4 ), $params ); | ||
| 334 : | t } | ||
| 335 : | t break; | ||
| 336 : | t case 1: | ||
| 337 : | t // Tabs | ||
| 338 : | t $tabs = new mosTabs(1); | ||
| 339 : | t $tabs->startPane( 'modules-' . $position ); | ||
| 340 : | t foreach ($modules as $module) { | ||
| 341 : | t $params =& new mosParameters( $module->params ); | ||
| 342 : | t $editAllComponents = $acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'all' ); | ||
| 343 : | t // $authoriser = new mosAuthoriser($database); | ||
| 344 : | t // $editAllComponents = $authoriser->checkPermission('mosUser', $my->id, 'edit', 'editAllComponents', 0); | ||
| 345 : | t // special handling for components module | ||
| 346 : | t if ( $module->module != 'mod_components' || ( $module->module == 'mod_components' && $editAllComponents ) ) { | ||
| 347 : | csouza | 266 | $tabs->startTab( T_($module->title), 'module' . $module->id ); |
| 348 : | counterpoi | 126 | t if ( $module->module == '' ) mosLoadCustomModule( $module, $params ); |
| 349 : | t else mosLoadAdminModule( substr( $module->module, 4 ), $params ); | ||
| 350 : | t $tabs->endTab(); | ||
| 351 : | t } | ||
| 352 : | t } | ||
| 353 : | t $tabs->endPane(); | ||
| 354 : | t break; | ||
| 355 : | t case 2: | ||
| 356 : | t // Div'd | ||
| 357 : | t foreach ($modules as $module) { | ||
| 358 : | t $params =& new mosParameters( $module->params ); | ||
| 359 : | t echo '<div>'; | ||
| 360 : | t if ( $module->module == '' ) mosLoadCustomModule( $module, $params ); | ||
| 361 : | t else mosLoadAdminModule( substr( $module->module, 4 ), $params ); | ||
| 362 : | t echo '</div>'; | ||
| 363 : | t } | ||
| 364 : | t break; | ||
| 365 : | t } | ||
| 366 : | t } | ||
| 367 : | t | ||
| 368 : | t | ||
| 369 : | t } | ||
| 370 : | t | ||
| 371 : | t /** | ||
| 372 : | t * Module database table class | ||
| 373 : | t * @package Mambo | ||
| 374 : | t */ | ||
| 375 : | t class mosModule extends mosDBTable { | ||
| 376 : | t /** @var int Primary key */ | ||
| 377 : | t var $id=null; | ||
| 378 : | t /** @var string */ | ||
| 379 : | t var $title=null; | ||
| 380 : | t /** @var string */ | ||
| 381 : | t var $showtitle=null; | ||
| 382 : | t /** @var int */ | ||
| 383 : | t var $content=null; | ||
| 384 : | t /** @var int */ | ||
| 385 : | t var $ordering=null; | ||
| 386 : | t /** @var string */ | ||
| 387 : | t var $position=null; | ||
| 388 : | t /** @var boolean */ | ||
| 389 : | t var $checked_out=null; | ||
| 390 : | t /** @var time */ | ||
| 391 : | t var $checked_out_time=null; | ||
| 392 : | t /** @var boolean */ | ||
| 393 : | t var $published=null; | ||
| 394 : | t /** @var string */ | ||
| 395 : | t var $module=null; | ||
| 396 : | t /** @var int */ | ||
| 397 : | t var $numnews=null; | ||
| 398 : | t /** @var int */ | ||
| 399 : | t var $access=null; | ||
| 400 : | t /** @var string */ | ||
| 401 : | t var $params=null; | ||
| 402 : | t /** @var string */ | ||
| 403 : | t var $iscore=null; | ||
| 404 : | t /** @var string */ | ||
| 405 : | t var $client_id=null; | ||
| 406 : | t | ||
| 407 : | t /** | ||
| 408 : | t * @param database A database connector object | ||
| 409 : | t */ | ||
| 410 : | t function mosModule( &$db ) { | ||
| 411 : | t $this->mosDBTable( '#__modules', 'id', $db ); | ||
| 412 : | t } | ||
| 413 : | t // overloaded check function | ||
| 414 : | t function check() { | ||
| 415 : | t // check for valid name | ||
| 416 : | t if (trim( $this->title ) == '') { | ||
| 417 : | csouza | 149 | $this->_error = T_('Your Module must contain a title.'); |
| 418 : | counterpoi | 126 | t return false; |
| 419 : | t } | ||
| 420 : | t | ||
| 421 : | t // limitation has been removed | ||
| 422 : | t // check for existing title | ||
| 423 : | t //$this->_db->setQuery( "SELECT id FROM #__modules" | ||
| 424 : | t //. "\nWHERE title='$this->title'" | ||
| 425 : | t //); | ||
| 426 : | t // check for module of same name | ||
| 427 : | t //$xid = intval( $this->_db->loadResult() ); | ||
| 428 : | t //if ($xid && $xid != intval( $this->id )) { | ||
| 429 : | t // $this->_error = "There is a module already with that name, please try again."; | ||
| 430 : | t // return false; | ||
| 431 : | t //} | ||
| 432 : | t return true; | ||
| 433 : | t } | ||
| 434 : | t } | ||
| 435 : | t | ||
| 436 : | t ?> |
| ViewVC Help | |
| Powered by ViewVC 1.0.0 |
Web Hosting provided by Network Redux.

