コード例 #1
0
 /**
  * Create the criteria that will be used by getFriendships
  *
  * @param int $start to which record to start
  * @param int $limit max friendships to display
  * @param int $friend1_uid only the friendship of this user will be returned
  * @param int $friend2_uid if specifid, the friendship of these two users will be returned.
  * @param int $status only get friendships with the specified status
  * @return icms_db_criteria_Compo $criteria
  */
 private function getFriendshipsCriteria($start = 0, $limit = 0, $friend1_uid = 0, $friend2_uid = 0, $status = 0)
 {
     $criteria = new icms_db_criteria_Compo();
     if ($start) {
         $criteria->setStart((int) $start);
     }
     if ($limit) {
         $criteria->setLimit((int) $limit);
     }
     $criteria->setSort('creation_time');
     $criteria->setOrder('DESC');
     if ($status == PROFILE_FRIENDSHIP_STATUS_PENDING && $friend2_uid) {
         $criteria->add(new icms_db_criteria_Item('status', (int) $status));
         $criteria->add(new icms_db_criteria_Item('friend2_uid', (int) $friend2_uid));
     } else {
         if ($status) {
             $criteria->add(new icms_db_criteria_Item('status', (int) $status));
         }
         if ($friend2_uid > 0) {
             $criteria->add(new icms_db_criteria_Item('friend1_uid', (int) $friend1_uid));
             $criteria->add(new icms_db_criteria_Item('friend2_uid', (int) $friend2_uid));
             $criteria->add(new icms_db_criteria_Item('friend1_uid', (int) $friend2_uid), 'OR');
             $criteria->add(new icms_db_criteria_Item('friend2_uid', (int) $friend1_uid));
         } elseif ($friend1_uid > 0) {
             $criteria->add(new icms_db_criteria_Item('friend1_uid', (int) $friend1_uid));
             $criteria->add(new icms_db_criteria_Item('friend2_uid', (int) $friend1_uid), 'OR');
         }
         if ($status) {
             $criteria->add(new icms_db_criteria_Item('status', (int) $status));
         }
     }
     return $criteria;
 }
コード例 #2
0
ファイル: Handler.php プロジェクト: LeeGlendenning/formulize
 /**
  * Return all categories in an array
  *
  * @param int $parentid
  * @param string $perm_name
  * @param string $sort
  * @param string $order
  * @return array
  */
 public function getAllCategoriesArray($parentid = 0, $perm_name = false, $sort = 'parentid', $order = 'ASC')
 {
     if (!$this->allCategoriesObj) {
         $criteria = new icms_db_criteria_Compo();
         $criteria->setSort($sort);
         $criteria->setOrder($order);
         $userIsAdmin = is_object(icms::$user) && icms::$user->isAdmin();
         if ($perm_name && !$userIsAdmin) {
             if (!$this->setGrantedObjectsCriteria($criteria, $perm_name)) {
                 return false;
             }
         }
         $this->allCategoriesObj =& $this->getObjects($criteria, 'parentid');
     }
     $ret = array();
     if (isset($this->allCategoriesObj[$parentid])) {
         foreach ($this->allCategoriesObj[$parentid] as $categoryid => $categoryObj) {
             $ret[$categoryid]['self'] =& $categoryObj->toArray();
             if (isset($this->allCategoriesObj[$categoryid])) {
                 $ret[$categoryid]['sub'] =& $this->getAllCategoriesArray($categoryid);
                 $ret[$categoryid]['subcatscount'] = count($ret[$categoryid]['sub']);
             }
         }
     }
     return $ret;
 }
