https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114594
Revision: 114594
Author: ning
Date: 2012-03-29 08:40:05 +0000 (Thu, 29 Mar 2012)
Log Message:
-----------
bug fix, table cell contains html tag, fullurl magic word as link
Modified Paths:
--------------
trunk/extensions/WikiObjectModel/includes/models/WOM_OM_Link.php
trunk/extensions/WikiObjectModel/includes/models/WOM_OM_NestProperty.php
trunk/extensions/WikiObjectModel/includes/parsers/WOMLinkParser.php
trunk/extensions/WikiObjectModel/includes/parsers/WOMTblCellParser.php
Modified: trunk/extensions/WikiObjectModel/includes/models/WOM_OM_Link.php
===================================================================
--- trunk/extensions/WikiObjectModel/includes/models/WOM_OM_Link.php
2012-03-29 05:52:14 UTC (rev 114593)
+++ trunk/extensions/WikiObjectModel/includes/models/WOM_OM_Link.php
2012-03-29 08:40:05 UTC (rev 114594)
@@ -22,6 +22,9 @@
if ( preg_match( '/^(?:' . wfUrlProtocols() .
')[^][<>"\\x00-\\x20\\x7F]+/', $this->m_link ) )
return false;
+ if ( preg_match( '/^\{\{fullurl:/i', $this->m_link ) )
+ return false;
+
return true;
}
public function getLink() {
Modified:
trunk/extensions/WikiObjectModel/includes/models/WOM_OM_NestProperty.php
===================================================================
--- trunk/extensions/WikiObjectModel/includes/models/WOM_OM_NestProperty.php
2012-03-29 05:52:14 UTC (rev 114593)
+++ trunk/extensions/WikiObjectModel/includes/models/WOM_OM_NestProperty.php
2012-03-29 08:40:05 UTC (rev 114594)
@@ -54,14 +54,14 @@
}
return implode( '|', $text );
}
-
+
public function getPropertyValue() {
if ( count ( $this->m_objects ) > 0 )
return $this->m_objects[0]->getWikiText();
return '';
}
-
+
public function getCaption() {
$text = array();
$first = true;
@@ -74,7 +74,7 @@
}
return implode( '|', $text );
}
-
+
public function setXMLAttribute( $key, $value ) {
if ( $value == '' ) throw new MWException( __METHOD__ . ":
value cannot be empty" );
Modified: trunk/extensions/WikiObjectModel/includes/parsers/WOMLinkParser.php
===================================================================
--- trunk/extensions/WikiObjectModel/includes/parsers/WOMLinkParser.php
2012-03-29 05:52:14 UTC (rev 114593)
+++ trunk/extensions/WikiObjectModel/includes/parsers/WOMLinkParser.php
2012-03-29 08:40:05 UTC (rev 114594)
@@ -28,6 +28,11 @@
if ( $r ) {
return array( 'len' => strlen( $m[0] ), 'obj' => new
WOMLinkModel( $m[1], isset( $m[3] ) ? $m[3] : '' ) );
}
+ // FIXME: hardcode here, for fullurl magic word
+ $r = preg_match(
'/^\[(\{\{fullurl:[^}]+\}\})(\s+([^\]]+))?\]/i', $text, $m );
+ if ( $r ) {
+ return array( 'len' => strlen( $m[0] ), 'obj' => new
WOMLinkModel( $m[1], isset( $m[3] ) ? $m[3] : '' ) );
+ }
// includes/Parser.php Parser->doMagicLinks
$r = preg_match( '/^(?:' . wfUrlProtocols() .
')[^][<>"|}{\\x00-\\x20\\x7F]+/', $text, $m );
if ( $r ) {
Modified: trunk/extensions/WikiObjectModel/includes/parsers/WOMTblCellParser.php
===================================================================
--- trunk/extensions/WikiObjectModel/includes/parsers/WOMTblCellParser.php
2012-03-29 05:52:14 UTC (rev 114593)
+++ trunk/extensions/WikiObjectModel/includes/parsers/WOMTblCellParser.php
2012-03-29 08:40:05 UTC (rev 114594)
@@ -48,7 +48,7 @@
$len = strlen( $m[0] );
$text = substr( $text, $len );
- $r = preg_match( '/^([^\n|]*\|)[^|]/', $text, $m1 );
+ $r = preg_match( '/^([^<\n|]*\|)[^|]/', $text, $m1 );
if ( !$r || preg_match( '/\{\{/', $m1[1] ) ) {
// FIXME: what if matched style contains '{{', just
think it is table body
return array( 'len' => $len, 'obj' => new
WOMTableCellModel( $m[0] ) );
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs