On 2013-11-02 11:53 AM, Shawn Jones wrote:
> That makes me feel a little bit better about our dependencies.
>
> Since our rewrite, we only use $wgServer (via abstraction) in two places now, 
> and they both involve the TimeMap SpecialPage.
>
> We actually have 3 different types of TimeMaps in the Memento Mediawiki 
> Extension:
> 1. full (starter) - shows the latest 500 revisions
> 2. pivot descending - shows the last 500 (or less) revisions prior to a given 
> timestamp pivot
> 3. pivot ascending - shows the next 500 (or less) revisions after a given 
> timestamp pivot
>
> The pivot ascending and pivot descending TimeMaps are what use the $wgServer 
> URI.
>
> They take the form of 
> http://example.com/index.php/Special:TimeMap/20130720011113/1/Article for 
> ascending and 
> http://example.com/index.php/Special:TimeMap/20130720011113/-1/Page for 
> descending.
>
> The $wgServer variable is used (as $this->mwbaseurl) to construct the URIs 
> like so:
>
>       $timeMapPage['uri'] = $this->mwbaseurl . '/'
>                       . SpecialPage::getTitleFor('TimeMap') . '/'
>                       . $pivotTimestamp . '/-1/' . $title;
>
> A similar statement exists for a pivot ascending TimeMap elsewhere in the 
> code.
>
> I've been trying to find a way to eliminate the use of $wgServer altogether, 
> but need to construct these URIs for headers, TimeMap entries, etc.
>
> Is there a better way?
>
        $timeMapPage['uri'] = SpecialPage::getTitleFor( 'TimeMap', 
$pivotTimestamp . '/-1/' . $title )->get{???}URL();


{???} will be Full, Local, or Canonical depending on where you're
outputting it.

  * href="" -> Local
  * Somewhere used on other domains -> Full (does output protocol-relative)
  * Print and email -> Canonical
  * HTTP Headers -> Local + wfExpandUrl( , PROTO_CURRENT ); Unless you
    use OutputPage::redirect in which case you can simply use Local as
    url expansion is taken care for you.

~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://danielfriesen.name/]

_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to