本文整理汇总了PHP中iPHP::where方法的典型用法代码示例。如果您正苦于以下问题:PHP iPHP::where方法的具体用法?PHP iPHP::where怎么用?PHP iPHP::where使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类iPHP
的用法示例。
在下文中一共展示了iPHP::where方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: push_list
/**
* @package iCMS
* @copyright 2007-2010, iDreamSoft
* @license http://www.idreamsoft.com iDreamSoft
* @author coolmoo <idreamsoft@qq.com>
* @$Id: push.tpl.php 1392 2013-05-20 12:28:08Z coolmoo $
*/
function push_list($vars)
{
$maxperpage = isset($vars['row']) ? (int) $vars['row'] : "100";
$cache_time = isset($vars['time']) ? (int) $vars['time'] : "-1";
$where_sql = "WHERE `status`='1'";
isset($vars['userid']) && ($where_sql .= " AND `userid`='{$vars['userid']}'");
if (isset($vars['cid!'])) {
$ncids = explode(',', $vars['cid!']);
$vars['sub'] && ($ncids += iCMS::get_category_ids($ncids, true));
$where_sql .= iPHP::where($ncids, 'cid', 'not');
}
if (isset($vars['cid'])) {
$cid = explode(',', $vars['cid']);
$vars['sub'] && ($cid += iCMS::get_category_ids($cid, true));
$where_sql .= iPHP::where($cid, 'cid');
}
isset($vars['pid']) && ($where_sql .= " AND `type` ='{$vars['pid']}'");
isset($vars['pic']) && ($where_sql .= " AND `haspic`='1'");
isset($vars['nopic']) && ($where_sql .= " AND `haspic`='0'");
isset($vars['startdate']) && ($where_sql .= " AND `addtime`>='" . strtotime($vars['startdate']) . "'");
isset($vars['enddate']) && ($where_sql .= " AND `addtime`<='" . strtotime($vars['enddate']) . "'");
$by = $vars['by'] == "ASC" ? "ASC" : "DESC";
switch ($vars['orderby']) {
case "id":
$order_sql = " ORDER BY `id` {$by}";
break;
case "addtime":
$order_sql = " ORDER BY `addtime` {$by}";
break;
case "disorder":
$order_sql = " ORDER BY `ordernum` {$by}";
break;
default:
$order_sql = " ORDER BY `id` DESC";
}
if ($vars['cache']) {
$cache_name = iPHP_DEVICE . '/push/' . md5($where_sql);
$resource = iCache::get($cache_name);
}
if (empty($resource)) {
$resource = iDB::all("SELECT * FROM `#iCMS@__push` {$where_sql} {$order_sql} LIMIT {$maxperpage}");
iPHP_SQL_DEBUG && iDB::debug(1);
if ($resource) {
foreach ($resource as $key => $value) {
$value['pic'] && ($value['pic'] = iFS::fp($value['pic'], '+http'));
$value['pic2'] && ($value['pic2'] = iFS::fp($value['pic2'], '+http'));
$value['pic2'] && ($value['pic2'] = iFS::fp($value['pic2'], '+http'));
$value['metadata'] && ($value['metadata'] = unserialize($value['metadata']));
$resource[$key] = $value;
}
}
$vars['cache'] && iCache::set($cache_name, $resource, $cache_time);
}
return $resource;
}
示例2: article_search
function article_search($vars)
{
if (empty(iCMS::$config['sphinx']['host'])) {
return array();
}
$resource = array();
$hidden = iCache::get('iCMS/category/hidden');
$hidden && ($where_sql .= iPHP::where($hidden, 'cid', 'not'));
$SPH = iCMS::sphinx();
$SPH->init();
$SPH->SetArrayResult(true);
if (isset($vars['weights'])) {
//weights='title:100,tags:80,keywords:60,name:50'
$wa = explode(',', $vars['weights']);
foreach ($wa as $wk => $wv) {
$waa = explode(':', $wv);
$FieldWeights[$waa[0]] = $waa[1];
}
$FieldWeights or $FieldWeights = array("title" => 100, "tags" => 80, "name" => 60, "keywords" => 40);
$SPH->SetFieldWeights($FieldWeights);
}
$page = (int) $_GET['page'];
$maxperpage = isset($vars['row']) ? (int) $vars['row'] : 10;
$start = $page && isset($vars['page']) ? ($page - 1) * $maxperpage : 0;
$SPH->SetMatchMode(SPH_MATCH_EXTENDED);
if ($vars['mode']) {
$vars['mode'] == "SPH_MATCH_BOOLEAN" && $SPH->SetMatchMode(SPH_MATCH_BOOLEAN);
$vars['mode'] == "SPH_MATCH_ANY" && $SPH->SetMatchMode(SPH_MATCH_ANY);
$vars['mode'] == "SPH_MATCH_PHRASE" && $SPH->SetMatchMode(SPH_MATCH_PHRASE);
$vars['mode'] == "SPH_MATCH_ALL" && $SPH->SetMatchMode(SPH_MATCH_ALL);
$vars['mode'] == "SPH_MATCH_EXTENDED" && $SPH->SetMatchMode(SPH_MATCH_EXTENDED);
}
isset($vars['userid']) && $SPH->SetFilter('userid', array($vars['userid']));
isset($vars['postype']) && $SPH->SetFilter('postype', array($vars['postype']));
if (isset($vars['cid'])) {
$cids = $vars['sub'] ? iCMS::get_category_ids($vars['cid'], true) : (array) $vars['cid'];
$cids or $cids = (array) $vars['cid'];
$cids = array_map("intval", $cids);
$SPH->SetFilter('cid', $cids);
}
if (isset($vars['startdate'])) {
$startime = strtotime($vars['startdate']);
$enddate = empty($vars['enddate']) ? time() : strtotime($vars['enddate']);
$SPH->SetFilterRange('pubdate', $startime, $enddate);
}
$SPH->SetLimits($start, $maxperpage, 10000);
$orderby = '@id DESC, @weight DESC';
$order_sql = ' order by id DESC';
$vars['orderby'] && ($orderby = $vars['orderby']);
$vars['ordersql'] && ($order_sql = ' order by ' . $vars['ordersql']);
$vars['pic'] && $SPH->SetFilter('haspic', array(1));
$vars['id!'] && $SPH->SetFilter('@id', array($vars['id!']), true);
$SPH->setSortMode(SPH_SORT_EXTENDED, $orderby);
$query = str_replace(',', '|', $vars['q']);
$vars['acc'] && ($query = '"' . $vars['q'] . '"');
$vars['@'] && ($query = '@(' . $vars['@'] . ') ' . $query);
$res = $SPH->Query($query, iCMS::$config['sphinx']['index']);
if (is_array($res["matches"])) {
foreach ($res["matches"] as $docinfo) {
$aid[] = $docinfo['id'];
}
$aids = implode(',', (array) $aid);
}
if (empty($aids)) {
return;
}
$where_sql = " `id` in({$aids})";
$offset = 0;
if ($vars['page']) {
$total = $res['total'];
iPHP::assign("article_search_total", $total);
$pagenav = isset($vars['pagenav']) ? $vars['pagenav'] : "pagenav";
$pnstyle = isset($vars['pnstyle']) ? $vars['pnstyle'] : 0;
$multi = iCMS::page(array('total' => $total, 'perpage' => $maxperpage, 'unit' => iPHP::lang('iCMS:page:list'), 'nowindex' => $GLOBALS['page']));
$offset = $multi->offset;
}
$resource = iDB::all("SELECT * FROM `#iCMS@__article` WHERE {$where_sql} {$order_sql} LIMIT {$maxperpage}");
iPHP_SQL_DEBUG && iDB::debug(1);
$resource = __article_array($vars, $resource);
return $resource;
}
示例3: search_sql
function search_sql($cid, $field = 'cid')
{
if ($cid) {
$cids = (array) $cid;
$_GET['sub'] && ($cids += $this->get_ids($cid, true));
$sql = iPHP::where($cids, $field);
}
return $sql;
}
示例4: user_list
function user_list($vars = null)
{
$maxperpage = isset($vars['row']) ? (int) $vars['row'] : "100";
$cache_time = isset($vars['time']) ? (int) $vars['time'] : "-1";
$where_sql = "WHERE `status`='1'";
isset($vars['userid']) && ($where_sql .= " AND `uid`='{$vars['userid']}'");
isset($vars['gid']) && ($where_sql .= " AND `gid` ='{$vars['gid']}'");
isset($vars['type']) && ($where_sql .= " AND `type` ='{$vars['type']}'");
if (isset($vars['pid']) && !isset($vars['pids'])) {
$where_sql .= iPHP::where($vars['pid'], 'pid');
}
if (isset($vars['pids']) && !isset($vars['pid'])) {
iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
map::init('prop', iCMS_APP_USER);
//$where_sql.= map::exists($vars['pid'],'`#iCMS@__user`.uid'); //map 表大的用exists
$map_where = map::where($vars['pids']);
}
$by = $vars['by'] == "ASC" ? "ASC" : "DESC";
switch ($vars['orderby']) {
case "id":
$order_sql = " ORDER BY `uid` {$by}";
break;
case "article":
$order_sql = " ORDER BY `article` {$by}";
break;
case "comments":
$order_sql = " ORDER BY `comments` {$by}";
break;
case "follow":
$order_sql = " ORDER BY `follow` {$by}";
break;
case "fans":
$order_sql = " ORDER BY `fans` {$by}";
break;
case "hits":
$order_sql = " ORDER BY `hits` {$by}";
break;
default:
$order_sql = " ORDER BY `uid` {$by}";
}
if ($map_where) {
$map_sql = iCMS::map_sql($map_where);
$where_sql = ",({$map_sql}) map {$where_sql} AND `uid` = map.`iid`";
}
$offset = 0;
$limit = "LIMIT {$maxperpage}";
if ($vars['page']) {
$total = iPHP::total('sql.md5', "SELECT count(*) FROM `#iCMS@__user` {$where_sql} ");
$multi = iCMS::page(array('total' => $total, 'perpage' => $maxperpage, 'unit' => iPHP::lang('iCMS:page:sql'), 'nowindex' => $GLOBALS['page']));
$offset = $multi->offset;
$limit = "LIMIT {$offset},{$maxperpage}";
iPHP::assign("user_list_total", $total);
}
$hash = md5($where_sql . $order_sql . $limit);
if ($map_sql || $offset) {
if ($vars['cache']) {
$map_cache_name = iPHP_DEVICE . '/user_map/' . $hash;
$ids_array = iCache::get($map_cache_name);
}
if (empty($ids_array)) {
$ids_array = iDB::all("SELECT `id` FROM `#iCMS@__user` {$where_sql} {$order_sql} {$limit}");
iPHP_SQL_DEBUG && iDB::debug(1);
$vars['cache'] && iCache::set($map_cache_name, $ids_array, $cache_time);
}
//iDB::debug(1);
$ids = iCMS::get_ids($ids_array, 'uid');
$ids = $ids ? $ids : '0';
$where_sql = "WHERE `uid` IN({$ids})";
}
if ($vars['cache']) {
$cache_name = iPHP_DEVICE . '/user_list/' . $hash;
$resource = iCache::get($cache_name);
}
if (empty($resource)) {
$resource = iDB::all("SELECT * FROM `#iCMS@__user` {$where_sql} {$order_sql} {$limit}");
iPHP_SQL_DEBUG && iDB::debug(1);
if ($resource) {
foreach ($resource as $key => $value) {
$value['url'] = user::router($value['uid'], "url");
$value['urls'] = user::router($value['uid'], "urls");
$value['avatar'] = user::router($value['uid'], "avatar", $vars['size'] ? $vars['size'] : 0);
$value['at'] = '<a href="' . $value['url'] . '" class="iCMS_user_link" target="_blank" data-tip="iCMS:ucard:' . $value['uid'] . '">@' . $value['nickname'] . '</a>';
$value['link'] = '<a href="' . $value['url'] . '" class="iCMS_user_link" target="_blank" data-tip="iCMS:ucard:' . $value['uid'] . '">' . $value['nickname'] . '</a>';
$value['gender'] = $value['gender'] ? 'male' : 'female';
isset($vars['data']) && ($value['data'] = (array) user::data($value['uid']));
$resource[$key] = $value;
}
}
$vars['cache'] && iCache::set($cache_name, $resource, $cache_time);
}
return $resource;
}
示例5: tag_list
/**
* @package iCMS
* @copyright 2007-2016, iDreamSoft
* @license http://www.idreamsoft.com iDreamSoft
* @author coolmoo <idreamsoft@qq.com>
* @$Id: tag.tpl.php 159 2013-03-23 04:11:53Z coolmoo $
*/
function tag_list($vars)
{
$where_sql = "WHERE status='1' ";
$map_where = array();
if (isset($vars['rootid'])) {
$where_sql .= " AND `rootid`='" . (int) $vars['rootid'] . "'";
}
if (!isset($vars['tcids']) && isset($vars['tcid'])) {
$where_sql .= iPHP::where($vars['tcid'], 'tcid');
}
if (isset($vars['tcids']) && !isset($vars['tcid'])) {
iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
map::init('category', iCMS_APP_TAG);
//$where_sql.= map::exists($vars['tcid'],'`#iCMS@__tags`.id'); //map 表大的用exists
$map_where += map::where($vars['tcid']);
}
if (isset($vars['tcid!'])) {
$where_sql .= iPHP::where($vars['tcid!'], 'tcid', 'not');
}
if (!isset($vars['pids']) && isset($vars['pid'])) {
$where_sql .= iPHP::where($vars['pid'], 'pid');
}
if (isset($vars['pids']) && !isset($vars['pid'])) {
iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
map::init('prop', iCMS_APP_TAG);
//$where_sql.= map::exists($vars['pids'],'`#iCMS@__tags`.id'); //map 表大的用exists
$map_where += map::where($vars['pids']);
}
if (isset($vars['pid!'])) {
$where_sql .= iPHP::where($vars['pid!'], 'pid', 'not');
}
if (!isset($vars['cids']) && isset($vars['cid'])) {
$cid = explode(',', $vars['cid']);
$vars['sub'] && ($cid += iCMS::get_category_ids($cid, true));
$where_sql .= iPHP::where($cid, 'cid');
}
if (isset($vars['cids']) && !isset($vars['cid'])) {
$cids = explode(',', $vars['cids']);
$vars['sub'] && ($cids += iCMS::get_category_ids($vars['cids'], true));
if ($cids) {
iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
map::init('category', iCMS_APP_TAG);
$map_where += map::where($cids);
}
}
if (isset($vars['cid!'])) {
$ncids = explode(',', $vars['cid!']);
$vars['sub'] && ($ncids += iCMS::get_category_ids($ncids, true));
$where_sql .= iPHP::where($ncids, 'cid', 'not');
}
if (isset($vars['keywords'])) {
//最好使用 iCMS:tag:search
if (empty($vars['keywords'])) {
return;
}
if (strpos($vars['keywords'], ',') === false) {
$vars['keywords'] = str_replace(array('%', '_'), array('\\%', '\\_'), $vars['keywords']);
$where_sql .= " AND CONCAT(tkey,name,seotitle,keywords) like '%" . addslashes($vars['keywords']) . "%'";
} else {
$kws = explode(',', $vars['keywords']);
foreach ($kws as $kwv) {
$keywords .= addslashes($kwv) . "|";
}
$keywords = substr($keywords, 0, -1);
$where_sql .= " AND CONCAT(tkey,name,seotitle,keywords) REGEXP '{$keywords}' ";
}
}
$maxperpage = isset($vars['row']) ? (int) $vars['row'] : "10";
$cache_time = isset($vars['time']) ? (int) $vars['time'] : -1;
$by = $vars['by'] == 'ASC' ? "ASC" : "DESC";
switch ($vars['orderby']) {
case "hot":
$order_sql = " ORDER BY `count` {$by}";
break;
case "new":
$order_sql = " ORDER BY `id` {$by}";
break;
case "order":
$order_sql = " ORDER BY `ordernum` {$by}";
break;
// case "rand": $order_sql=" ORDER BY rand() $by"; break;
// case "rand": $order_sql=" ORDER BY rand() $by"; break;
default:
$order_sql = " ORDER BY `id` {$by}";
}
if ($map_where) {
$map_sql = iCMS::map_sql($map_where);
$where_sql = ",({$map_sql}) map {$where_sql} AND `id` = map.`iid`";
}
$offset = 0;
$limit = "LIMIT {$maxperpage}";
if ($vars['page']) {
$total = iPHP::total('sql.md5', "SELECT count(*) FROM `#iCMS@__tags` {$where_sql} ");
//.........这里部分代码省略.........
示例6: do_manage
function do_manage($stype = 'normal')
{
$cid = (int) $_GET['cid'];
$pid = $_GET['pid'];
//$stype OR $stype = iACP::$app_do;
$stype_map = array('inbox' => '0', 'normal' => '1', 'trash' => '2', 'examine' => '3', 'off' => '4');
$map_where = array();
//status:[0:草稿][1:正常][2:回收][3:待审核][4:不合格]
//postype: [0:用户][1:管理员]
$stype && ($this->_status = $stype_map[$stype]);
if (isset($_GET['pt']) && $_GET['pt'] != '') {
$this->_postype = (int) $_GET['pt'];
}
$sql = "WHERE `status`='{$this->_status}'";
$this->_postype === 'all' or $sql .= " AND `postype`='{$this->_postype}'";
if (iACP::MP("ARTICLE.VIEW")) {
$_GET['userid'] && ($sql .= iPHP::where($_GET['userid'], 'userid'));
} else {
$sql .= iPHP::where(iMember::$userid, 'userid');
}
if (isset($_GET['pid']) && $pid != '-1') {
$uri_array['pid'] = $pid;
if (empty($_GET['pid'])) {
$sql .= " AND `pid`=''";
} else {
iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
map::init('prop', $this->appid);
$map_where += map::where($pid);
}
}
$cp_cids = iACP::CP('__CID__', 'cs');
//取得所有有权限的栏目ID
if ($cp_cids) {
if (is_array($cp_cids)) {
if ($cid) {
array_search($cid, $cp_cids) === false && iACP::permission_msg('栏目[cid:' . $cid . ']', $ret);
} else {
$cids = $cp_cids;
}
} else {
$cids = $cid;
}
if ($_GET['sub'] && $cid) {
$cids = $this->categoryApp->get_ids($cid, true);
array_push($cids, $cid);
}
if ($_GET['scid'] && $cid) {
iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
map::init('category', $this->appid);
$map_where += map::where($cids);
} else {
$sql .= iPHP::where($cids, 'cid');
}
} else {
$sql .= iPHP::where('-1', 'cid');
}
if ($_GET['keywords']) {
$kws = $_GET['keywords'];
switch ($_GET['st']) {
case "title":
$sql .= " AND `title` REGEXP '{$kws}'";
break;
case "tag":
$sql .= " AND `tags` REGEXP '{$kws}'";
break;
case "source":
$sql .= " AND `source` REGEXP '{$kws}'";
break;
case "weight":
$sql .= " AND `weight`='{$kws}'";
break;
case "id":
$sql .= " AND `id` REGEXP '{$kws}'";
break;
case "tkd":
$sql .= " AND CONCAT(title,keywords,description) REGEXP '{$kws}'";
break;
}
}
$_GET['title'] && ($sql .= " AND `title` like '%{$_GET['title']}%'");
$_GET['tag'] && ($sql .= " AND `tags` REGEXP '[[:<:]]" . preg_quote(rawurldecode($_GET['tag']), '/') . "[[:>:]]'");
$_GET['starttime'] && ($sql .= " AND `pubdate`>='" . iPHP::str2time($_GET['starttime'] . " 00:00:00") . "'");
$_GET['endtime'] && ($sql .= " AND `pubdate`<='" . iPHP::str2time($_GET['endtime'] . " 23:59:59") . "'");
isset($_GET['pic']) && ($sql .= " AND `haspic` ='" . ($_GET['pic'] ? 1 : 0) . "'");
isset($_GET['userid']) && ($uri_array['userid'] = (int) $_GET['userid']);
isset($_GET['keyword']) && ($uri_array['keyword'] = $_GET['keyword']);
isset($_GET['tag']) && ($uri_array['tag'] = $_GET['tag']);
isset($_GET['pt']) && ($uri_array['pt'] = $_GET['pt']);
isset($_GET['cid']) && ($uri_array['cid'] = $_GET['cid']);
$uri_array && ($uri = http_build_query($uri_array));
$orderby = $_GET['orderby'] ? $_GET['orderby'] : "id DESC";
$maxperpage = $_GET['perpage'] > 0 ? (int) $_GET['perpage'] : 20;
if ($map_where) {
$map_sql = iCMS::map_sql($map_where);
$sql = ",({$map_sql}) map {$sql} AND `id` = map.`iid`";
}
$total = iPHP::total(false, articleTable::count_sql($sql), "G");
iPHP::pagenav($total, $maxperpage, "篇文章");
$limit = 'LIMIT ' . iPHP::$offset . ',' . $maxperpage;
if ($map_sql || iPHP::$offset) {
//.........这里部分代码省略.........
示例7: category_list
function category_list($vars)
{
$appid = isset($vars['appid']) ? (int) $vars['appid'] : iCMS_APP_ARTICLE;
$row = isset($vars['row']) ? (int) $vars['row'] : "100";
$cache_time = isset($vars['time']) ? (int) $vars['time'] : "-1";
$status = isset($vars['status']) ? (int) $vars['status'] : "1";
$where_sql = " WHERE `appid`='{$appid}' AND `status`='{$status}'";
$resource = array();
isset($vars['mode']) && ($where_sql .= " AND `mode` = '{$vars['mode']}'");
if (stripos($vars['cid'], ',') !== false) {
$vars['cid'] = explode(',', $vars['cid']);
}
if (stripos($vars['cid!'], ',') !== false) {
$vars['cid!'] = explode(',', $vars['cid!']);
}
isset($vars['cid']) && !isset($vars['stype']) && ($where_sql .= iPHP::where($vars['cid'], 'cid'));
isset($vars['cid!']) && ($where_sql .= iPHP::where($vars['cid!'], 'cid', 'not'));
switch ($vars['stype']) {
case "top":
$vars['cid'] && ($where_sql .= iPHP::where($vars['cid'], 'cid'));
$where_sql .= " AND rootid='0'";
break;
case "sub":
$vars['cid'] && ($where_sql .= iPHP::where($vars['cid'], 'rootid'));
break;
// case "subtop":
// $vars['cid'] && $where_sql.= iPHP::where($vars['cid'],'cid');
// break;
// case "subtop":
// $vars['cid'] && $where_sql.= iPHP::where($vars['cid'],'cid');
// break;
case "suball":
$where_sql .= iPHP::where(iCMS::get_category_ids($vars['cid'], false), 'cid');
break;
case "self":
$parent = iCache::get('iCMS/category/parent', $vars['cid']);
$where_sql .= " AND `rootid`='{$parent}'";
break;
}
if (isset($vars['pids'])) {
iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
map::init('prop', iCMS_APP_CATEGORY);
$where_sql .= map::exists($vars['pids'], '`#iCMS@__category`.cid');
//主表小 map表大
// $map_where=map::where($vars['pids']); //主表大 map表大
// $map_ids = map::ids($vars['pid']);
// $map_sql = map::sql($vars['pid']); //map 表小的用 in
// $where_sql.=" AND `pid` = '{$vars['pid']}'";
//if(empty($map_ids)) return $resource;
//$where_sql.=" AND `cid` IN ($map_ids)";
//$where_sql.=" AND `cid` IN ($map_sql)";
}
if ($vars['cache']) {
$cache_name = iPHP_DEVICE . '/category/' . md5($where_sql);
$resource = iCache::get($cache_name);
}
if (empty($resource)) {
$rootid_array = iCache::get('iCMS/category/rootid');
$resource = iDB::all("SELECT * FROM `#iCMS@__category` {$where_sql} ORDER BY `ordernum`,`cid` ASC LIMIT {$row}");
iPHP_SQL_DEBUG && iDB::debug(1);
if ($resource) {
foreach ($resource as $key => $value) {
$value['child'] = $rootid_array[$value['cid']] ? true : false;
$value['url'] = iURL::get('category', $value)->href;
$value['link'] = "<a href='{$value['url']}'>{$value['name']}</a>";
if ($value['metadata']) {
$mdArray = array();
$_metadata = unserialize($value['metadata']);
foreach ((array) $_metadata as $mkey => $md) {
$mdArray[$mkey] = $md;
}
$value['metadata'] = $mdArray;
unset($_metadata);
}
unset($value['contentprop']);
$resource[$key] = $value;
}
}
$vars['cache'] && iCache::set($cache_name, $resource, $cache_time);
}
return $resource;
}
示例8: comment_list
function comment_list($vars)
{
if ($vars['display'] && empty($vars['loop'])) {
if (empty($vars['_display'])) {
$_vars = iCMS::app_ref(true);
$vars = array_merge($vars, $_vars);
}
return comment_list_display($vars);
}
$where_sql = " `status`='1'";
if (isset($vars['appid'])) {
$appid = (int) $vars['appid'];
$where_sql .= " AND `appid`='{$appid}'";
}
if (isset($vars['cid!'])) {
$ncids = explode(',', $vars['cid!']);
$vars['sub'] && ($ncids += iCMS::get_category_ids($ncids, true));
$where_sql .= iPHP::where($ncids, 'cid', 'not');
}
if (isset($vars['cid'])) {
$cid = explode(',', $vars['cid']);
$vars['sub'] && ($cid += iCMS::get_category_ids($cid, true));
$where_sql .= iPHP::where($cid, 'cid');
}
isset($vars['userid']) && ($where_sql .= " AND `userid`='{$vars['userid']}'");
$vars['pid'] && ($where_sql .= " AND `pid`='" . (int) $vars['pid'] . "'");
$vars['iid'] && ($where_sql .= " AND `iid`='" . (int) $vars['iid'] . "'");
$vars['id'] && ($where_sql .= " AND `id`='" . (int) $vars['id'] . "'");
$maxperpage = isset($vars['row']) ? (int) $vars['row'] : "10";
$cache_time = isset($vars['time']) ? (int) $vars['time'] : -1;
$by = $vars['by'] == 'ASC' ? "ASC" : "DESC";
switch ($vars['orderby']) {
default:
$order_sql = " ORDER BY `id` {$by}";
}
$md5 = md5($where_sql . $order_sql);
$offset = 0;
$limit = "LIMIT {$maxperpage}";
if ($vars['page']) {
isset($vars['total_cache']) && ($_GET['total_cahce'] = true);
$total = iPHP::total($md5, "SELECT count(*) FROM `#iCMS@__comment` WHERE {$where_sql} limit 1");
$pgconf = array('total' => $total, 'perpage' => $maxperpage, 'unit' => iPHP::lang('iCMS:page:comment'), 'ajax' => $vars['page_ajax'] ? 'iCMS.comment.page' : FALSE, 'nowindex' => $GLOBALS['page']);
if ($vars['display'] == 'iframe' || $vars['page_ajax']) {
iS::gp('pn', 'GP', 2);
$pgconf['page_name'] = 'pn';
$pgconf['nowindex'] = $GLOBALS['pn'];
}
isset($vars['total_cache']) && ($pgconf['total_type'] = $vars['total_cache']);
$multi = iCMS::page($pgconf);
$offset = $multi->offset;
$limit = "LIMIT {$offset},{$maxperpage}";
// if($offset>1000){
//$where_sql.=" AND `id` >= (SELECT `id` FROM `#iCMS@__comment` WHERE {$where_sql} {$order_sql} LIMIT {$offset},1)";
//$limit = "LIMIT {$maxperpage}";
// }
iPHP::assign("comment_total", $total);
}
if ($vars['cache']) {
$cache_name = iPHP_DEVICE . '/comment/' . $md5 . "/" . (int) $offset;
$resource = iCache::get($cache_name);
}
if (empty($resource)) {
$resource = iDB::all("SELECT * FROM `#iCMS@__comment` WHERE {$where_sql} {$order_sql} {$limit}");
//iDB::debug(1);
$ln = $GLOBALS['page'] - 1 < 0 ? 0 : $GLOBALS['page'] - 1;
if ($resource) {
foreach ($resource as $key => $value) {
if ($vars['date_format']) {
$value['addtime'] = get_date($value['addtime'], $vars['date_format']);
}
$value['url'] = iCMS_API . '?app=comment&do=goto&iid=' . $value['iid'] . '&appid=' . $value['appid'] . '&cid=' . $value['cid'];
$value['lou'] = $total - ($i + $ln * $maxperpage);
$value['content'] = nl2br($value['content']);
$value['user'] = user::info($value['userid'], $value['username'], $vars['facesize']);
$value['reply_uid'] && ($value['reply'] = user::info($value['reply_uid'], $value['reply_name'], $vars['facesize']));
$value['total'] = $total;
if ($vars['page']) {
$value['page'] = array('total' => $multi->totalpage, 'perpage' => $multi->perpage);
}
$value['param'] = array("appid" => iCMS_APP_COMMENT, "id" => $value['id'], "userid" => $value['userid'], "name" => $value['username']);
$resource[$key] = $value;
}
}
$vars['cache'] && iCache::set($cache_name, $resource, $cache_time);
}
return $resource;
}
示例9: sql
public static function sql($nodes = 0)
{
if (empty($nodes)) {
return false;
}
if (!is_array($nodes) && strstr($nodes, ',')) {
$nodes = explode(',', $nodes);
}
$where_sql = iPHP::where(self::$appid, 'appid', false, true);
$where_sql .= iPHP::where($nodes, self::$field);
return "SELECT `iid` FROM " . self::table() . " WHERE {$where_sql}";
}