/**
  * @dataProvider dataForTestSet
  */
 function testSet1($slug, $text, $result)
 {
     $area = new AreaModel();
     $area->setSlug($slug);
     $area->setTitle($text);
     $this->assertEquals($result, $area->getSlugForUrl());
 }
 public function setFromDataBaseRow($data)
 {
     $this->id = $data['id'];
     $this->area_id = $data['area_id'];
     $this->slug = $data['slug'];
     $this->title = $data['title'];
     $this->comment = $data['comment'];
     $this->user_account_id = $data['user_account_id'];
     if (isset($data['user_account_username'])) {
         $this->user_account_username = $data['user_account_username'];
     }
     $this->is_deleted = $data['is_deleted'];
     $this->is_closed_by_admin = $data['is_closed_by_admin'];
     $utc = new \DateTimeZone("UTC");
     $this->created_at = new \DateTime($data['created_at'], $utc);
     if (isset($data['area_information_slug']) && $data['area_information_slug']) {
         $this->area = new AreaModel();
         $this->area->setTitle($data['area_information_title']);
         $this->area->setSlug($data['area_information_slug']);
     }
 }
 public function create(AreaModel $area, AreaModel $parentArea = null, SiteModel $site, CountryModel $country, UserAccountModel $creator = null)
 {
     global $DB;
     try {
         $DB->beginTransaction();
         $stat = $DB->prepare("SELECT max(slug) AS c FROM area_information WHERE site_id=:site_id");
         $stat->execute(array('site_id' => $site->getId()));
         $data = $stat->fetch();
         $area->setSlug($data['c'] + 1);
         if ($parentArea) {
             $area->setParentAreaId($parentArea->getId());
         }
         $stat = $DB->prepare("INSERT INTO area_information (site_id, slug, title,description,country_id,parent_area_id,created_at,approved_at,cache_area_has_parent_generated, is_deleted) " . "VALUES (:site_id, :slug, :title,:description,:country_id,:parent_area_id,:created_at,:approved_at,:cache_area_has_parent_generated, '0') RETURNING id");
         $stat->execute(array('site_id' => $site->getId(), 'slug' => $area->getSlug(), 'title' => substr($area->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'description' => $area->getDescription(), 'country_id' => $country->getId(), 'parent_area_id' => $parentArea ? $parentArea->getId() : null, 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase(), 'cache_area_has_parent_generated' => $parentArea ? '0' : '1'));
         $data = $stat->fetch();
         $area->setId($data['id']);
         $stat = $DB->prepare("INSERT INTO area_history (area_id,  title,description,country_id,parent_area_id,user_account_id  , created_at, approved_at, is_new, is_deleted) VALUES " . "(:area_id,  :title,:description,:country_id,:parent_area_id,:user_account_id, :created_at,:approved_at,'1','0')");
         $stat->execute(array('area_id' => $area->getId(), 'title' => substr($area->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'description' => $area->getDescription(), 'country_id' => $country->getId(), 'parent_area_id' => $parentArea ? $parentArea->getId() : null, 'user_account_id' => $creator ? $creator->getId() : null, 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase()));
         $DB->commit();
     } catch (Exception $e) {
         $DB->rollBack();
     }
 }