URL dynamisch zusammenbauen (mod_rewrite an/aus)

Hier eine Klassenmethode aus meinem Framework, mit der man URLs ausgeben lassen kann, ohne zu wissen, ob mod_rewrite akzeptiert werden muss oder nicht.

Man übergibt einfach folgende Parameter:

  • $controller: Der Controllername (oft auch Modul genannt) der Ziel-URL
  • $action: Der Aktionsname der Ziel-URL
  • $additional_params: Weitere Parameter wie z.B. page=4 als array

Code

public static function getInternalURL($controller = null, $action = null, array $additional_params = array())
  {
    if($controller === null)
    {
      $url = FW_Config::getInstance()->get("www_root");
    }
    else
    {
      $mod_rewrite = (FW_Config::getInstance()->get("mod_rewrite") == "1") ? true : false;
      if($mod_rewrite)
      {
        $url = FW_Config::getInstance()->get("www_root")."/".$controller."/".(($action !== null) ? $action.".html" : "");
      }
      else
      {
        $url = FW_Config::getInstance()->get("www_root")."/?module=".$controller.(($action !== null) ? "&action=".$action : "");
      }

        if(count($additional_params) > 0)
        {
          if($mod_rewrite)
          {
            $url .= "?";
          }
          else
          {
            $url .= "&";
          }

          $counter = 1;
          foreach($additional_params as $params)
          {
            foreach($params as $paramname => $paramval)
            {
              if($counter != 1)
              {
                $url .= "&";
              }
              $url .= $paramname."=".$paramval;
            }
            $counter++;
          }
        }
      }
      return $url;
  }

Anwendungsbeispiel

echo FW_Tools::getInternalURL("index, "show_news", array(array("page" => 5)));
//gibt abhängig von meiner mod_rewrite-Einstellung in meiner config.ini das aus:
//mod_rewrite an: http://localhost/index/show_news.html?page=5
//mod_rewrite aus: http://localhost/?controller=index&action=show_news&page=5

Viel Spass damit!

1 Star2 Stars3 Stars4 Stars5 Stars (Wurde noch nicht bewertet)
Loading...


7 Kommentare zu “URL dynamisch zusammenbauen (mod_rewrite an/aus)”

  1. hmm pack doch einfach mal den aktuellen stand deines frameworks als download hierein 😉 vielleicht entwickelt es sich dann in verschiedene richtungen 😉

  2. Jo, das mach ich… Muss nur noch ein bisschen aufräumen und kommentieren
    Heute Abend gibts dann hier die aktuelle Version zum Download, leider ohne Beispielprojekt. (Ich hätte da zwar eins, aber das soll eigentlich noch geheim bleiben :))

    Simon

  3. veröffentlichst das ganze dann als open source?

  4. Nein, ich muss noch schauen, was für eine Lizenz ich verwende

    Die Hinweise auf den Autor müssen jedenfalls erhalten bleiben

  5. Konnte zwar noch nicht alles kommenteiren, aber hier ist mal die neueste Version
    http://www.net-developers.de/2008/12/27/aktuelle-version-des-mvc-frameworks-zum-download/

  6. Hy

    Keine schlechte Idee vorallem wenn man ein gröseres Projekt irgendwann mal auf Mod_rewrite umbeuane will.

    Würde es aber vieleicht noch erweitern, so das man mehr Möchlichkeiten hat.

    zb hätte ich meine URL lieber so gemacht.

    //mod_rewrite an: http://localhost/bereich/unterbereich/modul.html?page=5
    //mod_rewrite aus: http://localhost/?content=bereich/unterbreich&modul=news&page=5

  7. Hmm
    Das wäre allerdings schwererer in der Umsetzung.
    Mal schauen, ob das irgendwann mal ins FW mit eingebaut wird.

    Aber danke für den Vorschlag!

Hinterlasse einen Kommentar!

Time limit is exhausted. Please reload the CAPTCHA.

»Informationen zum Artikel

Autor: Simon
Datum: 27.12.2008
Zeit: 16:25 Uhr
Kategorien: Codeschnipsel
Gelesen: 4623x heute: 2x

Kommentare: RSS 2.0.
Diesen Artikel kommentieren oder einen Trackback senden.

»Meta