<?php defined('SYSPATH') or die('No direct access allowed.'); /** * @package OSB * @subpackage Modules * @category Models * @author Deon George * @copyright (c) 2010 Deon George * @license http://dev.leenooks.net/license.html */ class Model_Record_Id extends ORM_OSB { protected $_primary_key = 'module_id'; // This module doesnt keep track of column updates automatically protected $_created_column = FALSE; protected $_updated_column = FALSE; // @todo we need $mid here, since if there is no record, we cant figure out the module that called us. public function next_id($mid) { if (is_null($this->id)) { $this->module_id = $mid; // We'll get the next ID as the MAX(id) of the table $mo = ORM::factory('module',$mid); $max = DB::select(array('MAX(id)','id')) ->from($mo->name) ->where('site_id','=',Config::siteid()); $this->id = $max->execute()->get('id'); } $this->id++; if (! $this->save()) throw new Koahan_Exception(_('Unable to increase ID for :table'),array(':table'=>$mid)); return $this->id; } } ?>