Пример #1
0
 function onContentPrepare($context, &$row, &$params, $limitstart)
 {
     $output = $row->text;
     $regex = "#{google_map}(.*?){/google_map}#s";
     $found = preg_match_all($regex, $output, $matches);
     $count = 0;
     if ($found) {
         foreach ($matches[0] as $value) {
             // Plugin params
             $plgParams = new Parameters();
             // Load plugin params
             $plgParams->setVersion($this->params->def('version', 'new'));
             $plgParams->setEmbedAPIKey($this->params->def('embed_api_key', ''));
             $plgParams->setMapType($this->params->def('map_type', 'm'));
             $plgParams->setZoomLevel($this->params->def('zoom', 14));
             $plgParams->setLanguage($this->params->def('language', '-'));
             $plgParams->setAddLink($this->params->def('add_link', 1));
             $plgParams->setLinkLabel($this->params->def('link_label', 'View Larger Map'));
             $plgParams->setLinkFull($this->params->def('link_full', 1));
             $plgParams->setShowInfo($this->params->def('show_info', 0));
             $plgParams->setHeight($this->params->def('height', 300));
             $plgParams->setWidth($this->params->def('width', 400));
             $plgParams->setBorder($this->params->def('border', 0));
             $plgParams->setBorderStyle($this->params->def('border_style', 'solid'));
             $plgParams->setBorderColor($this->params->def('border_color', '#000000'));
             $plgParams->setHttps($this->params->def('https', 1));
             $plgParams->setInfoLabel("");
             $map = $value;
             $map = str_replace('{google_map}', '', $map);
             $map = str_replace('{/google_map}', '', $map);
             $find = '|';
             if (strstr($map, $find)) {
                 // New Parser object
                 $parser = new Parser();
                 // Parse parameters
                 $parser->parse($map, $plgParams);
             } else {
                 $plgParams->setAddress($map);
             }
             // If system language is used, get the system language code
             if (strcmp($plgParams->getLanguage(), 'system') == 0) {
                 $lng = JFactory::getLanguage();
                 $langtag = $lng->getTag();
                 $langprfx = explode('-', $langtag);
                 $plgParams->setLanguage($langprfx[0]);
             }
             // If translated string is used as link label, get the string
             if (preg_match('/{(.*?)}/', $plgParams->getLinkLabel(), $mtcs)) {
                 $plgParams->setLinkLabel(JText::_($mtcs[1]));
             }
             // Create new HTML builder
             $builder = BuilderFactory::createBuilder($plgParams->getVersion());
             // Generate HTML code
             $replacement[$count] = $builder->buildHtml($plgParams);
             // Increase counter
             $count++;
         }
         for ($i = 0; $i < count($replacement); $i++) {
             $row->text = preg_replace($regex, $replacement[$i], $row->text, 1);
         }
     }
     return true;
 }