mirror of
https://github.com/monstra-cms/monstra.git
synced 2025-08-05 04:37:51 +02:00
Monstra Library: basic core improvments
This commit is contained in:
@@ -8,4 +8,4 @@
|
||||
<plugin_version>1.0.0</plugin_version>
|
||||
<plugin_author>Awilum</plugin_author>
|
||||
<plugin_author_uri>http://monstra.org/</plugin_author_uri>
|
||||
</root>
|
||||
</root>
|
||||
|
@@ -1,27 +1,27 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'menu' => array(
|
||||
'Menu' => 'Menü',
|
||||
'Menu manager' => 'Menü Manager',
|
||||
'Edit' => 'Bearbeiten',
|
||||
'Name' => 'Name',
|
||||
'Delete' => 'Löschen',
|
||||
'Order' => 'Reihenfolge',
|
||||
'Actions' => 'Aktionen',
|
||||
'Create new item' => 'Erstellen neuen Eintrag',
|
||||
'New item' => 'Neuer Eintrag',
|
||||
'Item name' => 'Eintrags Name',
|
||||
'Item order' => 'Eintrags Reihenfolge',
|
||||
'Item target' => 'Eintrags Ziel',
|
||||
'Item link' => 'Eintrags Link',
|
||||
'Item category' => 'Eintrags Kategorie',
|
||||
'Save' => 'Speichern',
|
||||
'Edit item' => 'Bearbeite Eintrag',
|
||||
'Delete item :name' => 'Lösche Eintrag :name',
|
||||
'Select page' => 'Seite auswählen',
|
||||
'Category' => 'Kategorie',
|
||||
'Select category' => 'Kategorie auswählen',
|
||||
'Required field' => 'Pflichtfeld',
|
||||
)
|
||||
);
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'menu' => array(
|
||||
'Menu' => 'Menü',
|
||||
'Menu manager' => 'Menü Manager',
|
||||
'Edit' => 'Bearbeiten',
|
||||
'Name' => 'Name',
|
||||
'Delete' => 'Löschen',
|
||||
'Order' => 'Reihenfolge',
|
||||
'Actions' => 'Aktionen',
|
||||
'Create new item' => 'Erstellen neuen Eintrag',
|
||||
'New item' => 'Neuer Eintrag',
|
||||
'Item name' => 'Eintrags Name',
|
||||
'Item order' => 'Eintrags Reihenfolge',
|
||||
'Item target' => 'Eintrags Ziel',
|
||||
'Item link' => 'Eintrags Link',
|
||||
'Item category' => 'Eintrags Kategorie',
|
||||
'Save' => 'Speichern',
|
||||
'Edit item' => 'Bearbeite Eintrag',
|
||||
'Delete item :name' => 'Lösche Eintrag :name',
|
||||
'Select page' => 'Seite auswählen',
|
||||
'Category' => 'Kategorie',
|
||||
'Select category' => 'Kategorie auswählen',
|
||||
'Required field' => 'Pflichtfeld',
|
||||
)
|
||||
);
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
'menu' => array(
|
||||
'Menu' => 'Menu',
|
||||
'Menu' => 'Menu',
|
||||
'Menu manager' => 'Menu manager',
|
||||
'Edit' => 'Edit',
|
||||
'Name' => 'Name',
|
||||
@@ -24,4 +24,4 @@
|
||||
'Select category' => 'Select category',
|
||||
'Required field' => 'Required field',
|
||||
)
|
||||
);
|
||||
);
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
'menu' => array(
|
||||
'Menu' => 'Menu',
|
||||
'Menu' => 'Menu',
|
||||
'Menu manager' => 'Gestione menu',
|
||||
'Edit' => 'Modifica',
|
||||
'Name' => 'Nome',
|
||||
@@ -12,7 +12,7 @@
|
||||
'Create new item' => 'Crea nuova voce',
|
||||
'New item' => 'Nuova voce',
|
||||
'Item name' => 'Nome',
|
||||
'Item order' => 'Ordine',
|
||||
'Item order' => 'Ordine',
|
||||
'Item target' => 'Target',
|
||||
'Item link' => 'Collegamento',
|
||||
'Item category' => 'Categoria',
|
||||
@@ -24,4 +24,4 @@
|
||||
'Select category' => 'Scegli categoria',
|
||||
'Required field' => 'Campo obbligatorio',
|
||||
)
|
||||
);
|
||||
);
|
||||
|
@@ -25,4 +25,4 @@
|
||||
'Select category' => 'Pasirinkti kategoriją',
|
||||
'Required field' => 'Privalomas laukas',
|
||||
)
|
||||
);
|
||||
);
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
'menu' => array(
|
||||
'Menu' => 'Menu',
|
||||
'Menu' => 'Menu',
|
||||
'Menu manager' => 'Gerenciador do menu',
|
||||
'Edit' => 'Editar',
|
||||
'Name' => 'Nome',
|
||||
@@ -24,4 +24,4 @@
|
||||
'Select category' => 'Selecionar categoria',
|
||||
'Required field' => 'Campo requerido',
|
||||
)
|
||||
);
|
||||
);
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
'menu' => array(
|
||||
'Menu' => 'Меню',
|
||||
'Menu' => 'Меню',
|
||||
'Menu manager' => 'Менеджер меню',
|
||||
'Edit' => 'Редактировать',
|
||||
'Name' => 'Название',
|
||||
@@ -12,7 +12,7 @@
|
||||
'Create new item' => 'Создать новый пункт меню',
|
||||
'New item' => 'Новый пункт меню',
|
||||
'Item name' => 'Название',
|
||||
'Item order' => 'Порядок',
|
||||
'Item order' => 'Порядок',
|
||||
'Item target' => 'Цель',
|
||||
'Item link' => 'Ссылка',
|
||||
'Item category' => 'Категория',
|
||||
@@ -24,4 +24,4 @@
|
||||
'Select category' => 'Выбрать категорию',
|
||||
'Required field' => 'Обязательное поле',
|
||||
)
|
||||
);
|
||||
);
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
'menu' => array(
|
||||
'Menu' => 'Меню',
|
||||
'Menu' => 'Меню',
|
||||
'Menu manager' => 'Менеджер меню',
|
||||
'Edit' => 'Редагувати',
|
||||
'Name' => 'Назва',
|
||||
@@ -12,7 +12,7 @@
|
||||
'Create new item' => 'Створити новий пункт меню',
|
||||
'New item' => 'Новий пункт меню',
|
||||
'Item name' => 'Назва',
|
||||
'Item order' => 'Порядок',
|
||||
'Item order' => 'Порядок',
|
||||
'Item target' => 'Ціль',
|
||||
'Item link' => 'Ссылка',
|
||||
'Item category' => 'Категорія',
|
||||
@@ -24,4 +24,4 @@
|
||||
'Select category' => 'Вибрати категорію',
|
||||
'Required field' => 'Обов’язкове поле',
|
||||
)
|
||||
);
|
||||
);
|
||||
|
@@ -1,281 +1,273 @@
|
||||
<?php
|
||||
|
||||
// Add plugin navigation link
|
||||
Navigation::add(__('Menu', 'menu'), 'content', 'menu', 4);
|
||||
// Add plugin navigation link
|
||||
Navigation::add(__('Menu', 'menu'), 'content', 'menu', 4);
|
||||
|
||||
/**
|
||||
* Menu Admin Class
|
||||
*/
|
||||
class MenuAdmin extends Backend
|
||||
{
|
||||
/**
|
||||
* Menu table
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
public static $menu = null;
|
||||
|
||||
/**
|
||||
* Menu Admin Class
|
||||
* Main
|
||||
*/
|
||||
class MenuAdmin extends Backend {
|
||||
public static function main()
|
||||
{
|
||||
// Get menu table
|
||||
MenuAdmin::$menu = new Table('menu');
|
||||
|
||||
// Get pages table
|
||||
$pages = new Table('pages');
|
||||
|
||||
/**
|
||||
* Menu table
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
public static $menu = null;
|
||||
// Create target array
|
||||
$menu_item_target_array = array( '' => '',
|
||||
'_blank' => '_blank',
|
||||
'_parent' => '_parent',
|
||||
'_top' => '_top');
|
||||
|
||||
// Create order array
|
||||
$menu_item_order_array = range(0, 20);
|
||||
|
||||
/**
|
||||
* Main
|
||||
*/
|
||||
public static function main() {
|
||||
// Check for get actions
|
||||
// ---------------------------------------------
|
||||
if (Request::get('action')) {
|
||||
|
||||
// Get menu table
|
||||
MenuAdmin::$menu = new Table('menu');
|
||||
// Switch actions
|
||||
// -----------------------------------------
|
||||
switch (Request::get('action')) {
|
||||
|
||||
// Get pages table
|
||||
$pages = new Table('pages');
|
||||
|
||||
// Create target array
|
||||
$menu_item_target_array = array( '' => '',
|
||||
'_blank' => '_blank',
|
||||
'_parent' => '_parent',
|
||||
'_top' => '_top');
|
||||
|
||||
// Create order array
|
||||
$menu_item_order_array = range(0, 20);
|
||||
|
||||
|
||||
// Check for get actions
|
||||
// ---------------------------------------------
|
||||
if (Request::get('action')) {
|
||||
|
||||
// Switch actions
|
||||
// Edit menu item
|
||||
// -----------------------------------------
|
||||
switch (Request::get('action')) {
|
||||
case "edit":
|
||||
|
||||
// Edit menu item
|
||||
// -----------------------------------------
|
||||
case "edit":
|
||||
// Select item
|
||||
$item = MenuAdmin::$menu->select('[id="'.Request::get('item_id').'"]', null);
|
||||
|
||||
// Select item
|
||||
$item = MenuAdmin::$menu->select('[id="'.Request::get('item_id').'"]', null);
|
||||
|
||||
$menu_item_name = $item['name'];
|
||||
$menu_item_link = $item['link'];
|
||||
$menu_item_category = $item['category'];
|
||||
$menu_item_target = $item['target'];
|
||||
$menu_item_order = $item['order'];
|
||||
$menu_item_name = $item['name'];
|
||||
$menu_item_link = $item['link'];
|
||||
$menu_item_category = $item['category'];
|
||||
$menu_item_target = $item['target'];
|
||||
$menu_item_order = $item['order'];
|
||||
|
||||
$errors = array();
|
||||
$errors = array();
|
||||
|
||||
// Edit current menu item
|
||||
if (Request::post('menu_add_item')) {
|
||||
// Edit current menu item
|
||||
if (Request::post('menu_add_item')) {
|
||||
|
||||
if (Security::check(Request::post('csrf'))) {
|
||||
|
||||
if (trim(Request::post('menu_item_name')) == '') {
|
||||
if (Security::check(Request::post('csrf'))) {
|
||||
|
||||
if (Request::post('menu_item_name')) $menu_item_name = Request::post('menu_item_name'); else $menu_item_name = $item['name'];
|
||||
if (Request::post('menu_item_link')) $menu_item_link = Request::post('menu_item_link'); else $menu_item_link = $item['link'];
|
||||
if (Request::post('menu_item_category')) $menu_item_category = Request::post('menu_item_category'); else $menu_item_category = $item['category'];
|
||||
if (Request::post('menu_item_target')) $menu_item_target = Request::post('menu_item_target'); else $menu_item_target = $item['target'];
|
||||
if (Request::post('menu_item_order')) $menu_item_order = Request::post('menu_item_order'); else $menu_item_order = $item['order'];
|
||||
if (trim(Request::post('menu_item_name')) == '') {
|
||||
|
||||
$errors['menu_item_name_empty'] = __('Required field', 'menu');
|
||||
}
|
||||
if (Request::post('menu_item_name')) $menu_item_name = Request::post('menu_item_name'); else $menu_item_name = $item['name'];
|
||||
if (Request::post('menu_item_link')) $menu_item_link = Request::post('menu_item_link'); else $menu_item_link = $item['link'];
|
||||
if (Request::post('menu_item_category')) $menu_item_category = Request::post('menu_item_category'); else $menu_item_category = $item['category'];
|
||||
if (Request::post('menu_item_target')) $menu_item_target = Request::post('menu_item_target'); else $menu_item_target = $item['target'];
|
||||
if (Request::post('menu_item_order')) $menu_item_order = Request::post('menu_item_order'); else $menu_item_order = $item['order'];
|
||||
|
||||
// Update menu item
|
||||
if (count($errors) == 0) {
|
||||
MenuAdmin::$menu->update(Request::get('item_id'),
|
||||
array('name' => Request::post('menu_item_name'),
|
||||
'link' => Request::post('menu_item_link'),
|
||||
'category' => Security::safeName(Request::post('menu_item_category'), '-', true),
|
||||
'target' => Request::post('menu_item_target'),
|
||||
'order' => Request::post('menu_item_order')));
|
||||
$errors['menu_item_name_empty'] = __('Required field', 'menu');
|
||||
}
|
||||
|
||||
Request::redirect('index.php?id=menu');
|
||||
}
|
||||
// Update menu item
|
||||
if (count($errors) == 0) {
|
||||
MenuAdmin::$menu->update(Request::get('item_id'),
|
||||
array('name' => Request::post('menu_item_name'),
|
||||
'link' => Request::post('menu_item_link'),
|
||||
'category' => Security::safeName(Request::post('menu_item_category'), '-', true),
|
||||
'target' => Request::post('menu_item_target'),
|
||||
'order' => Request::post('menu_item_order')));
|
||||
|
||||
} else { die('csrf detected!'); }
|
||||
Request::redirect('index.php?id=menu');
|
||||
}
|
||||
|
||||
}
|
||||
} else { die('csrf detected!'); }
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/backend/edit')
|
||||
->assign('menu_item_name', $menu_item_name)
|
||||
->assign('menu_item_link', $menu_item_link)
|
||||
->assign('menu_item_category', $menu_item_category)
|
||||
->assign('menu_item_target', $menu_item_target)
|
||||
->assign('menu_item_order', $menu_item_order)
|
||||
->assign('menu_item_target_array', $menu_item_target_array)
|
||||
->assign('menu_item_order_array', $menu_item_order_array)
|
||||
->assign('errors', $errors)
|
||||
->assign('categories', MenuAdmin::getCategories())
|
||||
->assign('pages_list', MenuAdmin::getPages())
|
||||
->assign('components_list', MenuAdmin::getComponents())
|
||||
->display();
|
||||
|
||||
|
||||
break;
|
||||
|
||||
// Add menu item
|
||||
// -----------------------------------------
|
||||
case "add":
|
||||
|
||||
$menu_item_name = '';
|
||||
$menu_item_link = '';
|
||||
$menu_item_category = '';
|
||||
$menu_item_target = '';
|
||||
$menu_item_order = '';
|
||||
$errors = array();
|
||||
|
||||
// Get current category
|
||||
$menu_item_category = $current_category = (Request::get('category')) ? Request::get('category') : '' ;
|
||||
|
||||
// Add new menu item
|
||||
if (Request::post('menu_add_item')) {
|
||||
|
||||
if (Security::check(Request::post('csrf'))) {
|
||||
|
||||
if (trim(Request::post('menu_item_name')) == '') {
|
||||
|
||||
if (Request::post('menu_item_name')) $menu_item_name = Request::post('menu_item_name'); else $menu_item_name = '';
|
||||
if (Request::post('menu_item_link')) $menu_item_link = Request::post('menu_item_link'); else $menu_item_link = '';
|
||||
if (Request::post('menu_item_category')) $menu_item_category = Request::post('menu_item_category'); else $menu_item_category = $current_category;
|
||||
if (Request::post('menu_item_target')) $menu_item_target = Request::post('menu_item_target'); else $menu_item_target = '';
|
||||
if (Request::post('menu_item_order')) $menu_item_order = Request::post('menu_item_order'); else $menu_item_order = '';
|
||||
|
||||
$errors['menu_item_name_empty'] = __('Required field', 'menu');
|
||||
}
|
||||
|
||||
// Insert new menu item
|
||||
if (count($errors) == 0) {
|
||||
MenuAdmin::$menu->insert(array('name' => Request::post('menu_item_name'),
|
||||
'link' => Request::post('menu_item_link'),
|
||||
'category' => Security::safeName(Request::post('menu_item_category'), '-', true),
|
||||
'target' => Request::post('menu_item_target'),
|
||||
'order' => Request::post('menu_item_order')));
|
||||
|
||||
Request::redirect('index.php?id=menu');
|
||||
}
|
||||
|
||||
} else { die('csrf detected!'); }
|
||||
}
|
||||
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/backend/add')
|
||||
->assign('menu_item_name', $menu_item_name)
|
||||
->assign('menu_item_link', $menu_item_link)
|
||||
->assign('menu_item_category', $menu_item_category)
|
||||
->assign('menu_item_target', $menu_item_target)
|
||||
->assign('menu_item_order', $menu_item_order)
|
||||
->assign('menu_item_target_array', $menu_item_target_array)
|
||||
->assign('menu_item_order_array', $menu_item_order_array)
|
||||
->assign('errors', $errors)
|
||||
->assign('categories', MenuAdmin::getCategories())
|
||||
->assign('pages_list', MenuAdmin::getPages())
|
||||
->assign('components_list', MenuAdmin::getComponents())
|
||||
->display();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// Delete menu item
|
||||
if (Request::get('delete_item')) {
|
||||
MenuAdmin::$menu->delete((int)Request::get('delete_item'));
|
||||
}
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/backend/index')
|
||||
->assign('categories', MenuAdmin::getCategories())
|
||||
->assign('menu', MenuAdmin::$menu)
|
||||
->display();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get categories
|
||||
*/
|
||||
public static function getCategories() {
|
||||
|
||||
$categories = array();
|
||||
|
||||
$_categories = MenuAdmin::$menu->select(null, 'all', null, array('category'));
|
||||
|
||||
foreach($_categories as $category) {
|
||||
$categories[] = $category['category'];
|
||||
}
|
||||
|
||||
return array_unique($categories);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get pages
|
||||
*/
|
||||
protected static function getPages() {
|
||||
|
||||
// Init vars
|
||||
$pages_array = array();
|
||||
$count = 0;
|
||||
|
||||
// Get pages table
|
||||
$pages = new Table('pages');
|
||||
|
||||
// Get Pages List
|
||||
$pages_list = $pages->select('[slug!="error404" and status="published"]');
|
||||
|
||||
foreach ($pages_list as $page) {
|
||||
|
||||
$pages_array[$count]['title'] = Html::toText($page['title']);
|
||||
$pages_array[$count]['parent'] = $page['parent'];
|
||||
$pages_array[$count]['date'] = $page['date'];
|
||||
$pages_array[$count]['author'] = $page['author'];
|
||||
$pages_array[$count]['slug'] = ($page['slug'] == Option::get('defaultpage')) ? '' : $page['slug'] ;
|
||||
|
||||
if (isset($page['parent'])) {
|
||||
$c_p = $page['parent'];
|
||||
} else {
|
||||
$c_p = '';
|
||||
}
|
||||
|
||||
if ($c_p != '') {
|
||||
$_page = $pages->select('[slug="'.$page['parent'].'"]', null);
|
||||
|
||||
if (isset($_page['title'])) {
|
||||
$_title = $_page['title'];
|
||||
} else {
|
||||
$_title = '';
|
||||
}
|
||||
$pages_array[$count]['sort'] = $_title . ' ' . $page['title'];
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/backend/edit')
|
||||
->assign('menu_item_name', $menu_item_name)
|
||||
->assign('menu_item_link', $menu_item_link)
|
||||
->assign('menu_item_category', $menu_item_category)
|
||||
->assign('menu_item_target', $menu_item_target)
|
||||
->assign('menu_item_order', $menu_item_order)
|
||||
->assign('menu_item_target_array', $menu_item_target_array)
|
||||
->assign('menu_item_order_array', $menu_item_order_array)
|
||||
->assign('errors', $errors)
|
||||
->assign('categories', MenuAdmin::getCategories())
|
||||
->assign('pages_list', MenuAdmin::getPages())
|
||||
->assign('components_list', MenuAdmin::getComponents())
|
||||
->display();
|
||||
|
||||
break;
|
||||
|
||||
// Add menu item
|
||||
// -----------------------------------------
|
||||
case "add":
|
||||
|
||||
$menu_item_name = '';
|
||||
$menu_item_link = '';
|
||||
$menu_item_category = '';
|
||||
$menu_item_target = '';
|
||||
$menu_item_order = '';
|
||||
$errors = array();
|
||||
|
||||
// Get current category
|
||||
$menu_item_category = $current_category = (Request::get('category')) ? Request::get('category') : '' ;
|
||||
|
||||
// Add new menu item
|
||||
if (Request::post('menu_add_item')) {
|
||||
|
||||
if (Security::check(Request::post('csrf'))) {
|
||||
|
||||
if (trim(Request::post('menu_item_name')) == '') {
|
||||
|
||||
if (Request::post('menu_item_name')) $menu_item_name = Request::post('menu_item_name'); else $menu_item_name = '';
|
||||
if (Request::post('menu_item_link')) $menu_item_link = Request::post('menu_item_link'); else $menu_item_link = '';
|
||||
if (Request::post('menu_item_category')) $menu_item_category = Request::post('menu_item_category'); else $menu_item_category = $current_category;
|
||||
if (Request::post('menu_item_target')) $menu_item_target = Request::post('menu_item_target'); else $menu_item_target = '';
|
||||
if (Request::post('menu_item_order')) $menu_item_order = Request::post('menu_item_order'); else $menu_item_order = '';
|
||||
|
||||
$errors['menu_item_name_empty'] = __('Required field', 'menu');
|
||||
}
|
||||
|
||||
// Insert new menu item
|
||||
if (count($errors) == 0) {
|
||||
MenuAdmin::$menu->insert(array('name' => Request::post('menu_item_name'),
|
||||
'link' => Request::post('menu_item_link'),
|
||||
'category' => Security::safeName(Request::post('menu_item_category'), '-', true),
|
||||
'target' => Request::post('menu_item_target'),
|
||||
'order' => Request::post('menu_item_order')));
|
||||
|
||||
Request::redirect('index.php?id=menu');
|
||||
}
|
||||
|
||||
} else { die('csrf detected!'); }
|
||||
}
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/backend/add')
|
||||
->assign('menu_item_name', $menu_item_name)
|
||||
->assign('menu_item_link', $menu_item_link)
|
||||
->assign('menu_item_category', $menu_item_category)
|
||||
->assign('menu_item_target', $menu_item_target)
|
||||
->assign('menu_item_order', $menu_item_order)
|
||||
->assign('menu_item_target_array', $menu_item_target_array)
|
||||
->assign('menu_item_order_array', $menu_item_order_array)
|
||||
->assign('errors', $errors)
|
||||
->assign('categories', MenuAdmin::getCategories())
|
||||
->assign('pages_list', MenuAdmin::getPages())
|
||||
->assign('components_list', MenuAdmin::getComponents())
|
||||
->display();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// Delete menu item
|
||||
if (Request::get('delete_item')) {
|
||||
MenuAdmin::$menu->delete((int) Request::get('delete_item'));
|
||||
}
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/backend/index')
|
||||
->assign('categories', MenuAdmin::getCategories())
|
||||
->assign('menu', MenuAdmin::$menu)
|
||||
->display();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get categories
|
||||
*/
|
||||
public static function getCategories()
|
||||
{
|
||||
$categories = array();
|
||||
|
||||
$_categories = MenuAdmin::$menu->select(null, 'all', null, array('category'));
|
||||
|
||||
foreach ($_categories as $category) {
|
||||
$categories[] = $category['category'];
|
||||
}
|
||||
|
||||
return array_unique($categories);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get pages
|
||||
*/
|
||||
protected static function getPages()
|
||||
{
|
||||
// Init vars
|
||||
$pages_array = array();
|
||||
$count = 0;
|
||||
|
||||
// Get pages table
|
||||
$pages = new Table('pages');
|
||||
|
||||
// Get Pages List
|
||||
$pages_list = $pages->select('[slug!="error404" and status="published"]');
|
||||
|
||||
foreach ($pages_list as $page) {
|
||||
|
||||
$pages_array[$count]['title'] = Html::toText($page['title']);
|
||||
$pages_array[$count]['parent'] = $page['parent'];
|
||||
$pages_array[$count]['date'] = $page['date'];
|
||||
$pages_array[$count]['author'] = $page['author'];
|
||||
$pages_array[$count]['slug'] = ($page['slug'] == Option::get('defaultpage')) ? '' : $page['slug'] ;
|
||||
|
||||
if (isset($page['parent'])) {
|
||||
$c_p = $page['parent'];
|
||||
} else {
|
||||
$c_p = '';
|
||||
}
|
||||
|
||||
if ($c_p != '') {
|
||||
$_page = $pages->select('[slug="'.$page['parent'].'"]', null);
|
||||
|
||||
if (isset($_page['title'])) {
|
||||
$_title = $_page['title'];
|
||||
} else {
|
||||
$pages_array[$count]['sort'] = $page['title'];
|
||||
$_title = '';
|
||||
}
|
||||
$_title = '';
|
||||
$count++;
|
||||
$pages_array[$count]['sort'] = $_title . ' ' . $page['title'];
|
||||
} else {
|
||||
$pages_array[$count]['sort'] = $page['title'];
|
||||
}
|
||||
|
||||
// Sort pages
|
||||
$_pages_list = Arr::subvalSort($pages_array, 'sort');
|
||||
|
||||
// return
|
||||
return $_pages_list;
|
||||
$_title = '';
|
||||
$count++;
|
||||
}
|
||||
|
||||
// Sort pages
|
||||
$_pages_list = Arr::subvalSort($pages_array, 'sort');
|
||||
|
||||
/**
|
||||
* Get components
|
||||
*/
|
||||
protected static function getComponents() {
|
||||
// return
|
||||
return $_pages_list;
|
||||
}
|
||||
|
||||
$components = array();
|
||||
|
||||
if (count(Plugin::$components) > 0) {
|
||||
foreach (Plugin::$components as $component) {
|
||||
if ($component !== 'pages' && $component !== 'sitemap') $components[] = Text::lowercase($component);
|
||||
}
|
||||
/**
|
||||
* Get components
|
||||
*/
|
||||
protected static function getComponents()
|
||||
{
|
||||
$components = array();
|
||||
|
||||
if (count(Plugin::$components) > 0) {
|
||||
foreach (Plugin::$components as $component) {
|
||||
if ($component !== 'pages' && $component !== 'sitemap') $components[] = Text::lowercase($component);
|
||||
}
|
||||
|
||||
return $components;
|
||||
}
|
||||
|
||||
}
|
||||
return $components;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,63 +1,58 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Menu plugin
|
||||
*
|
||||
* @package Monstra
|
||||
* @subpackage Plugins
|
||||
* @author Romanenko Sergey / Awilum
|
||||
* @copyright 2012 Romanenko Sergey / Awilum
|
||||
* @version 1.0.0
|
||||
*
|
||||
*/
|
||||
|
||||
// Register plugin
|
||||
Plugin::register( __FILE__,
|
||||
__('Menu', 'menu'),
|
||||
__('Menu manager', 'menu'),
|
||||
'1.0.0',
|
||||
'Awilum',
|
||||
'http://monstra.org/',
|
||||
null,
|
||||
'box');
|
||||
|
||||
if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) {
|
||||
|
||||
// Include Admin
|
||||
Plugin::admin('menu', 'box');
|
||||
|
||||
}
|
||||
|
||||
// Add Plugin Javascript
|
||||
Javascript::add('plugins/box/menu/js/menu.js', 'backend');
|
||||
|
||||
/**
|
||||
* Menu Class
|
||||
*/
|
||||
class Menu
|
||||
{
|
||||
/**
|
||||
* Menu plugin
|
||||
*
|
||||
* @package Monstra
|
||||
* @subpackage Plugins
|
||||
* @author Romanenko Sergey / Awilum
|
||||
* @copyright 2012 Romanenko Sergey / Awilum
|
||||
* @version 1.0.0
|
||||
* Get menu
|
||||
*
|
||||
* @param string $category Category name
|
||||
*/
|
||||
public static function get($category = '')
|
||||
{
|
||||
// Get menu table
|
||||
$menu = new Table('menu');
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/frontend/index')
|
||||
->assign('items', $menu->select('[category="'.$category.'"]', 'all', null, array('id', 'name', 'link', 'target', 'order', 'category'), 'order', 'ASC'))
|
||||
->assign('uri', Uri::segments())
|
||||
->assign('defpage', Option::get('defaultpage'))
|
||||
->display();
|
||||
|
||||
// Register plugin
|
||||
Plugin::register( __FILE__,
|
||||
__('Menu', 'menu'),
|
||||
__('Menu manager', 'menu'),
|
||||
'1.0.0',
|
||||
'Awilum',
|
||||
'http://monstra.org/',
|
||||
null,
|
||||
'box');
|
||||
|
||||
|
||||
if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) {
|
||||
|
||||
// Include Admin
|
||||
Plugin::admin('menu', 'box');
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Add Plugin Javascript
|
||||
Javascript::add('plugins/box/menu/js/menu.js', 'backend');
|
||||
|
||||
|
||||
/**
|
||||
* Menu Class
|
||||
*/
|
||||
class Menu {
|
||||
|
||||
|
||||
/**
|
||||
* Get menu
|
||||
*
|
||||
* @param string $category Category name
|
||||
*/
|
||||
public static function get($category = '') {
|
||||
|
||||
// Get menu table
|
||||
$menu = new Table('menu');
|
||||
|
||||
// Display view
|
||||
View::factory('box/menu/views/frontend/index')
|
||||
->assign('items', $menu->select('[category="'.$category.'"]', 'all', null, array('id', 'name', 'link', 'target', 'order', 'category'), 'order', 'ASC'))
|
||||
->assign('uri', Uri::segments())
|
||||
->assign('defpage', Option::get('defaultpage'))
|
||||
->display();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -7,10 +7,10 @@
|
||||
|
||||
<?php if (isset($errors['menu_item_name_empty'])) $error_class = ' error'; else $error_class = ''; ?>
|
||||
|
||||
<a href="javascript:;" style="text-decoration:none; color:#333; border-bottom:1px dashed #333;" data-toggle="modal" onclick="$('#selectPageModal').modal('show').width(270);" ><?php echo __('Select page', 'menu'); ?></a> /
|
||||
<a href="javascript:;" style="text-decoration:none; color:#333; border-bottom:1px dashed #333;" data-toggle="modal" onclick="$('#selectPageModal').modal('show').width(270);" ><?php echo __('Select page', 'menu'); ?></a> /
|
||||
<a href="javascript:;" style="text-decoration:none; color:#333; border-bottom:1px dashed #333;" data-toggle="modal" onclick="$('#selectCategoryModal').modal('show').width(270);" ><?php echo __('Select category', 'menu'); ?></a><br /><br />
|
||||
|
||||
<?php
|
||||
<?php
|
||||
|
||||
echo Form::label('menu_item_name', __('Item name', 'menu'));
|
||||
echo Form::input('menu_item_name', $menu_item_name, array('class' => (isset($errors['menu_item_name_empty']) || isset($errors['menu_item_name_empty'])) ? 'input-xlarge error-field' : 'input-xlarge'));
|
||||
@@ -33,17 +33,17 @@
|
||||
Html::br().
|
||||
Form::label('menu_item_target', __('Item target', 'menu')).
|
||||
Form::select('menu_item_target', $menu_item_target_array, $menu_item_target, array('class' => 'input-xlarge'))
|
||||
);
|
||||
);
|
||||
|
||||
echo (
|
||||
Html::br().
|
||||
Form::label('menu_item_order', __('Item order', 'menu')).
|
||||
Form::select('menu_item_order', $menu_item_order_array, $menu_item_order, array('class' => 'input-xlarge'))
|
||||
);
|
||||
);
|
||||
|
||||
echo (
|
||||
Html::br(2).
|
||||
Form::submit('menu_add_item', __('Save', 'menu'), array('class' => 'btn')).
|
||||
Form::submit('menu_add_item', __('Save', 'menu'), array('class' => 'btn')).
|
||||
Form::close()
|
||||
);
|
||||
?>
|
||||
@@ -56,10 +56,10 @@
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
<ul class="unstyled">
|
||||
<?php if (count($pages_list) > 0) foreach($pages_list as $page) { ?>
|
||||
<?php if (count($pages_list) > 0) foreach ($pages_list as $page) { ?>
|
||||
<li><?php echo (!empty($page['parent'])) ? Html::nbsp().Html::arrow('right').Html::nbsp(2) : '' ; ?><a href="javascript:;" onclick="$.monstra.menu.selectPage('<?php echo (empty($page['parent'])) ? $page['slug'] : $page['parent'].'/'.$page['slug'] ; ?>', '<?php echo $page['title']; ?>');"><?php echo $page['title']; ?></a></li>
|
||||
<?php } ?>
|
||||
<?php if (count($components_list) > 0) foreach($components_list as $component) { ?>
|
||||
<?php if (count($components_list) > 0) foreach ($components_list as $component) { ?>
|
||||
<li><a href="javascript:;" onclick="$.monstra.menu.selectPage('<?php echo $component; ?>', '<?php echo __(ucfirst($component), $component); ?>');"><?php echo __(ucfirst($component), $component); ?></a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
@@ -75,10 +75,10 @@
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
<ul class="unstyled">
|
||||
<?php if (count($categories) > 0) foreach($categories as $category) { ?>
|
||||
<?php if (count($categories) > 0) foreach ($categories as $category) { ?>
|
||||
<li><a href="javascript:;" onclick="$.monstra.menu.selectCategory('<?php echo $category; ?>');"><?php echo $category; ?></a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -7,10 +7,10 @@
|
||||
|
||||
<?php if (isset($errors['menu_item_name_empty'])) $error_class = ' error'; else $error_class = ''; ?>
|
||||
|
||||
<a href="javascript:;" style="text-decoration:none; color:#333; border-bottom:1px dashed #333;" data-toggle="modal" onclick="$('#selectPageModal').modal('show').width(270);" ><?php echo __('Select page', 'menu'); ?></a> /
|
||||
<a href="javascript:;" style="text-decoration:none; color:#333; border-bottom:1px dashed #333;" data-toggle="modal" onclick="$('#selectPageModal').modal('show').width(270);" ><?php echo __('Select page', 'menu'); ?></a> /
|
||||
<a href="javascript:;" style="text-decoration:none; color:#333; border-bottom:1px dashed #333;" data-toggle="modal" onclick="$('#selectCategoryModal').modal('show').width(270);" ><?php echo __('Select category', 'menu'); ?></a><br /><br />
|
||||
|
||||
<?php
|
||||
<?php
|
||||
|
||||
echo Form::label('menu_item_name', __('Item name', 'menu'));
|
||||
echo Form::input('menu_item_name', $menu_item_name, array('class' => (isset($errors['menu_item_name_empty']) || isset($errors['menu_item_name_empty'])) ? 'input-xlarge error-field' : 'input-xlarge'));
|
||||
@@ -33,17 +33,17 @@
|
||||
Html::br().
|
||||
Form::label('menu_item_target', __('Item target', 'menu')).
|
||||
Form::select('menu_item_target', $menu_item_target_array, $menu_item_target, array('class' => 'input-xlarge'))
|
||||
);
|
||||
);
|
||||
|
||||
echo (
|
||||
Html::br().
|
||||
Form::label('menu_item_order', __('Item order', 'menu')).
|
||||
Form::select('menu_item_order', $menu_item_order_array, $menu_item_order, array('class' => 'input-xlarge'))
|
||||
);
|
||||
);
|
||||
|
||||
echo (
|
||||
Html::br(2).
|
||||
Form::submit('menu_add_item', __('Save', 'menu'), array('class' => 'btn')).
|
||||
Form::submit('menu_add_item', __('Save', 'menu'), array('class' => 'btn')).
|
||||
Form::close()
|
||||
);
|
||||
?>
|
||||
@@ -56,10 +56,10 @@
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
<ul class="unstyled">
|
||||
<?php if (count($pages_list) > 0) foreach($pages_list as $page) { ?>
|
||||
<?php if (count($pages_list) > 0) foreach ($pages_list as $page) { ?>
|
||||
<li><?php echo (!empty($page['parent'])) ? Html::nbsp().Html::arrow('right').Html::nbsp(2) : '' ; ?><a href="javascript:;" onclick="$.monstra.menu.selectPage('<?php echo (empty($page['parent'])) ? $page['slug'] : $page['parent'].'/'.$page['slug'] ; ?>', '<?php echo $page['title']; ?>');"><?php echo $page['title']; ?></a></li>
|
||||
<?php } ?>
|
||||
<?php if (count($components_list) > 0) foreach($components_list as $component) { ?>
|
||||
<?php if (count($components_list) > 0) foreach ($components_list as $component) { ?>
|
||||
<li><a href="javascript:;" onclick="$.monstra.menu.selectPage('<?php echo $component; ?>', '<?php echo __(ucfirst($component), $component); ?>');"><?php echo __(ucfirst($component), $component); ?></a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
@@ -67,7 +67,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="modal hide" id="selectCategoryModal">
|
||||
<div class="modal-header">
|
||||
<a class="close" data-dismiss="modal">×</a>
|
||||
@@ -76,10 +75,10 @@
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
<ul class="unstyled">
|
||||
<?php if (count($categories) > 0) foreach($categories as $category) { ?>
|
||||
<?php if (count($categories) > 0) foreach ($categories as $category) { ?>
|
||||
<li><a href="javascript:;" onclick="$.monstra.menu.selectCategory('<?php echo $category; ?>');"><?php echo $category; ?></a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -2,18 +2,16 @@
|
||||
<br />
|
||||
|
||||
<?php if ($menu->count() == 0) { ?>
|
||||
<h3><?php echo __('Category', 'menu'); ?>: <?php echo 'default'; ?></h3>
|
||||
<h3><?php echo __('Category', 'menu'); ?>: <?php echo 'default'; ?></h3>
|
||||
<br />
|
||||
<?php
|
||||
echo (
|
||||
Html::anchor(__('Create New Item', 'menu'), 'index.php?id=menu&action=add', array('title' => __('Create New Item', 'menu'), 'class' => 'btn btn-small'))
|
||||
);
|
||||
Html::anchor(__('Create New Item', 'menu'), 'index.php?id=menu&action=add', array('title' => __('Create New Item', 'menu'), 'class' => 'btn btn-small'))
|
||||
);
|
||||
?>
|
||||
<br /><br />
|
||||
<?php } ?>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
foreach ($categories as $category) {
|
||||
@@ -25,15 +23,14 @@
|
||||
?>
|
||||
|
||||
<h3><?php echo __('Category', 'menu'); ?>: <?php echo ($category == '') ? 'default' : $category; ?></h3>
|
||||
<br />
|
||||
<br />
|
||||
<?php
|
||||
echo (
|
||||
Html::anchor(__('Create New Item', 'menu'), 'index.php?id=menu&action=add'.$category_to_add , array('title' => __('Create New Item', 'menu'), 'class' => 'btn btn-small'))
|
||||
);
|
||||
Html::anchor(__('Create New Item', 'menu'), 'index.php?id=menu&action=add'.$category_to_add , array('title' => __('Create New Item', 'menu'), 'class' => 'btn btn-small'))
|
||||
);
|
||||
?>
|
||||
<br /><br />
|
||||
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -75,6 +72,6 @@
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
<br />
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
|
||||
|
||||
$anchor_active = '';
|
||||
$li_active = '';
|
||||
$target = '';
|
||||
@@ -49,4 +49,4 @@
|
||||
$li_active = '';
|
||||
$target = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user