ACC SHELL
<?php
class o_gallery extends object
{
public function initialize($phase)
{
parent::initialize($phase);
if ($phase == 0)
{
$this->set('tree', true);
$this->set('group-filter', Feq('group', true));
$this->set('order', array('+priority', '+title'));
$this->f('otitle')->get = 'return ($object->oid ? $object->title : "");';
$this->definePid();
$this->defineIdAutoIncrement();
$this->defineOCreated();
$this->defineGroup();
$this->definePriority();
$this->defineImage();
$this->defineStringLocalized('title');
$this->defineTextLocalizedHTML('text');
$f = $this->defineV('url', Field::TYPE_STRING);
$f->get = 'return (!$object->id ? "" : (U::urlize($object->title) . "-" . $object->id));';
}
}
}
class gallery extends ObjectModule
{
public function initialize($phase)
{
parent::initialize($phase);
if ($phase == 4)
{
$this->action('list')->set('columns', array('priority', 'title', 'image'));
$this->action('list')->set('actions', array('new', 'edit', 'delete'));
$this->action('get')->set('object-fields', array('id'));
}
}
public function index($options = array())
{
Router::add(Router::TYPE_EQUALS, __('get-url'), array('page.location' => $this->id.'/get'));
Router::add(Router::TYPE_REGEX, __('get-url').'(.*)-(\d+)', array('page.location' => $this->id.'/get'), array('title', 'id'));
Router::process();
if (page()->location("{$this->id}/get"))
$this->mainTemplate();
}
public function page($options = array())
{
if (page()->location("~^{$this->id}/~"))
{
page()->breadcrumb(__('module-name', $this->id), $this->url('get'));
if (i()->get('id'))
page()->breadcrumb($GLOBALS['result']['object']->oid ? $GLOBALS['result']['object']->otitle : __('not-found', '@core'));
return true;
}
}
public function select_id($value = null)
{
$result = Cache::get($this->id, __FUNCTION__);
if ($result === null)
{
$result = array('' => '');
$rows = qa("SELECT `id`, `title_#L#` FROM `##{$this->id}` WHERE `group` ORDER BY `priority`, `title_#L#`");
if (is_array($rows) && count($rows))
foreach ($rows as $row)
$result[$row['id']] = $row['title'.LL];
Cache::set($result, $this->id, __FUNCTION__);
}
return parent::select($value, $result);
}
public function select_oid($value = null)
{
$result = Cache::get($this->id, __FUNCTION__);
if ($result === null)
{
$result = array('' => '');
$rows = qa("SELECT `oid`, `title_#L#` FROM `##{$this->id}` WHERE `group` ORDER BY `priority`, `title_#L#`");
if (is_array($rows) && count($rows))
foreach ($rows as $row)
$result[$row['oid']] = $row['title'.LL];
Cache::set($result, $this->id, __FUNCTION__);
}
return parent::select($value, $result);
}
/************************************************** ACTIONS **************************************************/
}
?>
ACC SHELL 2018