Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Entwicklung und Konzeption sozialer Software (https://boardunity.de/entwicklung-konzeption-sozialer-software-f76.html)
-   -   Wiki Links-Technik (https://boardunity.de/wiki-links-technik-t2779.html)

hmueller 27.01.2005 16:33

Wiki Links-Technik
 
Hallo,

wie nennt man diese Technik bei Wikis, bei der Wörter automatisch in Links umgewandelt werden, wenn ein anderes Dokument zu diesem Wort existiert?

Gibt es CMS, die das einsetzen - oder wie könnte man diese Technik in ein CMS einbauen (als CMS-Programmierer)?

codethief 02.02.2005 16:08

Mit REGEXP vielleicht?
So zum Beispiel:
$string = preg_replace("/\[\[(.*)\]\]/iU", "<a href=\"datei.php?wort=\\1\">\\1</a>", $string);

hmueller 17.02.2005 11:06

Hallo,

mir geht's zunächst nur um den Namen dieser Funktionalität. Wie wird das im Wikipedia genannt?

TRS 17.02.2005 11:22

Zuerst einmal einen sämtliche Dokumentennamen auslesen und einfach str_replace aus KEYWORD ein <a href="domain.tld/KEYWORD">KEYWORD</a> machen. Noch hübscher ist es mit REGEX, aber da bin ich leider kein Experte drin.

Fabchan 17.02.2005 11:55

Wenn man die Methode von Reimer noch ein wenig verbessern will, dann sollte man str_ireplace() nehmen, gibt es aber leider erst ab PHP5, in PHP dann entweder per REGEXP.

PHP-Code:

   $words = array('lexikon''wiki''balck|white''Michael Jackson (Person)');
   
// Sonderzeichen in Wörtern ersetzen. Nur nötig, wenn auch wörtern mit
   // REGEXP-Steuerzeichen vorkommen können
   
foreach($words as $key => $val)
   {
       
$words[$key] = preg_quote($val'/');
   }
   
   
$str preg_replace('/' implode('|'$words) . '/i''<a href="datei.php?wort=\\0">\\0</a>'$str); 


exe 18.02.2005 13:19

Ob diese Technik einen bestimmten Namen weiss ich nicht. Nur die Seitennamen die automatisch verknüpft werden, also mehrere Wörter in Großbuchstaben zusammengeschrieben, nennen sich CamelCase.

Mit regulären Ausdrücken ist sowas recht einfach zu erkennen:

PHP-Code:

$text preg_replace('/(?<=\s|^)(([A-Z][a-z]+){2,})/''<a href="wiki.php?page=\1">\1</a>'$text); 

Allerdings benutzt die Wikipedia keine CamelCase Links wie das in traditionellen Wikis der Fall ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25