コード例 #3
0
 /**
  * Create the criteria that will be used by getPictures and getPicturesCount
  *
  * @param int $start to which record to start
  * @param int $limit limit of pictures to return
  * @param int $uid_owner if specifid, only the pictures of this user will be returned
  * @param int $picture_id ID of a single picture to retrieve
  * @return icms_db_criteria_Compo $criteria
  */
 private function getPicturesCriteria($start = 0, $limit = 0, $uid_owner = false, $picture_id = false)
 {
     $module = icms::handler("icms_module")->getByDirname(basename(dirname(dirname(__FILE__))), TRUE);
     $criteria = new icms_db_criteria_Compo();
     if ($start) {
         $criteria->setStart((int) $start);
     }
     if ($limit) {
         $criteria->setLimit((int) $limit);
     }
     $criteria->setSort('creation_time');
     if ($module->config['images_order']) {
         $criteria->setOrder('DESC');
     }
     if (is_object(icms::$user)) {
         if (icms::$user->getVar('uid') != $uid_owner && !icms::$user->isAdmin()) {
             $criteria->add(new icms_db_criteria_Item('private', 0));
         }
     } else {
         $criteria->add(new icms_db_criteria_Item('private', 0));
     }
     if ($uid_owner) {
         $criteria->add(new icms_db_criteria_Item('uid_owner', (int) $uid_owner));
     }
     if ($picture_id) {
         $criteria->add(new icms_db_criteria_Item('pictures_id', (int) $picture_id));
     }
     return $criteria;
 }
コード例 #4
0
 /**
  * Create the criteria that will be used by getAudios and getAudioCount
  *
  * @param int $start to which record to start
  * @param int $limit limit of audio to return
  * @param int $uid_owner if specifid, only the audio of this user will be returned
  * @param int $audio_id ID of a single audio to retrieve
  * @return icms_db_criteria_Compo $criteria
  */
 private function getAudioCriteria($start = 0, $limit = 0, $uid_owner = false, $audio_id = false)
 {
     $criteria = new icms_db_criteria_Compo();
     if ($start) {
         $criteria->setStart((int) $start);
     }
     if ($limit) {
         $criteria->setLimit((int) $limit);
     }
     if ($uid_owner) {
         $criteria->add(new icms_db_criteria_Item('uid_owner', (int) $uid_owner));
     }
     if ($audio_id) {
         $criteria->add(new icms_db_criteria_Item('audio_id', (int) $audio_id));
     }
     $criteria->setSort('creation_time');
     $criteria->setOrder('DESC');
     return $criteria;
 }
コード例 #5
0
 /**
  * Create the criteria that will be used by getTopics
  *
  * @param int $start to which record to start
  * @param int $limit limit of topics to return
  * @param int $topic_id id of the topic
  * @param int $tribes_id id of the tribe the topic belongs to
  * @return icms_db_criteria_Compo $criteria
  */
 private function getTopicCriteria($start = 0, $limit = 0, $topic_id = false, $tribes_id = false)
 {
     $criteria = new icms_db_criteria_Compo();
     if ($start) {
         $criteria->setStart((int) $start);
     }
     if ($limit) {
         $criteria->setLimit((int) $limit);
     }
     $criteria->setSort('last_post_time');
     $criteria->setOrder('DESC');
     if ($topic_id) {
         $criteria->add(new icms_db_criteria_Item('topic_id', (int) $topic_id));
     }
     if ($tribes_id) {
         $criteria->add(new icms_db_criteria_Item('tribes_id', (int) $tribes_id));
     }
     return $criteria;
 }
