Esempio n. 1
0
 public function createSite(Request $request)
 {
     $this->validate($request, ['siteName' => 'required|unique:sites,title|max:100', 'slogan' => 'max:155', 'description' => 'required|max:255', 'keywords' => 'max:255', 'copyright' => 'max:100'], ['siteName.required' => 'Your site must have a name!', 'siteName.unique' => 'You already own a site by that name.', 'description.required' => 'Tell us a little about the site.']);
     $socialLinks = ['facebook' => insert_if_exists($request->useFacebook, $request->linkFacebook), 'twitter' => insert_if_exists($request->useTwitter, $request->linkTwitter), 'instagram' => insert_if_exists($request->useInstagram, $request->linkInstagram), 'pinterest' => insert_if_exists($request->usePinterest, $request->linkPinterest), 'youtube' => insert_if_exists($request->useYoutube, $request->linkYoutube)];
     $data = ['title' => $request->siteName, 'slogan' => $request->slogan, 'description' => $request->description, 'copyright' => $request->copyright, 'favicons' => SEO::generateFavicons(), 'is_public_site' => is_null($request->hideFromSearchEngines), 'social_links' => json_encode($socialLinks), 'keywords' => $request->keywords];
     Site::create($data);
     return redirect()->route('create.admin');
 }
Esempio n. 2
0
 public function generateFavicons($dir = '')
 {
     $colors = $this->defaults['colors'];
     return insert_if_exists(['60x60', '72x72', '114x114', '120x120', '152x152', '180x180'], function ($insert) use($dir) {
         return '<link rel="apple-touch-icon" sizes="' . $insert . '" href="' . asset($dir . '/apple-touch-icon-' . $insert . '.png') . '">';
     }, function ($insert) use($dir) {
         return File::exists(public_path($dir . '/apple-touch-icon-' . $insert . '.png'));
     }) . insert_if_exists(['16x16', '32x32', '96x96', '194x194'], function ($insert) use($dir) {
         return '<link rel="icon" type="image/png" href="' . asset($dir . '/favicon-' . $insert . '.png') . '" sizes="' . $insert . '">';
     }, function ($insert) use($dir) {
         return File::exists(public_path($dir . '/favicon-' . $insert . '.png'));
     }) . insert_if_exists(['192x192'], function ($insert) use($dir) {
         return '<link rel="icon" type="image/png" href="' . asset($dir . '/android-chrome-' . $insert . '.png') . '" sizes="' . $insert . '">';
     }, function ($insert) use($dir) {
         return File::exists(public_path($dir . '/android-chrome-' . $insert . '.png'));
     }) . insert_if_exists($dir . '/manifest.json', function ($insert) {
         return '<link rel="manifest" href="' . asset($insert) . '">';
     }, function ($insert) {
         return File::exists(public_path($insert));
     }) . insert_if_exists($dir . '/safari-pinned-tab.svg', function ($insert) use($colors) {
         return '<link rel="mask-icon" href="' . asset($insert) . '" color="' . insert_if_exists($colors['safari_pinned']) . '">';
     }, function ($insert) {
         return File::exists(public_path($insert));
     }) . insert_if_exists($dir . '/favicon.ico', function ($insert) {
         return '<link rel="shortcut icon" href="' . asset($insert) . '">';
     }, function ($insert) {
         return File::exists(public_path($insert));
     }) . insert_if_exists($dir . '/mstile-144x144.png', function ($insert) {
         return '<meta name="msapplication-TileImage" content="' . asset($insert) . '">';
     }, function ($insert) {
         return File::exists(public_path($insert));
     }) . insert_if_exists($dir . '/browserconfig.xml', function ($insert) {
         return '<meta name="msapplication-config" content="' . asset($insert) . '">';
     }, function ($insert) {
         return File::exists(public_path($insert));
     }) . insert_if_exists($colors['ms_tile'], function ($insert) {
         return '<meta name="msapplication-TileColor" content="' . $insert . '">';
     }) . insert_if_exists($colors['theme'], function ($insert) {
         return '<meta name="theme-color" content="' . $insert . '">';
     });
 }
Esempio n. 3
0
 function insert_if_exists($insert, $template = null, $match = null)
 {
     if (!is_null($insert)) {
         // if item exists
         if (is_array($insert)) {
             // if more than one item is given
             $ret = '';
             // total of all items to return
             foreach ($insert as $in) {
                 // for each item
                 $ret .= insert_if_exists($in, $template, $match);
                 // get the value if it exists
             }
             return $ret;
             // return total
         }
         if (!is_null($match) && !$match($insert)) {
             // if a match function is set and item doesn't match
             return '';
             // return nothing
         }
         if (!is_null($template)) {
             // if a template is set
             if (is_callable($template)) {
                 // if the template is a function
                 return $template($insert);
                 // insert value into the function
             }
             return $template;
             // use the template as a replacement
         }
         return $insert;
         // else, return the value
     }
     return '';
     // if item doesn't exist, return nothing
 }