0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
3.2.0-5
/
standard
/
htdocs
/
modules
/
[
Home
]
File: mod-translation.php
<?php //this script may only be included - so its better to die if called directly. if (strpos($_SERVER["SCRIPT_NAME"],basename(__FILE__)) !== false) { header("location: index.php"); exit; } global $pivotLanguage, $tikilib, $smarty; if( ! function_exists( 'filter_languages_from_pivot' ) ) { function filter_languages_from_pivot( $langInfo ) { global $pivotLanguage; global $pageLang; return empty( $pivotLanguage ) || $pageLang == $pivotLanguage || $langInfo['lang'] == $pivotLanguage; } } if( isset( $module_params['pivot_language'] ) ) { $pivotLanguage = $module_params['pivot_language']; } else { $pivotLanguage = ''; } $smarty->assign( 'pivot_language', $pivotLanguage ); if( $prefs['feature_translation'] == 'y' && ! empty( $page ) && is_string($page) ) { global $multilinguallib; include_once('lib/multilingual/multilinguallib.php'); $langs = $multilinguallib->preferedLangs(); if( isset( $GLOBALS['pageLang'] ) ) $pageLang = $GLOBALS['pageLang']; else $pageLang = ''; if ($prefs['feature_wikiapproval'] == 'y' && $tikilib->page_exists($prefs['wikiapproval_prefix'] . $page)) { // temporary fix: simply use info of staging page // TODO: better system of dealing with translations with approval $stagingPageName = $prefs['wikiapproval_prefix'] . $page; $smarty->assign('stagingPageName', $stagingPageName); $smarty->assign('hasStaging', 'y'); $transinfo = $tikilib->get_page_info( $stagingPageName ); } else { $transinfo = $tikilib->get_page_info( $page ); } $tempList = $multilinguallib->getTranslations( 'wiki page', $transinfo['page_id'] ); $completeList = array(); foreach( $tempList as $row ) { $t_id = $row['objId']; $t_page = $row['objName']; $t_lang = $row['lang']; $completeList[$t_id] = array( 'page' => $t_page, 'lang' => $t_lang ); } unset( $completeList[$transinfo['page_id']] ); $smarty->assign( 'show_translation_module', $moduleActive = ! empty( $completeList ) ); $origBetter = $better = $multilinguallib->getBetterPages( $transinfo['page_id'] ); $better = array_filter( $better, 'filter_languages_from_pivot' ); $known = array(); $other = array(); foreach( $better as $pageOption ) { if( in_array( $pageOption['lang'], $langs ) ) $known[] = $pageOption; else $other[] = $pageOption; } $smarty->assign( 'mod_translation_better_known', $known ); $smarty->assign( 'mod_translation_better_other', $other ); $origWorst = $worst = $multilinguallib->getWorstPages( $transinfo['page_id'] ); $worst = array_filter( $worst, 'filter_languages_from_pivot' ); $known = array(); $other = array(); foreach( $worst as $pageOption ) { if( in_array( $pageOption['lang'], $langs ) ) $known[] = $pageOption; else $other[] = $pageOption; } $smarty->assign( 'mod_translation_worst_known', $known ); $smarty->assign( 'mod_translation_worst_other', $other ); $smarty->assign( 'pageVersion', $transinfo['version'] ); foreach( $origBetter as $row ) { $id = $row['page_id']; unset($completeList[$id]); } foreach( $origWorst as $row ) { $id = $row['page_id']; unset($completeList[$id]); } $known = array(); $other = array(); foreach( $completeList as $pageOption ) { if( in_array( $pageOption['lang'], $langs ) ) $known[] = $pageOption; else $other[] = $pageOption; } $smarty->assign( 'mod_translation_equivalent_known', $known ); $smarty->assign( 'mod_translation_equivalent_other', $other ); if( $prefs['quantify_changes'] == 'y' && $moduleActive ) { global $quantifylib; include_once 'lib/wiki/quantifylib.php'; include_once 'lib/wiki-plugins/wikiplugin_gauge.php'; $numeric = $quantifylib->getCompleteness( $transinfo['page_id'] ); $smarty->assign( 'mod_translation_quantification', $numeric ); $smarty->assign( 'mod_translation_gauge', wikiplugin_gauge( '', array( 'value' => $numeric, 'max' => 100, 'size' => '100%', 'color' => 'green', 'bgcolor' => 'gray', 'showvalue' => false, ) ) ); } }