コード例 #6
0
ファイル: User.php プロジェクト: nao-pon/impresscms
 /**
  * Constructor
  *
  * @param	string	$caption
  * @param	string	$name
  * @param	mixed	$value			Pre-selected value (or array of them).
  *									For an item with massive members, such as "Registered Users", "$value" should be used to store selected temporary users only instead of all members of that item
  * @param	bool	$include_anon	Include user "anonymous"?
  * @param	int		$size			Number or rows. "1" makes a drop-down-list.
  * @param	bool	$multiple	   Allow multiple selections?
  */
 public function __construct($caption, $name, $include_anon = FALSE, $value = NULL, $size = 1, $multiple = FALSE, $showremovedusers = FALSE, $justremovedusers = FALSE)
 {
     $limit = 200;
     $select_element = new icms_form_elements_Select('', $name, $value, $size, $multiple);
     if ($include_anon) {
         $select_element->addOption(0, $GLOBALS['icmsConfig']['anonymous']);
     }
     $member_handler = icms::handler('icms_member');
     $user_count = $member_handler->getUserCount();
     $value = is_array($value) ? $value : (empty($value) ? array() : array($value));
     if ($user_count > $limit && count($value) > 0) {
         $criteria = new icms_db_criteria_Compo(new icms_db_criteria_Item("uid", "(" . implode(",", $value) . ")", "IN"));
     } else {
         $criteria = new icms_db_criteria_Compo();
         $criteria->setLimit($limit);
     }
     $criteria->setSort('uname');
     if (!$showremovedusers) {
         $criteria->add(new icms_db_criteria_Item('level', '-1', '!='));
     } elseif ($showremovedusers && $justremovedusers) {
         $criteria->add(new icms_db_criteria_Item('level', '-1'));
     }
     $criteria->setOrder('ASC');
     $users = $member_handler->getUserList($criteria);
     $select_element->addOptionArray($users);
     if ($user_count <= $limit) {
         parent::__construct($caption, "", $name);
         $this->addElement($select_element);
         return;
     }
     icms_loadLanguageFile('core', 'findusers');
     $js_addusers = "<script type=\"text/javascript\">\r\n\t\t\t\t\tfunction addusers(opts){\r\n\t\t\t\t\t\tvar num = opts.substring(0, opts.indexOf(\":\"));\r\n\t\t\t\t\t\topts = opts.substring(opts.indexOf(\":\")+1, opts.length);\r\n\t\t\t\t\t\tvar sel = xoopsGetElementById(\"" . $name . ($multiple ? "[]" : "") . "\");\r\n\t\t\t\t\t\tvar arr = new Array(num);\r\n\t\t\t\t\t\tfor (var n=0; n < num; n++) {\r\n\t\t\t\t\t\t\tvar nm = opts.substring(0, opts.indexOf(\":\"));\r\n\t\t\t\t\t\t\topts = opts.substring(opts.indexOf(\":\")+1, opts.length);\r\n\t\t\t\t\t\t\tvar val = opts.substring(0, opts.indexOf(\":\"));\r\n\t\t\t\t\t\t\topts = opts.substring(opts.indexOf(\":\")+1, opts.length);\r\n\t\t\t\t\t\t\tvar txt = opts.substring(0, nm - val.length);\r\n\t\t\t\t\t\t\topts = opts.substring(nm - val.length, opts.length);\r\n\t\t\t\t\t\t\tvar added = false;\r\n\t\t\t\t\t\t\tfor (var k = 0; k < sel.options.length; k++) {\r\n\t\t\t\t\t\t\t\tif (sel.options[k].value == val){\r\n\t\t\t\t\t\t\t\t\tadded = true;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (added == false) {\r\n\t\t\t\t\t\t\t\tsel.options[k] = new Option(txt, val);\r\n\t\t\t\t\t\t\t\tsel.options[k].selected = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t</script>";
     $token = icms::$security->createToken();
     $action_tray = new icms_form_elements_Tray("", " | ");
     $action_tray->addElement(new icms_form_elements_Label('', "<a href='#' onclick='var sel = xoopsGetElementById(\"" . $name . ($multiple ? "[]" : "") . "\");for (var i = sel.options.length-1; i >= 0; i--) {if (!sel.options[i].selected) {sel.options[i] = null;}}; return false;'>" . _MA_USER_REMOVE . "</a>"));
     $action_tray->addElement(new icms_form_elements_Label('', "<a href='#' onclick='openWithSelfMain(\"" . ICMS_URL . "/include/findusers.php?target={$name}&amp;multiple={$multiple}&amp;token={$token}\", \"userselect\", 800, 600, null); return false;' >" . _MA_USER_MORE . "</a>" . $js_addusers));
     parent::__construct($caption, '<br /><br />', $name);
     $this->addElement($select_element);
     $this->addElement($action_tray);
 }
