public function all() { $field = array('type' => 'list', 'filter' => true); $field['labels'] = array('name' => fx::alang('Name', 'system'), 'keyword' => fx::alang('Keyword', 'system'), 'buttons' => array('type' => 'buttons')); $field['values'] = array(); $field['entity'] = 'widget'; $widgets = fx::data('widget')->all(); foreach ($widgets as $widget) { $submenu = Component::getComponentSubmenu($widget); $submenu_first = current($submenu); $r = array('id' => $widget['id'], 'keyword' => $widget['keyword'], 'name' => array('name' => $widget['name'], 'url' => $submenu_first['url'])); $r['buttons'] = array(); foreach ($submenu as $submenu_item) { //if (!$submenu_item['parent']) { $r['buttons'][] = array('type' => 'button', 'label' => $submenu_item['title'], 'url' => $submenu_item['url']); //} } $field['values'][] = $r; } $this->response->addButtons(array(array('key' => "add", 'title' => fx::alang('Add new widget', 'system'), 'url' => '#admin.widget.add'), "delete")); $result = array('fields' => array($field)); $this->response->breadcrumb->addItem(self::entityTypes('widget'), '#admin.widget.all'); $this->response->submenu->setMenu('widget'); return $result; }
/** * A list of all components */ public function all() { $entity = $this->entity_type; $finder = fx::data($entity); $tree = $finder->getTree(); $field = array('type' => 'list', 'filter' => true); $field['labels'] = array('name' => fx::alang('Name', 'system'), 'keyword' => fx::alang('Keyword'), 'count' => fx::alang('Count', 'system'), 'buttons' => array('type' => 'buttons')); $field['values'] = array(); $field['entity'] = $entity; $append_coms = function ($coll, $level) use(&$field, &$append_coms) { foreach ($coll as $v) { $submenu = Component::getComponentSubmenu($v); $submenu_first = current($submenu); try { $items_count = fx::db()->getCol("SELECT count(*) from {{" . $v->getContentTable() . "}}"); } catch (\Exception $e) { $items_count = 0; } $r = array('id' => $v['id'], 'keyword' => $v['keyword'], 'count' => $items_count, 'name' => array('name' => $v['name'], 'url' => $submenu_first['url'], 'level' => $level)); $r['buttons'] = array(); foreach ($submenu as $submenu_item_key => $submenu_item) { if (!$submenu_item['parent']) { // && $submenu_item_key != 'fields') { $r['buttons'][] = array('type' => 'button', 'label' => $submenu_item['title'], 'url' => $submenu_item['url']); } } $field['values'][] = $r; if (isset($v['children']) && $v['children']) { $append_coms($v['children'], $level + 1); } } }; $append_coms($tree, 0); $fields[] = $field; $this->response->addButtons(array(array('key' => "add", 'title' => fx::alang('Add new ' . $entity, 'system'), 'url' => '#admin.' . $entity . '.add'), "delete")); $result = array('fields' => $fields); $this->response->breadcrumb->addItem(self::entityTypes($entity), '#admin.' . $entity . '.all'); $this->response->submenu->setMenu($entity); return $result; }
protected function initMenuWidget($id) { $this->type = 'full'; $widget = fx::data('widget')->getById($id); if (!$widget) { $this->error = fx::alang('Widget not found', 'system'); } else { $this->title = $widget['name']; $this->backlink = 'widget.all'; $items = Controller\Component::getComponentSubmenu($widget); foreach ($items as $item) { $this->menu[] = $this->addNode($item['code'], $item['title'], $item['url']); } } }