/** * Transforms the filename template of a file to a real filename * * @param Atomik_Model_Builder $builder * @param array $data * @return string */ public static function getFilenameFromBuilder(Atomik_Model_Builder $builder, $data = array()) { if (($filename = $builder->getOption('filename', null)) === null) { require_once 'Atomik/Model/Exception.php'; throw new Atomik_Model_Exception('Missing filename option in ' . $builder->getName() . ' model'); } foreach ($data as $key => $value) { $filename = str_replace(':' . $key, $value, $filename); } return ltrim($filename, '/'); }
public function afterSave(Atomik_Model_Builder $builder, Atomik_Model $model) { $db = $builder->getManager()->getDbInstance(); $fullDynamic = $builder->getOption('dynamic', false); $tableName = $builder->tableName; $foreignFieldName = $this->_prefix($tableName) . '_' . $builder->getPrimaryKeyField()->name; $primaryKey = $model->getPrimaryKey(); $tableName = $this->_suffix($tableName); foreach (get_object_vars($model) as $name => $value) { if (!$fullDynamic && ($builder->hasField($name) || $builder->hasReference($name))) { continue; } $data = array( $foreignFieldName => $primaryKey, $this->_prefix('field_name') => $name, $this->_prefix('field_value') => $value ); $db->set($tableName, $data, $foreignFieldName); } }