コード例 #7
0
 /**
  * Create the criteria that will be used by getPosts
  *
  * @param int $start to which record to start
  * @param int $limit limit of posts to return
  * @param int $post_id id of the post
  * @param int $topic_id id of the topic the post belongs to
  * @param int $tribes_id id of the tribe the topic / post belongs to
  * @param string $order sort order for the result list
  * @return icms_db_criteria_Compo $criteria
  */
 private function getPostCriteria($start = 0, $limit = 0, $post_id = false, $topic_id = false, $tribes_id = false, $order = 'ASC')
 {
     $criteria = new icms_db_criteria_Compo();
     if ($start) {
         $criteria->setStart((int) $start);
     }
     if ($limit) {
         $criteria->setLimit((int) $limit);
     }
     $criteria->setSort('post_id');
     $criteria->setOrder($order);
     if ($post_id) {
         $criteria->add(new icms_db_criteria_Item('post_id', (int) $post_id));
     }
     if ($topic_id) {
         $criteria->add(new icms_db_criteria_Item('topic_id', (int) $topic_id));
     }
     if ($tribes_id) {
         $criteria->add(new icms_db_criteria_Item('tribes_id', (int) $tribes_id));
     }
     return $criteria;
 }
コード例 #8
0
 /**
  * Create the criteria that will be used by getVisitors
  *
  * @param int $start to which record to start
  * @param int $limit limit of tribes to return
  * @param int $uid_owner if specifid, only the tribes of this user will be returned
  * @param int $uid_visitor if specified, only the records with the specified user as a visitor will be returned
  * @param int $visit_time if specified, only records with a visit time greater than the specified on will be returned
  * @return icms_db_criteria_Compo $criteria
  */
 private function getVisitorsCriteria($start = 0, $limit = 0, $uid_owner = false, $uid_visitor = false, $visit_time = false)
 {
     $criteria = new icms_db_criteria_Compo();
     if ($start) {
         $criteria->setStart((int) $start);
     }
     if ($limit) {
         $criteria->setLimit((int) $limit);
     }
     $criteria->setSort('visit_time');
     $criteria->setOrder('DESC');
     if ($uid_owner) {
         $criteria->add(new icms_db_criteria_Item('uid_owner', (int) $uid_owner));
     }
     if ($uid_visitor) {
         $criteria->add(new icms_db_criteria_Item('uid_visitor', (int) $uid_visitor));
     }
     if ($visit_time) {
         $criteria->add(new icms_db_criteria_Item('visit_time', $visit_time, '>='));
     }
     return $criteria;
 }
コード例 #9
0
ファイル: Handler.php プロジェクト: LeeGlendenning/formulize
 /**
  * Get the top {@link icms_data_comment_Object}s
  *
  * @param   int     $module_id
  * @param   int     $item_id
  * @param   strint  $order
  * @param   int     $status
  *
  * @return  array   Array of {@link icms_data_comment_Object} objects
  **/
 public function getTopComments($module_id, $item_id, $order, $status = null)
 {
     $criteria = new icms_db_criteria_Compo(new icms_db_criteria_Item('com_modid', (int) $module_id));
     $criteria->add(new icms_db_criteria_Item('com_itemid', (int) $item_id));
     $criteria->add(new icms_db_criteria_Item('com_pid', 0));
     if (isset($status)) {
         $criteria->add(new icms_db_criteria_Item('com_status', (int) $status));
     }
     $criteria->setOrder($order);
     return $this->getObjects($criteria);
 }
コード例 #10
0
ファイル: blocksadmin.php プロジェクト: nao-pon/impresscms
	public function downWeight($bid) {
		$blockObj = $this->get($bid);
		$criteria = new icms_db_criteria_Compo();
		$criteria->setLimit(1);
		$criteria->setSort('weight');
		$criteria->setOrder('ASC');
		$criteria->add(new icms_db_criteria_Item('side', $blockObj->vars['side']['value']));
		$criteria->add(new icms_db_criteria_Item('weight', $blockObj->getVar('weight'), '>'));
		$sideBlocks = $this->getObjects($criteria);
		$weight = (is_array($sideBlocks) && count($sideBlocks) == 1) ? $sideBlocks[0]->getVar('weight') + 1 : $blockObj->getVar('weight') + 1;
		$blockObj->setVar('weight', $weight);
		$this->insert($blockObj, TRUE);
	}
