Talk: Vector

Summary: Talk page for Vector.
Maintainer: Said Achmiz
Users: (View / Edit)

This space is for User-contributed commentary and notes. Please include your name and a date along with your comment.

PHP Compatibility Warnings

My web host is soft-forcing everyone to upgrade their websites to PHP 8.1 and in the process I noticed that I was getting some warnings being thrown in my error log that seem to indicate some PHP compatibility issues. Some of them are as follows, but it's the same format about undefined keys and variables:

* PHP Warning: Undefined variable $ScriptUrl in (sitepath)/pub/skins/vector/vector.php on line 104

Currently running pmwiki version 2.3.23. I know it's been a while since this skin has gotten an update, but I'm hoping there may be a fix so my error log stops getting spammed! The skin itself seems to work fine otherwise. Kat, May 15 2023, at 11:45 PM

Hi. Try to contact the maintainer directly, as it is not certain he actively monitors this page. You will find his email at the bottom of his profile page. --Petko

This should now be fixed. —Said Achmiz

Question marks on un-made pages

Is there a simple way to get question marks after un-made pages so we know which pages still need content, like standard pmwiki skin?
naturewiki

The link New page is already underlined with a dotted line. To add a question mark, you can add to your file pub/css/local.css (create it if it doesn't exist) the following snippet. --Petko December 09, 2020, at 05:54 AM

a.createlinktext::after {
    content: '?';
    vertical-align: super;
    font-size: small;
}

November 17th 2020

I'm having an issue with using the Talk tab (to the right of the Article tab) that appears on top of the page . I've followed the Vector install (here) ensuring that path info is enabled ($EnablePathInfo = 1;) in config.php.

When I click the Talk tab it returns a 404 Not Found. Looking at the URL of the talk page, the format is wrong. My script URL is server/wiki but when I use the Talk tab on a page it goes to server/My/Page-Talk removing the "/wiki/" from the URL. I don't see any way to configure this but if there is and I missed it, I apologize.

Page URL -Talk URL
server/wiki/My/Page - Works! server/My/Page-Talk - Fails! 404 Not Found

Thanks for the awesome skin!

--
James B.

(untested ; delete if irrelevant) this might be related to BaseName ; try adding this in your config :
# If {$FullName} is 'Group.Page-Talk' then {$BaseName} is 'Group.Page'
$BaseNamePatterns['/-Talk$/'] = '';
gb November 19, 2020, at 06:28 PM
Thank you for the suggestion. I believe the pattern is correct, the problem happens when you click the Talk tab (next to the Article tab) on a page. It drops part of the URL. My $ScriptURL is like this: http://server/wiki. So viewing page http://server/wiki/Group/Page is fine but the Talk tab sends you to http://server/Group/Page-Talk. Somehow, the it drops the "/wiki/". Would simply adding that dropped part of the URL (/wiki/) to the $BaseNamePatterns work? I.e., $BaseNamePatterns['wiki/-Talk$/'] = ;. Rather than what is already in vector.php which is: $BaseNamePatterns['/-Talk$/'] = ;. Thanks again. --James B.

There is an omission in vector.php in the RenderTalkSelector() function the $ScriptUrl variable was not declared global. You should try adding this line. --Petko November 21, 2020, at 05:01 AM

function RenderTalkSelector($pagename) {
  global $ScriptUrl; ### Line added.

Thank you so much!!! Adding the follwing line to the RenderTalkSelector function in the stock vector.php worked:

function RenderTalkSelector($pagename) {
  global $ScriptUrl; ### Line added.

--
James B.

--
Awesome find Petko I also had the same problem and this fixed it. Perhaps we could get an update of this cookbook so people don't have to modify the file for it to work?
naturewiki

This should now be fixed. —Said Achmiz

Page URLs in RenderTalkSelector

Some of the links are constructed in non-standard PmWiki way, by using $ScriptUrl/$pagename rather than $PageUrl. This may not work well if $EnablePathInfo is not set, and produces URLs that are different from the standard, e.g. Server/Group.Page from the skin unlike Server/Group/Page (from a regular link). Linking different URLs pointing to the same content is search-engine unfriendly. The following modification of the function RenderTalkSelector may work better:

function RenderTalkSelector($pagename) {
  $basename = PageVar($pagename, '$BaseName');
  $baseurl  = PageVar($basename, '$PageUrl');
  $talkname = "$basename-Talk";
  $talkurl  = PageVar($talkname, '$PageUrl');

  $out = "    <ul id='article-talk-selector'>\n";
  if ($talkname == $pagename) {
    $out .= "      <li><a href='$baseurl'>Article</a>\n";
    $out .= "      <li><p class='active'>Talk</p>";
  }
  else {
    $out .= "      <li><p class='active'>Article</p>\n";
    $out .= "      <li><a href='$talkurl'>Talk</a>\n";
  }
  $out .= "    </ul>";

  print $out;
}

I have not checked other functions of this skin which may or may not need a similar fix. --Petko November 21, 2020, at 05:39 AM

This should now be fixed. —Said Achmiz

Talk page for Vector (users).