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

Reply via email to