/** * Метод возвращает идентификаторы данного фолдинга, хранимые в базе. * * @param type $all - признак, возвращать: * * все сущности (выбираются из table) * * видимые сущности (выбираются из view) */ public function getIdents(FoldedResources $folded, $all) { $folded->assertWorkWithTable(); $cacheKey = $folded->getUnique('idents-' . ($all ? 'all' : 'vis')); if (!$this->CACHE->has($cacheKey)) { $view = $all ? $folded->getTableName() : $folded->getTableView(); $colIdent = $folded->getTableColumnIdent(); $colStype = $folded->getTableColumnStype(); $params = array(); $query = "select {$colIdent} as value from {$view}"; if ($colStype) { $params[] = $folded->getFoldingSubType(); $query .= " where {$colStype}=?"; } $this->CACHE->set($cacheKey, $this->getValues($query, $params)); } return $this->CACHE->get($cacheKey); }
/** * Метод удаляет строку из базы, соотвутствующую переданной сущности фолдинга */ public function deleteFoldingDbRec(FoldedResources $folding, $ident) { check_condition($folding->getTableName() === $this->getName(), "Таблица {$this->getName()} не работает с фолдингом {$folding->getEntityName()}."); $dbrec = $this->getFoldingDbRec($folding, $ident); if (is_array($dbrec)) { $this->saveRec($folding->getDbRec4Entity($ident), PS_ACTION_DELETE); } }