public function article($cid) { // Check for request forgeries JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); // Get items to remove from the request. $cid = JFactory::getApplication()->input->get('cid', array(), 'array'); if (!is_array($cid) || count($cid) < 1) { JLog::add(JText::_($this->text_prefix . '_NO_ITEM_SELECTED'), JLog::WARNING, 'jerror'); } else { //$model = $this->getModel(); $params = JComponentHelper::getParams('com_einsatzkomponente'); // Make sure the item ids are integers jimport('joomla.utilities.arrayhelper'); JArrayHelper::toInteger($cid); foreach ($cid as $key => $val) { $query = 'SELECT * FROM `#__eiko_einsatzberichte` WHERE `id` = "' . $val . '" and state ="1" LIMIT 1'; $db = JFactory::getDBO(); $db->setQuery($query); $result = $db->loadObjectList(); $kat = EinsatzkomponenteHelper::getTickerKat($result[0]->tickerkat); $db = JFactory::getDbo(); $db->setQuery('SELECT MAX(asset_id) FROM #__content'); $max = $db->loadResult(); $asset_id = $max + 1; $link = JRoute::_(JURI::root() . 'index.php?option=com_einsatzkomponente&view=einsatzbericht&id=' . $result[0]->id); $image_intro = str_replace('/', '\\/', $result[0]->image); $image_intro = $db->escape($image_intro); if (str_replace('\\/com_einsatzkomponente\\/einsatzbilder\\/thumbs', '', $image_intro)) { $image_fulltext = str_replace('\\/thumbs', '', $image_intro); } $user = JFactory::getUser(); $db = JFactory::getDbo(); $query = $db->getQuery(true); // !important, true for every new query $query->insert('#__content'); // #__table_name = databse prefix + table name $query->set('`id`=NULL'); $query->set('`asset_id`="' . $asset_id . '"'); $query->set('`title`="' . $result[0]->summary . '"'); $alias = strtolower($result[0]->summary); $alias = str_replace(" ", "-", $alias) . '_' . date("Y-m-d", strtotime($result[0]->date1)); $query->set('`alias`="' . $alias . '"'); $intro = $result[0]->desc; $intro = preg_replace("#(?<=.{" . $params->get('article_max_intro', '400') . "}?\\b)(.*)#is", " ...", $intro, 1); $query->set('`introtext`="' . $db->escape($intro) . '"'); if ($params->get('article_orgas', '1')) { $data = array(); foreach (explode(',', $result[0]->auswahl_orga) as $value) { $db = JFactory::getDbo(); $sql = $db->getQuery(true); $sql->select('name')->from('`#__eiko_organisationen`')->where('id = "' . $value . '"'); $db->setQuery($sql); $results = $db->loadObjectList(); if (count($results)) { $data[] = '' . $results[0]->name . ''; } } $auswahl_orga = implode(',', $data); $orgas = str_replace(",", " +++ ", $auswahl_orga); $orgas = '<br/><div class=\\"eiko_article_orga\\">Eingesetzte Kräfte: ' . $orgas . '</div>'; $query->set('`fulltext`="' . $db->escape($result[0]->desc) . $orgas . '"'); } else { $query->set('`fulltext`="' . $db->escape($result[0]->desc) . '"'); } $query->set('`state`="1"'); $query->set('`catid`="' . $params->get('article_category', '0') . '"'); $query->set('`created`="' . date("Y-m-d H:i:s", strtotime($result[0]->date1)) . '"'); $query->set('`created_by`="' . $user->id . '"'); $query->set('`created_by_alias`=""'); $query->set('`modified`=""'); $query->set('`modified_by`="' . $user->id . '"'); $query->set('`checked_out`="0"'); $query->set('`checked_out_time`="0000-00-00 00:00:00.000000"'); $query->set('`publish_up`="' . date("Y-m-d H:i:s", strtotime($result[0]->date1)) . '"'); $query->set('`publish_down`="0000-00-00 00:00:00.000000"'); $query->set('`images`="{\\"image_intro\\":\\"' . $image_intro . '\\",\\"float_intro\\":\\"\\",\\"image_intro_alt\\":\\"\\",\\"image_intro_caption\\":\\"\\",\\"image_fulltext\\":\\"' . $image_fulltext . '\\",\\"float_fulltext\\":\\"\\",\\"image_fulltext_alt\\":\\"\\",\\"image_fulltext_caption\\":\\"\\"}"'); $query->set('`urls`="{\\"urla\\":\\"' . $link . '\\",\\"urlatext\\":\\"Weitere Informationen über diesen Einsatz im Detailbericht\\",\\"targeta\\":\\"\\",\\"urlb\\":\\"' . $result[0]->presse . '\\",\\"urlbtext\\":\\"' . $result[0]->presse_label . '\\",\\"targetb\\":\\"\\",\\"urlc\\":\\"' . $result[0]->presse2 . '\\",\\"urlctext\\":\\"' . $result[0]->presse2_label . '\\",\\"targetc\\":\\"\\"}"'); $query->set('`attribs`="{\\"show_title\\":"",\\"link_titles\\":"",\\"show_tags\\":"",\\"show_intro\\":"",\\"info_block_position\\":"",\\"show_category\\":"",\\"link_category\\":"",\\"show_parent_category\\":"",\\"link_parent_category\\":"",\\"show_author\\":"",\\"link_author\\":"",\\"show_create_date\\":"",\\"show_modify_date\\":"",\\"show_publish_date\\":"",\\"show_item_navigation\\":"",\\"show_icons\\":"",\\"show_print_icon\\":"",\\"show_email_icon\\":"",\\"show_vote\\":"",\\"show_hits\\":"",\\"show_noauth\\":"",\\"urls_position\\":"",\\"alternative_readmore\\":"",\\"article_layout\\":"",\\"show_publishing_options\\":"",\\"show_article_options\\":"",\\"show_urls_images_backend\\":"",\\"show_urls_images_frontend\\":""}"'); $query->set('`version`="1"'); $query->set('`ordering`="0"'); $query->set('`metakey`="' . $auswahl_orga . ',' . $params->get('article_meta_key', 'feuerwehr,einsatzbericht,unfall,feuer,hilfeleistung,polizei,thw,rettungsdienst,hilfsorganisation') . ',einsatzkomponente"'); $query->set('`metadesc`="' . $params->get('article_meta_desc', 'Einsatzbericht') . '"'); $query->set('`access`="1"'); $query->set('`hits`="0"'); $query->set('`metadata`="{\\"robots\\":\\"\\",\\"author\\":\\"' . $user->username . '\\",\\"rights\\":\\"\\",\\"xreference\\":\\"\\"}"'); $query->set('`featured`="1"'); $query->set('`language`="*"'); $query->set('`xreference`=""'); /* or something like this: $query->columns('`1`,`2`,`3`'); $query->values('"one","two","three"'); */ $db->setQuery($query); try { // Execute the query in Joomla 3.0. $db->execute(); } catch (Exception $e) { //print the errors print_r($e) . ''; } $content_id = $db->insertId(); // Joomla-Artikel Id in Einsatzbericht eintragen $query = "UPDATE `#__eiko_einsatzberichte` SET `article_id` = '" . $content_id . "' WHERE `id` = '" . $result[0]->id . "'"; $db = JFactory::getDBO(); $db->setQuery($query); $db->query(); if ($params->get('article_frontpage', '1')) { // Artikel als Haupteintrag-Eintrag markieren $frontpage_query = "INSERT INTO `#__content_frontpage` SET `content_id`='" . $content_id . "'"; $db = JFactory::getDBO(); $db->setQuery($frontpage_query); $db->query(); } } $msg = count($cid) . ' Artikel erstellt'; } return $msg; }
/** * Display the view */ public function display($tpl = null) { $this->next_id[0] = new stdClass(); require_once JPATH_SITE . '/administrator/components/com_einsatzkomponente/helpers/einsatzkomponente.php'; // Helper-class laden $app = JFactory::getApplication(); $selectedOrga = $app->getUserStateFromRequest("com_einsatzkomponente.selectedOrga", 'selectedOrga', 'alle Organisationen'); //echo $selectedOrga; $user = JFactory::getUser(); //$id = $app->input->get(id); $this->state = $this->get('State'); $this->item = $this->get('Data'); $this->images = EinsatzkomponenteHelper::getEinsatzbilder($this->item->id); $this->prev_id = EinsatzkomponenteHelper::getPrev_id($this->item->date1, $selectedOrga); $this->next_id = EinsatzkomponenteHelper::getNext_id($this->item->date1, $selectedOrga); $this->params = $app->getParams('com_einsatzkomponente'); $this->form = $this->get('Form'); $this->gmap_config = EinsatzkomponenteHelper::load_gmap_config(); // GMap-Config aus helper laden $this->einsatzlogo = EinsatzkomponenteHelper::getEinsatzlogo($this->item->data1); $this->tickerKat = EinsatzkomponenteHelper::getTickerKat($this->item->tickerkat); $this->alarmierungsart = EinsatzkomponenteHelper::getAlarmierungsart($this->item->alerting); // Get active menu $app = JFactory::getApplication(); $menus = $app->getMenu(); $this->menu = $menus->getActive(); //print_r ($this->menu); //echo $this->menu->anzeigejahr; // Import CSS + JS $document = JFactory::getDocument(); $document->addStyleSheet('components/com_einsatzkomponente/assets/css/einsatzkomponente.css'); $document->addStyleSheet('components/com_einsatzkomponente/assets/css/responsive.css'); $document->addScript('components/com_einsatzkomponente/assets/highslide/highslide-with-gallery.js'); $document->addScript('components/com_einsatzkomponente/assets/highslide/highslide.config.js'); $document->addStyleSheet('components/com_einsatzkomponente/assets/highslide/highslide.css'); //print_r ($this->menu); $this->social = EinsatzkomponenteHelper::getSocial($this->params, $this->item->id, $this->item->summary); // $sef = ''; // $sef_rewrite = ''; // $conf = JFactory::getConfig(); // @$sef = $conf[sef]; // @$sef_rewrite = $conf[sef_rewrite]; //if ($sef_rewrite) : @($this->navbar = EinsatzkomponenteHelper::getNavbar($this->params, $this->prev_id['0']->id, $this->next_id['0']->id, $this->item->id, $this->menu->link . '&Itemid=' . $this->menu->id)); //endif; //if (!$sef_rewrite) : //@$this->navbar = EinsatzkomponenteHelper::getNavbar($this->params,$this->prev_id['0']->id,$this->next_id['0']->id,$this->item->id,$this->menu->link.'&Itemid='.$this->params->get('homelink','').''); //endif; if ($this->params->get('gmap_action', '0') == '1') { if ($this->params->get('display_detail_organisationen', '1')) { $orga = EinsatzkomponenteHelper::getOrganisationen(); $organisationen = '['; // Feuerwehr Details ------> $n = 0; for ($i = 0; $i < count($orga); $i++) { $orga_image = $orga[$i]->gmap_icon_orga; if (!$orga_image) { $orga_image = 'images/com_einsatzkomponente/images/map/icons/' . $this->params->get('einsatzkarte_orga_image', 'haus_rot.png'); } if ($i == $n - 1) { $organisationen = $organisationen . '["' . $orga[$i]->name . '",' . $orga[$i]->gmap_latitude . ',' . $orga[$i]->gmap_longitude . ',' . $i . ',"' . $orga_image . '"]'; } else { $organisationen = $organisationen . '["' . $orga[$i]->name . '",' . $orga[$i]->gmap_latitude . ',' . $orga[$i]->gmap_longitude . ',' . $i . ',"' . $orga_image . '"'; $organisationen = $organisationen . '],'; } } $organisationen = substr($organisationen, 0, strlen($organisationen) - 1); $organisationen = $organisationen . ' ];'; } else { $organisationen = '[["",1,1,0,"images/com_einsatzkomponente/images/map/icons/' . $this->params->get('einsatzkarte_orga_image', 'haus_rot.png') . '"],["",1,1,0,"images/com_einsatzkomponente/images/map/icons/' . $this->params->get('einsatzkarte_orga_image', 'haus_rot.png') . '"] ]'; } $standort = EinsatzkomponenteHelper::getStandort_orga($this->item->auswahl_orga); $display_map_route = $this->params->get('display_map_route', 'true'); // echo $standort->gmap_latitude; // echo $standort->gmap_longitude; // echo $standort->name; if ($this->params->get('display_detail_einsatzgebiet', '1')) { $alarmareas1 = $this->gmap_config->gmap_alarmarea; // Einsatzgebiet ----> $alarmareas = explode('|', $alarmareas1); $einsatzgebiet = '[ '; for ($i = 0; $i < count($alarmareas) - 1; $i++) { $areas = explode(',', $alarmareas[$i]); $einsatzgebiet = $einsatzgebiet . 'new google.maps.LatLng(' . $areas[0] . ',' . $areas[1] . '),'; } $areas = explode(',', $alarmareas[0]); $einsatzgebiet = $einsatzgebiet . 'new google.maps.LatLng(' . $areas[0] . ',' . $areas[1] . '),'; $einsatzgebiet = substr($einsatzgebiet, 0, strlen($einsatzgebiet) - 1); $einsatzgebiet = $einsatzgebiet . ' ]'; } else { $einsatzgebiet = '[[0,0]]'; } $display_detail_popup = $this->params->get('display_detail_popup', 'false'); $marker1_title = ''; $marker1_lat = ''; $marker1_lng = ''; $marker1_image = ''; $marker2_title = ''; $marker2_lat = ''; $marker2_lng = ''; $marker2_image = ''; if ($this->params->get('display_detail_einsatz_marker', '1') && $this->item->gmap == '1') { $marker1_title = $this->item->summary; $marker1_lat = $this->item->gmap_report_latitude; $marker1_lng = $this->item->gmap_report_longitude; $marker1_image = $this->einsatzlogo->icon; //$marker1_image = 'images/com_einsatzkomponente/images/map/icons/'.$this->params->get('detail_pointer1_image','circle.png'); } else { $marker1_lat = '1'; $marker1_lng = '1'; } $center_lat = $this->item->gmap_report_latitude; $center_lng = $this->item->gmap_report_longitude; $gmap_zoom_level = $this->params->get('detail_gmap_zoom_level', '12'); $gmap_onload = $this->params->get('detail_gmap_onload', 'HYBRID'); $zoom_control = $this->params->get('detail_zoom_control', 'false'); $document->addScript('https://maps.googleapis.com/maps/api/js?v=3.exp'); $document->addScriptDeclaration(EinsatzkomponenteHelper::getGmap($marker1_title, $marker1_lat, $marker1_lng, $marker1_image, $marker2_title, $marker2_lat, $marker2_lng, $marker2_image, $center_lat, $center_lng, $gmap_zoom_level, $gmap_onload, $zoom_control, $organisationen, $orga_image, $einsatzgebiet, $display_detail_popup, $standort, $display_map_route)); } if ($this->params->get('gmap_action', '0') == '2') { if ($this->params->get('display_detail_organisationen', '1')) { $orga = EinsatzkomponenteHelper::getOrganisationen(); $organisationen = '['; // Feuerwehr Details ------> $n = 0; for ($i = 0; $i < count($orga); $i++) { $orga_image = $orga[$i]->gmap_icon_orga; if (!$orga_image) { $orga_image = 'images/com_einsatzkomponente/images/map/icons/' . $this->params->get('einsatzkarte_orga_image', 'haus_rot.png'); } if ($i == $n - 1) { $organisationen = $organisationen . '["' . $orga[$i]->name . '",' . $orga[$i]->gmap_latitude . ',' . $orga[$i]->gmap_longitude . ',' . $i . ',"' . $orga_image . '"]'; } else { $organisationen = $organisationen . '["' . $orga[$i]->name . '",' . $orga[$i]->gmap_latitude . ',' . $orga[$i]->gmap_longitude . ',' . $i . ',"' . $orga_image . '"'; $organisationen = $organisationen . '],'; } } $organisationen = substr($organisationen, 0, strlen($organisationen) - 1); $organisationen = $organisationen . ' ];'; } else { $organisationen = '[["",1,1,0,"images/com_einsatzkomponente/images/map/icons/' . $this->params->get('einsatzkarte_orga_image', 'haus_rot.png') . '"],["",1,1,0,"images/com_einsatzkomponente/images/map/icons/' . $this->params->get('einsatzkarte_orga_image', 'haus_rot.png') . '"] ]'; } if ($this->params->get('display_detail_einsatzgebiet', '1')) { $alarmareas1 = $this->gmap_config->gmap_alarmarea; // Einsatzgebiet ----> $alarmareas = explode('|', $alarmareas1); $einsatzgebiet = '[ '; for ($i = 0; $i < count($alarmareas) - 1; $i++) { $areas = explode(',', $alarmareas[$i]); $einsatzgebiet = $einsatzgebiet . '[' . $areas[1] . ',' . $areas[0] . '],'; } $areas = explode(',', $alarmareas[0]); $einsatzgebiet = $einsatzgebiet . '[' . $areas[1] . ',' . $areas[0] . '],'; $einsatzgebiet = substr($einsatzgebiet, 0, strlen($einsatzgebiet) - 1); $einsatzgebiet = $einsatzgebiet . ' ]'; } else { $einsatzgebiet = '[[0,0]]'; } $standort = EinsatzkomponenteHelper::getStandort_orga($this->item->auswahl_orga); $display_map_route = $this->params->get('$display_map_route', 'true'); $display_detail_popup = $this->params->get('display_detail_popup', 'false'); $marker1_title = ''; $marker1_lat = ''; $marker1_lng = ''; $marker1_image = ''; $marker2_title = ''; $marker2_lat = ''; $marker2_lng = ''; $marker2_image = ''; if ($this->params->get('display_detail_einsatz_marker', '1')) { $marker1_title = $this->item->summary; $marker1_lat = $this->item->gmap_report_latitude; $marker1_lng = $this->item->gmap_report_longitude; $marker1_image = $this->einsatzlogo->icon; //$marker1_image = 'images/com_einsatzkomponente/images/map/icons/'.$this->params->get('detail_pointer1_image','circle.png'); } else { $marker1_title = $this->item->summary; $marker1_lat = '1'; $marker1_lng = '1'; $marker1_image = $this->einsatzlogo->icon; } $center_lat = $this->item->gmap_report_latitude; $center_lng = $this->item->gmap_report_longitude; $gmap_zoom_level = $this->params->get('detail_gmap_zoom_level', '12'); $gmap_onload = $this->params->get('detail_gmap_onload', 'HYBRID'); $zoom_control = $this->params->get('detail_zoom_control', 'false'); $document->addScript('components/com_einsatzkomponente/assets/osm/util.js'); $document->addScript('http://www.openlayers.org/api/OpenLayers.js'); $document->addScript('http://www.openstreetmap.org/openlayers/OpenStreetMap.js'); $document->addStyleSheet('components/com_einsatzkomponente/assets/osm/map.css'); $document->addStyleSheet('components/com_einsatzkomponente/assets/osm/ie_map.css'); $document->addScript('components/com_einsatzkomponente/assets/osm/OpenLayers_Map_minZoom_maxZoom_Patch.js'); $document->addScriptDeclaration(EinsatzkomponenteHelper::getOsm($marker1_title, $marker1_lat, $marker1_lng, $marker1_image, $marker2_title, $marker2_lat, $marker2_lng, $marker2_image, $center_lat, $center_lng, $gmap_zoom_level, $gmap_onload, $zoom_control, $organisationen, $orga_image, $einsatzgebiet, $display_detail_popup, $standort, $display_map_route)); } if ($this->params->get('display_detail_bootstrap', '0')) { // Import Bootstrap $document->addScript('components/com_einsatzkomponente/assets/bootstrap/js/bootstrap.min.js'); $document->addStyleSheet('components/com_einsatzkomponente/assets/bootstrap/css/bootstrap.min.css'); $document->addStyleSheet('components/com_einsatzkomponente/assets/bootstrap/css/bootstrap-responsive.min.css'); } $document->addStyleDeclaration($this->params->get('detail_css', '')); ?> <script type="text/javascript"> // override Highslide settings here // instead of editing the highslide.js file hs.graphicsDir = '<?php echo JURI::Root(); ?> components/com_einsatzkomponente/assets/highslide/graphics/'; </script> <?php // Facebook OpenGraph if ($this->item->summary) { $summary = strip_tags($this->item->summary); $opengraph = '<meta property="og:title" content="#Einsatzinfo: ' . $summary . '"/>'; } $opengraph .= '<meta property="og:type" content="article"/>'; $opengraph .= '<meta property="og:url" content="' . JURI::current() . '"/>'; $opengraph .= '<meta property="og:site_name" content="#Einsatzinfo: ' . $this->einsatzlogo->title . '"/>'; if ($this->item->summary) { $summary = strip_tags($this->item->summary); $opengraph .= '<meta property="og:description" content="Datum: ' . date('d.m.Y', strtotime($this->item->date1)) . ' --- Ort: #' . $this->item->address . ' --- #' . $summary . '" />'; } if ($this->item->desc) { $desc = strip_tags($this->item->desc); $opengraph .= '<meta property="og:description" content="Datum: ' . date('d.m.Y', strtotime($this->item->date1)) . ' --- Ort: #' . $this->item->address . ' --- #' . $desc . '" />'; } if ($this->einsatzlogo->list_icon) { $fileName_image = str_replace(' ', '%20', $this->einsatzlogo->list_icon); $opengraph .= '<meta property="og:image" content="' . JURI::base() . $fileName_image . '"/>'; } //$opengraph .= '<meta property="article:publisher" content="https://www.einsatzkomponente.de" />'; if ($this->item->image) { $fileName_image = str_replace(' ', '%20', $this->item->image); $opengraph .= '<meta property="og:image" content="' . JURI::base() . $fileName_image . '"/>'; } if ($this->images) { for ($i = 0; $i < count($this->images); ++$i) { $fileName_image = str_replace(' ', '%20', $this->images[$i]->image); $opengraph .= '<meta property="og:image" content="' . JURI::base() . $fileName_image . '"/>'; } } $document->addCustomTag($opengraph); // Wenn Titlebild in Bildergalerie enthalten, dann dieses aus der Bildergalerie löschen // if ($this->images and $this->item->image) : // $i='0'; // while ($i < count($this->images)){ // if ($this->images[$i]->image == $this->item->image) : // unset($this->images[$i]);$this->images[$i] = ''; // endif; // $i++; // } // endif; // Check for errors. if (count($errors = $this->get('Errors'))) { throw new Exception(implode("\n", $errors)); } if ($this->_layout == 'edit') { $authorised = $user->authorise('core.create', 'com_einsatzkomponente'); if ($authorised !== true) { throw new Exception(JText::_('JERROR_ALERTNOAUTHOR')); } } if ($this->item->state === '0') { throw new Exception(JText::_('JERROR_ALERTNOAUTHOR'), '0'); } if ($this->item->state === '2') { throw new Exception(JText::_('JERROR_ALERTNOAUTHOR'), '2'); } if ($this->item->state === '-2') { throw new Exception(JText::_('JERROR_ALERTNOAUTHOR'), '-2'); } // Increment the hit counter of the event. $model = $this->getModel(); $model->hit(); $this->_prepareDocument(); parent::display($tpl); }