Annotation of /mambo/branches/4.6/components/com_content/content.class.php
Parent Directory
|
Revision Log
Revision 138 - (view) (download)
| 1 : | counterpoi | 89 | t <?php |
| 2 : | t | ||
| 3 : | counterpoi | 99 | t /** |
| 4 : | t * Category database table class | ||
| 5 : | t * @package Mambo | ||
| 6 : | t */ | ||
| 7 : | t class mosCategory extends mosDBTable { | ||
| 8 : | t /** @var int Primary key */ | ||
| 9 : | t var $id=null; | ||
| 10 : | t /** @var string The menu title for the Category (a short name)*/ | ||
| 11 : | t var $title=null; | ||
| 12 : | t /** @var string The full name for the Category*/ | ||
| 13 : | t var $name=null; | ||
| 14 : | t /** @var string */ | ||
| 15 : | t var $image=null; | ||
| 16 : | t /** @var string */ | ||
| 17 : | t var $section=null; | ||
| 18 : | t /** @var int */ | ||
| 19 : | t var $image_position=null; | ||
| 20 : | t /** @var string */ | ||
| 21 : | t var $description=null; | ||
| 22 : | t /** @var boolean */ | ||
| 23 : | t var $published=null; | ||
| 24 : | t /** @var boolean */ | ||
| 25 : | t var $checked_out=null; | ||
| 26 : | t /** @var time */ | ||
| 27 : | t var $checked_out_time=null; | ||
| 28 : | t /** @var int */ | ||
| 29 : | t var $ordering=null; | ||
| 30 : | t /** @var int */ | ||
| 31 : | t var $access=null; | ||
| 32 : | t /** @var string */ | ||
| 33 : | t var $params=null; | ||
| 34 : | t | ||
| 35 : | t /** | ||
| 36 : | t * @param database A database connector object | ||
| 37 : | t */ | ||
| 38 : | t function mosCategory( &$db ) { | ||
| 39 : | t $this->mosDBTable( '#__categories', 'id', $db ); | ||
| 40 : | t } | ||
| 41 : | t // overloaded check function | ||
| 42 : | t function check() { | ||
| 43 : | t // check for valid name | ||
| 44 : | t if (trim( $this->title ) == '') { | ||
| 45 : | t $this->_error = "Your Category must contain a title."; | ||
| 46 : | t return false; | ||
| 47 : | t } | ||
| 48 : | t if (trim( $this->name ) == '') { | ||
| 49 : | t $this->_error = "Your Category must have a name."; | ||
| 50 : | t return false; | ||
| 51 : | t } | ||
| 52 : | t // check for existing name | ||
| 53 : | t $this->_db->setQuery( "SELECT id FROM #__categories " | ||
| 54 : | t . "\nWHERE name='".$this->name."' AND section='".$this->section."'" | ||
| 55 : | t ); | ||
| 56 : | t | ||
| 57 : | t $xid = intval( $this->_db->loadResult() ); | ||
| 58 : | t if ($xid && $xid != intval( $this->id )) { | ||
| 59 : | t $this->_error = "There is a category already with that name, please try again."; | ||
| 60 : | t return false; | ||
| 61 : | t } | ||
| 62 : | t return true; | ||
| 63 : | t } | ||
| 64 : | t } | ||
| 65 : | t | ||
| 66 : | t /** | ||
| 67 : | t * Section database table class | ||
| 68 : | t * @package Mambo | ||
| 69 : | t */ | ||
| 70 : | t class mosSection extends mosDBTable { | ||
| 71 : | t /** @var int Primary key */ | ||
| 72 : | t var $id=null; | ||
| 73 : | t /** @var string The menu title for the Section (a short name)*/ | ||
| 74 : | t var $title=null; | ||
| 75 : | t /** @var string The full name for the Section*/ | ||
| 76 : | t var $name=null; | ||
| 77 : | t /** @var string */ | ||
| 78 : | t var $image=null; | ||
| 79 : | t /** @var string */ | ||
| 80 : | t var $scope=null; | ||
| 81 : | t /** @var int */ | ||
| 82 : | t var $image_position=null; | ||
| 83 : | t /** @var string */ | ||
| 84 : | t var $description=null; | ||
| 85 : | t /** @var boolean */ | ||
| 86 : | t var $published=null; | ||
| 87 : | t /** @var boolean */ | ||
| 88 : | t var $checked_out=null; | ||
| 89 : | t /** @var time */ | ||
| 90 : | t var $checked_out_time=null; | ||
| 91 : | t /** @var int */ | ||
| 92 : | t var $ordering=null; | ||
| 93 : | t /** @var int */ | ||
| 94 : | t var $access=null; | ||
| 95 : | t /** @var string */ | ||
| 96 : | csouza | 138 | var $params=''; |
| 97 : | counterpoi | 99 | t |
| 98 : | t /** | ||
| 99 : | t * @param database A database connector object | ||
| 100 : | t */ | ||
| 101 : | t function mosSection( &$db ) { | ||
| 102 : | t $this->mosDBTable( '#__sections', 'id', $db ); | ||
| 103 : | t } | ||
| 104 : | t // overloaded check function | ||
| 105 : | t function check() { | ||
| 106 : | t // check for valid name | ||
| 107 : | t if (trim( $this->title ) == '') { | ||
| 108 : | t $this->_error = "Your Section must contain a title."; | ||
| 109 : | t return false; | ||
| 110 : | t } | ||
| 111 : | t if (trim( $this->name ) == '') { | ||
| 112 : | t $this->_error = "Your Section must have a name."; | ||
| 113 : | t return false; | ||
| 114 : | t } | ||
| 115 : | t // check for existing name | ||
| 116 : | t $this->_db->setQuery( "SELECT id FROM #__sections " | ||
| 117 : | t . "\nWHERE name='$this->name' AND scope='$this->scope'" | ||
| 118 : | t ); | ||
| 119 : | t | ||
| 120 : | t $xid = intval( $this->_db->loadResult() ); | ||
| 121 : | t if ($xid && $xid != intval( $this->id )) { | ||
| 122 : | t $this->_error = "There is a section already with that name, please try again."; | ||
| 123 : | t return false; | ||
| 124 : | t } | ||
| 125 : | t return true; | ||
| 126 : | t } | ||
| 127 : | t } | ||
| 128 : | t | ||
| 129 : | t /** | ||
| 130 : | t * Module database table class | ||
| 131 : | t * @package Mambo | ||
| 132 : | t */ | ||
| 133 : | t class mosContent extends mosDBTable { | ||
| 134 : | t /** @var int Primary key */ | ||
| 135 : | t var $id=null; | ||
| 136 : | t /** @var string */ | ||
| 137 : | t var $title=null; | ||
| 138 : | t /** @var string */ | ||
| 139 : | t var $title_alias=null; | ||
| 140 : | t /** @var string */ | ||
| 141 : | t var $introtext=null; | ||
| 142 : | t /** @var string */ | ||
| 143 : | t var $fulltext=null; | ||
| 144 : | t /** @var int */ | ||
| 145 : | t var $state=null; | ||
| 146 : | t /** @var int The id of the category section*/ | ||
| 147 : | t var $sectionid=null; | ||
| 148 : | t /** @var int DEPRECATED */ | ||
| 149 : | t var $mask=null; | ||
| 150 : | t /** @var int */ | ||
| 151 : | t var $catid=null; | ||
| 152 : | t /** @var datetime */ | ||
| 153 : | t var $created=null; | ||
| 154 : | t /** @var int User id*/ | ||
| 155 : | t var $created_by=null; | ||
| 156 : | t /** @var string An alias for the author*/ | ||
| 157 : | t var $created_by_alias=null; | ||
| 158 : | t /** @var datetime */ | ||
| 159 : | t var $modified=null; | ||
| 160 : | t /** @var int User id*/ | ||
| 161 : | t var $modified_by=null; | ||
| 162 : | t /** @var boolean */ | ||
| 163 : | t var $checked_out=null; | ||
| 164 : | t /** @var time */ | ||
| 165 : | t var $checked_out_time=null; | ||
| 166 : | t /** @var datetime */ | ||
| 167 : | t var $frontpage_up=null; | ||
| 168 : | t /** @var datetime */ | ||
| 169 : | t var $frontpage_down=null; | ||
| 170 : | t /** @var datetime */ | ||
| 171 : | t var $publish_up=null; | ||
| 172 : | t /** @var datetime */ | ||
| 173 : | t var $publish_down=null; | ||
| 174 : | t /** @var string */ | ||
| 175 : | t var $images=null; | ||
| 176 : | t /** @var string */ | ||
| 177 : | t var $urls=null; | ||
| 178 : | t /** @var string */ | ||
| 179 : | t var $attribs=null; | ||
| 180 : | t /** @var int */ | ||
| 181 : | t var $version=null; | ||
| 182 : | t /** @var int */ | ||
| 183 : | t var $parentid=null; | ||
| 184 : | t /** @var int */ | ||
| 185 : | t var $ordering=null; | ||
| 186 : | t /** @var string */ | ||
| 187 : | t var $metakey=null; | ||
| 188 : | t /** @var string */ | ||
| 189 : | t var $metadesc=null; | ||
| 190 : | t /** @var int */ | ||
| 191 : | t var $access=null; | ||
| 192 : | t /** @var int */ | ||
| 193 : | t var $hits=null; | ||
| 194 : | t | ||
| 195 : | t /** | ||
| 196 : | t * @param database A database connector object | ||
| 197 : | t */ | ||
| 198 : | t function mosContent( &$db ) { | ||
| 199 : | t $this->mosDBTable( '#__content', 'id', $db ); | ||
| 200 : | t } | ||
| 201 : | t | ||
| 202 : | t /** | ||
| 203 : | t * Validation and filtering | ||
| 204 : | t */ | ||
| 205 : | t function check() { | ||
| 206 : | t // filter malicious code | ||
| 207 : | t $ignoreList = array( 'introtext', 'fulltext' ); | ||
| 208 : | t $this->filter( $ignoreList ); | ||
| 209 : | t | ||
| 210 : | t /* | ||
| 211 : | t TODO: This filter is too rigorous, | ||
| 212 : | t need to implement more configurable solution | ||
| 213 : | t // specific filters | ||
| 214 : | t $iFilter = new InputFilter( null, null, 1, 1 ); | ||
| 215 : | t $this->introtext = trim( $iFilter->process( $this->introtext ) ); | ||
| 216 : | t $this->fulltext = trim( $iFilter->process( $this->fulltext ) ); | ||
| 217 : | t */ | ||
| 218 : | t | ||
| 219 : | t if (trim( str_replace( ' ', '', $this->fulltext ) ) == '') { | ||
| 220 : | t $this->fulltext = ''; | ||
| 221 : | t } | ||
| 222 : | t | ||
| 223 : | t return true; | ||
| 224 : | t } | ||
| 225 : | t | ||
| 226 : | t /** | ||
| 227 : | t * Converts record to XML | ||
| 228 : | t * @param boolean Map foreign keys to text values | ||
| 229 : | t */ | ||
| 230 : | t function toXML( $mapKeysToText=false ) { | ||
| 231 : | t global $database; | ||
| 232 : | t | ||
| 233 : | t if ($mapKeysToText) { | ||
| 234 : | t $query = 'SELECT name FROM #__sections WHERE id=' . $this->sectionid; | ||
| 235 : | t $database->setQuery( $query ); | ||
| 236 : | t $this->sectionid = $database->loadResult(); | ||
| 237 : | t | ||
| 238 : | t $query = 'SELECT name FROM #__categories WHERE id=' . $this->catid; | ||
| 239 : | t $database->setQuery( $query ); | ||
| 240 : | t $this->catid = $database->loadResult(); | ||
| 241 : | t | ||
| 242 : | t $query = 'SELECT name FROM #__users WHERE id=' . $this->created_by; | ||
| 243 : | t $database->setQuery( $query ); | ||
| 244 : | t $this->created_by = $database->loadResult(); | ||
| 245 : | t } | ||
| 246 : | t | ||
| 247 : | t return parent::toXML( $mapKeysToText ); | ||
| 248 : | t } | ||
| 249 : | t } | ||
| 250 : | t | ||
| 251 : | counterpoi | 89 | t class contentHandler { |
| 252 : | csouza | 138 | var $_section_limit = 250; |
| 253 : | var $_section_status = 0; | ||
| 254 : | var $_sections; | ||
| 255 : | |||
| 256 : | function &getInstance () { | ||
| 257 : | static $instance; | ||
| 258 : | if (!is_object($instance)) $instance = new contentHandler(); | ||
| 259 : | return $instance; | ||
| 260 : | } | ||
| 261 : | counterpoi | 89 | t /** |
| 262 : | t * @return number of Published Blog Sections | ||
| 263 : | t */ | ||
| 264 : | t function getBlogSectionCount( ) { | ||
| 265 : | t $menuhandler = mosMenuHandler::getInstance(); | ||
| 266 : | t if (count($menuhandler->getMenusByType('content_blog_section'))) { | ||
| 267 : | t $query = "SELECT COUNT( m.id )" | ||
| 268 : | t ."\n FROM #__content AS i" | ||
| 269 : | t ."\n LEFT JOIN #__sections AS s ON i.sectionid=s.id" | ||
| 270 : | t ."\n LEFT JOIN #__menu AS m ON m.componentid=s.id " | ||
| 271 : | t ."\n WHERE m.type='content_blog_section'" | ||
| 272 : | t ."\n AND m.published='1'" | ||
| 273 : | t ; | ||
| 274 : | t $database = mamboDatabase::getInstance(); | ||
| 275 : | t $database->setQuery( $query ); | ||
| 276 : | t $count = $database->loadResult(); | ||
| 277 : | t } | ||
| 278 : | t else $count = 0; | ||
| 279 : | t return $count; | ||
| 280 : | t } | ||
| 281 : | t | ||
| 282 : | t /** | ||
| 283 : | t * @return number of Published Blog Categories | ||
| 284 : | t */ | ||
| 285 : | t function getBlogCategoryCount( ) { | ||
| 286 : | t $menuhandler = mosMenuHandler::getInstance(); | ||
| 287 : | t if (count($menuhandler->getMenusByType('content_blog_category'))) { | ||
| 288 : | t $query = "SELECT COUNT( m.id )" | ||
| 289 : | t . "\n FROM #__content AS i" | ||
| 290 : | t . "\n LEFT JOIN #__categories AS c ON i.catid=c.id" | ||
| 291 : | t . "\n LEFT JOIN #__menu AS m ON m.componentid=c.id " | ||
| 292 : | t . "\n WHERE m.type='content_blog_category'" | ||
| 293 : | t . "\n AND m.published='1'" | ||
| 294 : | t ; | ||
| 295 : | t $database = mamboDatabase::getInstance(); | ||
| 296 : | t $database->setQuery( $query ); | ||
| 297 : | t $count = $database->loadResult(); | ||
| 298 : | t } | ||
| 299 : | t else $count = 0; | ||
| 300 : | t return $count; | ||
| 301 : | t } | ||
| 302 : | t | ||
| 303 : | t /** | ||
| 304 : | t * @return number of Published Global Blog Sections | ||
| 305 : | t */ | ||
| 306 : | t function getGlobalBlogSectionCount( ) { | ||
| 307 : | t $menuhandler = mosMenuHandler::getInstance(); | ||
| 308 : | t return $menuhandler->getGlobalBlogSectionCount(); | ||
| 309 : | t } | ||
| 310 : | t | ||
| 311 : | t /** | ||
| 312 : | t * @return number of Static Content | ||
| 313 : | t */ | ||
| 314 : | t function getStaticContentCount( ) { | ||
| 315 : | t $menuhandler = mosMenuHandler::getInstance(); | ||
| 316 : | t return $menuhandler->getMenuCount ('content_typed', 1); | ||
| 317 : | t } | ||
| 318 : | t | ||
| 319 : | t /** | ||
| 320 : | t * @return number of Content Item Links | ||
| 321 : | t */ | ||
| 322 : | t function getContentItemLinkCount( ) { | ||
| 323 : | t $menuhandler = mosMenuHandler::getInstance(); | ||
| 324 : | t return $menuhandler->getMenuCount ('content_item_link', 1); | ||
| 325 : | t } | ||
| 326 : | t | ||
| 327 : | csouza | 138 | function getItemid ($id, $typed=1, $link=1, $bs=1, $bc=1, $gbs=1) { |
| 328 : | $_Itemid = null; | ||
| 329 : | $menuhandler = mosMenuHandler::getInstance(); | ||
| 330 : | if ($typed) { | ||
| 331 : | // Search for typed link | ||
| 332 : | $_Itemid = $menuhandler->getIDByTypeLink('content_typed', "index.php?option=com_content&task=view&id=$id"); | ||
| 333 : | } | ||
| 334 : | |||
| 335 : | if ($_Itemid == null AND $link) { | ||
| 336 : | // Search for item link | ||
| 337 : | $_Itemid = $menuhandler->getIDByTypeLink('content_item_link', "index.php?option=com_content&task=view&id=$id"); | ||
| 338 : | } | ||
| 339 : | $sectionid = $this->getSection($id); | ||
| 340 : | if ($_Itemid == null) { | ||
| 341 : | // Search in sections | ||
| 342 : | $_Itemid = $menuhandler->getIDByTypeCid ('content_section', $sectionid); | ||
| 343 : | } | ||
| 344 : | if ($_Itemid == null) { | ||
| 345 : | // Search in sections | ||
| 346 : | $_Itemid = $menuhandler->getIDByTypeCid ('content_blog_section', $sectionid); | ||
| 347 : | } | ||
| 348 : | if ($_Itemid == null) { | ||
| 349 : | // Search in sections | ||
| 350 : | $_Itemid = $menuhandler->getIDByTypeCid ('content_blog_category', $sectionid); | ||
| 351 : | } | ||
| 352 : | if ($_Itemid == null AND $gbs) { | ||
| 353 : | // Search in global blog section | ||
| 354 : | $_Itemid = $menuhandler->getIDByTypeCid('content_blog_section', 0); | ||
| 355 : | } | ||
| 356 : | /* | ||
| 357 : | if ($_Itemid == '') { | ||
| 358 : | // Search in global blog category | ||
| 359 : | $this->_db->setQuery( "SELECT id " | ||
| 360 : | ."\nFROM #__menu " | ||
| 361 : | ."\nWHERE type='content_blog_category' AND published='1' AND componentid=0" ); | ||
| 362 : | $_Itemid = $this->_db->loadResult(); | ||
| 363 : | } | ||
| 364 : | */ | ||
| 365 : | if ($_Itemid) return $_Itemid; | ||
| 366 : | else return mamboCore::get('Itemid'); | ||
| 367 : | } | ||
| 368 : | |||
| 369 : | function getSection ($id) { | ||
| 370 : | $database = mamboDatabase::getInstance(); | ||
| 371 : | $limit = $this->_section_limit; | ||
| 372 : | if (!$this->_section_status) { | ||
| 373 : | $database->setQuery("SELECT i.id, i.sectionid FROM #__content AS i, #__sections AS s WHERE i.sectionid=s.id ORDER BY i.id DESC LIMIT $limit"); | ||
| 374 : | $sections = $database->loadObjectList(); | ||
| 375 : | if ($sections) { | ||
| 376 : | foreach ($sections as $section) $this->_sections[$section->id] = $section->sectionid; | ||
| 377 : | $this->_section_status = count($sections); | ||
| 378 : | } | ||
| 379 : | } | ||
| 380 : | if ($this->_section_status) { | ||
| 381 : | if (isset($this->_sections[$id])) return $this->_sections[$id]; | ||
| 382 : | if (count($this->_sections) < $limit) return 0; | ||
| 383 : | $database->setQuery("SELECT i.sectionid FROM #__content AS i, #__sections AS s WHERE i.sectionid=s.id AND i.id=$id"); | ||
| 384 : | return $database->loadResult(); | ||
| 385 : | } | ||
| 386 : | else return 0; | ||
| 387 : | } | ||
| 388 : | |||
| 389 : | counterpoi | 89 | t } |
| 390 : | counterpoi | 99 | t |
| 391 : | t ?> |
| ViewVC Help | |
| Powered by ViewVC 1.0.0 |
Web Hosting provided by Network Redux.

