public function update(array $input = null) { //gimme life! //$item = isset($_POST['itemid']) ? new Navigation_Item($_POST['itemid']) : new Navigation_Item(); $item = isset($_POST['itemid']) && !is_array($_POST['itemid']) ? Model_Nav::Get($_POST['itemid']) : Model_Nav::Create(); if ($_REQUEST['cmd'] != 'delete' && $_REQUEST['cmd'] != 'name' && $_REQUEST['cmd'] != 'sort') { $item->set('pageid', 0); switch ($_POST['type']) { case 'none': // Heh, these have no extra attributes, so null just about everything. $item->set('label', $_POST['label']); $item->set('url', ''); $item->set('onclick', ''); $item->set('visibility', 'always'); $item->set('method', ''); $item->set('target', ''); break; case 'int': $item->set('label', $_POST['label']); $item->set('pageid', $_POST['pageid']); $item->set('url', ''); $item->set('onclick', ''); $item->set('visibility', 'permitted'); $item->set('method', $_POST['method']); $item->set('target', $_POST['target']); break; case 'arbint': $item->set('label', $_POST['label']); $item->set('url', $_POST['url']); $item->set('onclick', ''); $item->set('visibility', $_POST['visibility']); $item->set('method', $_POST['method']); $item->set('target', $_POST['target']); break; case 'ext': $item->set('label', $_POST['label']); $item->set('url', $_POST['url']); $item->set('onclick', ''); $item->set('visibility', $_POST['visibility']); $item->set('method', $_POST['method']); $item->set('target', $_POST['target']); break; case 'mailto': $item->set('label', $_POST['label']); $item->set('url', 'mailto:' . $_POST['url']); $item->set('onclick', ''); $item->set('visibility', $_POST['visibility']); $item->set('method', ''); $item->set('target', ''); break; } } switch ($_REQUEST['cmd']) { case 'add': $item->set('parent', $_POST['parent']); $item->set('plugid', $_POST['plugid']); $result = Typeframe::Database()->execute('SELECT MAX(sortnum) AS maxsort FROM #__nav WHERE plugid = ' . (int) $_POST['plugid']); $max = $result[0]; $item->set('sortnum', $max['maxsort'] + 1); $item->save(); $msg = " Added"; break; case 'edit': $item->save(); $msg = " Saved"; break; case 'delete': $item->delete(); $msg = " Deleted"; break; case 'name': $plug = Model_Plug::Get($_POST['plugid']); $plug['name'] = $_POST['name']; $plug->save(); Typeframe::Redirect('Name updated.', Typeframe::CurrentPage()->applicationUri() . '/edit?plugid=' . $_POST['plugid'] . '&parentid=' . (isset($_POST['parentid']) ? $_POST['parentid'] : '0')); return; case 'sort': $sortnum = 1; for ($i = 0; $i < count($_POST['itemid']); $i++) { $item = Model_Nav::Get($_POST['itemid'][$i]); $item['parent'] = $_POST['parent'][$i]; $item['sortnum'] = $sortnum; $item->save(); $sortnum++; } Typeframe::Redirect('Items sorted.', Typeframe::CurrentPage()->applicationUri() . '/edit?plugid=' . $_POST['plugid'] . '&parentid=' . (isset($_POST['parentid']) ? $_POST['parentid'] : '0')); return; } Typeframe::Redirect('Item' . $msg, Typeframe::CurrentPage()->applicationUri() . '/edit?plugid=' . $_POST['plugid'] . '&parentid=' . (isset($_POST['parentid']) ? $_POST['parentid'] : '0')); }