Php 更改PmWiki用户配置文件链接?

Php 更改PmWiki用户配置文件链接?,php,pmwiki,Php,Pmwiki,我有一个自己的用户管理,我将纳入现有的网站 因此,我使用PmWiki中的配方来处理身份验证。这很好,允许我根据现有用户身份验证系统设置的会话变量对用户进行身份验证 然而,有一个缺点:PmWiki将在多个页面上创建指向用户配置文件页面的链接。例如,当显示由谁编辑的页面时。 我希望这些链接指向,而不是指向Profiles/UserName形式的不存在的Wiki页面,以指向我现有的用户配置文件页面 有没有办法将页面上呈现的PmWiki[[~UserName]]链接更改为类似http://example

我有一个自己的用户管理,我将纳入现有的网站

因此,我使用PmWiki中的配方来处理身份验证。这很好,允许我根据现有用户身份验证系统设置的会话变量对用户进行身份验证

然而,有一个缺点:PmWiki将在多个页面上创建指向用户配置文件页面的链接。例如,当显示由谁编辑的页面时。 我希望这些链接指向,而不是指向
Profiles/UserName
形式的不存在的Wiki页面,以指向我现有的用户配置文件页面


有没有办法将页面上呈现的PmWiki
[[~UserName]]
链接更改为类似
http://example.com/profiles/UserName
而不是正常的PmWiki行为?

我想我自己已经明白了。。。诀窍是使用Markup命令定义一个标记,该标记将在将其他“内联”标记更改为外部链接的同时更改用户配置文件链接。该链接随后将在标记链中转换为真正的HTML链接,该链接将指向外部

// Set author information:
$AuthId = $_SESSION['userid'];
$Author = $_SESSION['name'] . ' (userid=' . $_SESSION['userid'] . ')';

// Change the way links to user profiles are shown:
$EnableAuthorSignature = 1; // Allow for ~~~ and ~~~~ markup
$AuthorLink = "[[http://{$_SERVER['SERVER_NAME']}/profiles/{$_SESSION['userid']} | {$_SESSION['name']}]]";
Markup("profilelinks", "inline", "/\[\[~(.*?)\s\(userid=(\d+)\)\]\]/", "[[http://{$_SERVER['SERVER_NAME']}/profiles/$2 | $1]]");

我不确定这是否是最优雅的解决方案,但它似乎有效…

原始作者链接
[[~user]]]
脚本/author.php中定义为:

Markup('[[~','<links','/\\[\\[~(.*?)\\]\\]/',"[[$AuthorGroup/$1]]");

如果您的网站转到SSH(
https://
),您可能希望将协议设置为捕获组,而不是硬编码
http://
)。很高兴你能弄明白@Michaelpaulkonis
https://
不是SSH。另外,
“$UrlScheme://”
也可以工作。
DisableMarkup('[[~');
Markup('[[~','<links', '/\\[\\[~(.*?)\\]\\]/',"[[($UrlScheme://{$_SERVER['SERVER_NAME']}/profiles/)$1]]");