当前位置: 首页>>代码示例>>PHP>>正文


PHP DbCommand::addSelect方法代码示例

本文整理汇总了PHP中DbCommand::addSelect方法的典型用法代码示例。如果您正苦于以下问题:PHP DbCommand::addSelect方法的具体用法?PHP DbCommand::addSelect怎么用?PHP DbCommand::addSelect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DbCommand的用法示例。


在下文中一共展示了DbCommand::addSelect方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: modifyElementsQuery

    public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
    {
        $query->addSelect('
				neoblocks.fieldId,
				neoblocks.ownerId,
				neoblocks.ownerLocale,
				neoblocks.typeId,
				neoblocks.collapsed
			')->join('neoblocks neoblocks', 'neoblocks.id = elements.id')->leftJoin('neoblockstructures neoblockstructures', ['and', 'neoblockstructures.ownerId = neoblocks.ownerId', 'neoblockstructures.fieldId = neoblocks.fieldId', ['or', 'neoblockstructures.ownerLocale = neoblocks.ownerLocale', ['and', 'neoblockstructures.ownerLocale is null', 'neoblocks.ownerLocale is null']]])->leftJoin('structureelements structureelements', ['and', 'structureelements.structureId = neoblockstructures.structureId', 'structureelements.elementId = neoblocks.id']);
        if ($criteria->fieldId) {
            $query->andWhere(DbHelper::parseParam('neoblocks.fieldId', $criteria->fieldId, $query->params));
        }
        if ($criteria->ownerId) {
            $query->andWhere(DbHelper::parseParam('neoblocks.ownerId', $criteria->ownerId, $query->params));
        }
        if ($criteria->ownerLocale) {
            $query->andWhere(DbHelper::parseParam('neoblocks.ownerLocale', $criteria->ownerLocale, $query->params));
        }
        if ($criteria->typeId) {
            $query->andWhere(DbHelper::parseParam('neoblocks.typeId', $criteria->typeId, $query->params));
        } else {
            if ($criteria->type) {
                $query->join('neoblocktypes neoblocktypes', 'neoblocktypes.id = neoblocks.typeId');
                $query->andWhere(DbHelper::parseParam('neoblocktypes.handle', $criteria->type, $query->params));
            }
        }
    }
开发者ID:benjamminf,项目名称:craft-neo,代码行数:27,代码来源:Neo_BlockElementType.php

示例2: modifyElementsQuery

 /**
  * @inheritDoc IElementType::modifyElementsQuery()
  *
  * @param DbCommand $query
  * @param ElementCriteriaModel $criteria
  *
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('globalsets.name, globalsets.handle, globalsets.fieldLayoutId')->join('globalsets globalsets', 'globalsets.id = elements.id');
     if ($criteria->handle) {
         $query->andWhere(DbHelper::parseParam('globalsets.handle', $criteria->handle, $query->params));
     }
 }
开发者ID:scisahaha,项目名称:generator-craft,代码行数:15,代码来源:GlobalSetElementType.php

示例3: modifyElementsQuery

 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('formbuilder_entries.formId, formbuilder_entries.title, formbuilder_entries.data')->join('formbuilder_entries formbuilder_entries', 'formbuilder_entries.id = elements.id');
     if ($criteria->formId) {
         $query->andWhere(DbHelper::parseParam('formbuilder_entries.formId', $criteria->formId, $query->params));
     }
 }
开发者ID:nealstammers,项目名称:FormBuilder-Craft-CMS,代码行数:7,代码来源:FormBuilderElementType.php

示例4: modifyElementsQuery

 /**
  * Modifies an element query targeting elements of this type.
  *
  * @param DbCommand $query
  * @param ElementCriteriaModel $criteria
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('venti.startDate, venti.endDate, venti.allDay, venti.isrepeat, venti.eid, venti.eventid, venti.repeat, venti.rRule, venti.summary, venti.locale, entries.postDate, entries.expiryDate')->leftJoin('venti_events venti', 'venti.eventid = elements.id')->leftJoin('entries entries', 'entries.id = eventid')->group('venti.startDate');
     if ($criteria->locale) {
         $query->andWhere(DbHelper::parseParam('venti.locale', $criteria->locale, $query->params));
     }
     if ($criteria->startDate) {
         $query->andWhere(DbHelper::parseDateParam('venti.startDate', $criteria->startDate, $query->params));
     }
     if ($criteria->id) {
         $query->andWhere(DbHelper::parseParam('venti.eventid', $criteria->eventid, $query->params));
     }
     if ($criteria->eventid) {
         $query->andWhere(DbHelper::parseParam('venti.eventid', $criteria->eventid, $query->params));
     }
     if ($criteria->endDate) {
         $query->andWhere(DbHelper::parseDateParam('venti.endDate', $criteria->endDate, $query->params));
     }
     if ($criteria->summary) {
         $query->andWhere(DbHelper::parseParam('venti.summary', $criteria->summary, $query->params));
     }
     if ($criteria->isrepeat) {
         $query->andWhere(DbHelper::parseParam('venti.isrepeat', $criteria->isrepeat, $query->params));
     }
     if ($criteria->rRule) {
         $query->andWhere(DbHelper::parseParam('venti.rRule', $criteria->rRule, $query->params));
     }
     if ($criteria->eid) {
         $query->andWhere(DbHelper::parseParam('venti.eid', $criteria->eid, $query->params));
     }
     if ($criteria->repeat) {
         $query->andWhere(DbHelper::parseParam('venti.repeat', $criteria->repeat, $query->params));
     }
     if ($criteria->allDay) {
         $query->andWhere(DbHelper::parseDateParam('venti.allDay', $criteria->allDay, $query->params));
     }
     if ($criteria->between) {
         $dates = array();
         $interval = array();
         if (!is_array($criteria->between)) {
             $criteria->between = ArrayHelper::stringToArray($criteria->between);
         }
         if (count($criteria->between) == 2) {
             foreach ($criteria->between as $ref) {
                 if (!$ref instanceof \DateTime) {
                     $dates[] = DateTime::createFromString($ref, craft()->getTimeZone());
                 } else {
                     $dates[] = $ref;
                 }
             }
             if ($dates[0] > $dates[1]) {
                 $interval[0] = $dates[1];
                 $interval[1] = $dates[0];
             } else {
                 $interval = $dates;
             }
             $query->andWhere('(venti.startDate BETWEEN :betweenStartDate AND :betweenEndDate) OR (:betweenStartDate BETWEEN venti.startDate AND venti.endDate)', array(':betweenStartDate' => DateTimeHelper::formatTimeForDb($interval[0]->getTimestamp()), ':betweenEndDate' => DateTimeHelper::formatTimeForDb($interval[1]->getTimestamp())));
         }
     }
 }
开发者ID:codeforamerica,项目名称:oakland-beta,代码行数:67,代码来源:Venti_EventElementType.php

示例5: getRunChartDataFromQuery

 /**
  * Returns the data for a run chart, based on a given DB query, start/end dates, and the desired time interval unit.
  *
  * The query’s SELECT clause should already be set to a column aliased as `value`.
  *
  * The $options array can override the following defaults:
  *
  *  - `intervalUnit` - The time interval unit to use ('hour', 'day', 'month', or 'year').
  *                     By default, a unit will be decided automatically based on the start/end date duration.
  *  - `categoryLabel` - The label to use for the chart categories (times). Defaults to "Date".
  *  - `valueLabel` - The label to use for the chart values. Defaults to "Value".
  *  - `valueType` - The type of values that are being plotted ('number', 'currency', 'percent', 'time'). Defaults to 'number'.
  *
  * @param DbCommand  $query        The DB query that should be used
  * @param DateTime   $startDate    The start of the time duration to select (inclusive)
  * @param DateTime   $endDate      The end of the time duratio to select (exclusive)
  * @param string     $dateColumn   The column that represents the date
  * @param array|null $options      Any customizations that should be made over the default options
  *
  * @return array
  */
 public static function getRunChartDataFromQuery(DbCommand $query, DateTime $startDate, DateTime $endDate, $dateColumn, $options = array())
 {
     // Setup
     $options = array_merge(array('intervalUnit' => null, 'categoryLabel' => Craft::t('Date'), 'valueLabel' => Craft::t('Value'), 'valueType' => 'number'), $options);
     $craftTimezone = new \DateTimeZone(craft()->timezone);
     $utc = new \DateTimeZone(DateTime::UTC);
     if ($options['intervalUnit'] && in_array($options['intervalUnit'], array('year', 'month', 'day', 'hour'))) {
         $intervalUnit = $options['intervalUnit'];
     } else {
         $intervalUnit = self::getRunChartIntervalUnit($startDate, $endDate);
     }
     switch ($intervalUnit) {
         case 'year':
             $sqlDateFormat = '%Y-01-01';
             $phpDateFormat = 'Y-01-01';
             $sqlGroup = "YEAR({$dateColumn})";
             $cursorDate = new DateTime($startDate->format('Y-01-01'), $craftTimezone);
             break;
         case 'month':
             $sqlDateFormat = '%Y-%m-01';
             $phpDateFormat = 'Y-m-01';
             $sqlGroup = "YEAR({$dateColumn}), MONTH({$dateColumn})";
             $cursorDate = new DateTime($startDate->format('Y-m-01'), $craftTimezone);
             break;
         case 'day':
             $sqlDateFormat = '%Y-%m-%d';
             $phpDateFormat = 'Y-m-d';
             $sqlGroup = "YEAR({$dateColumn}), MONTH({$dateColumn}), DAY({$dateColumn})";
             $cursorDate = new DateTime($startDate->format('Y-m-d'), $craftTimezone);
             break;
         case 'hour':
             $sqlDateFormat = '%Y-%m-%d %H:00:00';
             $phpDateFormat = 'Y-m-d H:00:00';
             $sqlGroup = "YEAR({$dateColumn}), MONTH({$dateColumn}), DAY({$dateColumn}), HOUR({$dateColumn})";
             $cursorDate = new DateTime($startDate->format('Y-m-d'), $craftTimezone);
             break;
     }
     // Execute the query
     $results = $query->addSelect("DATE_FORMAT({$dateColumn}, '{$sqlDateFormat}') as date")->andWhere(array('and', $dateColumn . ' >= :startDate', $dateColumn . ' < :endDate'), array(':startDate' => $startDate->mySqlDateTime(), ':endDate' => $endDate->mySqlDateTime()))->group($sqlGroup)->order($dateColumn . ' asc')->queryAll();
     // Assembe the data
     $rows = array();
     $endTimestamp = $endDate->getTimestamp();
     while ($cursorDate->getTimestamp() < $endTimestamp) {
         // Do we have a record for this date?
         $formattedCursorDate = $cursorDate->format($phpDateFormat, $utc);
         if (isset($results[0]) && $results[0]['date'] == $formattedCursorDate) {
             $value = (double) $results[0]['value'];
             array_shift($results);
         } else {
             $value = 0;
         }
         $rows[] = array($formattedCursorDate, $value);
         $cursorDate->modify('+1 ' . $intervalUnit);
     }
     return array('columns' => array(array('type' => $intervalUnit == 'hour' ? 'datetime' : 'date', 'label' => $options['categoryLabel']), array('type' => $options['valueType'], 'label' => $options['valueLabel'])), 'rows' => $rows);
 }
开发者ID:codeforamerica,项目名称:oakland-beta,代码行数:77,代码来源:ChartHelper.php

示例6: modifyElementsQuery

 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('submissions.formId')->join('formerly_submissions submissions', 'submissions.id = elements.id');
     if ($criteria->formId) {
         $query->andWhere(DbHelper::parseParam('submissions.formId', $criteria->formId, $query->params));
     }
     if ($criteria->form) {
         $query->join('formerly_forms forms', 'forms.id = submissions.formId');
         $query->andWhere(DbHelper::parseParam('formerly_forms.handle', $criteria->form, $query->params));
     }
 }
