📄 comment.php
字号:
$limit = $start = 0;
$sql = 'SELECT * FROM '.$this->db->prefix('xoopscomments');
if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
$sql .= ' '.$criteria->renderWhere();
$sort = ($criteria->getSort() != '') ? $criteria->getSort() : 'com_id';
$sql .= ' ORDER BY '.$sort.' '.$criteria->getOrder();
$limit = $criteria->getLimit();
$start = $criteria->getStart();
}
$result = $this->db->query($sql, $limit, $start);
if (!$result) {
return $ret;
}
while ($myrow = $this->db->fetchArray($result)) {
$comment = new XoopsComment();
$comment->assignVars($myrow);
if (!$id_as_key) {
$ret[] =& $comment;
} else {
$ret[$myrow['com_id']] =& $comment;
}
unset($comment);
}
return $ret;
}
/**
* Count Comments
*
* @param object $criteria {@link CriteriaElement}
*
* @return int Count
**/
function getCount($criteria = null)
{
$sql = 'SELECT COUNT(*) FROM '.$this->db->prefix('xoopscomments');
if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
$sql .= ' '.$criteria->renderWhere();
}
if (!$result =& $this->db->query($sql)) {
return 0;
}
list($count) = $this->db->fetchRow($result);
return $count;
}
/**
* Delete multiple comments
*
* @param object $criteria {@link CriteriaElement}
*
* @return bool
**/
function deleteAll($criteria = null)
{
$sql = 'DELETE FROM '.$this->db->prefix('xoopscomments');
if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
$sql .= ' '.$criteria->renderWhere();
}
if (!$result = $this->db->query($sql)) {
return false;
}
return true;
}
/**
* Get a list of comments
*
* @param object $criteria {@link CriteriaElement}
*
* @return array Array of raw database records
**/
function getList($criteria = null)
{
$comments = $this->getObjects($criteria, true);
$ret = array();
foreach (array_keys($comments) as $i) {
$ret[$i] = $comments[$i]->getVar('com_title');
}
return $ret;
}
/**
* Retrieves comments for an item
*
* @param int $module_id Module ID
* @param int $item_id Item ID
* @param string $order Sort order
* @param int $status Status of the comment
* @param int $limit Max num of comments to retrieve
* @param int $start Start offset
*
* @return array Array of {@link XoopsComment} objects
**/
function getByItemId($module_id, $item_id, $order = null, $status = null, $limit = null, $start = 0)
{
$criteria = new CriteriaCompo(new Criteria('com_modid', intval($module_id)));
$criteria->add(new Criteria('com_itemid', intval($item_id)));
if (isset($status)) {
$criteria->add(new Criteria('com_status', intval($status)));
}
if (isset($order)) {
$criteria->setOrder($order);
}
if (isset($limit)) {
$criteria->setLimit($limit);
$criteria->setStart($start);
}
return $this->getObjects($criteria);
}
/**
* Gets total number of comments for an item
*
* @param int $module_id Module ID
* @param int $item_id Item ID
* @param int $status Status of the comment
*
* @return array Array of {@link XoopsComment} objects
**/
function getCountByItemId($module_id, $item_id, $status = null)
{
$criteria = new CriteriaCompo(new Criteria('com_modid', intval($module_id)));
$criteria->add(new Criteria('com_itemid', intval($item_id)));
if (isset($status)) {
$criteria->add(new Criteria('com_status', intval($status)));
}
return $this->getCount($criteria);
}
/**
* Get the top {@link XoopsComment}s
*
* @param int $module_id
* @param int $item_id
* @param strint $order
* @param int $status
*
* @return array Array of {@link XoopsComment} objects
**/
function getTopComments($module_id, $item_id, $order, $status = null)
{
$criteria = new CriteriaCompo(new Criteria('com_modid', intval($module_id)));
$criteria->add(new Criteria('com_itemid', intval($item_id)));
$criteria->add(new Criteria('com_pid', 0));
if (isset($status)) {
$criteria->add(new Criteria('com_status', intval($status)));
}
$criteria->setOrder($order);
return $this->getObjects($criteria);
}
/**
* Retrieve a whole thread
*
* @param int $comment_rootid
* @param int $comment_id
* @param int $status
*
* @return array Array of {@link XoopsComment} objects
**/
function getThread($comment_rootid, $comment_id, $status = null)
{
$criteria = new CriteriaCompo(new Criteria('com_rootid', intval($comment_rootid)));
$criteria->add(new Criteria('com_id', intval($comment_id), '>='));
if (isset($status)) {
$criteria->add(new Criteria('com_status', intval($status)));
}
return $this->getObjects($criteria);
}
/**
* Update
*
* @param object &$comment {@link XoopsComment} object
* @param string $field_name Name of the field
* @param mixed $field_value Value to write
*
* @return bool
**/
function updateByField(&$comment, $field_name, $field_value)
{
$comment->unsetNew();
$comment->setVar($field_name, $field_value);
return $this->insert($comment);
}
/**
* Delete all comments for one whole module
*
* @param int $module_id ID of the module
* @return bool
**/
function deleteByModule($module_id)
{
return $this->deleteAll(new Criteria('com_modid', intval($module_id)));
}
/**
* Change a value in multiple comments
*
* @param string $fieldname Name of the field
* @param string $fieldvalue Value to write
* @param object $criteria {@link CriteriaElement}
*
* @return bool
**/
/*
function updateAll($fieldname, $fieldvalue, $criteria = null)
{
$set_clause = is_numeric($fieldvalue) ? $filedname.' = '.$fieldvalue : $filedname.' = '.$this->db->quoteString($fieldvalue);
$sql = 'UPDATE '.$this->db->prefix('xoopscomments').' SET '.$set_clause;
if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
$sql .= ' '.$criteria->renderWhere();
}
if (!$result = $this->db->query($sql)) {
return false;
}
return true;
}
*/
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -