Sprung zu einem Anker

Dieser RT bietet die Möglichkeit innerhalb eines Artikels zu CP-Ankern und selbst gesetzten Ankern zu springen.

Voraussetzung:

  • Anker der jedem CP autom. mit Anker [x] mitgegeben werden kann z.B. <a name="cpid123"> (123 wäre die Id des CP)
  • Anker der mit dem TAG {A:MeinAnker} an irgendeiner Stelle in einem CP gesetzt werden kann (<a name="MeinAnker">).


TAG: * {GO-A:CP-ID,Linktext}

  • {GO-A:Ankertext,Linktext}


Bedingungen im TAG:

  • CP-ID:
    • Numerischer Wert (Es wird autom. angenommen, dass eine ContentPart-ID gemeint ist).
  • Ankername:
    • Ein Wort, keine Leerzeichen, keine Sonderzeichen oder Umlaute (Es wird angenommen, dass eine gültiger Anker auf der Seite gesetzt ist).
  • Linktext:
    • Minimale Wortlänge sind drei Zeichen

Ist eine Bedingung nicht erfüllt wird ein Fehlertext im FE ausgegeben.

<note> Der RT überprüft nicht das Vorhandensein von gültigen Sprungzielen! </note>

Beispiel:

{GO-A:149,Linktext}

<a href="#cpid149" class="phpwcmsAnchorLink-GO" title="Linktext">Linktext</a>


{GO-A:MyAnchorName,Linktext}

<a href="#MyAnchorName" class="phpwcmsAnchorLink-GO" title="Linktext">Linktext</a>



rt_goto_anchor V1.0 16.08.2011

Docu: –
Forum: http://forum.phpwcms.org/viewtopic.php?p=131995

Autor: K.Heermann (flip-flop) http://planmatrix.de
CMS Version: >= 1.3
Version: V1.0

Tag: – {GO-A:CP-ID, Linktext} oder {GO-A:Ankertext, Linktext}

Dateiname: rt_goto_anchor.php

Verzeichnis: template/inc_script/frontend_render/

Bedingung:/config/phpwcms/conf.inc.php

  • $phpwcms['allow_ext_render'] = 1;



Code:

Datei: template/inc_script/frontend_render/rt_goto_anchor.php

rt_goto_anchor

<?php
/**
 * *****************************************************************************
 * 16.08.2011 V1.0 K.Heermann http://planmatrix.de
 *
 * GoTo anchor link
 *
 * Tags v1.0:
 * - {GO-A:CP-ID,Link text}
 * - {GO-A:Anchor_name,Link text}
 *
 *CP-ID:
 * - Only numeric values
 *
 * Anchor_name:
 * - One word, no spaces
 * - No special characters and umlauts.
 *
 * Link text:
 * - If there is no link text an error occures
 * - Minimum word length is three characters
 * *****************************************************************************
*/
// -----------------------------------------------------------------------------
// obligate check for phpwcms constants
    if (!defined('PHPWCMS_ROOT')) {
        die("You Cannot Access This Script Directly, Have a Nice Day."); }
// -----------------------------------------------------------------------------
 
 
if (strpos($content["all"],'{GO-A:') !== false) {  // Is there any anchor jump?
 
    // cp anchor is available
    IF (strpos($content["all"],'<a name="cpid') !== false) {
 
        $mySearch     = '/\{GO-A:(\d+),([\x20-\x7F]{3,})\}/is';
        $myReplace     = '<a href="#cpid$1" class="phpwcmsAnchorLink-GO" title="$2">$2</a>';
 
        $content['all'] = preg_replace($mySearch, $myReplace, $content['all']);
    }
 
    // TAG anchor is available
    IF (strpos($content["all"],'class="phpwcmsAnchorLink"') !== false) {
 
        $mySearch     = '/\{GO-A:([^\x7B-\xFF\s\W]+?),([\x20-\x7F]{3,})\}/is';
        $myReplace     = '<a href="#$1" class="phpwcmsAnchorLink-GO" title="$2">$2</a>';
        $content['all'] = preg_replace($mySearch, $myReplace, $content['all']);
    }
 
    // Error output
    $mySearch     = '/\{GO-A:(.*?)\}/is';
    $myReplace     = '<b style="color:red">Anchor error:</b> "$1"';
    $content['all'] = preg_replace($mySearch, $myReplace, $content['all']);
 
    $content['all'] = str_replace('&#92;&#039;', '&#039;', $content['all']);
    $content['all'] = str_replace('&amp;quot;', '&quot;', $content['all']);
}
 
?>
deutsch/ersetzer_rts/frontend_render/anchor-jump.txt · Last modified: 2018/06/03 18:09 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0