Kipcool has submitted this change and it was merged.

Change subject: API: modified Express and Define Class
......................................................................


API: modified Express and Define Class

Change-Id: I5c7ddc53ff760228163a30ac9f776a143ca0c3f0
---
M includes/api/owDefine.php
M includes/api/owExpress.php
2 files changed, 108 insertions(+), 95 deletions(-)

Approvals:
  Kipcool: Verified; Looks good to me, approved



diff --git a/includes/api/owDefine.php b/includes/api/owDefine.php
index 751e885..dab2ca0 100644
--- a/includes/api/owDefine.php
+++ b/includes/api/owDefine.php
@@ -3,6 +3,8 @@
 /** O m e g a W i k i   A P I ' s   D e f i n e   c l a s s
  *
  * HISTORY
+ * - 2013-06-05: Readjusted defining and definingByAnyLanguage functions into
+ *             class Define. Express Class now extends Define Class.
  * - 2013-05-31: Readjusted the array produced. The Language Name added.
  *             Language name defaults to the language of their respective
  *             expression/definition.  When the language name does not exist,
@@ -19,8 +21,7 @@
  * - Add optional translation list option. &trans=on. default off
  * - Add optional translation limit option. &transLang=nan-POJ|eng
  * - Add optional lang parameter. &lang=cmn-Hant
- * - readjust defining and definingByAnyLanguage functions into class Define.
- *             Express Class now extends Define Class
+ *
  */
 
 require_once( 'extensions/WikiLexicalData/OmegaWiki/WikiDataAPI.php' );
@@ -40,15 +41,26 @@
                // Get the parameters
                $params = $this->extractRequestParams();
 
+               // Required parameter
+               // Check if dm is valid
+               if ( !isset( $params['dm'] ) ) {
+                       $this->dieUsage( 'parameter dm for adding syntrans is 
missing', 'param dm is missing' );
+               } else {
+                       // check that defined_meaning_id exists
+                       if ( !verifyDefinedMeaningId( $params['dm'] ) ) {
+                               $this->dieUsage( 'Non existent dm id (' . 
$params['dm'] . ').', "dm not found." );
+                       }
+               }
+
                // Optional parameter
                if ( $params['e'] ) {
                        $options['e'] = $params['e'];
                }
                if ( $params['lang'] ) {
                        $this->languageId = $params['lang'];
-                       $defined = defining( $params['dm'], $params['lang'], 
$options, $this->getModuleName() );
+                       $defined = $this->defining( $params['dm'], 
$params['lang'], $options, $this->getModuleName() );
                } else {
-                       $defined = definingForAnyLanguage( $params['dm'], 
$options, $this->getModuleName() );
+                       $defined = $this->definingForAnyLanguage( 
$params['dm'], $options, $this->getModuleName() );
                }
 
                $defined = $defined[ $this->getModuleName() ];
@@ -104,103 +116,104 @@
                );
        }
 
