Пример #1
0
	function create_fields () {
		
		// Load CmsPage related model (fix this...)
		// TODO: find out a way to get the app module through the model
		$app = Frix::model('cms', 'CmsPage');
		
		$this->add_fields(array(
			'parent' => new ForeignKey('Parent Page', array('model_name' => 'CmsPage', 'null' => True)),
			'name' => new CharField('Name', array('length' => 80)),
			'file' => new FileField('File', array('length' => 100, 'path' => 'cms/file')),
			// 'visible' => new BooleanField('Visible'),
		));
		
	}
Пример #2
0
	function page ($path, $context = array()) {
		
		$cms_page = self::get_page($path);
		
		$slug = $cms_page->slug;
		$pk_lookup = array('parent' => $cms_page->get_pk());
		
		Frix::model('cms', 'CmsFile');
		Frix::model('cms', 'CmsImage');
		Frix::model('cms', 'CmsVideo');

		$context += array(
			'cms_page' => $cms_page,
			'cms_files' => CmsFile::meta()->all($pk_lookup),
			'cms_images' => CmsImage::meta()->all($pk_lookup),
			'cms_videos' => CmsVideo::meta()->all($pk_lookup),
			'cms_pages' => CmsPage::meta()->filter(array('visible' => True))->all($pk_lookup),
			'body_attrs' => array('id' => $slug),
		);
		
		$t = new Template('cms/custom/' . $slug, 'cms/page');
		echo $t->render($context);
		
	}
Пример #3
0
<?
Frix::model('cms', 'CmsFile');

class CmsImage extends CmsFile {
	
	function setup ($meta) {
		$meta->verbose_name = 'Image';
	}
	
	function create_fields () {
		parent::create_fields();
		$this->add_field(
			'file', new ImageField('File', array('length' => 100, 'path' => 'cms/image'))
		);
	}
	
	static public function meta() {
		return ModelMeta::meta(get_class());
	}
}
?>
Пример #4
0
<?
// Get models
Frix::model('cms', 'CmsPage');
Frix::model('cms', 'CmsFile');
Frix::model('cms', 'CmsImage');
Frix::model('cms', 'CmsVideo');

Frix::model('cms', 'CmsMenu');
Frix::model('cms', 'CmsMenuItem');

class CmsPageOptions extends AdminOptions {
	
	public $inlines = array('CmsFile', 'CmsImage', 'CmsVideo');
	public $list_display = array('title', 'slug', 'visible');
	
	public $custom_position = 'pos';
	
}

class CmsMenuOptions extends AdminOptions {
	
	public $inlines = array('CmsMenuItem');
	
}

// Register
Frix::app('admin')->register('CmsPage', 'CmsPageOptions');
Frix::app('admin')->register('CmsMenu', 'CmsMenuOptions');
?>
Пример #5
0
<?
// Get models
Frix::model('auth', 'AuthUser');

class AuthUserOptions extends AdminOptions {
	
	public $list_display = array('username', 'email', 'first_name', 'last_name');
	
	public $can_add = false;
	public $can_delete = false;
	
	// Change an existent object
	function change_view ($instance, $data, &$context) {
		
		if ($_SERVER['REQUEST_METHOD'] == 'POST') {
			
			$this->input_data = $data;
			
			// Trying to change password?
			if ($data['password']) {
				
				// Checks if passwords match
				if ($data['password'] == $data['password_conf']) {
					// Use AuthUser::set_password to change the password
					$instance->set_password($data['password']);
				}
				else {
					$context['msg'] = 'Password confirmation does not match.';
					$context['msg_type'] = 'error';
				}
				
Пример #6
0
<?
// Get models
Frix::model('settings', 'SettingsProperty');

class SettingsPropertyOptions extends AdminOptions {
	
	public $list_display = array('name', 'value');
	
	public $can_add = false;
	public $can_delete = false;
	public $can_change = true;
	
}

// Register
Frix::app('admin')->register('SettingsProperty', 'SettingsPropertyOptions');
?>