|
|
(44 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | <includeonly>{{#ifexpr:{{#len:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}}} > {{#expr:{{{count|35}}}{{#ifeq:{{{forcecount}}}|yes||+{{{tolerance|5}}}}}}}|{{#ifeq:{{{plain}}}|yes|<span class="plainlinks">|}}[{{{url|}}} {{#ifeq:{{{domainbold}}}|yes|'''}}{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}{{#ifeq:{{{domainbold}}}|yes|'''}}{{#ifeq:{{{domainonly}}}|yes||{{#sub:{{#replace:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}|0|
| + | delete me |
− | {{#expr:{{{count|35}}}-{{#len:{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}}}
| |
− | }}}}{{{suffix|…}}}]{{#ifeq:{{{plain}}}|yes|</span>|}}|
| |
− | {{#ifeq:{{{domainforce}}}|yes|[{{{url|}}} {{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}]|
| |
− | {{#ifeq:{{{domainbold}}}|yes|[{{{url|}}} '''{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}'''{{#sub:{{#replace:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}|0|{{#expr:{{{count|35}}}{{#ifeq:{{{forcecount}}}|yes||+{{{tolerance|5}}}}}}}}}]
| |
− | |{{{url|}}}
| |
− | }}
| |
− | }}}}</includeonly><noinclude>__NOTOC__
| |
− | ==The template==
| |
− | <pre>This is not finished yet.</pre>
| |
− | | |
− | ==Usage==
| |
− | This shortens external URLs. It may not be useful for single usage on a page but for list output and esp. in combination with <tt>addexternallink=true</tt> and <tt>[[DPL:Manual_-_DPL_parameters:_Controlling_output_format#format|%EXTERNALLINK%]]</tt> in the output. Consider that shortened URLs may cause wrong copy-paste by unexperienced users.<br>Note: Requires [http://www.mediawiki.org/wiki/Extension:StringFunctions Extension:StringFunctions]
| |
− | | |
− | ===Usage===
| |
− | <pre>{{ShortURL
| |
− | |url =
| |
− | |count =
| |
− | |suffix =
| |
− | |plain =(yes)
| |
− | |domainonly =(yes)
| |
− | |domainbold =(yes)
| |
− | |domainforce =(yes)
| |
− | |tolerance =
| |
− | |forcecount =(yes)
| |
− | }}</pre>
| |
− | *'''count''': optional / default: 35
| |
− | :The number of displayed characters. It counts and returns the string without "http://" and "www." (if the URL is longer than the default 35 characters).
| |
− | :It uses a tolerance of 5. So if you define count=10 the string will not be shortened if it is between 1 and 15 characters long.
| |
− | *'''url''': required
| |
− | :Set the full URL <nowiki>http://...</nowiki>
| |
− | *'''suffix''': optional / default: "…" (not ...)
| |
− | :Adds an suffix at the end of the shortened string. It is not recommend to set an empty suffix.
| |
− | *'''plain''': optional / default: no
| |
− | :Returns the link in spans with the [http://www.mediawiki.org/wiki/Plainlinks plainlinks] class. Note that you should have this set up in you CSS. Also note that your page code is more clear when you set class="plainlinks" for the element that contains all your links.
| |
− | *'''domainonly''': optional / default: no
| |
− | :domainonly=yes will only display the domain (including subdomains if given). A setting for count is useless here.
| |
− | *'''domainbold''': optional / default: no
| |
− | :domainbold=yes will highlight the domain bold. This is useful for lists of many different external URLs. The prefix is also stripped for URLs shorter than count.
| |
− | *'''tolerance''': optional / default: 5
| |
− | :Override the default tolerance.
| |
− | *'''forcecount''': optional / default: no
| |
− | :forcecount=yes overrides the (default) tolerance and forces a strict count.
| |
− | | |
− | ===Examples===
| |
− | <pre>{{ShortURL|url=http://semeb.com/dpldemo/index.php?title=Template:ShortURL}}</pre>
| |
− | The URL (stripped: without "http://" and "www") has 45 characters. That's more than count (default 35) + tolerance (default 5) = "emplate:ShortURL" > 5.<br>Result: {{ShortURL|url=http://semeb.com/dpldemo/index.php?title=Template:ShortURL}}
| |
− | | |
− | <pre>{{ShortURL|url=http://www.imdb.com|suffix=....}}</pre>
| |
− | The (stripped) URL is shorter than the count (default 35). It will be fully returned without suffix.<bR>Result: {{ShortURL|url=http://www.imdb.com|suffix=....}}
| |
− | | |
− | <pre>{{ShortURL
| |
− | |url=http://www.google.de/search?q=DLP&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a
| |
− | |count=50}}</pre>
| |
− | We use a count of 50.<br>Result: {{ShortURL|url=http://www.google.de/search?q=DLP&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a|count=50}}
| |
− | | |
− | <pre>{{ShortURL
| |
− | |url=http://www.google.de/search?q=DLP&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a
| |
− | |count=50
| |
− | |suffix='''....'''
| |
− | |plain=yes}}</pre>
| |
− | We add a custom suffix and use class="plainlinks".<br>Result: {{ShortURL|url=http://www.google.de/search?q=DLP&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a|count=50|suffix='''....'''|plain=yes}}
| |
− | | |
− | <pre>{{ShortURL
| |
− | |url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete
| |
− | |count=50
| |
− | |domainbold=yes}}</pre>
| |
− | We highlight the domain.<br>Result: {{ShortURL|url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete|count=50|domainbold=yes}}
| |
− | | |
− | <pre>{{ShortURL|url=http://www.mediawiki.org/wiki/Manual:Configuration_settings_%28alphabetical%29|domainonly=yes}} and
| |
− | {{ShortURL|url=http://commons.wikimedia.org/wiki/Category:Icons|domainonly=yes}}</pre>
| |
− | We only want the domain.<br>Result: {{ShortURL|url=http://www.mediawiki.org/wiki/Manual:Configuration_settings_%28alphabetical%29|domainonly=yes}} and {{ShortURL|url=http://commons.wikimedia.org/wiki/Category:Icons|domainonly=yes}}
| |
− | | |
− | <pre>*{{ShortURL|url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete
| |
− | |count=50|domainforce=yes}}
| |
− | *{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainforce=yes}}
| |
− | *{{ShortURL|url=http://www.imdb.com|count=50|domainforce=yes}}</pre>
| |
− | When you use this template in another template or DPL output, it might useful if the URLs all look the same. Therefor we use domainforce. The last URLs are actually shorter than the count but the prefix strip is forced. Result:
| |
− | *{{ShortURL|url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete
| |
− | |count=50|domainforce=yes}}
| |
− | *{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainforce=yes}}
| |
− | *{{ShortURL|url=http://www.imdb.com|count=50|domainforce=yes}}
| |
− | | |
− | <pre>*{{ShortURL|url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete
| |
− | |count=50|domainbold=yes}}
| |
− | *{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainbold=yes}}
| |
− | *{{ShortURL|url=http://www.imdb.com|count=50|domainbold=yes}}</pre>
| |
− | Whenever domainbold is used the prefix strip is forced (domainforce doesn't need to be set). Result:
| |
− | *{{ShortURL|url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete
| |
− | |count=50|domainbold=yes}}
| |
− | *{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainbold=yes}}
| |
− | *{{ShortURL|url=http://www.imdb.com|count=50|domainbold=yes}}
| |
− | | |
− | <pre>{{ShortURL|url=http://www.mediawiki.org/wiki/Manual:Configuration|domainonly=yes}}</pre>
| |
− | The (stripped) URL is exactly count + tolerance = 40 charcters long.<br>Result:{{ShortURL|url=http://www.mediawiki.org/wiki/Manual:Configuration|domainonly=yes}}
| |
− | | |
− | | |
− | For practical examples see: [[Template:ShortURL/Examples/Examples]].
| |
− | | |
− | | |
− | For forcecount and tolerance examples see {{Templink|Short}}.
| |