Completed
Push — master ( 77c28b...f86acd )
by Jake
03:02
created

SiteController::showAdminForm()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 7
rs 9.4285
1
<?php
2
3
namespace MeestorHok\Blue\Http\Controllers;
4
 
5
use MeestorHok\Blue\Http\Controllers\Controller;
6
use Illuminate\Http\Request;
7
use SEO;
8
use MeestorHok\Blue\Site;
9
10
class SiteController extends Controller
11
{
12
    public function showCreateForm () 
13
    {
14
        return SEO::make([
15
            'title' => 'Create Site',
16
            'description' => 'You currently don\'t have a site! Create one now to get started!'
17
        ], 'Blue::auth.new-site');
18
    }
19
    
20
    public function createSite (Request $request)
21
    {
22
        $this->validate($request, [
23
            'siteName' => 'required|unique:sites,title|max:100',
24
            'slogan' => 'max:155',
25
            'description' => 'required|max:255',
26
            'keywords' => 'max:255',
27
            'copyright' => 'max:100'
28
        ], [
29
            'siteName.required' => 'Your site must have a name!',
30
            'siteName.unique' => 'You already own a site by that name.',
31
            'description.required' => 'Tell us a little about the site.'
32
        ]);
33
        
34
        $socialLinks = [
35
            'facebook'  => insert_if_exists($request->useFacebook, $request->linkFacebook),
36
            'twitter'   => insert_if_exists($request->useTwitter, $request->linkTwitter),
37
            'instagram' => insert_if_exists($request->useInstagram, $request->linkInstagram),
38
            'pinterest' => insert_if_exists($request->usePinterest, $request->linkPinterest),
39
            'youtube'   => insert_if_exists($request->useYoutube, $request->linkYoutube),
40
        ];
41
        
42
        $data = [
43
            'title' => $request->siteName,
44
            'slogan' => $request->slogan,
45
            'description' => $request->description,
46
            'copyright' => $request->copyright,
47
            'favicons' => SEO::generateFavicons(),
48
            'is_public_site' => is_null($request->hideFromSearchEngines),
49
            'social_links' => json_encode($socialLinks),
50
            'keywords' => $request->keywords
51
        ];
52
        
53
        Site::create($data);
54
        
55
        return redirect()->route('create.admin');
56
    }
57
    
58
    public function showAdminForm ()
59
    {
60
        return SEO::make([
61
            'title' => 'Create Admin',
62
            'description' => 'Register as the first admin on your new site!'
63
        ], 'Blue::auth.new-admin');
64
    }
65
}