开发者ID:richcahill,项目名称:deesignWebsite,代码行数:11,代码来源:Formerly_SubmissionElementType.php

示例7: modifyElementsQuery

 /**
  * Modifies an element query targeting elements of this type.
  *
  * @param DbCommand $query
  * @param ElementCriteriaModel $criteria
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('shortlist_item.elementId, shortlist_item.elementType, shortlist_item.listId, shortlist_list.ownerId')->join('shortlist_item shortlist_item', 'shortlist_item.id = elements.id')->join('shortlist_list shortlist_list', 'shortlist_item.listId = shortlist_list.id');
     if ($criteria->listId) {
         $query->andWhere(DbHelper::parseParam('shortlist_item.listId', $criteria->listId, $query->params));
     }
     if ($criteria->elementId) {
         $query->andWhere(DbHelper::parseParam('shortlist_item.elementId', $criteria->elementId, $query->params));
     }
     if ($criteria->ownerId) {
         $query->andWhere(DbHelper::parseParam('shortlist_list.ownerId', $criteria->ownerId, $query->params));
     }
 }
开发者ID:jamiepittock,项目名称:WhereForArt,代码行数:20,代码来源:Shortlist_ItemElementType.php

示例8: modifyElementsQuery

 /**
  * Modifies an entries query targeting entries of this type.
  *
  * @param DbCommand $query
  * @param ElementCriteriaModel $criteria
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('tags.setId, tags.name')->join('tags tags', 'tags.id = elements.id');
     if ($criteria->name) {
         $query->andWhere(DbHelper::parseParam('tags.name', $criteria->name, $query->params));
     }
     if ($criteria->setId) {
         $query->andWhere(DbHelper::parseParam('tags.setId', $criteria->setId, $query->params));
     }
     if ($criteria->set) {
         $query->join('tagsets tagsets', 'tagsets.id = tags.setId');
         $query->andWhere(DbHelper::parseParam('tagsets.handle', $criteria->set, $query->params));
     }
 }
开发者ID:kentonquatman,项目名称:portfolio,代码行数:21,代码来源:TagElementType.php

示例9: modifyElementsQuery

 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('supertableblocks.fieldId, supertableblocks.ownerId, supertableblocks.ownerLocale, supertableblocks.typeId, supertableblocks.sortOrder')->join('supertableblocks supertableblocks', 'supertableblocks.id = elements.id');
     if ($criteria->fieldId) {
         $query->andWhere(DbHelper::parseParam('supertableblocks.fieldId', $criteria->fieldId, $query->params));
     }
     if ($criteria->ownerId) {
         $query->andWhere(DbHelper::parseParam('supertableblocks.ownerId', $criteria->ownerId, $query->params));
     }
     if ($criteria->ownerLocale) {
         $query->andWhere(DbHelper::parseParam('supertableblocks.ownerLocale', $criteria->ownerLocale, $query->params));
     }
     if ($criteria->type) {
         $query->join('supertableblocktypes supertableblocktypes', 'supertableblocktypes.id = supertableblocks.typeId');
         $query->andWhere(DbHelper::parseParam('supertableblocktypes.handle', $criteria->type, $query->params));
     }
 }
开发者ID:sidneywidmer,项目名称:SuperTable,代码行数:17,代码来源:SuperTable_BlockElementType.php

示例10: modifyElementsQuery

 /**
  * Modifies an element query targeting elements of this type.
  *
  * @param DbCommand $query
  * @param ElementCriteriaModel $criteria
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('shortlist_list.default, shortlist_list.userSlug, shortlist_list.public, shortlist_list.type, shortlist_list.ownerId, shortlist_list.ownerType')->join('shortlist_list shortlist_list', 'shortlist_list.id = elements.id');
     if ($criteria->default) {
         $query->andWhere(DbHelper::parseParam('shortlist_list.default', $criteria->default, $query->params));
     }
     if ($criteria->userSlug) {
         $query->andWhere(DbHelper::parseParam('shortlist_list.userSlug', $criteria->userSlug, $query->params));
     }
     if ($criteria->public) {
         $query->andWhere(DbHelper::parseParam('shortlist_list.public', $criteria->public, $query->params));
     }
     if ($criteria->ownerId) {
         $query->andWhere(DbHelper::parseParam('shortlist_list.ownerId', $criteria->ownerId, $query->params));
     }
     if ($criteria->ownerType) {
         $query->andWhere(DbHelper::parseParam('shortlist_list.ownerType', $criteria->ownerType, $query->params));
     }
 }
开发者ID:jamiepittock,项目名称:WhereForArt,代码行数:26,代码来源:Shortlist_ListElementType.php

示例11: modifyElementsQuery

 /**
  * @inheritDoc IElementType::modifyElementsQuery()
  *
  * @param DbCommand            $query
  * @param ElementCriteriaModel $criteria
  *
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('users.username, users.photo, users.firstName, users.lastName, users.email, users.admin, users.client, users.locked, users.pending, users.suspended, users.archived, users.lastLoginDate, users.lockoutDate, users.preferredLocale')->join('users users', 'users.id = elements.id');
     if ($criteria->admin) {
         $query->andWhere(DbHelper::parseParam('users.admin', $criteria->admin, $query->params));
     }
     if ($criteria->client && craft()->getEdition() == Craft::Client) {
         $query->andWhere(DbHelper::parseParam('users.client', $criteria->client, $query->params));
     }
     if ($criteria->can && craft()->getEdition() == Craft::Pro) {
         // Get the actual permission ID
         if (is_numeric($criteria->can)) {
             $permissionId = $criteria->can;
         } else {
             $permissionId = craft()->db->createCommand()->select('id')->from('userpermissions')->where('name = :name', array(':name' => strtolower($criteria->can)))->queryScalar();
         }
         // Find the users that have that permission, either directly or through a group
         $permittedUserIds = array();
         // If the permission hasn't been assigned to any groups/users before, it won't have an ID. Don't bail
         // though, since we still want to look for admins.
         if ($permissionId) {
             // Get the user groups that have that permission
             $permittedGroupIds = craft()->db->createCommand()->select('groupId')->from('userpermissions_usergroups')->where('permissionId = :permissionId', array(':permissionId' => $permissionId))->queryColumn();
             if ($permittedGroupIds) {
                 $permittedUserIds = $this->_getUserIdsByGroupIds($permittedGroupIds);
             }
             // Get the users that have that permission directly
             $permittedUserIds = array_merge($permittedUserIds, craft()->db->createCommand()->select('userId')->from('userpermissions_users')->where('permissionId = :permissionId', array(':permissionId' => $permissionId))->queryColumn());
         }
         if ($permittedUserIds) {
             $permissionConditions = array('or', 'users.admin = 1', array('in', 'elements.id', $permittedUserIds));
         } else {
             $permissionConditions = 'users.admin = 1';
         }
         $query->andWhere($permissionConditions);
     }
     if ($criteria->groupId) {
         $userIds = $this->_getUserIdsByGroupIds($criteria->groupId);
         if (!$userIds) {
             return false;
         }
         $query->andWhere(array('in', 'elements.id', $userIds));
     }
     if ($criteria->group) {
         // Get the actual group ID(s)
         $groupIdsQuery = craft()->db->createCommand()->select('id')->from('usergroups');
         $groupIdsQuery->where(DbHelper::parseParam('handle', $criteria->group, $groupIdsQuery->params));
         $groupIds = $groupIdsQuery->queryColumn();
         // In the case where the group doesn't exist.
         if (!$groupIds) {
             return false;
         }
         $userIds = $this->_getUserIdsByGroupIds($groupIds);
         // In case there are no users in the groups.
         if (!$userIds) {
             return false;
         }
         $query->andWhere(array('in', 'elements.id', $userIds));
     }
     if ($criteria->username) {
         $query->andWhere(DbHelper::parseParam('users.username', $criteria->username, $query->params));
     }
     if ($criteria->firstName) {
         $query->andWhere(DbHelper::parseParam('users.firstName', $criteria->firstName, $query->params));
     }
     if ($criteria->lastName) {
         $query->andWhere(DbHelper::parseParam('users.lastName', $criteria->lastName, $query->params));
     }
     if ($criteria->email) {
         $query->andWhere(DbHelper::parseParam('users.email', $criteria->email, $query->params));
     }
     if ($criteria->preferredLocale) {
         $query->andWhere(DbHelper::parseParam('users.preferredLocale', $criteria->preferredLocale, $query->params));
     }
     if ($criteria->lastLoginDate) {
         $query->andWhere(DbHelper::parseDateParam('users.lastLoginDate', $criteria->lastLoginDate, $query->params));
     }
 }
开发者ID:scisahaha,项目名称:generator-craft,代码行数:86,代码来源:UserElementType.php

示例12: modifyElementsQuery

 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('
         workflow_submissions.ownerId,
         workflow_submissions.draftId,
         workflow_submissions.editorId,
         workflow_submissions.publisherId,
         workflow_submissions.status,
         workflow_submissions.notes,
         workflow_submissions.dateApproved,
         workflow_submissions.dateRejected,
         workflow_submissions.dateRevoked
     ')->join('workflow_submissions workflow_submissions', 'workflow_submissions.id = elements.id');
     if ($criteria->ownerId) {
         $query->andWhere(DbHelper::parseParam('workflow_submissions.ownerId', $criteria->ownerId, $query->params));
     }
     if ($criteria->draftId) {
         $query->andWhere(DbHelper::parseParam('workflow_submissions.draftId', $criteria->draftId, $query->params));
     }
     if ($criteria->editorId) {
         $query->andWhere(DbHelper::parseParam('workflow_submissions.editorId', $criteria->editorId, $query->params));
     }
     if ($criteria->publisherId) {
         $query->andWhere(DbHelper::parseParam('workflow_submissions.publisherId', $criteria->publisherId, $query->params));
     }
     if ($criteria->status) {
         $query->andWhere(DbHelper::parseParam('workflow_submissions.status', $criteria->status, $query->params));
     }
     if ($criteria->notes) {
         $query->andWhere(DbHelper::parseParam('workflow_submissions.notes', $criteria->notes, $query->params));
     }
     if ($criteria->dateApproved) {
         $query->andWhere(DbHelper::parseDateParam('workflow_submissions.dateApproved', $criteria->dateApproved, $query->params));
     }
     if ($criteria->dateRejected) {
         $query->andWhere(DbHelper::parseDateParam('workflow_submissions.dateRejected', $criteria->dateRejected, $query->params));
     }
     if ($criteria->dateRevoked) {
         $query->andWhere(DbHelper::parseDateParam('workflow_submissions.dateRevoked', $criteria->dateRevoked, $query->params));
     }
     if ($criteria->dateCreated) {
         $query->andWhere(DbHelper::parseDateParam('workflow_submissions.dateCreated', $criteria->dateCreated, $query->params));
     }
 }
开发者ID:engram-design,项目名称:Workflow,代码行数:44,代码来源:Workflow_SubmissionElementType.php

示例13: modifyElementsQuery

 /**
  * Modifies an entries query targeting entries of this type.
  *
  * @param DbCommand $query
  * @param ElementCriteriaModel $criteria
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('entries.sectionId, entries.authorId, entries.postDate, entries.expiryDate, entries_i18n.slug')->join('entries entries', 'entries.id = elements.id')->join('entries_i18n entries_i18n', 'entries_i18n.entryId = elements.id')->andWhere('entries_i18n.locale = elements_i18n.locale');
     if ($criteria->slug) {
         $query->andWhere(DbHelper::parseParam('entries_i18n.slug', $criteria->slug, $query->params));
     }
     if ($criteria->postDate) {
         $query->andWhere(DbHelper::parseDateParam('entries.postDate', '=', $criteria->postDate, $query->params));
     } else {
         if ($criteria->after) {
             $query->andWhere(DbHelper::parseDateParam('entries.postDate', '>=', $criteria->after, $query->params));
         }
         if ($criteria->before) {
             $query->andWhere(DbHelper::parseDateParam('entries.postDate', '<', $criteria->before, $query->params));
         }
     }
     if ($criteria->editable) {
         $user = craft()->userSession->getUser();
         if (!$user) {
             return false;
         }
         $editableSectionIds = craft()->sections->getEditableSectionIds();
         $query->andWhere(array('in', 'entries.sectionId', $editableSectionIds));
         $noPeerConditions = array();
         foreach ($editableSectionIds as $sectionId) {
             if (!$user->can('editPeerEntries:' . $sectionId)) {
                 $noPeerConditions[] = array('or', 'entries.sectionId != ' . $sectionId, 'entries.authorId = ' . $user->id);
             }
         }
         if ($noPeerConditions) {
             array_unshift($noPeerConditions, 'and');
             $query->andWhere($noPeerConditions);
         }
     }
     if (Craft::hasPackage(CraftPackage::PublishPro)) {
         if ($criteria->sectionId) {
             $query->andWhere(DbHelper::parseParam('entries.sectionId', $criteria->sectionId, $query->params));
         }
         if ($criteria->section) {
             $query->join('sections sections', 'entries.sectionId = sections.id');
             $query->andWhere(DbHelper::parseParam('sections.handle', $criteria->section, $query->params));
         }
     }
     if (Craft::hasPackage(CraftPackage::Users)) {
         if ($criteria->authorId) {
             $query->andWhere(DbHelper::parseParam('entries.authorId', $criteria->authorId, $query->params));
         }
         if ($criteria->authorGroupId || $criteria->authorGroup) {
             $query->join('usergroups_users usergroups_users', 'usergroups_users.userId = entries.authorId');
             if ($criteria->authorGroupId) {
                 $query->andWhere(DbHelper::parseParam('usergroups_users.groupId', $criteria->authorGroupId, $query->params));
             }
             if ($criteria->authorGroup) {
                 $query->join('usergroups usergroups', 'usergroups.id = usergroups_users.groupId');
                 $query->andWhere(DbHelper::parseParam('usergroups.handle', $criteria->authorGroup, $query->params));
             }
         }
     }
 }
开发者ID:kentonquatman,项目名称:portfolio,代码行数:66,代码来源:EntryElementType.php

示例14: modifyElementsQuery

 /**
  * Modifies an element query targeting elements of this type.
  *
  * @param DbCommand            $query
  * @param ElementCriteriaModel $criteria
  *
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('pushnotifications_devices.appId, pushnotifications_devices.platform, pushnotifications_devices.token')->join('pushnotifications_devices pushnotifications_devices', 'pushnotifications_devices.id = elements.id');
     if ($criteria->appId) {
         $query->andWhere(DbHelper::parseParam('pushnotifications_devices.appId', $criteria->appId, $query->params));
     }
     if ($criteria->app) {
         $query->join('pushnotifications_apps pushnotifications_apps', 'pushnotifications_apps.id = pushnotifications_devices.appId');
         $query->andWhere(DbHelper::parseParam('pushnotifications_apps.handle', $criteria->app, $query->params));
     }
     if ($criteria->platform) {
         $query->andWhere(DbHelper::parseParam('pushnotifications_devices.platform', $criteria->platform, $query->params));
     }
     if ($criteria->token) {
         $query->andWhere(DbHelper::parseParam('pushnotifications_devices.token', $criteria->token, $query->params));
     }
 }
开发者ID:webremote,项目名称:pushnotifications,代码行数:25,代码来源:PushNotifications_DeviceElementType.php

示例15: modifyElementsQuery

 /**
  * Modifies an element query targeting elements of this type.
  *
  * @param DbCommand $query
  * @param ElementCriteriaModel $criteria
  * @return mixed
  */
 public function modifyElementsQuery(DbCommand $query, ElementCriteriaModel $criteria)
 {
     $query->addSelect('events.calendarId, events.startDate, events.endDate')->join('events events', 'events.id = elements.id');
     if ($criteria->calendarId) {
         $query->andWhere(DbHelper::parseParam('events.calendarId', $criteria->calendarId, $query->params));
     }
     if ($criteria->calendar) {
         $query->join('events_calendars events_calendars', 'events_calendars.id = events.calendarId');
         $query->andWhere(DbHelper::parseParam('events_calendars.handle', $criteria->calendar, $query->params));
     }
     if ($criteria->startDate) {
         $query->andWhere(DbHelper::parseDateParam('events.startDate', $criteria->startDate, $query->params));
     }
     if ($criteria->endDate) {
         $query->andWhere(DbHelper::parseDateParam('events.endDate', $criteria->endDate, $query->params));
     }
 }
开发者ID:webremote,项目名称:Events,代码行数:24,代码来源:Events_EventElementType.php


注:本文中的DbCommand::addSelect方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。