/core/src/Xpressengine/User/Guard.php 의 checkAdminAuth 메소드 값이 false 면 '관리자 인증 검사 화면' 이 표시됩니다. /** * 관리자 인증 검사 * * @param bool $refresh 인증 세션 시간 갱신 여부 * * @return mixed */ public function checkAdminAuth($refresh = false) { $key = $this->adminAuthConfig['session']; $expire = $this->adminAuthConfig['expire']; if ($expire === 0) { return true; } $now = time(); $timeout = $this->session->get($key, false); if ($timeout !== false && $timeout > $now) { if ($refresh) { $this->refreshAdminAuth(); } return true; } return false; } 사이트 내 에서'관리자 인증 검사 화면' 을 사용하고 싶지 않다면 'config/production/auth.php' 에 명시된 `expire` 값을 0 으로 입력해주세요. 변경전 >> return [ 'admin' => [ 'session' => 'auth.admin', 'expire' => 30, 'password' => 'sparkweb', ], ]; 변경후 >> <?php return [ 'admin' => [ 'session' => 'auth.admin', 'expire' => 0, 'password' => 'sparkweb', ], ];
사용하지 않는 메뉴를 삭제하고 싶은 경우 아래와 같은 코드를 사용합니다. $settingsMenus = app(RegisterContainer::class)->get(Resources::SETTINGS_MENU); unset( $settingsMenus['dashboard'], $settingsMenus['dashboard.home'], $settingsMenus['dashboard.updates'], $settingsMenus['dashboard.operation'], $settingsMenus['sitemap'], $settingsMenus['sitemap.default'], $settingsMenus['contents'], $settingsMenus['contents.media_library'], $settingsMenus['theme'], $settingsMenus['theme.installed'], $settingsMenus['theme.install'], $settingsMenus['theme.globalSkin'], $settingsMenus['theme.setting'], $settingsMenus['theme.editor'], $settingsMenus['extension'], $settingsMenus['extension.installed'], $settingsMenus['extension.install'], $settingsMenus['setting'], $settingsMenus['setting.default'], $settingsMenus['setting.register'], $settingsMenus['setting.terms'], $settingsMenus['setting.permission'], $settingsMenus['setting.admin-log'], $settingsMenus['setting.editor'], $settingsMenus['setting.media_library'], $settingsMenus['setting.lang'] ); $this->registerContainer->set(Resources::SETTINGS_MENU, $settingsMenus); 이 때 오류가 발생하게 됩니다. XE3_Board\routes\web.php 에서 삭제한 메뉴가 사용 중인 라우트의 'settings_menu' 값을 지워줘야 합니다. Route::get('permissions', [ 'as' => 'settings.setting.permissions', 'uses' => 'SettingsController@editPermissions', // 'settings_menu' => ['setting.permission'] ]); Route::get('logs', [ 'as' => 'settings.setting.log.index', 'uses' => 'SettingsController@indexLog', // 'settings_menu' => 'setting.admin-log', 'middleware' => 'admin' ]);
/settings 라우트 흔히 관리자 페이지 접근 시 사용하는 라우트 입니다. 해당 라우트와 연결된 컨트롤러에서 '/settings/dashboard' 로 이동하는 로직이 들어 있습니다. Route::settings( '/', function () { Route::get('/', ['as' => 'settings', 'uses' => 'DashboardController@redirect']); } );
C:\xampp\htdocs\XE3_Board\core\src\Xpressengine\Settings\SettingsMiddleware.php
현재 페이지 URL http://127.0.0.1/settings/returned?sss=weqe 라라벨에서 현재 페이지 URL 를 가져오는 방법 (With, 쿼리 파라미터 /Query Params) request()->fullUrl() // 결과 : http://127.0.0.1/settings/returned?sss=weqe 라라벨에서 현재 페이지 URL 를 가져오는 방법 (Without, 쿼리 파라미터 /Query Params) request()->url() // 결과 : http://127.0.0.1/settings/returned
원하는 비즈니스를 작게 만들고 업데이트 해보세요.
(주)리플레이 대표님은 스파크웹과 30일 만에 비즈니스를 구축하고 회원수 1400명을 확보했어요.
docker-compose 환경을 구성해 사용하는 경우 생성한 docker container에 volumes 설정을 통해 php.ini를 수정할 수 있습니다. app: container_name: php-fpm image: bitnami/php-fpm:7.3 volumes: - ./php.ini:/opt/bitnami/php/etc/conf.d/php.ini
카카오지도 라이브러리를 통해 얻은 좌표를 기반으로 하여 화면의 마커를 업데이트 해야하는 경우 만날 수 있는 문제입니다. 먼저 로드한 스크립트가 services 라이브러리를 포함해서 로드 하였는지 체크해야합니다. var geocoder = new daum.maps.services.Geocoder(); 아래와 같이 필요한 라이브러리를 로드 했다면 services 객체를 찾을 수 없는 문제를 해결할 수 있습니다. <!-- services 라이브러리 불러오기 --> <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=APIKEY&libraries=services"></script> <!-- 카카오지도 라이브러리 불러오기 --> <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY를 넣으시면 됩니다."></script>
/core/src/Xpressengine/User/Guard.php 의 checkAdminAuth 메소드 값이 false 면 '관리자 인증 검사 화면' 이 표시됩니다. /** * 관리자 인증 검사 * * @param bool $refresh 인증 세션 시간 갱신 여부 * * @return mixed */ public function checkAdminAuth($refresh = false) { $key = $this->adminAuthConfig['session']; $expire = $this->adminAuthConfig['expire']; if ($expire === 0) { return true; } $now = time(); $timeout = $this->session->get($key, false); if ($timeout !== false && $timeout > $now) { if ($refresh) { $this->refreshAdminAuth(); } return true; } return false; } 사이트 내 에서'관리자 인증 검사 화면' 을 사용하고 싶지 않다면 'config/production/auth.php' 에 명시된 `expire` 값을 0 으로 입력해주세요. 변경전 >> return [ 'admin' => [ 'session' => 'auth.admin', 'expire' => 30, 'password' => 'sparkweb', ], ]; 변경후 >> <?php return [ 'admin' => [ 'session' => 'auth.admin', 'expire' => 0, 'password' => 'sparkweb', ], ];
사용하지 않는 메뉴를 삭제하고 싶은 경우 아래와 같은 코드를 사용합니다. $settingsMenus = app(RegisterContainer::class)->get(Resources::SETTINGS_MENU); unset( $settingsMenus['dashboard'], $settingsMenus['dashboard.home'], $settingsMenus['dashboard.updates'], $settingsMenus['dashboard.operation'], $settingsMenus['sitemap'], $settingsMenus['sitemap.default'], $settingsMenus['contents'], $settingsMenus['contents.media_library'], $settingsMenus['theme'], $settingsMenus['theme.installed'], $settingsMenus['theme.install'], $settingsMenus['theme.globalSkin'], $settingsMenus['theme.setting'], $settingsMenus['theme.editor'], $settingsMenus['extension'], $settingsMenus['extension.installed'], $settingsMenus['extension.install'], $settingsMenus['setting'], $settingsMenus['setting.default'], $settingsMenus['setting.register'], $settingsMenus['setting.terms'], $settingsMenus['setting.permission'], $settingsMenus['setting.admin-log'], $settingsMenus['setting.editor'], $settingsMenus['setting.media_library'], $settingsMenus['setting.lang'] ); $this->registerContainer->set(Resources::SETTINGS_MENU, $settingsMenus); 이 때 오류가 발생하게 됩니다. XE3_Board\routes\web.php 에서 삭제한 메뉴가 사용 중인 라우트의 'settings_menu' 값을 지워줘야 합니다. Route::get('permissions', [ 'as' => 'settings.setting.permissions', 'uses' => 'SettingsController@editPermissions', // 'settings_menu' => ['setting.permission'] ]); Route::get('logs', [ 'as' => 'settings.setting.log.index', 'uses' => 'SettingsController@indexLog', // 'settings_menu' => 'setting.admin-log', 'middleware' => 'admin' ]);
/settings 라우트 흔히 관리자 페이지 접근 시 사용하는 라우트 입니다. 해당 라우트와 연결된 컨트롤러에서 '/settings/dashboard' 로 이동하는 로직이 들어 있습니다. Route::settings( '/', function () { Route::get('/', ['as' => 'settings', 'uses' => 'DashboardController@redirect']); } );
C:\xampp\htdocs\XE3_Board\core\src\Xpressengine\Settings\SettingsMiddleware.php
현재 페이지 URL http://127.0.0.1/settings/returned?sss=weqe 라라벨에서 현재 페이지 URL 를 가져오는 방법 (With, 쿼리 파라미터 /Query Params) request()->fullUrl() // 결과 : http://127.0.0.1/settings/returned?sss=weqe 라라벨에서 현재 페이지 URL 를 가져오는 방법 (Without, 쿼리 파라미터 /Query Params) request()->url() // 결과 : http://127.0.0.1/settings/returned
서비스 컨테이너 바인딩을 사용해 Settings Middleware 부분 재정의하기. <?php namespace XEHub\XePlugin\XehubCustomDevelop\Http\Middleware; use Xpressengine\Settings\SettingsMiddleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Str; use Xpressengine\User\Models\UserGroup; class LmsSettingsMiddleware extends SettingsMiddleware { protected function checkPermission(Request $request) { if(Str::is("settings/xehub_custom_develop_smart_mall/*", $request->path())) { $userGroup = UserGroup::where('name', 'XELMS')->first(); $user = $request->user(); if ($user instanceof Guest) { throw new AccessDeniedHttpException(); } if($userGroup !== null && $userGroup->users->contains($user)) { return; } } parent::checkPermission($request); } }
Laravel - setRelation