All pastes #837624 Raw Edit

Miscellany

public php v1 · immutable
#837624 ·published 2007-12-29 20:39 UTC
rendered paste body
<?php/* * History foundation * Provides a simple revision system for a scaffold */class foundation_revision extends foundation_base{	static $implements = array	(		'edit_commit',		'delete_commit'	);		static $function_edit_commit = array	(		'callable'		=>	true,	);	public function edit_commit($id)	{		pra('hooked');		$id = $this->_foundation_dispatch('edit_commit',array($id),'scaffold');				$rev_id = self::add_revision($id);				pra($rev_id);		app()->export('revision_id',$rev_id);				return $id;	}		static $function_delete_commit = array	(		'callable'		=>	true,	);	public function delete_commit($id)	{		pra('hooked');		$this->_foundation_dispatch('delete_commit',array($id),'scaffold');		self::add_revision($id);		return $id;	}		/**	 * Add the current state of content_id as a revision	 */	protected function add_revision($content_id)	{		$id = $content_id;		#Get the data for the item just added/edited		$mname = $this->model;		$model = m()->$mname;		$model->find($model->_primary,$id);		$model->set_overload(false);		$item = $model->get();		$item = $item[0];				$mname = $this->model_revision;		$model = m()->$mname;				foreach($model->_ignore_revision as $column)		{			unset($item[$column]);		}				$save = serialize($item);				#Get the last revision data		$model->find('content_id',$id);		$model->order('revision','DESC');		$model->limit(1);		$model->set_overload(false);				$last = $model->get();		$last = $last[0];				$revision = $last['revision'] + 1;				$model->reset();		$model->set('content_id',$id);		$model->set('revision',$revision);		$model->set('user_id',app()->user()->id());		$model->set('added',db_sql::NOW);		$model->set('content',$save);		$model->set('_SERVER',serialize($_SERVER));				$model->save();		$rev_id = $model->inserted();		return $rev_id;	}}?>