/** * Default / simple DataBinder for this Meta DataGrid. This can easily be overridden * by calling SetDataBinder() on this DataGrid with another DataBinder of your choice. * * If a paginator is set on this DataBinder, it will use it. If not, then no pagination will be used. * It will also perform any sorting (if applicable). */ public function MetaDataBinder() { $objConditions = $this->Conditions; if (null !== $this->conAdditionalConditions) { $objConditions = QQ::AndCondition($this->conAdditionalConditions, $objConditions); } // Setup the $objClauses Array $objClauses = array(); if (null !== $this->clsAdditionalClauses) { $objClauses = $this->clsAdditionalClauses; } // Remember! We need to first set the TotalItemCount, which will affect the calcuation of LimitClause below if ($this->Paginator) { $this->TotalItemCount = NarroLanguage::QueryCount($objConditions); } // If a column is selected to be sorted, and if that column has a OrderByClause set on it, then let's add // the OrderByClause to the $objClauses array if ($objClause = $this->OrderByClause) { array_push($objClauses, $objClause); } // Add the LimitClause information, as well if ($objClause = $this->LimitClause) { array_push($objClauses, $objClause); } // Set the DataSource to be a Query result from NarroLanguage, given the clauses above $this->DataSource = NarroLanguage::QueryArray($objConditions, $objClauses); }
public function dtgLanguage_Bind() { if ($this->txtSearch->Text != '') { $objSearchCondition = QQ::Like(QQN::NarroLanguage()->LanguageName, sprintf('%%%s%%', $this->txtSearch->Text)); } else { $objSearchCondition = QQ::All(); } switch ($this->lstFilter->SelectedValue) { /** * Only active */ case 1: $objFilterCondition = QQ::AndCondition($objSearchCondition, QQ::Equal(QQN::NarroLanguage()->Active, 1)); break; /** * 0 - show all */ /** * 0 - show all */ default: $objFilterCondition = $objSearchCondition; } // Because we want to enable pagination AND sorting, we need to setup the $objClauses array to send to LoadAll() // Remember! We need to first set the TotalItemCount, which will affect the calcuation of LimitClause below $this->dtgLanguage->TotalItemCount = NarroLanguage::QueryCount($objFilterCondition); // Setup the $objClauses Array $objClauses = array(QQ::Expand(QQ::Virtual('last_translation', QQ::SubSql('SELECT MAX(created) FROM narro_suggestion WHERE language_id={1}', QQN::NarroLanguage()->LanguageId))), QQ::Count(QQN::NarroLanguage()->NarroSuggestionAsLanguage->SuggestionId, 'translations_count'), QQ::GroupBy(QQN::NarroLanguage()->LanguageId)); // If a column is selected to be sorted, and if that column has a OrderByClause set on it, then let's add // the OrderByClause to the $objClauses array if ($objClause = $this->dtgLanguage->OrderByClause) { array_push($objClauses, $objClause); } // Add the LimitClause information, as well if ($objClause = $this->dtgLanguage->LimitClause) { array_push($objClauses, $objClause); } // Set the DataSource to be the array of all NarroLanguage objects, given the clauses above $this->dtgLanguage->DataSource = NarroLanguage::QueryArray($objFilterCondition, $objClauses); QApplication::ExecuteJavaScript('highlight_datagrid();'); }
/** * Count all NarroLanguages * @return int */ public static function CountAll() { // Call NarroLanguage::QueryCount to perform the CountAll query return NarroLanguage::QueryCount(QQ::All()); }