/** * Register Plugin Instance Route * * @return void */ protected static function registerInstanceRoute() { Route::instance(self::getId(), function () { Route::get('/', ['as' => 'index', 'uses' => 'UserController@index']); Route::get('/create', ['as' => 'create', 'uses' => 'UserController@create']); Route::get('/edit/{id}', ['as' => 'edit', 'uses' => 'UserController@edit']); Route::get('/destroy/{id}', ['as' => 'destroy', 'uses' => 'UserController@destroy']); Route::get('/show/{id}', ['as' => 'show', 'uses' => 'UserController@show']); Route::get('/identify/{id}', ['as' => 'identify', 'uses' => 'UserController@identify']); Route::get('/revision/{id}', ['as' => 'revision', 'uses' => 'UserController@revision']); Route::post('/store', ['as' => 'store', 'uses' => 'UserController@store']); Route::post('/preview', ['as' => 'preview', 'uses' => 'UserController@preview']); Route::post('/temporary', ['as' => 'temporary', 'uses' => 'UserController@temporary']); Route::get('/trash', ['as' => 'trash', 'uses' => 'UserController@trash']); Route::post('/trash', ['as' => 'trash', 'uses' => 'UserController@trash']); Route::post('/certify', ['as' => 'certify', 'uses' => 'UserController@certify']); Route::post('/update', ['as' => 'update', 'uses' => 'UserController@update']); Route::get('/vote/show', ['as' => 'showVote', 'uses' => 'UserController@showVote']); Route::get('/vote/users/{option}', ['as' => 'votedUsers', 'uses' => 'UserController@votedUsers']); Route::post('/vote/add/{option}', ['as' => 'addVote', 'uses' => 'UserController@addVote']); Route::post('/vote/remove/{option}', ['as' => 'removeVote', 'uses' => 'UserController@removeVote']); Route::post('/manageMenus/{id}', ['as' => 'manageMenus', 'uses' => 'UserController@manageMenus']); Route::get('/comment/list', ['as' => 'comment.index', 'uses' => 'UserController@pageCommentIndex']); Route::post('/comment/store', ['as' => 'comment.store', 'uses' => 'UserController@pageCommentStore']); Route::post('/comment/update', ['as' => 'comment.update', 'uses' => 'UserController@pageCommentUpdate']); Route::post('/comment/destroy', ['as' => 'comment.destroy', 'uses' => 'UserController@pageCommentDestroy']); Route::post('/file/upload', ['as' => 'upload', 'uses' => 'UserController@fileUpload']); Route::get('/file/source/{id}', ['as' => 'source', 'uses' => 'UserController@fileSource']); Route::get('/file/download/{id}', ['as' => 'download', 'uses' => 'UserController@fileDownload']); Route::get('/suggestion/hashTag/{id?}', ['as' => 'hashTag', 'uses' => 'UserController@suggestionHashTag']); Route::get('/suggestion/mention/{id?}', ['as' => 'mention', 'uses' => 'UserController@suggestionMention']); Route::get('/slug/{slug}', ['as' => 'slug2', 'uses' => 'UserController@slug']); Route::get('/checkSlug', ['as' => 'checkSlug', 'uses' => 'UserController@checkSlug']); Route::get('/{slug}', ['as' => 'slug', 'uses' => 'UserController@slug']); }, ['namespace' => 'Xpressengine\\Plugins\\Board\\Controllers']); SlugRepository::setReserved(['index', 'create', 'edit', 'destroy', 'show', 'identify', 'revision', 'store', 'preview', 'temporary', 'trash', 'certify', 'update', 'vote', 'manageMenus', 'comment', 'file', 'suggestion', 'slug', 'checkSlug']); }
/** * get slug string * * @param SlugRepository $slugRepository slug repository * @param string $slug slug * @param string $id document id * @param string $instanceId board instance id * @return string */ public function makeSlug(SlugRepository $slugRepository, $slug, $id, $instanceId) { $slugInfo = $slugRepository->find($slug, $instanceId); if ($slugInfo === null) { return $slug; } if ($slugInfo['id'] == $id) { return $slug; } if ($slugInfo['instanceId'] != $instanceId) { return $slug; } // slug 에 문자열 추가 $slug = $slugRepository->incrementName($slug, $instanceId); return $this->makeSlug($slugRepository, $slug, $id, $instanceId); }