webworld888/app/Http/Controllers/SeoController.php
2021-10-26 19:14:12 +09:00

96 lines
2.3 KiB
PHP

<?php
/**
* SeoController.php
*
* PHP version 7
*
* @category Controllers
* @package App\Http\Controllers
* @author XE Developers <developers@xpressengine.com>
* @copyright 2020 Copyright XEHub Corp. <https://www.xehub.io>
* @license http://www.gnu.org/licenses/lgpl-3.0-standalone.html LGPL
* @link https://xpressengine.io
*/
namespace App\Http\Controllers;
use XePresenter;
use XeStorage;
use XeMedia;
use XeFrontend;
use XeSEO;
use Xpressengine\Http\Request;
/**
* Class SeoController
*
* @category Controllers
* @package App\Http\Controllers
* @author XE Developers <developers@xpressengine.com>
* @copyright 2020 Copyright XEHub Corp. <https://www.xehub.io>
* @license http://www.gnu.org/licenses/lgpl-3.0-standalone.html LGPL
* @link https://xpressengine.io
*
* @deprecated since 3.0.2 use SettingController instead
*/
class SeoController extends Controller
{
/**
* Show setting page for SEO.
*
* @return \Xpressengine\Presenter\Presentable
*/
public function getSetting()
{
$ruleName = 'seoSetting';
XeFrontend::rule($ruleName, $this->getRules());
return XePresenter::make('seo.setting', [
'setting' => XeSEO::getSetting(),
'ruleName' => $ruleName
]);
}
/**
* Save setting information.
*
* @param Request $request request
* @return \Illuminate\Http\RedirectResponse
*/
public function postSetting(Request $request)
{
$this->validate($request, $this->getRules());
$inputs = $request->only([
'mainTitle',
'subTitle',
'keywords',
'description',
'twitterUsername',
]);
$setting = XeSEO::getSetting();
$setting->set($inputs);
if ($request->file('siteImage') !== null) {
$file = XeStorage::upload($request->file('siteImage'), 'public/seo');
$image = XeMedia::make($file);
$setting->setSiteImage($image);
}
return redirect()->route('manage.seo.edit');
}
/**
* Returns validation rules.
*
* @return array
*/
private function getRules()
{
return [
'mainTitle' => 'LangRequired',
'keywords' => 'Required',
];
}
}