protected function _addUrls(&$menuItems) { $codes = Model::factory('Page')->getCachedCodes(); $resourceIds = array(); $resourcesData = array(); foreach ($menuItems as $k => &$v) { if (isset($codes[$v['page_id']])) { $v['page_code'] = $codes[$v['page_id']]; } else { $v['page_code'] = ''; } if ($v['link_type'] === 'resource') { $resourceIds[] = $v['resource_id']; } } unset($v); if (!empty($resourceIds)) { $resourceIds = array_unique($resourceIds); $data = Model::factory('Medialib')->getItems($resourceIds, array('id', 'path')); if (!empty($data)) { $resourcesData = Utils::rekey('id', $data); } } foreach ($menuItems as $k => &$v) { $v['link_url'] = ''; switch ($v['link_type']) { case 'page': $v['link_url'] = Request::url(array($v['page_code'])); break; case 'url': $v['link_url'] = $v['url']; break; case 'resource': if (isset($resourcesData[$v['resource_id']])) { $v['link_url'] = Model_Medialib::addWebRoot($resourcesData[$v['resource_id']]['path']); } break; } } unset($v); }
/** * Get item data */ public function getitemAction() { $id = Request::post('id', 'integer', false); if (!$id) { Response::jsonError(); } $item = Model::factory('Medialib')->getItem($id); if ($item['type'] == 'image') { $item['srcpath'] = Model_Medialib::addWebRoot(str_replace($item['ext'], '', $item['path'])); } else { $item['srcPath'] = ''; } $item['thumbnail'] = Model_Medialib::getImgPath($item['path'], $item['ext'], 'thumbnail', true); $item['icon'] = Model_Medialib::getImgPath($item['path'], $item['ext'], 'icon', true); $item['path'] = Model_Medialib::addWebRoot($item['path']); Response::jsonSuccess($item); }