コード例 #11
0
ファイル: users.php プロジェクト: nao-pon/impresscms
/**
 * Displays user information form
 * 
 */
function displayUsers() {
	global $icmsConfig, $icmsModule, $icmsConfigUser;
	$userstart = isset($_GET['userstart']) ? (int) $_GET['userstart'] : 0;

	icms_cp_header();
	echo '<div class="CPbigTitle" style="background-image: url(' . ICMS_MODULES_URL . '/system/admin/users/images/users_big.png)">' . _MD_AM_USER . '</div><br />';
	$member_handler = icms::handler('icms_member');
	$usercount = $member_handler->getUserCount(new icms_db_criteria_Item('level', '-1', '!='));
	$nav = new icms_view_PageNav($usercount, 200, $userstart, 'userstart', 'fct=users');
	$editform = new icms_form_Theme(_AM_EDEUSER, 'edituser', 'admin.php');
	$user_select = new icms_form_elements_Select('', 'uid');
	$criteria = new icms_db_criteria_Compo();
	$criteria->add(new icms_db_criteria_Item('level', '-1', '!='));
	$criteria->setSort('uname');
	$criteria->setOrder('ASC');
	$criteria->setLimit(200);
	$criteria->setStart($userstart);
	$user_select->addOptionArray($member_handler->getUserList($criteria));
	$user_select_tray = new icms_form_elements_Tray(_AM_NICKNAME, '<br />');
	$user_select_tray->addElement($user_select);
	$user_select_nav = new icms_form_elements_Label('', $nav->renderNav(4));
	$user_select_tray->addElement($user_select_nav);
	
	$op_select = new icms_form_elements_Select('', 'op');
	$op_select->addOptionArray(array('modifyUser'=>_AM_MODIFYUSER, 'delUser'=>_AM_DELUSER));
	
	$submit_button = new icms_form_elements_Button('', 'submit', _AM_GO, 'submit');
	$fct_hidden = new icms_form_elements_Hidden('fct', 'users');
	$editform->addElement($user_select_tray);
	$editform->addElement($op_select);
	$editform->addElement($submit_button);
	$editform->addElement($fct_hidden);
	$editform->display();

	echo "<br />\n";
	$usercount = $member_handler->getUserCount(new icms_db_criteria_Item('level', '-1'));
	$nav = new icms_view_PageNav($usercount, 200, $userstart, 'userstart', 'fct=users');
	$editform = new icms_form_Theme(_AM_REMOVED_USERS, 'edituser', 'admin.php');
	$user_select = new icms_form_elements_Select('', 'uid');
	$criteria = new icms_db_criteria_Compo();
	$criteria->add(new icms_db_criteria_Item('level', '-1'));
	$criteria->setSort('uname');
	$criteria->setOrder('ASC');
	$criteria->setLimit(200);
	$criteria->setStart($userstart);
	$user_select->addOptionArray($member_handler->getUserList($criteria));
	$user_select_tray = new icms_form_elements_Tray(_AM_NICKNAME, '<br />');
	$user_select_tray->addElement($user_select);
	$user_select_nav = new icms_form_elements_Label('', $nav->renderNav(4));
	$user_select_tray->addElement($user_select_nav);

	$op_select = new icms_form_elements_Select('', 'op');
	$op_select->addOptionArray(array('modifyUser'=>_AM_MODIFYUSER));

	$submit_button = new icms_form_elements_Button('', 'submit', _AM_GO, 'submit');
	$fct_hidden = new icms_form_elements_Hidden('fct', 'users');
	$editform->addElement($user_select_tray);
	$editform->addElement($op_select);
	$editform->addElement($submit_button);
	$editform->addElement($fct_hidden);
	$editform->display();

	echo "<br />\n";
	$uid_value = '';
	$uname_value = '';
	$login_name_value = '';
	$name_value = '';
	$email_value = '';
	$email_cbox_value = 0;
	$openid_value = '';
	$openid_cbox_value = 0;
	$url_value = '';
	$timezone_value = $icmsConfig['default_TZ'];
	$icq_value = '';
	$aim_value = '';
	$yim_value = '';
	$msnm_value = '';
	$location_value = '';
	$occ_value = '';
	$interest_value = '';
	$sig_value = '';
	$sig_cbox_value = 0;
	$umode_value = $icmsConfig['com_mode'];
	$uorder_value = $icmsConfig['com_order'];

	include_once ICMS_INCLUDE_PATH .'/notification_constants.php';
	$notify_method_value = XOOPS_NOTIFICATION_METHOD_PM;
	$notify_mode_value = XOOPS_NOTIFICATION_MODE_SENDALWAYS;
	$bio_value = '';
	$rank_value = 0;
	$mailok_value = 0;
	$pass_expired_value = 0;
	$op_value = 'addUser';
	$form_title = _AM_ADDUSER;
	$form_isedit = FALSE;
	$language_value = $icmsConfig['language'];
	$groups = array(XOOPS_GROUP_USERS);
	include ICMS_MODULES_PATH . '/system/admin/users/userform.php';
	icms_cp_footer();
}
コード例 #12
0
 /**
  * create list of categories for table filter
  *
  * @return array list of categories
  */
 public function getCategoriesArray()
 {
     if (!$this->_categoriesArray) {
         $profile_category_handler = icms_getModuleHandler('category', basename(dirname(dirname(__FILE__))), 'profile');
         $criteria = new icms_db_criteria_Compo();
         $criteria->setSort('cat_title');
         $criteria->setOrder('ASC');
         $categories = $profile_category_handler->getObjects($criteria);
         foreach ($categories as $category) {
             $this->_categoriesArray[$category->getVar('catid')] = $category->getVar('cat_title');
         }
     }
     return $this->_categoriesArray;
 }
コード例 #13
0
 /**
  * Get all Tribes ordered by title
  *
  * @return array of all tribes orderd by title
  */
 public function getAllTribes()
 {
     if (is_array($this->_allTribes)) {
         return $this->_allTribes;
     }
     $this->_allTribes = array();
     $criteria = new icms_db_criteria_Compo();
     $criteria->setSort('title');
     $criteria->setOrder('ASC');
     $tribes = $this->getObjects($criteria, true, false);
     foreach ($tribes as $tribe) {
         $this->_allTribes[$tribe['tribes_id']] = $tribe['title'];
     }
     return $this->_allTribes;
 }
コード例 #14
0
/**
 * Gets the content pages
 *
 * @param bool $showsubs Show subitems related to this item (recursive!)
 * @param string $sort Order the pages by weight
 * @param string $order The sort direction
 * @param int $content_id The content ID
 * @param int $relateds Show related items
 * @return array $pages The array with pages in a certain weight, order and with related id's
 */
function getPages($showsubs = true, $sort = 'content_weight', $order = 'ASC', $content_id = 0, $relateds = 0)
{
    $groups = is_object(icms::$user) ? icms::$user->getGroups() : array(ICMS_GROUP_ANONYMOUS);
    $uid = is_object(icms::$user) ? icms::$user->getVar('uid') : 0;
    $content_handler =& icms_getModuleHandler('content', basename(dirname(dirname(__FILE__))), 'content');
    $module = icms::handler('icms_module')->getByDirname(basename(dirname(dirname(__FILE__))));
    $criteria = new icms_db_criteria_Compo(new icms_db_criteria_Item('content_status', 1));
    if (!$relateds) {
        $criteria->add(new icms_db_criteria_Item('content_pid', $content_id));
    } else {
        $criteria->add(new icms_db_criteria_Item('short_url', $content_id, 'LIKE'));
        $criteria->add(new icms_db_criteria_Item('content_id', $content_id), 'OR');
    }
    $crit = new icms_db_criteria_Compo(new icms_db_criteria_Item('content_visibility', 1));
    $crit->add(new icms_db_criteria_Item('content_visibility', 3), 'OR');
    $criteria->add($crit);
    $criteria->setSort($sort);
    $criteria->setOrder($order);
    $impress_content = $content_handler->getObjects($criteria);
    $i = 0;
    $pages = array();
    foreach ($impress_content as $content) {
        if (icms::handler('icms_member_groupperm')->checkRight('content_read', $content->getVar('content_id'), $groups, $module->getVar('mid'))) {
            $pages[$i]['title'] = $content->getVar('content_title');
            $pages[$i]['menu'] = $content_handler->makeLink($content);
            if ($showsubs) {
                $subs = getPages($showsubs, $sort, $order, $content->getVar('content_id'));
                if (count($subs) > 0) {
                    $pages[$i]['hassubs'] = 1;
                    $pages[$i]['subs'] = $subs;
                } else {
                    $pages[$i]['hassubs'] = 0;
                }
            }
            $i++;
        }
    }
    return $pages;
}
コード例 #15
0
ファイル: autotasks.php プロジェクト: nao-pon/impresscms
	/**
	 * Gets selected type current events for current user
	 *
	 * @param int $ type
	 * @return Object
	 */
	public function getTasks() {
		$criteria = new icms_db_criteria_Compo();
		$criteria->setSort('sat_lastruntime');
		$criteria->setOrder('ASC');
		$criteria->add( new icms_db_criteria_Item('(sat_lastruntime + sat_interval)', time(), '<=', NULL, "%s" ));
		$criteria->add( new icms_db_criteria_Item('sat_repeat', 0, '>=', NULL, "'%s'"));
		$criteria->add( new icms_db_criteria_Item('sat_enabled', 1));
		$rez = $this->getObjects($criteria, FALSE);
		return $rez;
	}
