is_edited > 0; } function prefetchRecordCount (Sql $request) { $request = clone $request; $request->clearFields (); $request->clearOrder (); $request->addField ('COUNT(*) AS cnt'); $result = $this->query ((string) $request); foreach ($result as $row) { return $row->cnt; } } function getTemplatesByRequest (Sql $request, $columns = null) { $result = array( 'records_total' => 0, 'templates' => array (), ); $rowset = $this->query ($request); $result ['records_total'] = Database::instance()->count_found_rows; if ($rowset->count ()) { $result ['templates'] = $this->paginate ($rowset, $columns); } return $result; } function save () { { $previous = clone $this; $previous->reload (); if ($previous->visibility != $this->visibility) { if (DAL_Catalog::STATE_DISABLED == $previous->visibility) { $this->unhideUnderlyingTemplates (); $recalculate_template_counts = true; } if (DAL_Catalog::STATE_DISABLED == $this->visibility) { $this->hideUnderlyingTemplates (); $recalculate_template_counts = true; } } parent::save (); if (isset ($recalculate_template_counts)) { $setting = ORM::factory ('setting', Setting_Model::S_TEMPLATE_COUNTER_UPDATE); $setting->id = Setting_Model::S_TEMPLATE_COUNTER_UPDATE; $setting->value = 1; $setting->setForced (true); $setting->save (); } } } protected function unhideUnderlyingTemplates () { } protected function hideUnderlyingTemplates () { } protected function getUniqueUrl ($name) { $name = new String ($name); $url = (string) $name->toUrl (); if (valid::unique_orm_field_value ($this, 'url_name', $url)) { return $url; } else { $max = 0; foreach ($this->like ('url_name', "$url%", false)->find_all () as $homonym) { if (preg_match ('~-(\d+)$~', $homonym->url_name, $match)) { $max = max ($max, $match [1]); } } $max ++; return sprintf ('%s-%u', $url, $max); } } }