Esempio n. 1
0
 public function delete()
 {
     require_once __DIR__ . '/../models/paymentModel.php';
     require_once __DIR__ . '/../models/imageLabelModel.php';
     require_once __DIR__ . '/../models/rateModel.php';
     require_once __DIR__ . '/../models/guestModel.php';
     require_once __DIR__ . '/../models/tagModel.php';
     $this->requiresLogin();
     if ($this->id && $this->id != Bootstrap::$main->user['id']) {
         $this->requiresLogin(true);
     }
     $user_id = $this->id ?: Bootstrap::$main->user['id'];
     $backup = [];
     $backup['user'] = $this->user($user_id)->data();
     $md5hash = $backup['user']['md5hash'];
     $images = new imageModel();
     $labels = new imageLabelModel();
     $rates = new rateModel();
     $guests = new guestModel();
     $events = new eventModel();
     $tags = new tagModel();
     $payments = new paymentModel();
     $backup['image'] = $images->getUsersImages($user_id) ?: [];
     $backup['imageLabels'] = [];
     foreach ($backup['image'] as $img) {
         $backup['imageLabels'] = array_merge($backup['imageLabels'], $labels->select(['image' => $img['id']]) ?: []);
     }
     $backup['event'] = $events->select(['user' => $user_id]) ?: [];
     $backup['tag'] = $tags->select(['user' => $user_id]) ?: [];
     foreach ($backup['event'] as $event) {
         $backup['tag'] = array_merge($backup['tag'], $tags->select(['event' => $event['id']]) ?: []);
     }
     $backup['rate'] = $rates->select(['user' => $user_id]) ?: [];
     $backup['rate'] = array_merge($backup['rate'], $rates->select(['host' => $user_id]) ?: []);
     $backup['guest'] = $guests->select(['user' => $user_id]) ?: [];
     $backup['payment'] = [];
     foreach ($backup['guest'] as $guest) {
         $backup['payment'] = array_merge($backup['payment'], $payments->select(['guest' => $guest['id']]) ?: []);
     }
     $backup_json = json_encode($backup, JSON_NUMERIC_CHECK);
     $path = 'arch/' . $md5hash . '/' . Bootstrap::$main->human_datetime_format(Bootstrap::$main->now);
     Tools::save($path . '/data.json', $backup_json);
     Tools::save($path . '/img', null, 'img/' . $md5hash);
     Tools::log('remove-user', Bootstrap::$main->user['id']);
     $this->user()->remove();
     if (!$this->id || $this->id == Bootstrap::$main->user['id']) {
         return $this->get_logout();
     }
     return $this->status();
 }
Esempio n. 2
0
 protected function extend_search(&$events)
 {
     $tags = new tagModel();
     $image = new imageModel();
     if (is_array($events)) {
         foreach ($events as &$event) {
             $this->geo_tolerance($event, true);
             if ($event['parent']) {
                 $event['url'] = $this->event($event['parent'])->url;
             }
             $t = $tags->for_event($event['parent'] ?: $event['id']);
             $event['tags'] = $t ? Tools::tags($t) : [];
             if (!is_array($event['img']) && $event['img'] > 0 && !isset($event['img_url'])) {
                 $event['img'] = $image->get($event['img']);
                 foreach (['id', 'src', 'user'] as $f) {
                     if (isset($event['img'][$f])) {
                         unset($event['img'][$f]);
                     }
                 }
             }
             foreach ($event as $k => $v) {
                 if (substr($k, 0, 2) == 'd_') {
                     unset($event[$k]);
                 }
             }
             $user = $this->_get_user($event['user']);
             $event['host'] = $user;
             if (isset($user['url'])) {
                 $event['url'] = $user['url'] . '/' . $event['url'];
             }
             $event['free_slots'] = $this->event()->getSlots($event['id']);
             foreach (['user', 'parent', 'active', 'min_guests'] as $k) {
                 unset($event[$k]);
             }
         }
     }
 }