コード例 #16
0
ファイル: system_blocks.php プロジェクト: nao-pon/impresscms
/**
 * Shows The latest comments
 *
 * @param array $options The block options
 * @return array $block the block array
 */
function b_system_comments_show($options) {
	$block = array();
	include_once ICMS_ROOT_PATH . '/include/comment_constants.php';
	$comment_handler = icms::handler('icms_data_comment');
	$criteria = new icms_db_criteria_Compo(new icms_db_criteria_Item('com_status', XOOPS_COMMENT_ACTIVE));
	$criteria->setLimit((int) $options[0]);
	$criteria->setSort('com_created');
	$criteria->setOrder('DESC');

	// Check modules permissions
	$moduleperm_handler = icms::handler('icms_member_groupperm');
	$gperm_groupid = is_object(icms::$user) ? icms::$user->getGroups() : array(XOOPS_GROUP_ANONYMOUS);
	$criteria1 = new icms_db_criteria_Compo(new icms_db_criteria_Item('gperm_name', 'module_read', '='));
	$criteria1->add(new icms_db_criteria_Item('gperm_groupid', '(' . implode(',', $gperm_groupid) . ')', 'IN'));
	$perms = $moduleperm_handler->getObjects($criteria1, TRUE);
	$modIds = array();
	foreach ($perms as $item) {
		$modIds[] = $item->getVar('gperm_itemid');
	}
	if (count($modIds) > 0) {
		$modIds = array_unique($modIds);
		$criteria->add(new icms_db_criteria_Item('com_modid', '(' . implode(',', $modIds) . ')', 'IN'));
	}
	// Check modules permissions

	$comments = $comment_handler->getObjects($criteria, TRUE);
	$member_handler = icms::handler('icms_member');
	$module_handler = icms::handler('icms_module');
	$modules = $module_handler->getObjects(new icms_db_criteria_Item('hascomments', 1), TRUE);
	$comment_config = array();
	foreach (array_keys($comments) as $i) {
		$mid = $comments[$i]->getVar('com_modid');
		$com['module'] = '<a href="' . ICMS_MODULES_URL . '/' . $modules[$mid]->getVar('dirname') . '/">' . $modules[$mid]->getVar('name') . '</a>';
		if (!isset($comment_config[$mid])) {
			$comment_config[$mid] = $modules[$mid]->getInfo('comments');
		}
		$com['id'] = $i;
		$com['title'] = '<a href="' . ICMS_MODULES_URL . '/' . $modules[$mid]->getVar('dirname') . '/' . $comment_config[$mid]['pageName'] . '?' . $comment_config[$mid]['itemName'] . '=' . $comments[$i]->getVar('com_itemid') . '&amp;com_id=' . $i . '&amp;com_rootid=' . $comments[$i]->getVar('com_rootid') . '&amp;' . htmlspecialchars($comments[$i]->getVar('com_exparams')) . '#comment' . $i . '">' . $comments[$i]->getVar('com_title') . '</a>';
		$com['icon'] = htmlspecialchars($comments[$i]->getVar('com_icon'), ENT_QUOTES);
		$com['icon'] = ($com['icon'] != '') ? $com['icon'] : 'icon1.gif';
		$com['time'] = formatTimestamp($comments[$i]->getVar('com_created'), 'm');
		if ($comments[$i]->getVar('com_uid') > 0) {
			$poster =& $member_handler->getUser($comments[$i]->getVar('com_uid'));
			if (is_object($poster)) {
				$com['poster'] = '<a href="' . ICMS_URL . '/userinfo.php?uid=' . $comments[$i]->getVar('com_uid') . '">' . $poster->getVar('uname') . '</a>';
			} else {
				$com['poster'] = $GLOBALS['icmsConfig']['anonymous'];
			}
		} else {
			$com['poster'] = $GLOBALS['icmsConfig']['anonymous'];
		}
		$block['comments'][] =& $com;
		unset($com);
	}
	return $block;
}
コード例 #17
0
 /**
  * Create the criteria that will be used by getContents and getContentsCount
  *
  * @param int $start to which record to start
  * @param int $limit limit of contents to return
  * @param int $content_uid if specifid, only the content of this user will be returned
  * @param int $cid if specifid, only the content related to this category will be returned
  * @param int $year of contents to display
  * @param int $month of contents to display
  * @param int $content_id ID of a single content to retrieve
  * @return icms_db_criteria_Compo $criteria
  */
 public function getContentsCriteria($start = 0, $limit = 0, $content_uid = false, $content_tags = false, $content_id = false, $content_pid = false, $order = 'content_published_date', $sort = 'DESC')
 {
     $criteria = new icms_db_criteria_Compo();
     if ($start) {
         $criteria->setStart($start);
     }
     if ($limit) {
         $criteria->setLimit((int) $limit);
     }
     $criteria->setSort($order);
     $criteria->setOrder($sort);
     $criteria->add(new icms_db_criteria_Item('content_status', CONTENT_CONTENT_STATUS_PUBLISHED));
     if ($content_uid) {
         $criteria->add(new icms_db_criteria_Item('content_uid', $content_uid));
     }
     if ($content_tags) {
         $criteria->add(new icms_db_criteria_Item('content_tags', '%' . $content_tags . '%', 'LIKE'));
     }
     if ($content_id) {
         $crit = new icms_db_criteria_Compo(new icms_db_criteria_Item('short_url', $content_id, 'LIKE'));
         $alt_content_id = str_replace('-', ' ', $content_id);
         //Added for backward compatiblity in case short_url contains spaces instead of dashes.
         $crit->add(new icms_db_criteria_Item('short_url', $alt_content_id), 'OR');
         $crit->add(new icms_db_criteria_Item('content_id', $content_id), 'OR');
         $criteria->add($crit);
     }
     if ($content_pid !== false) {
         $criteria->add(new icms_db_criteria_Item('content_pid', $content_pid));
     }
     return $criteria;
 }