/** * Find user avatar * Will be used for sharding * @param integer $userId * @param string $userName * @param string $avatarPath * @param string $size - optional size tag */ public static function findAvatar($userId, $userName, $avatarPath, $size = 'thumb') { if (!strlen($avatarPath)) { return '/media/user/avatar/unknown_user.png'; } return Model_Medialib::getImgPath($avatarPath, '.jpg', $size); }
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); }
/** * Include required sources */ public function includeScripts() { $version = Config::factory(Config::File_Array, Registry::get('main', 'config')->get('configs') . 'versions.php')->get('medialib'); if (self::$_scriptsIncluded) { return; } $conf = $this->getConfig()->__toArray(); $resource = Resource::getInstance(); $resource->addCss('/js/lib/jquery.Jcrop.css'); $editor = Registry::get('main', 'config')->get('html_editor'); if ($editor === 'tinymce') { $resource->addJs('/js/lib/tiny_mce/tiny_mce.js', 0, true); $resource->addJs('/js/lib/ext_ux/Ext.ux.TinyMCE.js', 1, true); $resource->addJs('/js/app/system/medialib/HtmlPanel_tinymce.js', 3); } elseif ($editor === 'ckeditor') { $resource->addJs('/js/lib/ckeditor/ckeditor.js', 0, true); $resource->addJs('/js/lib/ext_ux/ckplugin.js', 1, true); $resource->addJs('/js/app/system/medialib/HtmlPanel_ckeditor.js', 3); } $resource->addJs('/js/lib/ext_ux/AjaxFileUpload.js', 1, false); $resource->addJs('/js/app/system/SearchPanel.js', 1); $resource->addJs('/js/app/system/ImageField.js', 1); $resource->addJs('/js/app/system/MedialinkField.js', 1); $resource->addJs('/js/app/system/Medialib.js?v=' . $version, 2); $resource->addJs('/js/lib/jquery.Jcrop.min.js', 2, true); $resource->addInlineJs(' app.maxFileSize = "' . ini_get('upload_max_filesize') . '"; app.mediaConfig = ' . json_encode($conf) . '; app.imageSize = ' . json_encode($conf['image']['sizes']) . '; app.medialibControllerName = "medialib"; '); self::$_scriptsIncluded = true; }
/** * Get item info for mediaitem field */ public function infoAction() { $id = Request::post('id', 'integer', false); if (!$id) { Response::jsonSuccess(array('exists' => false)); } $item = Model::factory('Medialib')->getItem($id); if (empty($item)) { Response::jsonSuccess(array('exists' => false)); } if ($item['type'] == 'image') { $icon = Model_Medialib::getImgPath($item['path'], $item['ext'], 'thumbnail', true) . '?m=' . date('ymdhis', strtotime($item['modified'])); } else { $icon = $this->_configMain->get('wwwroot') . 'i/unknown.png'; } Response::jsonSuccess(array('exists' => true, 'type' => $item['type'], 'icon' => $icon, 'title' => $item['title'], 'size' => Utils::formatFileSize($item['size']))); }