Ejemplo n.º 1
0
	/**
	 * 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, '/');
	}
Ejemplo n.º 2
0
	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);
		}
	}