コード例 #1
0
ファイル: eventController.php プロジェクト: podstawski/papu
 public function delete($auto = false)
 {
     $this->requiresLogin();
     $event = $this->event()->get(0 + $this->id);
     if (!isset($event['user']) || $event['user'] != Bootstrap::$main->user['id']) {
         return $this->error(19);
     }
     $model = new eventModel($event);
     if (!$model->getGuests() && count($model->get_dates($model->id, false)) == 1) {
         $model->remove();
         return $this->status();
     } elseif (!$auto && $model->d_event_start < Bootstrap::$main->now) {
         return $this->error(60);
     } else {
         $guests = $model->getGuests();
         $guestModel = new guestModel();
         $otoken = $auto ? 'auto-cancel' : 'host-cancel';
         Bootstrap::$main->human_datetime_format();
         $event = $this->event()->get(0 + $this->id);
         $host = $this->user()->get($event['user']);
         if (is_array($guests)) {
             foreach ($guests as $guest) {
                 $guestModel->get($guest['guest_id']);
                 $guestModel->cancel_reason = $this->data('reason');
                 $guestModel->d_cancel = Bootstrap::$main->now;
                 $guestModel->canceler = Bootstrap::$main->user['id'];
                 $guestModel->save();
                 $ics = Ics::cancelation($event, $host, $guest, $event['create'], $event['change']);
                 $data = $guestModel->data();
                 $data['event'] = $event;
                 $data['guest'] = $guest;
                 $data['host'] = $host;
                 if ($guestModel->d_payment) {
                     Tools::observe($otoken, $data, [['cancel.ics' => $ics]]);
                 }
             }
         }
         $model->active = -1;
         $model->save();
         Tools::log('event-' . $otoken, ['event' => $model->data(), 'guests' => $guests]);
     }
     return $this->status();
 }
コード例 #2
0
ファイル: html.php プロジェクト: podstawski/papu
                 $ul[] = ['class' => 'event', 'url' => $url . $event['url'], 'name' => $event['name'], 'img' => $event['img']['square']];
                 $urls[$event['url']] = true;
             }
         }
         $url .= $user['user']['url'];
         $img_url = $url;
     }
 } elseif ($parts[1]) {
     $eventController = new eventController($parts[1], [], $parts);
     $method = 'get_' . $parts[0];
     $event = $eventController->{$method}();
     if (isset($event['event'])) {
         $event_model = new eventModel();
         $u = explode('/', $event['event']['url']);
         $e = $event_model->find_on_url($u[0], $u[1]);
         $dates = $event_model->get_dates($e['id'], false) ?: [];
         $itemscope = 'Events';
         if (isset($event['event']['rate'])) {
             $rate = $event['event']['rate'];
         }
         $title = $event['event']['name'];
         $pagetitle = $title . ' - ' . $event['event']['city'];
         $description = $event['event']['about'];
         $photo = $event['event']['img']['url'];
         $img = $event['event']['host']['photo'];
         if (isset($event['event']['tags']) && is_array($event['event']['tags'])) {
             $tags = [];
             foreach ($event['event']['tags'] as $t) {
                 $tags[] = $t['name'];
             }
             $keywords = implode(',', $tags) . ',' . $keywords;