/** * Gibt eine Url zu einem Artikel zurück. * * @param int|null $id * @param int|null $clang SprachId des Artikels * @param array $params Array von Parametern * @param string $separator * * @return string * * @package redaxo\structure */ function rex_getUrl($id = null, $clang = null, array $params = [], $separator = '&') { $id = (int) $id; $clang = (int) $clang; // ----- get id if ($id == 0) { $id = rex::getProperty('article_id'); } // ----- get clang // Wenn eine rexExtension vorhanden ist, immer die clang mitgeben! // Die rexExtension muss selbst entscheiden was sie damit macht if (!rex_clang::exists($clang) && (rex_clang::count() > 1 || rex_extension::isRegistered('URL_REWRITE'))) { $clang = rex_clang::getCurrentId(); } // ----- EXTENSION POINT $url = rex_extension::registerPoint(new rex_extension_point('URL_REWRITE', '', ['id' => $id, 'clang' => $clang, 'params' => $params, 'separator' => $separator])); if ($url == '') { if (rex_clang::count() > 1) { $clang = $separator . 'clang=' . $clang; } else { $clang = ''; } $params = rex_string::buildQuery($params, $separator); $params = $params ? $separator . $params : ''; $url = rex_url::frontendController() . '?article_id=' . $id . $clang . $params; } return $url; }
/** * Gibt eine Url zu einem Artikel zurück. * * @param string $_id * @param int|string $_clang SprachId des Artikels * @param array|string $_params Array von Parametern * @param bool $escape Flag whether the argument separator "&" should be escaped (&) * * @return string * * @package redaxo\structure */ function rex_getUrl($_id = '', $_clang = '', $_params = '', $escape = true) { $id = (int) $_id; $clang = (int) $_clang; // ----- get id if ($id == 0) { $id = rex::getProperty('article_id'); } // ----- get clang // Wenn eine rexExtension vorhanden ist, immer die clang mitgeben! // Die rexExtension muss selbst entscheiden was sie damit macht if ($_clang === '' && (rex_clang::count() > 1 || rex_extension::isRegistered('URL_REWRITE'))) { $clang = rex_clang::getCurrentId(); } // ----- get params $param_string = rex_param_string($_params, $escape ? '&' : '&'); $name = 'NoName'; if ($id != 0) { $ooa = rex_article::get($id, $clang); if ($ooa) { $name = rex_parse_article_name($ooa->getName()); } } // ----- EXTENSION POINT $url = rex_extension::registerPoint(new rex_extension_point('URL_REWRITE', '', ['id' => $id, 'name' => $name, 'clang' => $clang, 'params' => $param_string, 'escape' => $escape])); if ($url == '') { $_clang = ''; if (rex_clang::count() > 1) { $_clang .= ($escape ? '&' : '&') . 'clang=' . $clang; } $url = rex_url::frontendController() . '?article_id=' . $id . $_clang . $param_string; } return $url; }
/** * Gibt eine Formular-Url zurück. * * @param array $params * @param bool $escape * * @return string */ public function getUrl(array $params = [], $escape = true) { $params = array_merge($this->getParams(), $params); $params['form'] = $this->getName(); $url = rex::isBackend() ? rex_url::backendController($params, $escape) : rex_url::frontendController($params, $escape); return $url; }
break; case 'nachteaser': $bildpos = 'unter dem Teasertext'; break; } $outback .= ' <div class="form-group"> <label class="col-sm-3 control-label">Position</label> <div class="col-sm-9">' . $bildpos . '</div> </div>' . PHP_EOL; $outback .= ' <div class="form-group"> <label class="col-sm-3 control-label">Bild</label> <div class="col-sm-9"> ' . $filename . '<br/> <img src="' . rex_url::frontendController() . '?rex_media_type=rex_mediabutton_preview&rex_media_file=' . $filename . '" /> </div> </div>' . PHP_EOL; if ($value['alt']) { $outback .= ' <div class="form-group"> <label class="col-sm-3 control-label">Alternativtext</label> <div class="col-sm-9">' . $value['alt'] . '</div> </div>' . PHP_EOL; } else { $outback .= ' <div class="form-group "> <label class="col-sm-3 control-label"></label> <div class="col-sm-9 warning"> ACHTUNG:<br/>Es wurde kein Alt-Text für das Bild angegeben. </div>
/** * Gibt eine Url zurück, die die Parameter $params enthält * Dieser Url werden die Standard rexList Variablen zugefügt. * * Innerhalb dieser Url werden variablen ersetzt * * @see #replaceVariable, #replaceVariables * * @param array $params * @param bool $escape Flag whether the argument separator "&" should be escaped (&) * * @return string */ public function getParsedUrl($params = [], $escape = true) { $params = array_merge($this->getParams(), $params); $params['list'] = $this->getName(); if (!isset($params['sort'])) { $sortColumn = $this->getSortColumn(); if ($sortColumn != null) { $params['sort'] = $sortColumn; $params['sorttype'] = $this->getSortType(); } } $_params = []; foreach ($params as $name => $value) { if (is_array($value)) { foreach ($value as $v) { $_params[$name] = $this->replaceVariables($v); } } else { $_params[$name] = $this->replaceVariables($value); } } return rex::isBackend() ? rex_url::backendController($_params, $escape) : rex_url::frontendController($_params, $escape); }
/** * {@inheritdoc} */ public function getUrl(array $params = [], $escape = true) { // combine global params with local $_params = array_merge($this->globalParams, $params); return rex::isBackend() ? rex_url::backendController($_params, $escape) : rex_url::frontendController($_params, $escape); }