本文整理汇总了PHP中Query::run方法的典型用法代码示例。如果您正苦于以下问题:PHP Query::run方法的具体用法?PHP Query::run怎么用?PHP Query::run使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Query
的用法示例。
在下文中一共展示了Query::run方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: publications_userapi_getitemlinks
/**
* utility function to pass individual item links to a caller
*
* @param $args['itemids'] array of item ids to get
* @return array Array containing the itemlink(s) for the item(s).
*/
function publications_userapi_getitemlinks($args)
{
$itemlinks = array();
sys::import('xaraya.structures.query');
$xartable = xarDB::getTables();
$q = new Query('SELECT', $xartable['publications']);
$q->addfield('id');
$q->addfield('title');
$q->addfield('description');
$q->addfield('pubtype_id');
$q->in('state', array(3, 4));
if (!empty($args['itemids'])) {
$itemids = explode(',', $args['itemids']);
$q->in('id', $itemids);
}
$q->addorder('title');
$q->run();
$result = $q->output();
if (empty($result)) {
return $itemlinks;
}
foreach ($result as $item) {
if (empty($item['title'])) {
$item['title'] = xarML('Display Publication');
}
$itemlinks[$item['id']] = array('url' => xarModURL('publications', 'user', 'display', array('id' => $item['id'])), 'title' => $item['title'], 'label' => $item['description']);
}
return $itemlinks;
}
示例2: publications_adminapi_delete
/**
* Publications Module
*
* @package modules
* @subpackage publications module
* @category Third Party Xaraya Module
* @version 2.0.0
* @copyright (C) 2011 Netspan AG
* @license GPL {@link http://www.gnu.org/licenses/gpl.html}
* @author Marc Lutolf <mfl@netspan.ch>
*/
function publications_adminapi_delete($args)
{
// Get arguments from argument array
extract($args);
// Argument check
if (!isset($itemid)) {
$msg = xarML('Invalid #(1) for #(2) function #(3)() in module #(4)', 'publication ID', 'admin', 'delete', 'Publications');
throw new BadParameterException(null, $msg);
}
$ids = !is_array($itemid) ? explode(',', $itemid) : $itemid;
if (!isset($deletetype)) {
$deletetype = 0;
}
sys::import('xaraya.structures.query');
$table = xarDB::getTables();
switch ($deletetype) {
case 0:
default:
$q = new Query('UPDATE', $table['publications']);
$q->addfield('state', 0);
break;
case 10:
$q = new Query('DELETE', $table['publications']);
break;
}
$q->in('id', $ids);
if (!$q->run()) {
return false;
}
return true;
}
示例3: actionCreate
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate()
{
$Query = new Query();
$Query->JSON = json_encode(array('rows' => array()));
$queryResults = $Query->run(array(), null, false, false, true);
$QueryQuestions = QueryQuestion::model()->findAll(array('order' => 'type,id'));
$this->pageTitle = 'Create | Queries | ' . Yii::app()->name;
$this->breadcrumbs = array('Queries' => array('index'), 'Create Query');
$this->render('create', array('Query' => $Query, 'QueryQuestions' => $QueryQuestions, 'queryResults' => $queryResults));
}
示例4: calendar_userapi_getevents
function calendar_userapi_getevents($args)
{
extract($args);
$xartable = xarDB::getTables();
$q = new Query('SELECT');
$q->addtable($xartable['calendar_event']);
$q->ge('start_time', $day->thisDay(TRUE));
$q->lt('start_time', $day->nextDay(TRUE));
if (!$q->run()) {
return;
}
return $q->output();
}
示例5: publications_userapi_getitempubtype
/**
* Given an itemid, get the publication type
* CHECKME: use get in place of this function?
*/
function publications_userapi_getitempubtype($args)
{
if (empty($args['itemid'])) {
throw new MissingParameterException('itemid');
}
sys::import('xaraya.structures.query');
$xartables = xarDB::getTables();
$q = new Query('SELECT', $xartables['publications']);
$q->addfield('pubtype_id');
$q->eq('id', $args['itemid']);
if (!$q->run()) {
return;
}
$result = $q->row();
if (empty($result)) {
return 0;
}
return $result['pubtype_id'];
}
示例6: publications_userapi_getpubtypeaccess
/**
* Given an itemid, get the publication type
* CHECKME: use get in place of this function?
*/
function publications_userapi_getpubtypeaccess($args)
{
if (empty($args['name'])) {
throw new MissingParameterException('name');
}
sys::import('xaraya.structures.query');
$xartables = xarDB::getTables();
$q = new Query('SELECT', $xartables['publications_types']);
$q->addfield('access');
$q->eq('name', $args['name']);
if (!$q->run()) {
return;
}
$result = $q->row();
if (empty($result)) {
return "a:0:{}";
}
return $result['access'];
}
示例7: publications_userapi_getpubcount
/**
* get the number of publications per publication type
* @param $args['state'] array of requested status(es) for the publications
* @return array array(id => count), or false on failure
*/
function publications_userapi_getpubcount($args)
{
if (!empty($args['state'])) {
$statestring = 'all';
} else {
if (is_array($args['state'])) {
sort($args['state']);
$statestring = join('+', $args['state']);
} else {
$statestring = $args['state'];
}
}
if (xarVarIsCached('Publications.PubCount', $statestring)) {
return xarVarGetCached('Publications.PubCount', $statestring);
}
$pubcount = array();
$dbconn = xarDB::getConn();
$tables = xarDB::getTables();
sys::import('xaraya.structures.query');
$q = new Query('SELECT', $tables['publications']);
$q->addfield('pubtype_id');
$q->addfield('COUNT(state) AS count');
$q->addgroup('pubtype_id');
if (!empty($args['state'])) {
} else {
if (is_array($args['state'])) {
$q->in('state', $args['state']);
} else {
$q->eq('state', $args['state']);
}
}
// $q->qecho();
if (!$q->run()) {
return;
}
$pubcount = array();
foreach ($q->output() as $key => $value) {
$pubcount[$value['pubtype_id']] = $value['count'];
}
xarVarSetCached('Publications.PubCount', $statestring, $pubcount);
return $pubcount;
}
示例8: publications_userapi_gettranslationid
/**
* Publications Module
*
* @package modules
* @subpackage publications module
* @category Third Party Xaraya Module
* @version 2.0.0
* @copyright (C) 2011 Netspan AG
* @license GPL {@link http://www.gnu.org/licenses/gpl.html}
* @author Marc Lutolf <mfl@netspan.ch>
*/
function publications_userapi_gettranslationid($args)
{
if (!isset($args['id'])) {
throw new BadParameterException('id');
}
if (empty($args['id'])) {
return 0;
}
// We can check on a full locale or just a partial one (excluding charset)
if (empty($args['partiallocale'])) {
$args['partiallocale'] = 0;
}
// We can look for a specific translation
if (empty($args['locale'])) {
$locale = xarUserGetNavigationLocale();
} else {
$locale = $args['locale'];
}
sys::import('xaraya.structures.query');
if ($args['partiallocale']) {
$parts = explode('.', $locale);
$locale = $parts[0];
}
$xartable = xarDB::getTables();
if (empty($args['locale'])) {
// Return the id of the translation if it exists, or else the base document
$q = new Query('SELECT', $xartable['publications']);
$q->addfield('id');
$q->eq('locale', $locale);
$c[] = $q->peq('id', $args['id']);
$c[] = $q->peq('parent_id', $args['id']);
$q->qor($c);
if (!$q->run()) {
return $args['id'];
}
$result = $q->row();
if (empty($result)) {
return $args['id'];
}
return $result['id'];
} elseif ($args['locale'] == xarUserGetNavigationLocale()) {
// No need to look further
return $args['id'];
} elseif ($args['locale'] == xarModVars::get('publications', 'defaultlanguage')) {
// Force getting the base document
$q = new Query('SELECT', $xartable['publications']);
$q->addfield('parent_id');
$q->eq('id', $args['id']);
if (!$q->run()) {
return $args['id'];
}
$result = $q->row();
if (empty($result)) {
return $args['id'];
}
// If this was already the base document, return its ID
if (empty($result['parent_id'])) {
return $args['id'];
}
// Else return the parent ID
return $result['parent_id'];
} else {
// Force getting another translation
$q = new Query('SELECT');
$q->addtable($xartable['publications'], 'p1');
$q->addtable($xartable['publications'], 'p2');
$q->join('p2.parent_id', 'p1.parent_id');
$q->addfield('p2.id');
$q->eq('p2.locale', $locale);
$q->eq('p1.id', $args['id']);
if (!$q->run()) {
return $args['id'];
}
$result = $q->row();
if (empty($result)) {
return $args['id'];
}
return $result['id'];
}
if (xarUserGetVar('uname') == 'random') {
$xartable = xarDB::getTables();
$q = new Query('SELECT');
$q->addtable($xartable['publications'], 'p1');
$q->addtable($xartable['publications'], 'p2');
$q->join('p2.id', 'p1.parent_id');
$q->addfield('p1.id');
$c[] = $q->peq('p1.id', $args['id']);
$c[] = $q->peq('p1.parent_id', $args['id']);
$c[] = $q->peq('p2.id', $args['id']);
//.........这里部分代码省略.........
示例9: encode
public function encode(xarRequest $request)
{
if ($request->getType() == 'admin') {
return parent::encode($request);
}
$params = $request->getFunctionArgs();
$path = array();
switch ($request->getFunction()) {
case 'search':
$path[] = 'search';
$path = array_merge($path, $params);
break;
case 'view':
$path[] = 'view';
if (isset($params['ptid'])) {
if (xarModVars::get('publications', 'usetitleforurl')) {
// Get all publication types present
if (empty($this->pubtypes)) {
$this->pubtypes = xarModAPIFunc('publications', 'user', 'get_pubtypes');
}
// Match to the function token
foreach ($this->pubtypes as $id => $pubtype) {
if ($params['ptid'] == $id) {
$path[] = strtolower($pubtype['description']);
break;
}
}
} else {
$path[] = $params['ptid'];
}
}
unset($params['ptid']);
break;
case 'viewmap':
$path[] = 'viewmap';
$params = array();
break;
case 'display':
if (isset($params['itemid'])) {
sys::import('xaraya.structures.query');
xarModLoad('publications');
$xartables = xarDB::getTables();
$q = new Query('SELECT', $xartables['publications']);
$q->eq('id', $params['itemid']);
$q->addfield('pubtype_id');
$q->addfield('name');
$q->addfield('id');
$q->run();
$result = $q->row();
if (xarModVars::get('publications', 'usetitleforurl')) {
// Get all publication types present
if (empty($this->pubtypes)) {
$this->pubtypes = xarModAPIFunc('publications', 'user', 'get_pubtypes');
}
if (!empty($result['pubtype_id'])) {
$path[] = strtolower($this->pubtypes[$result['pubtype_id']]['description']);
}
if (!empty($result['name'])) {
$path[] = strtolower($result['name']);
}
} else {
if (!empty($result['id'])) {
$path[] = $result['id'];
}
}
}
$params = array();
break;
case 'main':
// We need a page ID to continue, for now.
// TODO: allow this to be expanded to page names.
if (empty($params['pid'])) {
return;
}
static $pages = NULL;
// The components of the path.
// $get = $args;
// Get the page tree that includes this page.
// TODO: Do some kind of cacheing on a tree-by-tree basis to prevent
// fetching this too many times. Every time any tree is fetched, anywhere
// in this module, it should be added to the cache so it can be used again.
// For now we are going to fetch all pages, without DD, to cut down on
// the number of queries, although we are making an assumption that the
// number of pages is not going to get too high.
if (empty($pages)) {
// Fetch all pages, with no DD required.
$pages = xarMod::apiFunc('publications', 'user', 'getpages', array('dd_flag' => false, 'key' => 'pid'));
}
// Check that the pid is a valid page.
if (!isset($pages[$params['pid']])) {
return;
}
$use_shortest_paths = xarModVars::get('publications', 'shortestpath');
// Consume the pid from the get parameters.
$pid = $params['pid'];
unset($params['pid']);
// 'Consume' the function now we know we have enough information.
// unset($params['func']);
// Follow the tree up to the root.
$pid_follow = $pid;
//.........这里部分代码省略.........
示例10: calendar_user_day
function calendar_user_day()
{
$data = xarMod::apiFunc('calendar', 'user', 'getUserDateTimeInfo');
$DayEvents = new Calendar_Day($data['cal_year'], $data['cal_month'], $data['cal_day'], CALENDAR_FIRST_DAY_OF_WEEK);
$args = array('day' => &$Day);
$day_endts = $DayEvents->getTimestamp() + xarModVars::get('calendar', 'day_end') + 3600;
// $events = xarMod::apiFunc('icalendar','user','getevents',$args);
// get all the events. need to improve this query
$xartable = xarDB::getTables();
$q = new Query('SELECT', $xartable['calendar_event']);
// $q->qecho();
if (!$q->run()) {
return;
}
$events = $q->output();
// Do some calculations to complete the entries' info
$slots = array();
// Loop through the events
$eventcount = count($events);
for ($j = 0; $j < $eventcount; $j++) {
// make sure events don't go past the end of the day
$events[$j]['end_time'] = min($events[$j]['end_time'], $day_endts);
$placed = false;
$slotcount = count($slots);
for ($i = 0; $i < $slotcount; $i++) {
if ($events[$j]['start_time'] >= $slots[$i][1]) {
foreach ($slots as $slot) {
$events[$slot[0]]['neighbors'] = $slotcount;
}
$thisslot = $i;
$slots = array(0 => array($j, $events[$j]['end_time']));
$placed = true;
break;
}
}
if (!$placed) {
$thisslot = $slotcount;
$slots[] = array($j, $events[$j]['end_time']);
}
$events[$j]['place'] = $thisslot;
}
foreach ($slots as $slot) {
$events[$slot[0]]['neighbors'] = $slotcount;
}
//foreach($events as $event) {var_dump($event);echo "<br />";}
/*
$selection = array();
foreach ( $entries as $entry ) {
$Hour = new Calendar_Hour(2000,1,1,1);
$Hour->setTimeStamp($entry['start_time']);
// Create the decorator, passing it the Hour
$event = new Event($Hour);
// Attach the payload
$event->setEntry($entry);
// Add the decorator to the selection
$selection[] = $event;
}
*/
$DayDecorator = new DayEvent_Decorator($DayEvents);
$DayDecorator->build($events);
$data['Day'] =& $DayDecorator;
$data['cal_sdow'] = CALENDAR_FIRST_DAY_OF_WEEK;
return $data;
}
示例11: query
/**
* Recursive query function
*
* @param string $query The query to validate against
*/
public function query($query)
{
$query = new Query($query);
$result = $query->run($this);
$len = count($result);
if ($len == 0) {
return null;
}
return $len == 1 ? $result[0] : $result;
}
示例12: getEvents
public function getEvents($start_time, $end_time, $role_id)
{
// get all the events. need to improve this query and combine it with the query in the template
$xartable = xarDB::getTables();
$q = new Query('SELECT', $xartable['calendar_event']);
$q->ge('start_time', $start_time);
$q->lt('start_time', $end_time);
$q->eq('role_id', $role_id);
// $q->qecho();
if (!$q->run()) {
return;
}
return $q->output();
}
示例13: publications_admin_clone
/**
* Publications Module
*
* @package modules
* @subpackage publications module
* @category Third Party Xaraya Module
* @version 2.0.0
* @copyright (C) 2011 Netspan AG
* @license GPL {@link http://www.gnu.org/licenses/gpl.html}
* @author Marc Lutolf <mfl@netspan.ch>
*/
function publications_admin_clone()
{
if (!xarSecurityCheck('ManagePublications')) {
return;
}
if (!xarVarFetch('name', 'isset', $objectname, NULL, XARVAR_DONT_SET)) {
return;
}
if (!xarVarFetch('ptid', 'isset', $ptid, NULL, XARVAR_DONT_SET)) {
return;
}
if (!xarVarFetch('itemid', 'isset', $data['itemid'], NULL, XARVAR_DONT_SET)) {
return;
}
if (!xarVarFetch('confirm', 'int', $confirm, 0, XARVAR_DONT_SET)) {
return;
}
if (empty($data['itemid'])) {
return xarResponse::NotFound();
}
// If a pubtype ID was passed, get the name of the pub object
if (isset($ptid)) {
$pubtypeobject = DataObjectMaster::getObject(array('name' => 'publications_types'));
$pubtypeobject->getItem(array('itemid' => $ptid));
$objectname = $pubtypeobject->properties['name']->value;
}
if (empty($objectname)) {
return xarResponse::NotFound();
}
sys::import('modules.dynamicdata.class.objects.master');
$data['object'] = DataObjectMaster::getObject(array('name' => $objectname));
if (empty($data['object'])) {
return xarResponse::NotFound();
}
// Security
if (!$data['object']->checkAccess('update')) {
return xarResponse::Forbidden(xarML('Clone #(1) is forbidden', $object->label));
}
$data['object']->getItem(array('itemid' => $data['itemid']));
$data['authid'] = xarSecGenAuthKey();
$data['name'] = $data['object']->properties['name']->value;
$data['label'] = $data['object']->label;
xarTplSetPageTitle(xarML('Clone Publication #(1) in #(2)', $data['itemid'], $data['label']));
if ($confirm) {
if (!xarSecConfirmAuthKey()) {
return;
}
// Get the name for the clone
if (!xarVarFetch('newname', 'str', $newname, "", XARVAR_NOT_REQUIRED)) {
return;
}
if (empty($newname)) {
$newname = $data['name'] . "_copy";
}
if ($newname == $data['name']) {
$newname = $data['name'] . "_copy";
}
$newname = strtolower(str_ireplace(" ", "_", $newname));
// Create the clone
$data['object']->properties['name']->setValue($newname);
$data['object']->properties['id']->setValue(0);
$cloneid = $data['object']->createItem(array('itemid' => 0));
// Create the clone's translations
if (!xarVarFetch('clone_translations', 'int', $clone_translations, 0, XARVAR_NOT_REQUIRED)) {
return;
}
if ($clone_translations) {
// Get the info on all the objects to be cloned
sys::import('xaraya.structures.query');
$tables = xarDB::getTables();
$q = new Query();
$q->addtable($tables['publications'], 'p');
$q->addtable($tables['publications_types'], 'pt');
$q->join('p.pubtype_id', 'pt.id');
$q->eq('parent_id', $data['itemid']);
$q->addfield('p.id AS id');
$q->addfield('pt.name AS name');
$q->run();
// Clone each one
foreach ($q->output() as $item) {
$object = DataObjectMaster::getObject(array('name' => $item['name']));
$object->getItem(array('itemid' => $item['id']));
$object->properties['parent']->value = $cloneid;
$object->properties['id']->value = 0;
$object->createItem(array('itemid' => 0));
}
}
// Redirect if we came from somewhere else
$current_listview = xarSession::getVar('publications_current_listview');
//.........这里部分代码省略.........
示例14: run
protected function run()
{
parent::run();
$this->insertID = $this->mysqli->insert_id;
}
示例15: publications_userapi_get_sitemap_pages
/**
* Get pages relative to a given page
*
* Filters:
* Add an arg of the type $args['filter_foo'] = bar
* will add a condition to the SELECT as
* WHERE foo = bar
*
*/
function publications_userapi_get_sitemap_pages($args)
{
if (empty($args['itemid'])) {
$args['itemid'] = 0;
}
if (empty($args['scope'])) {
$args['scope'] = 'descendants';
}
if ($args['itemid'] == 0 && $args['scope'] == 'descendants') {
$args['scope'] = 'all';
}
if (empty($args['sort'])) {
$args['sort'] = 0;
}
// Make sure we have the base translation id
if (!empty($args['itemid'])) {
$args['itemid'] = xarMod::apiFunc('publications', 'user', 'gettranslationid', array('id' => $args['itemid'], 'locale' => xarModVars::get('publications', 'defaultlanguage')));
}
// Identify any filters
$filters = array();
foreach ($args as $k => $v) {
if (strpos($k, 'filter_') === 0) {
$argname = substr($k, 7);
$filters[$argname] = $v;
}
}
$xartable = xarDB::getTables();
sys::import('xaraya.structures.query');
$q = new Query();
$q->addtable($xartable['publications'], 'p');
switch ($args['scope']) {
case 'all':
$q->gt('p.leftpage_id', 0);
break;
case 'descendants':
$q->addtable($xartable['publications'], 'root');
$q->eq('root.id', $args['itemid']);
$q->le('root.leftpage_id', 'expr:p.leftpage_id');
$q->ge('root.rightpage_id', 'expr:p.rightpage_id');
break;
case 'children':
$q->eq('p.parentpage_id', $args['itemid']);
break;
case 'siblings':
$q->addtable($xartable['publications'], 'p1');
$q->join('p.parentpage_id', 'p1.parentpage_id');
$q->eq('p1.id', $args['itemid']);
break;
}
if (!empty($args['itemtype'])) {
$q->eq('p.pubtype_id', $args['itemtype']);
}
$q->eq('p.sitemap_flag', 1);
$q->gt('p.state', 2);
$q->addfield('p.id AS id');
$q->addfield('p.name AS name');
$q->addfield('p.title AS title');
$q->addfield('p.description AS description');
$q->addfield('p.sitemap_source_flag AS sitemap_source_flag');
$q->addfield('p.sitemap_alias AS sitemap_alias');
$q->addfield('p.pubtype_id AS pubtype_id');
$q->addfield('p.rightpage_id AS rightpage_id');
// Add any fiters we found
foreach ($filters as $k => $v) {
$q->eq('p.' . $k, $v);
}
// We can force alpha sorting, or else sort according to tree position
if ($args['sort']) {
$q->setorder('p.title');
} else {
$q->setorder('p.leftpage_id');
}
// $q->qecho();
$q->run();
$pages = $q->output();
$depthstack = array();
foreach ($pages as $key => $page) {
// Calculate the relative nesting level.
// 'depth' is 0-based. Top level (root node) is zero.
if (!empty($depthstack)) {
while (!empty($depthstack) && end($depthstack) < $page['rightpage_id']) {
array_pop($depthstack);
}
}
$depthstack[$page['id']] = $page['rightpage_id'];
$pages[$key]['depth'] = empty($depthstack) ? 0 : count($depthstack) - 1;
// This item is the path for each page, based on page IDs.
// It is effectively a list of ancestor IDs for a page.
// FIXME: some paths seem to get a '0' root ID. They should only have real page IDs.
$pages[$key]['idpath'] = array_keys($depthstack);
$pathstack[$key] = $page['name'];
//.........这里部分代码省略.........