AttachLinks

Summary: Get Attach: links to display by default without the "Attach:" prefix
Version: n/a
Prerequisites:
Status:
Maintainer: Petko
Discussion: AttachLinks-Talk
Categories: Uploads PHP72

Questions answered by this recipe

How can I get Attach: links to display by default without the "Attach:" prefix?

Description

Add the following lines to your config.php or local customization file:

  • PHP4 - PHP7, PmWiki 2.2.56 or newer:
      Markup('Attach', '>img',
        "/\\bAttach:([^\\s$UrlExcludeChars]*[^\\s.,?!$UrlExcludeChars])/",
        "MarkupAttachLink");
    
      function MarkupAttachLink($m) {
        extract($GLOBALS["MarkupToHTML"]); # get $pagename
        return Keep(MakeLink($pagename,$m[0],$m[1]),'L');
      }
    
  • PHP 5.4 or older:
    Markup('Attach', '>img',
      "/\\bAttach:([^\\s$UrlExcludeChars]*[^\\s.,?!$UrlExcludeChars])/e",
      "Keep(MakeLink(\$pagename,'$0','$1'),'L')");
    

This will cause Attach:something.txt to appear as "something.txt".

To have the "Attach:" to still appear when creating a new attachment (but not for an existing attachment), also add

$LinkUploadCreateFmt = "<a class='createlinktext'
  href='\$LinkUpload'>Attach:\$LinkText</a><a class='createlink'
  href='\$LinkUpload'>&nbsp;&Delta;</a>";

After this modification, authors can still create links with the "Attach:" displayed by using the double-bracket form of link (i.e., [[Attach:somepage.txt]]).

Notes

This modification has been applied to the Cookbook group on pmwiki.org.

One may also use

[[Attach:somepage.txt | sometext]]
or [[(Attach:)somefile.txt]]

to get the attachment link shown with another text.

Contributors

  • Petko, update for PHP 4 - PHP 7.2
  • Dfaure, update for PHP 5.5+
  • Pm, 2004-12-20

Comments

See discussion at AttachLinks-Talk

User notes +2: If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.