public function addFavoriteAdminLink($pluginName, $user)
{
$plugin = $this->findByName($pluginName);
$dirPath = $this->getDirectoryPath($pluginName);
$pluginInfo = $this->getPluginInfo(array($plugin), $dirPath);
//リンクが設定されていない
if (empty($pluginInfo['Plugin']['admin_link'])) {
return;
}
if (ClassRegistry::isKeySet('Favorite')) {
$this->Favorite = ClassRegistry::getObject('Favorite');
} else {
$this->Favorite = ClassRegistry::init('Favorite');
}
$adminLinkUrl = Router::url($pluginInfo['Plugin']['admin_link']);
$baseUrl = Configure::read('App.baseUrl');
if ($baseUrl) {
$adminLinkUrl = preg_replace('/^' . preg_quote($baseUrl, '/') . '/', '', $adminLinkUrl);
}
$request = Router::getRequest();
if ($request) {
$base = $request->base;
if ($request->base) {
$adminLinkUrl = preg_replace('/^' . preg_quote($request->base, '/') . '/', '', $adminLinkUrl);
}
}
//すでにお気に入りにリンクが含まれている場合
if ($this->Favorite->find('count', array('conditions' => array('Favorite.url' => $adminLinkUrl, 'Favorite.user_id' => $user['id']))) > 0) {
return;
}
$favorite = array('name' => $pluginInfo['Plugin']['title'] . '管理', 'url' => $adminLinkUrl, 'sort' => $this->Favorite->getMax('sort') + 1, 'user_id' => $user['id']);
$this->Favorite->create($favorite);
$this->Favorite->save();
}