public function __construct(SearchQuery $objSearchQuery, $objParentObject, $strControlId = null) { try { parent::__construct($objParentObject, $strControlId); } catch (QCallerException $objExc) { $objExc->IncrementOffset(); throw $objExc; } $this->objSearchQuery = $objSearchQuery; $this->strTemplate = dirname(__FILE__) . '/SearchQueryPanel.tpl.php'; $this->dtgConditions = new QDataGrid($this); $this->dtgConditions->AddColumn(new QDataGridColumn('Item', '<?= $_CONTROL->ParentControl->RenderItem($_ITEM); ?>', 'HtmlEntities=false', 'Width=160px')); $this->dtgConditions->AddColumn(new QDataGridColumn('Operation', '<?= $_CONTROL->ParentControl->RenderOperation($_ITEM); ?>', 'HtmlEntities=false', 'Width=180px')); $this->dtgConditions->AddColumn(new QDataGridColumn('Value', '<?= $_CONTROL->ParentControl->RenderValue($_ITEM); ?>', 'HtmlEntities=false', 'Width=390px')); $this->dtgConditions->SetDataBinder('dtgConditions_Bind', $this); $this->btnAddCondition = new QButton($this); $this->btnAddCondition->CssClass = 'primary'; $this->btnAddCondition->Text = 'Add a Condition'; $this->btnAddCondition->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnAddCondition_Click')); if ($this->objSearchQuery->Id) { $this->objQueryConditionArray = QueryCondition::LoadArrayBySearchQueryId($this->objSearchQuery->Id, QQ::OrderBy(QQN::QueryCondition()->Id)); $this->objQueryConditionArray[] = new QueryCondition(); } else { $this->objQueryConditionArray = array(new QueryCondition()); } // Single Lookup of Node and Operations $this->objNodeArray = array(); foreach (QueryNode::LoadAll(QQ::OrderBy(QQN::QueryNode()->Name)) as $objNode) { $this->objNodeArray[$objNode->Id] = $objNode; } $this->objOperationArray = array(); foreach (QueryOperation::LoadAll(QQ::OrderBy(QQN::QueryOperation()->Name)) as $objOperation) { $this->objOperationArray[$objOperation->Id] = $objOperation; } }
/** * Deletes all associated QueryConditions * @return void */ public function DeleteAllQueryConditions() { if (is_null($this->intId)) { throw new QUndefinedPrimaryKeyException('Unable to call UnassociateQueryCondition on this unsaved SearchQuery.'); } // Get the Database Object for this Class $objDatabase = SearchQuery::GetDatabase(); // Journaling if ($objDatabase->JournalingDatabase) { foreach (QueryCondition::LoadArrayBySearchQueryId($this->intId) as $objQueryCondition) { $objQueryCondition->Journal('DELETE'); } } // Perform the SQL Query $objDatabase->NonQuery(' DELETE FROM `query_condition` WHERE `search_query_id` = ' . $objDatabase->SqlVariable($this->intId) . ' '); }