I wasn't writting it by myself, but i have to fix this bug.
I don't have OptionsController, but propably PagesController will be
helpful, because the problem is when i'm on the site with page list.
There is everything okey, but when I click on existing page to edit
it, this warning appears, and all forms are empty, because they can't
be taken from database (wrong query).
The strangest thing is that it works localy...
controllers/pages-controller.php
registerSubmenuItem('Click here to create a new page in
the
top level menu', 'pages/add');
}
/**
* List action
*
*/
function index() {
$this->Language->recursive = -1;
$this->set('languages', $this->Language->find('all'));
$this->constructSubmenu();
//$this->Page->recursive = 0;
//$this->set('pages', $this->paginate());
$this->loadModel('Extension');
$tree = $this->Menu->getStructuredTree(1);
//print_r($tree);
//print_r($tree);
$extensions = $this->Extension->loadAll();
$this->set('extensions', $extensions);
$this->set('tree', $tree);
//print_r($options);
//echo '';
//print_r($tree);
}
/**
* Edit a page
*
* @param int $id
*/
function edit($id = null) {
if (!$id && empty($this->data)) {
$this->flash(__('Invalid Page', true),
array('action'=>'index'),
'error');
exit();
}
// link fugu libraries
$this->fuguLink('media,windows,tabs,page,editor');
// load Extension model
$this->loadModel('Extension');
if (!empty($this->data)) {
if ($this->Page->verifyUri($this->data)) {
// save page
if ($this->Page->save($this->data)) {
if (!empty($_POST['extension'])) {
// save extension
if
(empty($this->data['Extension'])) $this->data['Extension'] =
null;
$extension =
$_POST['extension'];
$extension_obj =
$this->Extension->init($extension);
$extension_obj->handle($id,
$this->data['Extension'],
false);
}
$name = $this->data['Page']['name'];
$this->flash(__('The page "'.$name.'"
has been saved.', true),
array('action'=>'index'), 'success');
exit();
} else {
}
} else {
$this->Session->setFlash('The uri you specified
already exists, please try another one', null);
}
}
if (empty($this->data)) {
$this->data = $this->Page->read(null, $id);
$this->set('data', $this->data);
if ($this->data==null) {
$this->flash(__('Invalid page', true),
array('action'=>'index'),
'error', __('That page was probably removed', true));
}
}
// attach the extension object and extract data
//print_r($_POST);
if (!empty($_POST['extension'])) {
$extension_name = $_POST['extension'];
} else {
$extension_name =
$this->data['Option']['extension_name'];
$extension_args =
$this->data['Option']['extension_args'];
}
// print_r($this->data);
// echo $extension_name;
$extension = $this->Extension->load($extension_name);
$extension_obj = $this->Extension->init($extension_name);
$ext_data = $extension_obj->fetch($id, $extension_args);
$extension['data'] = $ext_data;
//print_r($extension['data']);
if (!empty($this->data['Extension'])) $extension['data'] =
$this-
>data['Extension'];
//print_r($extension['data']);
$this->set('extension', $extension);
// register tabs
$this->registerSidebarTab('General', 'tab_general',
'GeneralScreen');
$this->registerSidebarTab('Meta', 'tab_meta', 'MetaScreen');
$this->registerSidebarTab($extension['cfg']['