Esempio n. 1
0
 /**
  * Store event details
  *
  * @return	mixed	false on failure, articleid on success.
  */
 public function store()
 {
     global $admin, $koid;
     if (!isset($_POST['submit'])) {
         return false;
     }
     ///////////////
     // reCAPTCHA //
     ///////////////
     if (JFactory::getUser()->guest) {
         $privatekey = "6Lfj1PMSAAAAAJoag_aDaTNoZ-3mE4JYMwjfmAV5";
         $resp = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
         if (!$resp->is_valid) {
             // What happens when the CAPTCHA was entered incorrect$
             return "captcha-fail";
         }
     }
     // End of reCAPTCHA
     // Create new event
     $db = JFactory::getDbo();
     $event = new JTableEvent($db);
     // Check if event is being edited
     if ($admin && isset($_POST['articleid'])) {
         $event->koid = $koid;
         $event->load($_POST['articleid']);
         $event->article_id = $_POST['articleid'];
     }
     // Insert even information in the object
     $event->title = strip_tags($_POST['addEventFields']['eventName']);
     $event->catid = $_POST['addEventFields']['category'];
     // Create alias if creating new event
     if (!isset($_POST['articleid'])) {
         $event->alias = JFilterOutput::stringURLSafe($event->title);
         $table = JTable::getInstance('Content', 'JTable');
         $i = 0;
         while ($table->load(array('alias' => $event->alias, 'catid' => $event->catid))) {
             $i++;
             $event->alias = JFilterOutput::stringURLSafe($event->title . $i);
         }
     }
     // Handle image
     if (isset($_FILES['addEventFields']) && !$_FILES['addEventFields']['error']['eventImg']) {
         if ($_FILES['addEventFields']['size']['eventImg'] < 8000000) {
             jimport('joomla.filesystem.file');
             jimport('joomla.filesystem.folder');
             $uploadPath = JPATH_SITE . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'stories' . DIRECTORY_SEPARATOR . 'opensubmit' . DIRECTORY_SEPARATOR . time() . '_' . preg_replace("/[^A-Za-z0-9\\._\\-]/", "_", $_FILES['addEventFields']['name']['eventImg']);
             if (!JFile::upload($_FILES['addEventFields']['tmp_name']['eventImg'], $uploadPath)) {
                 unset($uploadPath);
             }
             $this->resizeImage($uploadPath);
         }
     }
     $desc = $_POST['addEventFields']['eventDesc'];
     $event->fulltext = '';
     // Non-admins use simple textarea, no editor. Insert <p>-elements.
     if (!$admin) {
         $bodyparts = explode("\n", $desc);
         $event->introtext = strip_tags(array_shift($bodyparts));
         if ($bodyparts) {
             foreach ($bodyparts as $bodypart) {
                 if ($bodypart) {
                     $event->fulltext .= '<p>' . strip_tags($bodypart) . '</p>';
                 }
             }
         }
     } elseif (strstr($desc, '<hr id="system-readmore" />')) {
         list($event->introtext, $event->fulltext) = explode('<hr id="system-readmore" />', $desc);
     } else {
         $event->introtext = $desc;
     }
     // If image is uploaded, add it to the introtext
     if (isset($uploadPath)) {
         $event->introtext = '<img src="' . strstr($uploadPath, 'images' . DIRECTORY_SEPARATOR . 'stories' . DIRECTORY_SEPARATOR) . '" alt="' . $_FILES['addEventFields']['name']['eventImg'] . '" style="margin:0.5em;float:left;">' . $event->introtext;
     }
     $event->start_time = strip_tags($_POST['addEventFields']['startday'] . ' ' . $_POST['addEventFields']['starthour'] . ':' . $_POST['addEventFields']['startminute'] . ':00');
     if (!isset($_POST['addEventFields']['endday']) || $_POST['addEventFields']['endday'] == '') {
         $_POST['addEventFields']['endday'] = $_POST['addEventFields']['startday'];
     }
     $event->end_time = strip_tags($_POST['addEventFields']['endday'] . ' ' . $_POST['addEventFields']['endhour'] . ':' . $_POST['addEventFields']['endminute'] . ':00');
     if (strtotime($event->end_time) < strtotime($event->start_time)) {
         $event->end_time = $event->start_time;
     }
     if (isset($_POST['addEventFields']['allday']) && $_POST['addEventFields']['allday']) {
         $event->whole_day = 1;
     } else {
         $event->whole_day = 0;
     }
     if (isset($_POST['addEventFields']['children']) && $_POST['addEventFields']['children']) {
         $event->children = 1;
     } else {
         $event->children = 0;
     }
     if (isset($_POST['addEventFields']['chargeable']) && $_POST['addEventFields']['chargeable']) {
         $event->chargeable = 1;
     } else {
         $event->chargeable = 0;
     }
     $event->publish_down = substr($event->realEndTime(), 0, 10) . ' 23:59:59';
     // Location
     if (isset($_POST['no_location']) && $_POST['no_location']) {
         $event->location = 'null';
     } elseif (!$_POST['latitude'] || !$_POST['longitude'] || !$_POST['zoom']) {
         $event->location = 'null';
     } else {
         $event->location = strip_tags(str_replace('|*|', ' ', $_POST['latitude']) . '|*|' . str_replace('|*|', ' ', $_POST['longitude']) . '|*|' . str_replace('|*|', ' ', $_POST['zoom']) . '|*|' . str_replace('|*|', ' ', $_POST['locationdesc']) . '|*|' . str_replace('|*|', ' ', $_POST['locationname']));
     }
     if (isset($_POST['addEventFields']['featured']) && $_POST['addEventFields']['featured']) {
         $event->featured = 1;
     } else {
         $event->featured = 0;
     }
     $event->url = strip_tags($_POST['addEventFields']['url']);
     //		$event->tickets = $_POST['addEventFields']['tickets'];
     $event->contact = strip_tags($_POST['addEventFields']['contact']);
     $event->language = "*";
     $event->access = 1;
     // store event
     $result = $event->store();
     if (!$result) {
         return false;
     }
     $this->sendNotificationEmail();
     return $event->getArticleId();
 }