-}
+       /**
+        * Define expression when the language is not specified.
+        */
+       function defining( $definedMeaningId, $languageId, $options = array(), 
$moduleName = null ) {
 
-/** Define expression when the language is not specified.
- *
- */
-function defining( $definedMeaningId, $languageId, $options = null, 
$moduleName = null ) {
-
-       if ( !$moduleName ) {
-               $moduleName = 'ow_define';
-       }
-
-       if ( $options['e'] ) {
-               $spelling = $options['e'];
-       } else {
-               $spelling = getDefinedMeaningSpellingForLanguage( 
$definedMeaningId, $languageId );
-       }
-       $spellingLanguageId = $languageId;
-
-       // get language name. Use English as fall back.
-       $spellingLanguage = getLanguageIdLanguageNameFromIds( 
$spellingLanguageId, $spellingLanguageId );
-       if ( !$spellingLanguage ) {
-               $spellingLanguage = getLanguageIdLanguageNameFromIds( 
$spellingLanguageId, WLD_ENGLISH_LANG_ID );
-       }
-
-       $text = getDefinedMeaningDefinitionForLanguage( $definedMeaningId, 
$spellingLanguageId );
-
-       if ( !$text ) {
-               $languageId = 85;
-               $text = getDefinedMeaningDefinitionForLanguage( 
$definedMeaningId, $languageId );
-       }
-
-       $definitionLanguageId = 
getDefinedMeaningDefinitionLanguageIdForDefinition( $definedMeaningId, $text );
-       $definitionLanguage = getLanguageIdLanguageNameFromIds( 
$definitionLanguageId, $definitionLanguageId );
-       $definitionSpelling = getSpellingForLanguageId( $definedMeaningId, 
$DefinitionLanguageId, 85 );
-
-       return array(
-               $moduleName => array(
-                       'dmid' => $definedMeaningId,
-                       'spelling' => $spelling,
-                       'langid' => $spellingLanguageId,
-                       'lang' => $spellingLanguage,
-                       'definition' => array (
-                               'spelling' => $definitionSpelling,
-                               'langid' => $definitionLanguageId,
-                               'lang' => $definitionLanguage,
-                               'text' => $text
-                       )
-               )
-       );
-
-}
-
-/** Define expression when the language is not specified.
- *
- */
-function definingForAnyLanguage( $definedMeaningId, $options = null, 
$moduleName = null ) {
-
-       $remove_langIdArray = 0;
-       if ( !$moduleName ) {
-               $moduleName = 'ow_define';
-       }
-
-       if ( $options['e'] ) {
-               $spelling = $options['e'];
-               $languageId = getLanguageIdForDefinedMeaningAndExpression( 
$definedMeaningId, $spelling );
-               $language = getLanguageIdLanguageNameFromIds( $languageId, 
$languageId );
-               if ( !$language ) {
-                       $language = getLanguageIdLanguageNameFromIds( 
$languageId, WLD_ENGLISH_LANG_ID );
+               if ( is_null( $moduleName ) ) {
+                       $moduleName = 'ow_define';
                }
-       } else {
-               $remove_langIdArray = 1;
-       }
 
-       $text = getDefinedMeaningDefinition( $definedMeaningId );
-       $definitionLanguageId = 
getDefinedMeaningDefinitionLanguageIdForDefinition( $definedMeaningId, $text );
-       $definitionLanguage = getLanguageIdLanguageNameFromIds( 
$definitionLanguageId, $definitionLanguageId );
-       $definitionSpelling = getSpellingForLanguageId( $definedMeaningId, 
$definitionLanguageId, WLD_ENGLISH_LANG_ID );
+               if ( isset( $options['e'] ) ) {
+                       $spelling = $options['e'];
+               } else {
+                       $spelling = getDefinedMeaningSpellingForLanguage( 
$definedMeaningId, $languageId );
+               }
+               $spellingLanguageId = $languageId;
 
-       $definition = array(
-               $moduleName => array(
-                       'dmid' => $definedMeaningId,
-                       'langid' => $languageId,
-                       'lang' => $language,
-                       'definition' => array (
-                               'spelling' => $definitionSpelling,
-                               'langid' => $definitionLanguageId,
-                               'lang' => $definitionLanguage,
-                               'text'=> $text
+               // get language name. Use English as fall back.
+               $spellingLanguage = getLanguageIdLanguageNameFromIds( 
$spellingLanguageId, $spellingLanguageId );
+               if ( !$spellingLanguage ) {
+                       $spellingLanguage = getLanguageIdLanguageNameFromIds( 
$spellingLanguageId, WLD_ENGLISH_LANG_ID );
+               }
+
+               $text = getDefinedMeaningDefinitionForLanguage( 
$definedMeaningId, $spellingLanguageId );
+
+               if ( !$text ) {
+                       $languageId = WLD_ENGLISH_LANG_ID;
+                       $text = getDefinedMeaningDefinitionForLanguage( 
$definedMeaningId, $languageId );
+               }
+
+               $definitionLanguageId = 
getDefinedMeaningDefinitionLanguageIdForDefinition( $definedMeaningId, $text );
+               $definitionLanguage = getLanguageIdLanguageNameFromIds( 
$definitionLanguageId, $definitionLanguageId );
+               $definitionSpelling = getSpellingForLanguageId( 
$definedMeaningId, $definitionLanguageId, WLD_ENGLISH_LANG_ID );
+
+               return array(
+                       $moduleName => array(
+                               'dmid' => $definedMeaningId,
+                               'spelling' => $spelling,
+                               'langid' => $spellingLanguageId,
+                               'lang' => $spellingLanguage,
+                               'definition' => array (
+                                       'spelling' => $definitionSpelling,
+                                       'langid' => $definitionLanguageId,
+                                       'lang' => $definitionLanguage,
+                                       'text' => $text
+                               )
                        )
-               )
-       );
+               );
 
-       if ( $remove_langIdArray == 1 ) {
-               unset( $definition[$moduleName]['langid']);
-               unset( $definition[$moduleName]['lang']);
        }
 
-       return $definition;
+       /**
+        * Define expression when the language is not specified.
+        */
+       function definingForAnyLanguage( $definedMeaningId, $options = array(), 
$moduleName = null ) {
+               $languageId = null;
+               $language = null;
 
+               $remove_langIdArray = 0;
+               if ( is_null( $moduleName ) ) {
+                       $moduleName = 'ow_define';
+               }
+
+               if ( isset( $options['e'] ) ) {
+                       $spelling = $options['e'];
+                       $languageId = 
getLanguageIdForDefinedMeaningAndExpression( $definedMeaningId, $spelling );
+                       $language = getLanguageIdLanguageNameFromIds( 
$languageId, $languageId );
+                       if ( !$language ) {
+                               $language = getLanguageIdLanguageNameFromIds( 
$languageId, WLD_ENGLISH_LANG_ID );
+                       }
+               } else {
+                       $remove_langIdArray = 1;
+               }
+
+               $text = getDefinedMeaningDefinition( $definedMeaningId );
+               $definitionLanguageId = 
getDefinedMeaningDefinitionLanguageIdForDefinition( $definedMeaningId, $text );
+               $definitionLanguage = getLanguageIdLanguageNameFromIds( 
$definitionLanguageId, $definitionLanguageId );
+               $definitionSpelling = getSpellingForLanguageId( 
$definedMeaningId, $definitionLanguageId, WLD_ENGLISH_LANG_ID );
+
+               $definition = array(
+                       $moduleName => array(
+                               'dmid' => $definedMeaningId,
+                               'langid' => $languageId,
+                               'lang' => $language,
+                               'definition' => array (
+                                       'spelling' => $definitionSpelling,
+                                       'langid' => $definitionLanguageId,
+                                       'lang' => $definitionLanguage,
+                                       'text'=> $text
+                               )
+                       )
+               );
+
+               if ( $remove_langIdArray == 1 ) {
+                       unset( $definition[$moduleName]['langid']);
+                       unset( $definition[$moduleName]['lang']);
+               }
+
+               return $definition;
+
+       }
 }
diff --git a/includes/api/owExpress.php b/includes/api/owExpress.php
index 25f302f..d2e5d89 100644
--- a/includes/api/owExpress.php
+++ b/includes/api/owExpress.php
@@ -54,7 +54,7 @@
                        $express['expression'] = $spelling;
                        $dmlistCtr = 1;
                        foreach ( $dmlist as $dmrow ) {
-                               $defining = definingForAnyLanguage( $dmrow, 
$options );
+                               $defining = $this->definingForAnyLanguage( 
$dmrow, $options );
                                foreach ( $defining as $definingRow) {
                                        $express['ow_define_' . $dmlistCtr] = 
$definingRow;
                                }

-- 
To view, visit https://gerrit.wikimedia.org/r/67092
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5c7ddc53ff760228163a30ac9f776a143ca0c3f0
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/WikiLexicalData
Gerrit-Branch: master
Gerrit-Owner: Hiong3-eng5 <hiong3.e...@gmail.com>
Gerrit-Reviewer: Hiong3-eng5 <hiong3.e...@gmail.com>
Gerrit-Reviewer: Kipcool <kipmas...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to