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 <[email protected]>
Gerrit-Reviewer: Hiong3-eng5 <[email protected]>
Gerrit-Reviewer: Kipcool <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits