From 1c4356a9a93ea9d3d6a3421704b51a0908a406f2 Mon Sep 17 00:00:00 2001 From: Radex Date: Sat, 21 Feb 2009 23:34:33 +0100 Subject: [PATCH] =?utf8?q?administracja=20menu=20g=C3=B3rnym=20w=20panelu?= =?utf8?q?=20admina?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- wtrmln/modules/acinfo/menu_menuedit.php | 2 + wtrmln/modules/admin/menuedit.php | 202 ++++++++++++++++++++- wtrmln/modules/models/model_menuedit.php | 90 +++++++++ .../views/menuedit/{posted.php => boosted.php} | 2 +- wtrmln/modules/views/menuedit/deleted.php | 1 - wtrmln/modules/views/menuedit/edited.php | 2 +- wtrmln/modules/views/menuedit/patable.php | 5 + wtrmln/modules/views/menuedit/posted.php | 2 +- .../views/menuedit/{posted.php => sinked.php} | 2 +- wtrmln/modules/views/menuedit/table.php | 5 + .../menuedit/{edited.php => topdeletequestion.php} | 7 +- wtrmln/modules/views/menuedit/topedit.php | 53 ++++++ wtrmln/modules/views/menuedit/topnew.php | 54 ++++++ .../views/menuedit/{table.php => toptable.php} | 55 +++--- 14 files changed, 442 insertions(+), 40 deletions(-) copy wtrmln/modules/views/menuedit/{posted.php => boosted.php} (93%) copy wtrmln/modules/views/menuedit/{posted.php => sinked.php} (93%) copy wtrmln/modules/views/menuedit/{edited.php => topdeletequestion.php} (88%) create mode 100644 wtrmln/modules/views/menuedit/topedit.php create mode 100644 wtrmln/modules/views/menuedit/topnew.php copy wtrmln/modules/views/menuedit/{table.php => toptable.php} (50%) diff --git a/wtrmln/modules/acinfo/menu_menuedit.php b/wtrmln/modules/acinfo/menu_menuedit.php index 712b1d1..297fedf 100644 --- a/wtrmln/modules/acinfo/menu_menuedit.php +++ b/wtrmln/modules/acinfo/menu_menuedit.php @@ -30,6 +30,8 @@ class ACMenu_menuedit implements iACMenu { $links[] = array('menuedit', 'lista'); $links[] = array('menuedit/new', 'nowe'); + $links[] = array('menuedit/top', 'górne'); + $links[] = array('menuedit/topnew', 'nowe górne'); $links[] = array('menuedit/pa', 'panel admina'); } diff --git a/wtrmln/modules/admin/menuedit.php b/wtrmln/modules/admin/menuedit.php index eddbc09..c63dad0 100644 --- a/wtrmln/modules/admin/menuedit.php +++ b/wtrmln/modules/admin/menuedit.php @@ -28,7 +28,7 @@ class MenuEdit extends Controller function index() { - Watermelon::$acceptMessages += array('menuedit_deleted', 'menuedit_posted', 'menuedit_edited'); + Watermelon::addmsgs('menuedit_deleted', 'menuedit_posted', 'menuedit_edited', 'menuedit_poschanged'); // pobieramy listę menu @@ -201,7 +201,203 @@ class MenuEdit extends Controller model('menuedit')->SetMenuPosition($menu, $pos); - echo $this->load->view('menuedit_poschanged'); + siteredirect('msg:menuedit_poschanged/menuedit'); + } + + /* + * lista górnych menu + */ + + function top() + { + Watermelon::addmsgs('menuedit_deleted', 'menuedit_posted', 'menuedit_edited', 'menuedit_boosted', 'menuedit_sinked'); + + $menus = model('menuedit')->GetTopMenus(); + + echo $this->load->view('menuedit_toptable', array('menus' => $menus)); + } + + /* + * obniżanie pozycji menu górnego (de facto przesuwanie w prawo) + */ + + function top_down() + { + $menuID = $this->url->segment(1); + + $menus = model('menuedit')->GetTopMenus(); + + $menu = $menus[$menuID]; + $menu_next = $menus[$menuID + 1]; + + $menus[$menuID] = $menu_next; + $menus[$menuID + 1] = $menu; + + model('menuedit')->UpdateTopMenus($menus); + siteredirect('msg:menuedit_boosted/menuedit/top'); + } + + /* + * podwyższanie pozycji menu górnego (de facto przesuwanie w lewo) + */ + + function top_up() + { + $menuID = $this->url->segment(1); + + $menus = model('menuedit')->GetTopMenus(); + + $menu = $menus[$menuID]; + $menu_before = $menus[$menuID - 1]; + + $menus[$menuID] = $menu_before; + $menus[$menuID - 1] = $menu; + + model('menuedit')->UpdateTopMenus($menus); + siteredirect('msg:menuedit_sinked/menuedit/top'); + } + + /* + * formularz nowego menu górnego + */ + + function topnew() + { + list($tempKey, $tempKeyValue) = model('tempkeys')->MakeKey('newtopmenu', time() + 3600); + + echo $this->load->view('menuedit_topnew', array('tkey' => $tempKey, 'tvalue' => $tempKeyValue)); + } + + /* + * stworzenie górnego menu + */ + + function top_post() + { + $tempKey = $this->url->segment(1); + $tempKeyValue = $this->url->segment(2); + + // sprawdzamy, czy zostały uzupełnione wszystkie pola. + + if(empty($_POST['name']) OR empty($_POST['condition'])) + { + echo $this->load->view('allfieldsneeded'); + return; + } + + // sprawdzamy, czy z kluczem tymczasowym wszystko w porządku + + if(!model('TempKeys')->CheckKey($tempKey, $tempKeyValue, 'newtopmenu')) + { + echo $this->load->view('error'); + return; + } + + // wysyłamy + + model('menuedit')->addTopMenu(htmlspecialchars($_POST['name']), $_POST['link'], $_POST['condition']); + + siteredirect('msg:menuedit_posted/menuedit/top'); + } + + /* + * formularz edycji górnego menu + */ + + function topedit() + { + $id = $this->url->segment(1); + + $data = model('menuedit')->GetTopMenus(); + + // sprawdzamy, czy w ogóle takie istnieje + + if(!isset($data[$id])) + { + echo $this->load->view('menuedit_nosuch'); + return; + } + + // tworzymy klucz tymczasowy + + list($tempKey, $tempKeyValue) = model('tempkeys')->MakeKey('topmenuedit:' . $id, time() + 3600); + + echo $this->load->view('menuedit_topedit', array('id' => (int) $id, 'name' => $data[$id][0], 'link' => $data[$id][1], 'condition' => $data[$id][2], 'tkey' => $tempKey, 'tvalue' => $tempKeyValue)); + } + + /* + * submit: edycja menu górnego + */ + + function topEditSubmit() + { + $tempKey = $this->url->segment(1); + $tempKeyValue = $this->url->segment(2); + $menuID = $this->url->segment(3); + + // sprawdzamy, czy z kluczem tymczasowym wszystko w porządku + + if(!model('TempKeys')->CheckKey($tempKey, $tempKeyValue, 'topmenuedit:' . $menuID)) + { + echo $this->load->view('error'); + return; + } + + // skoro tak, to edytujemy + + model('menuedit')->TopEdit(htmlspecialchars($_POST['name']), $_POST['link'], $_POST['condition'], $menuID); + + siteredirect('msg:menuedit_edited/menuedit/top'); + } + + /* + * (samo potwierdznie) usunięcia menu górnego + */ + + function topDelete() + { + $id = $this->url->segment(1); + + $data = model('menuedit')->GetTopMenus(); + + // sprawdzamy, czy w ogóle takie istnieje + + if(!isset($data[$id])) + { + echo $this->load->view('menuedit_nosuch'); + return; + } + + // tworzymy klucz tymczasowy + + list($tempKey, $tempKeyValue) = model('tempkeys')->MakeKey('topmenudelete:' . $id); + + echo $this->load->view('menuedit_topdeletequestion', array('id' => (int) $id, 'tkey' => $tempKey, 'tvalue' => $tempKeyValue)); + } + + /* + * usuwanie menu górnego + */ + + function topDelete_ok() + { + $tempKey = $this->url->segment(1); + $tempKeyValue = $this->url->segment(2); + $menuID = $this->url->segment(3); + + // sprawdzamy, czy z kluczem tymczasowym wszystko w porządku + + if(!model('tempkeys')->CheckKey($tempKey, $tempKeyValue, 'topmenudelete:' . $menuID)) + { + echo $this->load->view('error'); + return; + } + + // skoro tak, to usuwamy + + model('menuedit')->DeleteTopMenu($menuID); + + siteredirect('msg:menuedit_deleted/menuedit/top'); } /* @@ -210,7 +406,7 @@ class MenuEdit extends Controller function pa() { - Watermelon::$acceptMessages += array('menuedit_pasinked', 'menuedit_paboosted'); + Watermelon::addmsgs('menuedit_pasinked', 'menuedit_paboosted'); $viewMenus = $this->getMenus(); diff --git a/wtrmln/modules/models/model_menuedit.php b/wtrmln/modules/models/model_menuedit.php index 3eb7dcf..d85f527 100644 --- a/wtrmln/modules/models/model_menuedit.php +++ b/wtrmln/modules/models/model_menuedit.php @@ -124,6 +124,96 @@ class Model_MenuEdit extends Model } /* + * public DBresult GetTopMenus() + * + * pobiera górne menu + */ + + public function GetTopMenus() + { + $menus = Config::getConf('top_menus'); + + return unserialize($menus); + } + + /* + * public void UpdateTopMenus(string[] $menus) + * + * uaktualnia listę (tablicę) górnego menu. + * + * string[] $menus - lista górnego menu do uaktualnienia + */ + + public function UpdateTopMenus(array $menus) + { + Config::setConf('top_menus', serialize($menus)); + } + + /* + * public void addTopMenu(string $name, string $link, string $condition) + * + * dodaje na koniec (ostatnia pozycja) górne menu o nazwie $name + * prowadzące do $link, które będzie oznaczone jako aktywne, gdy + * $condition jest prawdą + */ + + public function addTopMenu($name, $link, $content) + { + $name = mysql_real_escape_string($name); + $link = mysql_real_escape_string($link); + $content = mysql_real_escape_string($content); + + $menus = $this->GetTopMenus(); + $menus[] = array($name, $link, $content); + $this->UpdateTopMenus($menus); + } + + /* + * public void TopEdit(string $name, string $link, string $condition, uint $id) + * + * edytuje w górnym menu o ID=$id nazwę na $name + * prowadzące do $link, które będzie oznaczone jako aktywne, gdy + * $condition jest prawdą + */ + + public function TopEdit($name, $link, $content, $id) + { + $name = mysql_real_escape_string($name); + $link = mysql_real_escape_string($link); + $content = mysql_real_escape_string($content); + $id = intval($id); + + $menus = $this->GetTopMenus(); + + if(!isset($menus[$id])) return; + + $menus[$id] = array($name, $link, $content); + $this->UpdateTopMenus($menus); + } + + /* + * public void DeleteTopMenu(uint $id) + * + * usuwa górne menu o ID=$id + */ + + public function DeleteTopMenu($id) + { + $id = intval($id); + + $menus = $this->GetTopMenus(); + + unset($menus[$id]); + + foreach($menus as $menu) + { + $menus2[] = $menu; + } + + $this->UpdateTopMenus($menus2); + } + + /* * public string[] GetPAMenus() * * Pobiera listę (w postaci tablicy) menu w PA. diff --git a/wtrmln/modules/views/menuedit/posted.php b/wtrmln/modules/views/menuedit/boosted.php similarity index 93% copy from wtrmln/modules/views/menuedit/posted.php copy to wtrmln/modules/views/menuedit/boosted.php index 4f4c1d5..d00528d 100644 --- a/wtrmln/modules/views/menuedit/posted.php +++ b/wtrmln/modules/views/menuedit/boosted.php @@ -22,5 +22,5 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ?>
- Dodano menu, powróć do listy. + Obniżono pozycję.
\ No newline at end of file diff --git a/wtrmln/modules/views/menuedit/deleted.php b/wtrmln/modules/views/menuedit/deleted.php index 4704616..adaad67 100644 --- a/wtrmln/modules/views/menuedit/deleted.php +++ b/wtrmln/modules/views/menuedit/deleted.php @@ -22,5 +22,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ?>
Usunięto menu - Możesz teraz powrócić do listy.
diff --git a/wtrmln/modules/views/menuedit/edited.php b/wtrmln/modules/views/menuedit/edited.php index 84530da..14c8848 100644 --- a/wtrmln/modules/views/menuedit/edited.php +++ b/wtrmln/modules/views/menuedit/edited.php @@ -22,5 +22,5 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ?>
- Wyedytowano menu, powróć do listy. + Wyedytowano menu
\ No newline at end of file diff --git a/wtrmln/modules/views/menuedit/patable.php b/wtrmln/modules/views/menuedit/patable.php index 208a0f7..230d413 100644 --- a/wtrmln/modules/views/menuedit/patable.php +++ b/wtrmln/modules/views/menuedit/patable.php @@ -29,6 +29,11 @@ $j = count($menus) - 1;

+Edycja menu: +Głównego | +Górnego | +Panelu Admina + diff --git a/wtrmln/modules/views/menuedit/posted.php b/wtrmln/modules/views/menuedit/posted.php index 4f4c1d5..f696928 100644 --- a/wtrmln/modules/views/menuedit/posted.php +++ b/wtrmln/modules/views/menuedit/posted.php @@ -22,5 +22,5 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ?>
- Dodano menu, powróć do listy. + Dodano menu
\ No newline at end of file diff --git a/wtrmln/modules/views/menuedit/posted.php b/wtrmln/modules/views/menuedit/sinked.php similarity index 93% copy from wtrmln/modules/views/menuedit/posted.php copy to wtrmln/modules/views/menuedit/sinked.php index 4f4c1d5..978b943 100644 --- a/wtrmln/modules/views/menuedit/posted.php +++ b/wtrmln/modules/views/menuedit/sinked.php @@ -22,5 +22,5 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ?>
- Dodano menu, powróć do listy. + Podwyższono pozycję.
\ No newline at end of file diff --git a/wtrmln/modules/views/menuedit/table.php b/wtrmln/modules/views/menuedit/table.php index 38cbf8f..9115bac 100644 --- a/wtrmln/modules/views/menuedit/table.php +++ b/wtrmln/modules/views/menuedit/table.php @@ -29,6 +29,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +Edycja menu: +Głównego | +Górnego | +Panelu Admina +
Nazwa Opis Opcje
diff --git a/wtrmln/modules/views/menuedit/edited.php b/wtrmln/modules/views/menuedit/topdeletequestion.php similarity index 88% copy from wtrmln/modules/views/menuedit/edited.php copy to wtrmln/modules/views/menuedit/topdeletequestion.php index 84530da..4ef2ed8 100644 --- a/wtrmln/modules/views/menuedit/edited.php +++ b/wtrmln/modules/views/menuedit/topdeletequestion.php @@ -19,8 +19,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ -?> -
- Wyedytowano menu, powróć do listy. -
\ No newline at end of file +echo GUI::questionBox('Czy na pewno chcesz usunąć te menu?', "$/menuedit/topdelete_ok/$tkey/$tvalue/$id"); + +?> \ No newline at end of file diff --git a/wtrmln/modules/views/menuedit/topedit.php b/wtrmln/modules/views/menuedit/topedit.php new file mode 100644 index 0000000..f565887 --- /dev/null +++ b/wtrmln/modules/views/menuedit/topedit.php @@ -0,0 +1,53 @@ + + +Panel Admina > Menu > Górne > Edycja + +.edittopmenu_box label{float:left;width:220px;display:block}'. + '.edittopmenu_box #name, .edittopmenu_box #condition, .edittopmenu_box #link{width:60%}'); +?> + + +
+ Edycja górnego menu + + + + +
+ + + + +
+ + + + +
+ + +
+ \ No newline at end of file diff --git a/wtrmln/modules/views/menuedit/topnew.php b/wtrmln/modules/views/menuedit/topnew.php new file mode 100644 index 0000000..5cbe784 --- /dev/null +++ b/wtrmln/modules/views/menuedit/topnew.php @@ -0,0 +1,54 @@ + + +Panel Admina > Menu > Górne > Nowe + +.newtopmenu_box label{float:left;width:220px;display:block}'. + '.newtopmenu_box #name, .newtopmenu_box #condition, .newtopmenu_box #link{width:60%}'); +?> + + +
+ Nowe górne menu + + + + +
+ + + + +
+ + + + +
+ + + +
+ \ No newline at end of file diff --git a/wtrmln/modules/views/menuedit/table.php b/wtrmln/modules/views/menuedit/toptable.php similarity index 50% copy from wtrmln/modules/views/menuedit/table.php copy to wtrmln/modules/views/menuedit/toptable.php index 38cbf8f..4881456 100644 --- a/wtrmln/modules/views/menuedit/table.php +++ b/wtrmln/modules/views/menuedit/toptable.php @@ -19,61 +19,60 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ + +$i = 0; +$j = count($menus) - 1; + ?> -Panel Admina > Menu + +Panel Admina > Menu > Górne
- Nowe menu + Nowe menu
+Edycja menu: +Głównego | +Górnego | +Panelu Admina +
Pozycja Nazwa Treść Warunek Opcje
- + - + - - + + - +
Pozycja Nazwa Treść Warunek OpcjePozycja Nazwa Link Aktualna gdy Opcje
- - <$position> - 0){ ?>  +   + +   - <$capt> + - 100) - { - echo nl2br(substr($text, 0, 100)) . '...'; - } - else - { - echo nl2br($text); - } - ?> + + / - + - [edytuj] - [usuń] + [edytuj] + [usuń]
Pozycja Nazwa Treść Warunek OpcjePozycja Nazwa Link Aktualna gdy Opcje
- Nowe menu + Nowe menu
- -pozycja ostatniego menu: \ No newline at end of file -- 2.11.4.GIT