示例#1
0
 /**
  * Updates slug_name column of restaurants
  *
  * @throws \Exception
  */
 public function updateRestaurantSlugName()
 {
     try {
         $restaurants = $this->orderBy('id', 'ASC')->get();
         $franchise_restaurants = array();
         foreach ($restaurants as $restaurant) {
             $rest = $this->where('name', $restaurant->name)->get();
             $rest_count = $rest->count();
             if ($rest_count >= 2) {
                 $franchise_restaurants[] = $restaurant;
                 continue;
             } elseif ($rest_count <= 1) {
                 $slug_name = getSlugName($restaurant->name);
                 $restaurant->slug_name = $slug_name;
                 $restaurant->save();
             }
             $slug_name = '';
         }
         if ($franchise_restaurants) {
             $franchise_restaurants_tmp = array();
             foreach ($franchise_restaurants as $franchise_restaurant) {
                 $franchise_restaurants_tmp[$franchise_restaurant->name][] = $franchise_restaurant;
             }
             $franchise_restaurants = $franchise_restaurants_tmp;
             unset($franchise_restaurants_tmp);
             foreach ($franchise_restaurants as $franchise_restaurant) {
                 $count = 1;
                 foreach ($franchise_restaurant as $fr) {
                     $slug_name = getSlugName($fr->name);
                     if ($count > 1) {
                         $slug_name = $slug_name . '-' . $count;
                     }
                     if (!$fr->slug_name) {
                         $fr->slug_name = $slug_name;
                         $fr->save();
                     }
                     $count = $count + 1;
                 }
             }
         }
     } catch (\Exception $e) {
         throw $e;
     }
 }
示例#2
0
 public function removeTrashed()
 {
     global $app;
     $params = $app->router()->getCurrentRoute()->getParams();
     $id = $params['param'];
     $data = MetaDataWriter::getFileData($this->metaFile);
     // sort posts by latest first
     $dates = array();
     foreach ($data as $key => $value) {
         $dates[] = strtotime($value['dated']);
     }
     array_multisort($dates, SORT_DESC, SORT_NUMERIC, $data);
     // remove post from disk
     $postPath = 'public/post/' . getSlugName($data[$id]['title']);
     @rrmdir($postPath);
     unset($data[$id]);
     MetaDataWriter::writeData($this->metaFile, $data);
     $app->flash('info', 'Restored Successfully');
     $app->redirect($_SERVER['HTTP_REFERER']);
 }
示例#3
0
    protected function generateSitemap($data)
    {
        $newline = PHP_EOL;
        $sitemap = <<<SITEMAP
<?xml version="1.0" encoding="UTF-8"?>
<urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
            http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">{$newline}
SITEMAP;
        // for posts
        foreach ($data['posts'] as $post) {
            $postURL = $data['settings']['url'];
            $postURL = rtrim($postURL, '/');
            $postURL .= '/post/' . getSlugName($post['title']);
            $datetime = new \DateTime($post['dated']);
            $lastmod = $datetime->format('Y-m-d\\TH:i:sP');
            $sitemap .= '<url>' . $newline;
            $sitemap .= '<loc>' . $postURL . '/</loc>' . $newline;
            $sitemap .= '<lastmod>' . $lastmod . '</lastmod>' . $newline;
            $sitemap .= '<changefreq>daily</changefreq>' . $newline;
            $sitemap .= '<priority>1.00</priority>' . $newline;
            $sitemap .= '</url>' . $newline;
        }
        // for pages
        foreach ($data['pages'] as $page) {
            $pageURL = $data['settings']['url'];
            $pageURL = rtrim($pageURL, '/');
            $pageURL .= '/page/' . getSlugName($page['title']);
            $sitemap .= '<url>' . $newline;
            $sitemap .= '<loc>' . $pageURL . '/</loc>' . $newline;
            $sitemap .= '<changefreq>weekly</changefreq>' . $newline;
            $sitemap .= '<priority>1.00</priority>' . $newline;
            $sitemap .= '</url>' . $newline;
        }
        $sitemap .= '</urlset>';
        file_put_contents($this->publicDir . 'sitemap.xml', $sitemap) or die('error writing sitemap file!');
    }
示例#4
0
 public function remove()
 {
     global $app;
     $params = $app->router()->getCurrentRoute()->getParams();
     $id = $params['param'];
     $data = MetaDataWriter::getFileData($this->metaFile);
     // remove page from disk
     $pagePath = 'public/page/' . getSlugName($data[$id]['title']);
     @rrmdir($pagePath);
     unset($data[$id]);
     MetaDataWriter::writeData($this->metaFile, $data);
     $app->flash('info', 'Deleted Successfully');
     $app->redirect($_SERVER['HTTP_REFERER']);
 }