Plugin::addFavoriteAdminLink PHP Method

    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();
    }