diff options
Diffstat (limited to 'includes/classes/BitArticleType.php')
| -rw-r--r-- | includes/classes/BitArticleType.php | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/includes/classes/BitArticleType.php b/includes/classes/BitArticleType.php new file mode 100644 index 0000000..55f0fc9 --- /dev/null +++ b/includes/classes/BitArticleType.php @@ -0,0 +1,157 @@ +<?php +/** + * @version $Header$ + * @package articles + * + * @copyright Copyright (c) 2004-2006, bitweaver.org + * All Rights Reserved. See below for details and a complete list of authors. + * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See http://www.gnu.org/copyleft/lesser.html for details. + */ + +/** + * Required setup + */ +require_once (KERNEL_PKG_PATH."BitBase.php"); +require_once(ARTICLES_PKG_CLASS_PATH.'BitArticle.php'); + +/** + * @package articles + */ +class BitArticleType extends BitBase +{ + public $mTypeId; + + public function __construct($iTypeId = NULL) + { + $this->mTypeId = NULL; + parent::__construct(); + if ($iTypeId) { + $this->loadType($iTypeId); + } + } + + public function isValid() + { + return (@BitBase::verifyId($this->mTypeId)); + } + + public function loadType($iTypeId) + { + $ret = NULL; + + if (!$this->mTypeId) { + $this->mTypeId = $iTypeId; + } + + if ($this->mTypeId) { + $sql = "SELECT * FROM `".BIT_DB_PREFIX."article_types` WHERE `article_type_id` = ?"; + + if( $ret = $this->mDb->getRow( $sql, array( $this->mTypeId ) ) ) { + $ret['num_articles'] = $this->mDb->getOne('SELECT COUNT(*) FROM `'.BIT_DB_PREFIX.'articles` WHERE `article_type_id` = ?', array($ret['article_type_id'])); + } + } + $this->mInfo = $ret; + + return $ret; + } + + public function verify(&$iParamHash) + { + $isNewType = FALSE; + + // Validate the (optional) topic_id parameter + if (@BitBase::verifyId($iParamHash['article_type_id'])) { + $cleanHash['article_type_id'] = (int) $iParamHash['article_type_id']; + } else { + $isNewType = TRUE; + $cleanHash['article_type_id'] = NULL; + } + + if (!$isNewType) { + $cleanHash['use_ratings'] = (!empty($iParamHash['use_ratings']) ? ($iParamHash['use_ratings']) : 'n'); + $cleanHash['show_pre_publ'] = (!empty($iParamHash['show_pre_publ']) ? ($iParamHash['show_pre_publ']) : 'n'); + $cleanHash['show_post_expire'] = (!empty($iParamHash['show_post_expire']) ? ($iParamHash['show_post_expire']) : 'n'); + $cleanHash['heading_only'] = (!empty($iParamHash['heading_only']) ? ($iParamHash['heading_only']) : 'n'); + $cleanHash['allow_comments'] = (!empty($iParamHash['allow_comments']) ? ($iParamHash['allow_comments']) : 'n'); + $cleanHash['comment_can_rate_article'] = (!empty($iParamHash['comment_can_rate_article']) ? ($iParamHash['comment_can_rate_article']) : 'n'); + $cleanHash['show_image'] = (!empty($iParamHash['show_image']) ? ($iParamHash['show_image']) : 'n'); + $cleanHash['show_avatar'] = (!empty($iParamHash['show_avatar']) ? ($iParamHash['show_avatar']) : 'n'); + $cleanHash['show_author'] = (!empty($iParamHash['show_author']) ? ($iParamHash['show_author']) : 'n'); + $cleanHash['show_pubdate'] = (!empty($iParamHash['show_pubdate']) ? ($iParamHash['show_pubdate']) : 'n'); + $cleanHash['show_expdate'] = (!empty($iParamHash['show_expdate']) ? ($iParamHash['show_expdate']) : 'n'); + $cleanHash['show_reads'] = (!empty($iParamHash['show_reads']) ? ($iParamHash['show_reads']) : 'n'); + $cleanHash['show_size'] = (!empty($iParamHash['show_size']) ? ($iParamHash['show_size']) : 'n'); + $cleanHash['creator_edit'] = (!empty($iParamHash['creator_edit']) ? ($iParamHash['creator_edit']) : 'n'); + $cleanHash['type_name'] = (!empty($iParamHash['type_name']) ? ($iParamHash['type_name']) : NULL); + } else { + // Was an acceptable name given? + if (empty($iParamHash['type_name']) || ($iParamHash['type_name'] == '')) { + $this->mErrors['type_name'] = tra("Invalid or blank article type name supplied"); + } else { + $cleanHash['type_name'] = $iParamHash['type_name']; + } + } + + $iParamHash = $cleanHash; + return(count($this->mErrors) == 0); + } + + public function storeType(&$iParamHash) + { + global $gLibertySystem; + global $gBitUser; + + if ($this->verify($iParamHash)) { + if (!$iParamHash['article_type_id']) { + if (empty($this->mTopicId)) { + $typeId = $this->mDb->GenID('article_types_id_seq'); + } else { + $typeId = $this->mTopicId; + } + } else { + $typeId = $iParamHash['article_type_id']; + } + + if ($iParamHash['article_type_id']) { + $this->mDb->associateUpdate(BIT_DB_PREFIX."article_types", $iParamHash, array( 'article_type_id'=> $iParamHash['article_type_id'])); + } else { + $iParamHash['article_type_id'] = $typeId; + $this->mDb->associateInsert(BIT_DB_PREFIX."article_types", $iParamHash); + } + } + $this->mTypeId = $iParamHash['article_type_id']; + } + + public function removeType($iTypeId = NULL) + { + if (!$iTypeId) { + if (!$this->mTypeId) { + $this->mErrors[] = tra("Invalid type id given"); + return NULL; + } else { + $iTypeId = $this->mTypeId; + } + } else { + $iTypeId = (int)($iTypeId); + } + + $sql = "DELETE FROM `".BIT_DB_PREFIX."article_types` WHERE `article_type_id` = ?"; + $rs = $this->mDb->query($sql, array($iTypeId)); + } + + public static function getTypeList() + { + global $gBitSystem; + + $query = "SELECT * FROM `" . BIT_DB_PREFIX . "article_types`"; + $result = $gBitSystem->mDb->query( $query, array() ); + $ret = array(); + + while ( $res = $result->fetchRow() ) { + $res['article_cnt'] = $gBitSystem->mDb->getOne( "select count(*) from `" . BIT_DB_PREFIX . "articles` where `article_type_id` = ?", array( $res['article_type_id'] ) ); + $ret[] = $res; + } + + return $ret; + } +} |
