Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#1987 Wiki tables and ((links)) are broken in 1.9.1

v1.9.1
open
nobody
5
2012-12-08
2005-09-01
No

After updating to 1.9.1 all the tables containing two or
more wikilinks in the same row are broken. These worked
in 1.9.0

E.g.

Wiki code: ||((Test))|((Test2))||

Should output a table with two links, but result is a table
that looks like this:

((Test Test2))

with no links.

Discussion

  • Will Dyke
    Will Dyke
    2005-11-12

    Logged In: YES
    user_id=1221633

    This is because ))|(( is parsed as a 'non wikilink' before
    the wikilinks themselves are parsed.

    This context diff shows the fix:

    /var/www/html/tikiwiki-1.9.2/lib/tikilib.php
    *** tikiwiki-1.9.2/lib/tikilib.php 2005-10-17
    12:40:17.000000000 +0000
    --- /var/www/html/tikiwiki-1.9.2/lib/tikilib.php
    2005-11-12 16:46:07.335035887 +0000
    ***************
    *** 4685,4691 ****
    }

    // definitively put out the protected words
    ))protectedWord((
    ! preg_match_all("/\)\)(\S*?)\(\(/", $data, $matches);
    $noParseWikiLinksK = array();
    $noParseWikiLinksT = array();
    foreach ($matches[0] as $mi=>$match) {
    --- 4685,4691 ----
    }

    // definitively put out the protected words
    ))protectedWord((
    ! preg_match_all("/\)\)(\w+)\(\(/", $data, $matches);
    $noParseWikiLinksK = array();
    $noParseWikiLinksT = array();
    foreach ($matches[0] as $mi=>$match) {

     
  • Rudy Zung
    Rudy Zung
    2006-04-08

    Logged In: YES
    user_id=1152594

    This is something that I noticed in 1.9.2 that appears to be
    related but when ~np and ~/np~ is incorpated:

    In the wiki editpage, with "Allow HTML" enabled, this page:
    =======Start example code=======
    Test 1
    ~np~
    Start UL
    <ul>
    <li>First item ~/np~((Link1|Link1))~np~</li>
    <li>Second item ~/np~((Link2|Link2))~np~</li>
    </ul>
    <ul>
    <li>Third item ~/np~((Link3|Link3))~np~</li>
    <li>Fourth item ~/np~((Link4|Link4))~np~</li>
    </ul>
    Done UL
    ~/np~

    Test 2
    ~np~
    Start UL
    <ul>
    <li>First item ~/np~((Link1|Link1))~np~</li>
    <li>Second item ~/np~((Link2|Link2)) ~np~</li>
    </ul>
    <ul>
    <li>Third item ~/np~((Link3|Link3))~np~</li>
    <li>Fourth item ~/np~((Link4|Link4))~np~</li>
    </ul>
    Done UL
    ~/np~Test 1
    ~np~
    Start UL
    <ul>
    <li>First item ~/np~((Link1|Link1))~np~</li>
    <li>Second item ~/np~((Link2|Link2))~np~</li>
    </ul>
    <ul>
    <li>Third item ~/np~((Link3|Link3))~np~</li>
    <li>Fourth item ~/np~((Link4|Link4))~np~</li>
    </ul>
    Done UL
    ~/np~

    Test 2
    ~np~
    Start UL
    <ul>
    <li>First item ~/np~((Link1|Link1))~np~</li>
    <li>Second item ~/np~((Link2|Link2)) ~np~</li>
    </ul>
    <ul>
    <li>Third item ~/np~((Link3|Link3))~np~</li>
    <li>Fourth item ~/np~((Link4|Link4))~np~</li>
    </ul>
    Done UL
    ~/np~
    =======End example code=======
    The only difference between "Test 1" and "Test 2" is
    the addition of an extra space between the "((Link2|Link2))"
    and the "~np~" in Test 2. The out for Test 1 shows only
    "Link 1" and "Link 2" and loses "Link 3" and "Link 4".
    In 1.9DR4, this behaviour was not present, and the
    generated output was as expected (4 links, with no lossage)

    Also, while the text for "Link 1" and "Link 3" are present,
    no actual link was generated onto the page, but this looks
    like a separate problem with parsing constructs in the
    form of:
    "((Link1|Link1))((Link2|Link2))"
    with no spaces between the "))" and "((". This problem
    is present in both 1.9DR4 and 1.9.2.