hi there a while back, hans had worked out the following function so that URLs ending in .pdf, mp3, etc, would automatically receive <a class='medialink pdf' ... so that links to such media could be styled.
here's what that looked like: $MediaExtPat = "mp3|ogg|aif|wav|mov|avi|mp4|m3u|doc|rtf|ods|txt| pdf"; $LinkFunctions['http:'] = 'MediaLinkIMap'; function MediaLinkIMap($pagename,$imap,$path,$title,$txt, $fmt=NULL) { global $UrlLinkTxtFmt,$MediaExtPat; if (!$fmt) $fmt = (preg_match("/($MediaExtPat)$/", $path, $m)) ? "<a class='medialink {$m[1]}' href='\$LinkUrl' rel='nofollow'>\$LinkText</a>" : $UrlLinkTxtFmt; return LinkIMap($pagename,$imap,$path,$title,$txt,$fmt); } the problem i'm running into is that it worked for full URLs, but not for uploaded files displayed via 'Attach:'. i thought that combining the MediaLinkIMap function with the LinkUpload function (from upload.php) would solve this problem (see my solution below), and it does in fact add the correct styling - but it breaks all my images. for instance, these don't display anymore: Attach:Group./image.jpg image link: [[http://blah.com|Group./image.jpg]] any ideas what i can do to correct this? thanks! adam # For Attach: -- the MediaLinkIMap function only works for http:, but not for Attach: # this function is taken from the upload.php recipe in the scripts/ folder $LinkFunctions['Attach:'] = 'MediaLinkIMap'; function MediaLinkUpload($pagename, $imap, $path, $alt, $txt, $fmt=NULL) { global $FmtV, $UploadFileFmt, $LinkUploadCreateFmt, $UploadUrlFmt, $UploadPrefixFmt, $EnableDirectDownload, $MediaExtPat; if (preg_match('!^(.*)/([^/]+)$!', $path, $match)) { $pagename = MakePageName($pagename, $match[1]); $path = $match[2]; } $upname = MakeUploadName($pagename, $path); $filepath = FmtPageName("$UploadFileFmt/$upname", $pagename); $FmtV['$LinkUpload'] = FmtPageName("\$PageUrl?action=upload&upname=$upname", $pagename); $FmtV['$LinkText'] = $txt; if (!file_exists($filepath)) return FmtPageName($LinkUploadCreateFmt, $pagename); $path = PUE(FmtPageName(IsEnabled($EnableDirectDownload, 1) ? "$UploadUrlFmt$UploadPrefixFmt/$upname" : "{\$PageUrl}?action=download&upname=$upname", $pagename)); if (!$fmt) $fmt = (preg_match("/($MediaExtPat)$/", $path, $m)) ? "<a class='medialink {$m[1]}' href='\$LinkUrl' rel='nofollow'>\ $LinkText</a>" : $fmt; return LinkIMap($pagename, $imap, $path, $alt, $txt, $fmt); } _______________________________________________ pmwiki-devel mailing list pmwiki-devel@pmichaud.com http://www.pmichaud.com/mailman/listinfo/pmwiki-devel