Beispiel #1
0
/**
 * 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;
}
Beispiel #2
0
/**
 * 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;
}
Beispiel #3
0
 /**
  * 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>
Beispiel #5
0
 /**
  * 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 (&amp;)
  *
  * @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);
 }
Beispiel #6
0
 /**
  * {@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);
 }