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