Ejemplo n.º 1
0
 function __construct(Am_Table $table, $alias = 't')
 {
     $this->db = $table->getAdapter();
     $this->table = $table;
     $this->alias = $alias;
     $this->tableName = $table->getName();
     $this->keyField = $table->getKeyField();
 }
Ejemplo n.º 2
0
 /**
  * Replaces only already exists fields, except the PK
  * @param array $vars
  * @return Am_Record provides flient interface
  */
 public function setForUpdate($vars)
 {
     $keyField = $this->_table->getKeyField();
     foreach ($vars as $key => $value) {
         if ($key != $keyField && $this->_isValidField($key) && property_exists($this, $key)) {
             $this->{$key} = $value;
         }
     }
     return $this;
 }
Ejemplo n.º 3
0
 protected function _simpleSort(Am_Table $table, $item, $after, $before)
 {
     $after = $after ? $after['id'] : null;
     $before = $before ? $before['id'] : null;
     $id = $item['id'];
     $table_name = $table->getName();
     $pk = $table->getKeyField();
     $db = Am_Di::getInstance()->db;
     $item = $table->load($id);
     if ($before) {
         $beforeItem = $table->load($before);
         $sign = $beforeItem->sort_order > $item->sort_order ? '-' : '+';
         $newSortOrder = $beforeItem->sort_order > $item->sort_order ? $beforeItem->sort_order - 1 : $beforeItem->sort_order;
         $db->query("UPDATE {$table_name}\n                SET sort_order=sort_order{$sign}1 WHERE\n                sort_order BETWEEN ? AND ? AND {$pk}<>?", min($newSortOrder, $item->sort_order), max($newSortOrder, $item->sort_order), $id);
         $db->query("UPDATE {$table_name} SET sort_order=? WHERE {$pk}=?", $newSortOrder, $id);
     } elseif ($after) {
         $afterItem = $table->load($after);
         $sign = $afterItem->sort_order > $item->sort_order ? '-' : '+';
         $newSortOrder = $afterItem->sort_order > $item->sort_order ? $afterItem->sort_order : $afterItem->sort_order + 1;
         $db->query("UPDATE {$table_name}\n                SET sort_order=sort_order{$sign}1 WHERE\n                sort_order BETWEEN ? AND ? AND {$pk}<>?", min($newSortOrder, $item->sort_order), max($newSortOrder, $item->sort_order), $id);
         $db->query("UPDATE {$table_name} SET sort_order=? WHERE {$pk}=?", $newSortOrder, $id);
     }
 }