From 9a9c4096efd6cd0f5b573f629548cfa0265a726e Mon Sep 17 00:00:00 2001 From: Cameron Date: Fri, 10 Jul 2015 14:25:16 -0700 Subject: [PATCH] Issue #6 Core Language-File checking fixes and LAN optimization. --- e107_admin/lancheck.php | 633 ++---------------- e107_admin/language.php | 408 ++++------- e107_languages/English/admin/lan_lancheck.php | 46 +- e107_languages/English/admin/lan_language.php | 42 +- 4 files changed, 184 insertions(+), 945 deletions(-) diff --git a/e107_admin/lancheck.php b/e107_admin/lancheck.php index 04139c467..0ccd4acd9 100644 --- a/e107_admin/lancheck.php +++ b/e107_admin/lancheck.php @@ -304,15 +304,17 @@ class lancheck var $core_themes = array("bootstrap3"); - var $errorsOnly = false; + private $errorsOnly = false; - var $coreImage = array(); + private $coreImage = array(); private $transLanguage = ''; private $thirdPartyPlugins = true; + + function __construct() { $this->core_plugins = e107::getPlugin()->getCorePlugins(); @@ -322,6 +324,12 @@ class lancheck { $this->thirdPartyPlugins = $val; } + + public function errorsOnly($val) + { + $this->errorsOnly = $val; + + } public function init() { @@ -373,8 +381,8 @@ class lancheck // Verify if($mode == 'verify' && !empty($lan)) { - $_SESSION['lancheck-errors-only'] = ($_POST['errorsonly']==1 ) ? 1 : 0; - $this->errorsOnly = ($_POST['errorsonly']==1) ? TRUE : FALSE; + // $_SESSION['lancheck-errors-only'] = ($_POST['errorsonly']==1 ) ? 1 : 0; + // $this->errorsOnly = ($_POST['errorsonly']==1) ? TRUE : FALSE; return $this->check_all('render', $lan); } @@ -542,7 +550,7 @@ class lancheck { $ret = array(); $ret['error'] = TRUE; - $message = (defined('LANG_LAN_34')) ? LANG_LAN_34 : LANG_LAN_115; + $message = LANG_LAN_115; $ret['message'] = str_replace("[x]",$_SESSION['lancheck'][$language]['total'],$message); return $ret; } @@ -551,26 +559,26 @@ class lancheck { $ret = array(); $ret['error'] = TRUE; - $ret['message'] = (defined('LANG_LAN_27')) ? LANG_LAN_27 : LANG_LAN_116; + $ret['message'] = LANG_LAN_116; return $ret; } if(varset($_POST['contribute_pack']) && varset($_SESSION['lancheck'][$language]['total']) !='0') { $ret['error'] = TRUE; - $ret['message'] = (defined("LANG_LAN_29")) ? LANG_LAN_29 : LANG_LAN_117; + $ret['message'] = LANG_LAN_117; $ret['message'] .= "
"; - $ret['message'] .= (defined('LANG_LAN_27')) ? LANG_LAN_27 : LANG_LAN_116; + $ret['message'] .= LANG_LAN_116; return $ret; } - if(!is_writable(e_FILE."public")) - { - $ret['error'] = TRUE; - $ret['message'] = LAN_UPLOAD_777 . " ".e_FILE."public"; - return $ret; - } + // if(!is_writable(e_FILE."public")) + // { + // $ret['error'] = TRUE; + // $ret['message'] = LAN_UPLOAD_777 . " ".e_FILE."public"; + // return $ret; + // } if(is_readable(e_ADMIN."ver.php")) { @@ -709,7 +717,7 @@ class lancheck $release_diz = defined("LANG_LAN_30") ? LANG_LAN_30 : "Release Date"; $compat_diz = defined("LANG_LAN_31") ? LANG_LAN_31 : "Compatibility"; $lan_pleasewait = (deftrue('LAN_PLEASEWAIT')) ? $tp->toJS(LAN_PLEASEWAIT) : "Please Wait"; - $lan_displayerrors = (deftrue('LANG_LAN_33')) ? LANG_LAN_33 : "Display only errors during verification"; + $text = "
@@ -802,8 +810,8 @@ class lancheck "; - $echecked = varset($_SESSION['lancheck-errors-only']) == 1 ? true : false; - $text .= $frm->checkbox('errorsonly',1,$echecked,array('label'=>$lan_displayerrors)); + // $echecked = varset($_SESSION['lancheck-errors-only']) == 1 ? true : false; + // $text .= $frm->checkbox('errorsonly',1,$echecked,array('label'=>$lan_displayerrors)); $text .= " "; @@ -867,12 +875,12 @@ class lancheck $text .= " - ".LANG_LAN_108." - ".LANG_LAN_109." - ".LANG_LAN_110." + ".LAN_NAME." + ".LAN_VERSION." + ".LAN_AUTHOR." ".LANG_LAN_111." ".LANG_LAN_112." - ".LANG_LAN_113." + ".LAN_DOWNLOAD." "; @@ -1177,7 +1185,7 @@ class lancheck function check_core_lanfiles($checklan,$subdir='') { - + $tp = e107::getParser(); // $sql->db_Mark_Time('Start Get Core Lan Phrases English'); $English = $this->get_comp_lan_phrases(e_LANGUAGEDIR."English/".$subdir,$checklan); @@ -1191,7 +1199,7 @@ class lancheck $header = " - + "; $keys = array_keys($English); @@ -1219,11 +1227,11 @@ class lancheck $utf_error = ""; $bomkey = str_replace(".php","",$k_check); - // $bom_error = ($check['bom'][$bomkey]) ? "".LAN_CHECK_15."
" : ""; // illegal chars + if(!empty($check['bom'][$bomkey])) { - $bom_error = "".LAN_CHECK_15."
"; + $bom_error = "".$tp->lanVars(LAN_CHECK_15,array("'<?php'","'?>'"))."
"; // illegal chars $this->checkLog('bom',1);; } else @@ -1518,9 +1526,12 @@ class lancheck // for plugins and themes - checkes what kind of language files directory structure we have - function check_lanfiles($mode,$comp_name,$base_lan="English",$target_lan){ - global $ns,$sql; - + function check_lanfiles($mode,$comp_name,$base_lan="English",$target_lan) + { + + + $tp = e107::getParser(); + $folder['P'] = e_PLUGIN.$comp_name; $folder['T'] = e_THEME.$comp_name; $comp_dir = $folder[$mode]; @@ -1554,7 +1565,7 @@ class lancheck $bomkey = str_replace(".php","",$k_check); if($check['bom'][$bomkey]) { - $bom_error = "".LAN_CHECK_15."
"; + $bom_error = "".$tp->lanVars(LAN_CHECK_15,array("'<?php'","'?>'"))."
"; $this->checkLog('bom',1); } else @@ -1843,567 +1854,3 @@ class lancheck - - -/* - -class lancheck_old -{ - var $error_count=0; - - function check_core_lanfiles($checklan,$subdir=''){ - $frm = e107::getForm(); - - $English = $this->get_comp_lan_phrases(e_LANGUAGEDIR."English/".$subdir,$checklan); - $check = $this->get_comp_lan_phrases(e_LANGUAGEDIR.$checklan."/".$subdir,$checklan); - $legend_txt = LAN_CHECK_3.": ".$_POST['language']."/".$subdir; - $fieldset_id = $subdir ? str_replace('/', '', $_POST['language'])."-".str_replace('/', '', $subdir) : str_replace('/', '', $_POST['language']); - $text .= " -
- {$legend_txt} -
".LAN_CHECK_16."".$this->transLanguage." ".LAN_CHECK_26."".$this->transLanguage." ".LAN_FILE." ".LAN_OPTIONS."
- - - - - - - - - - - - - - "; - - $keys = array_keys($English); - - sort($keys); - - $i = 0; - foreach($keys as $k) - { - if($k != "bom") - { - $lnk = $k; - $k_check = str_replace("English",$checklan,$k); - $text .= " - - "; - - if(array_key_exists($k,$check)) - { - $text .= " - - "; - $subkeys = array_keys($English[$k]); - - $er=""; - $utf_error = ""; - - $bomkey = str_replace(".php","",$k_check); - $bom_error = ($check['bom'][$bomkey]) ? "".str_replace("[php]", "
" : ""; // illegal chars - - foreach($subkeys as $sk) - { - if($utf_error == "" && !$this->is_utf8($check[$k][$sk])) - { - $utf_error = "".LAN_CHECK_19."
"; - } - - if($sk == "LC_ALL"){ - $check[$k][$sk] = str_replace(chr(34).chr(34),"",$check[$k][$sk]); - } - - if((!array_key_exists($sk,$check[$k]) && $English[$k][$sk] != "") || (trim($check[$k][$sk]) == "" && $English[$k][$sk] != "")) - { - - $er .= ($er) ? "
" : ""; - $er .= $sk." ".LAN_CHECK_5; - $this->error_count++; - } - } - - $style = ($er) ? "warning" : "success"; - $text .= " -
- "; - } - else - { - // file missing - $text .= " - - - "; - $this->error_count++; - } - - // Leave in EDIT button for all entries - to allow re-translation of bad entries. - $subpath = ($subdir!='') ? $subdir.$k : $k; - $text .= " - - - "; - } - $i++; - } - $text .= " - -
".LAN_CHECK_16."".$_POST['language'].' '.LAN_CHECK_20."".LAN_OPTIONS."
{$lnk} -
- "; - $text .= $bom_error . $utf_error; - if(!$er && !$bom_error && !$utf_error) - { - $text .= LAN_OK; - } - else - { - $text .= $er."
"; - $this->error_count++; - } - $text .= " -
-
{$lnk}".LAN_CHECK_4." - ".$frm->admin_button('but-corelan-'.str_replace(array('/', '\\'), '-', $subdir).$i, LAN_EDIT, 'edit', '', array('other' => "onclick=\"window.location='".e_SELF."?".$subpath."|".$_POST['language']."'\""))." - "; - $text .= " -
- - "; - - return $text; - } - - - function get_lan_file_phrases($dir1,$dir2,$file1,$file2){ - - $ret = array(); - $fname = $dir1.$file1; - $type='orig'; - - if(is_file($fname)) - { - $data = file($fname); - $ret=$ret + $this->fill_phrases_array($data,$type); - if(substr($data[0],0,5) != "fill_phrases_array($data,$type); - if(substr($data[0],0,5) != "get_files($comp_dir, '\.php','standard',$depth)){ - sort($lang_array); - } - - $regexp = (strpos($comp_dir,e_LANGUAGEDIR) !== FALSE) ? "#.php#" : "#".$lang."#"; - - foreach($lang_array as $f) - { - if(preg_match($regexp,$f['path'].$f['fname'])) - { - - $data = file($f['path'].$f['fname']); - $relpath = str_replace($comp_dir,"",$f['path']); - if(substr($data[0],0,5) != "fill_phrases_array($data,$relpath.$f['fname']); - - } - } - - return $ret; - - } - - // for plugins and themes - checks what kind of language files directory structure we have - function check_lanfiles($mode, $comp_name, $base_lan="English", $target_lan) - { - $frm = e107::getForm(); - - $folder['P'] = e_PLUGIN.$comp_name; - $folder['T'] = e_THEME.$comp_name; - $comp_dir = $folder[$mode]; - - $baselang = $this->get_comp_lan_phrases($comp_dir."/languages/","English",1); - $check = $this->get_comp_lan_phrases($comp_dir."/languages/",$target_lan,1); - - $text = ""; - $keys = array_keys($baselang); - sort($keys); - - $i = 0; - foreach($keys as $k) - { - $lnk = $k; - //echo "klucz ".$k."
"; - $k_check = str_replace("English",$target_lan,$k); - $text .= " - - "; - if(array_key_exists($k_check,$check)) - { - $text .= " - ".$comp_name." - ".str_replace("English/","",$lnk)." - "; - - $subkeys = array_keys($baselang[$k]); - $er = ""; - $utf_error = ""; - - $bomkey = str_replace(".php","",$k_check); - $bom_error = ($check['bom'][$bomkey]) ? "".LAN_CHECK_15."
" : ""; // illegal chars - - foreach($subkeys as $sk) - { - if($utf_error == "" && !$this->is_utf8($check[$k_check][$sk])) - { - $utf_error = "".LAN_CHECK_19."
"; - } - - if(!array_key_exists($sk,$check[$k_check]) || (trim($check[$k_check][$sk]) == "" && $baselang[$k][$sk] != "")) - { - $er .= ($er) ? "
" : ""; - $er .= $sk." ".LAN_CHECK_5; - $this->error_count++; - } - } - - $style = ($er) ? "warning" : "success"; - $text .= " - -
- "; - $text .= $bom_error . $utf_error; - $text .= (!$er && !$bom_error && !$utf_error) ? LAN_OK : $er."
"; - $text .= " -
- - "; - } - else - { - $text .= " - ".$comp_name." - ".str_replace("English/","",$lnk)." - ".LAN_CHECK_4." - "; - $this->error_count++; - } - - $text .=" - - ".$frm->admin_button('but-corelan-'.str_replace(array('/', '\\'), '-', $comp_dir).$i, LAN_EDIT, 'edit', '', array('other'=> "onclick=\"window.location='".e_SELF."?".$comp_dir."/languages/".$lnk."|".$target_lan."|file'\""))." - "; - $text .=" - - - "; - $i++; - } - - return $text; - } - - function edit_lanfiles($dir1,$dir2,$f1,$f2){ - global $e107, $lan; - $mes = e107::getMessage(); - $ns = e107::getRender(); - - // echo "
dir1 = $dir1"; - //echo "
file1 = $f1"; - - //echo "
dir2 = $dir2"; - //echo "
file2 = $f2"; - - if($dir2.$f2 == e_LANGUAGEDIR.$lan."/English.php") // it's a language config file. - { - $f2 = $lan.".php"; - $root_file = e_LANGUAGEDIR.$lan."/".$lan.".php"; - } - else - { - $root_file = $dir2.$f2; - } - - if($dir2.$f2 == e_LANGUAGEDIR.$lan."/English_custom.php") // it's a language config file. - { - $f2 = $lan."_custom.php"; - $root_file = e_LANGUAGEDIR.$lan."/".$lan."_custom.php"; - } - - - $writable = (is_writable($dir2)) ? TRUE : FALSE; - $trans = $this->get_lan_file_phrases($dir1,$dir2,$f1,$f2); - $keys = array_keys($trans); - sort($keys); - - $text = " - -
- ".LAN_CHECK_3." ".str_replace(array(e_PLUGIN, e_LANGUAGEDIR), array(e_PLUGIN_ABS, e_LANGUAGEDIR_ABS), $dir2)."{$f2} -> {$lan} - - - - - - - - - - - - - - - "; - - $subkeys = array_keys($trans['orig']); - foreach($subkeys as $sk) - { - $rowamount = round(strlen($trans['orig'][$sk])/34)+1; - $hglt1=""; $hglt2=""; - if ($trans['tran'][$sk] == "" && $trans['orig'][$sk]!="") { - $hglt1=""; - $hglt2=""; - } - $text .= " - - - - - - "; - } - $text .= " - -
 ".LAN_CHECK_16."Translate to ".$lan."
".$hglt1.htmlentities($sk).$hglt2."".htmlentities(str_replace("ndef++", "", $trans['orig'][$sk])) ." - ".(($writable) ? "" : "")." - "; - //echo "orig --> ".$trans['orig'][$sk]."
"; - if (strpos($trans['orig'][$sk],"ndef++") !== False) - { - //echo "+orig --> ".$trans['orig'][$sk]." <> ".strpos($trans['orig'][$sk],"ndef++")."
"; - $text .= " - - "; - } - else - { - $text .= " - - "; - } - $text .=" -
- "; - //Check if directory is writable - if($writable) - { - //FIXME place of LAN_SAVE - $text .=" -
- - ".(($root_file) ? "" : "")." -
- "; - } - - $text .= " -
- - "; - - $text .= " -
-
- ".((!$writable) ? $dir2.$f2.LAN_NOTWRITABLE : "")." -
- - -
-
- "; - - $ns->tablerender(LAN_CHECK_PAGE_TITLE.' - '.LAN_CHECK_24, $text); - require_once(e_ADMIN."footer.php"); - exit; - - } - - function fill_phrases_array($data,$type) { - - $retloc = array(); - - foreach($data as $line){ - //echo "line--> ".$line."
"; - if (strpos($line,"define(") !== FALSE && strpos($line,");") === FALSE) - { - $indef=1; - $bigline=""; - // echo "big1 -->".$line."
"; - } - if ($indef) - { - $bigline.=str_replace("\n","",$line); - // echo "big2 -->".$line."
"; - } - if (strpos($line,"define(") === FALSE && strpos($line,");") !== FALSE) - { - $indef=0; - $we_have_bigline=1; - // echo "big3 -->".$line."
"; - } - - if(strpos($line,"setlocale(") !== FALSE) - { - $indef=1; - $we_have_bigline=0; - } - - if ((strpos($line,"define(") !== FALSE && strpos($line,");") !== FALSE && substr(ltrim($line),0,2) != "//") || $we_have_bigline || strpos($line,"setlocale(") !== FALSE) - { - - if ($we_have_bigline) - { - $we_have_bigline=0; - $line=$bigline; - // echo "big -->".$line."
"; - } - $ndef = ""; - //echo "_ndefline -->".$line."
"; - if (strpos($line,"defined(") !== FALSE ) - { - $ndef = "ndef++"; - $line = substr($line,strpos($line,"define(")); - } - - if(strpos($line,"setlocale(") !== FALSE) - { - $pos = substr(strstr($line,","),1); - $rep = array(");","\n",'""'); - $val = str_replace($rep,"",$pos); - $retloc[$type]['LC_ALL']= $val; - // $retloc['orig']['LC_ALL']= "'en'"; - } - else - { - - //echo "ndefline: ".$line."
"; - if(preg_match("#\"(.*?)\".*?\"(.*)\"#",$line,$matches) || - preg_match("#\'(.*?)\'.*?\"(.*)\"#",$line,$matches) || - preg_match("#\"(.*?)\".*?\'(.*)\'#",$line,$matches) || - preg_match("#\'(.*?)\'.*?\'(.*)\'#",$line,$matches) || - preg_match("#\((.*?)\,.*?\"(.*)\"#",$line,$matches) || - preg_match("#\((.*?)\,.*?\'(.*)\'#",$line,$matches)) - { - //echo "get_lan -->".$matches[1]." :: ".$ndef.$matches[2]."
"; - if(!isset($retloc[$type][$matches[1]])) - { - $retloc[$type][$matches[1]]= $ndef.$matches[2]; - } - } - } - } - } - - return $retloc; - } - - //-------------------------------------------------------------------- - - - function is_utf8($str) { - // @see http://hsivonen.iki.fi/php-utf8/ validation.php - - //@TODO: always TRUE - // if(strtolower(CHARSET) != "utf-8" || $str == "") - { - return TRUE; - } - - return (preg_match('/^.{1}/us',$str,$ar) == 1); - } - -} - -*/ -/* -function lancheck_adminmenu() -{ - - include_lan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_language.php"); - - global $action; - $pref = e107::getPref(); - - if ($action == "") { - $action = "tools"; - } - - if($action == "modify") - { - $action = "db"; - } - $var['main']['text'] = LAN_PREFS; - $var['main']['link'] = e_ADMIN_ABS."language.php"; - - if(isset($pref['multilanguage']) && $pref['multilanguage']){ - $var['db']['text'] = LANG_LAN_03; - $var['db']['link'] = e_ADMIN_ABS."language.php?db"; - } - - $var['tools']['text'] = ADLAN_CL_6; - $var['tools']['link'] = e_ADMIN_ABS."language.php?tools"; - - - e107::getNav()->admin(ADLAN_132, $action, $var); -} - - $ns->tablerender(LAN_CHECK_PAGE_TITLE.' - '.LAN_CHECK_1, LAN_CHECK_26); - require_once(e_ADMIN."footer.php"); -*/ - - diff --git a/e107_admin/language.php b/e107_admin/language.php index fad77e0c4..8ee9909b6 100644 --- a/e107_admin/language.php +++ b/e107_admin/language.php @@ -121,6 +121,7 @@ $e_sub_cat = 'language'; 'noLanguageSubs' => array('title'=> LANG_LAN_26, 'type'=>'boolean', 'data'=>'int', 'help'=> LANG_LAN_27), 'multilanguage_subdomain' => array('title'=> LANG_LAN_18, 'type'=>'textarea', 'data'=>'str', 'help'=> LANG_LAN_19, 'writeParms'=>array('rows'=>3)), 'multilanguage_domain' => array('title'=> LANG_LAN_106, 'type'=>'method', 'data'=>'str', 'help'=> LANG_LAN_19), + 'multilanguage_verify_errorsonly' => array('title'=> LANG_LAN_33, 'type'=>'boolean', 'data' => 'int','help'=>''), ); @@ -157,9 +158,10 @@ $e_sub_cat = 'language'; function toolsPage() { - + $pref = e107::getPref(); $lck = e107::getSingleton('lancheck', e_ADMIN."lancheck.php"); + $lck->errorsOnly($pref['multilanguage_verify_errorsonly']); // show_packs(); if($return = $lck->init()) @@ -786,27 +788,6 @@ if (isset($_POST['create_tables']) && $_POST['language']) -/* - -if (varset($_POST['ziplang']) && varset($_POST['language'])) -{ - if(varset($pref['lancheck'][$_POST['language']]) == 1) - { - $text = zip_up_lang($_POST['language']); - e107::getLog()->add('LANG_04', $_POST['language'], E_LOG_INFORMATIVE, ''); - $mes->addInfo(LANG_LAN_25.': '.$text); - } - else - { - $mes->addWarning(LANG_LAN_36); - } -} -*/ - - -// imported from e107 v1 - - @@ -1042,173 +1023,9 @@ function multilang_prefs() e107::getRender()->tablerender(ADLAN_132.SEP.LAN_PREFS, $mes->render().$text); // "Language Preferences"; } -// ---------------------------------------------------------------------------- -// ------------- render form --------------------------------------------------- - - -function multilang_db() -{ - - -} -// ---------------------------------------------------------------------------- - - - - - - - - - -function show_tools() -{ - - // include_lan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_lancheck.php"); - - - /* - $text = " -
-
- ".LAN_CHECK_1." - - - - - - - - - - - -
".LAN_CHECK_1." - ". - $frm->admin_button('language_sel','no-value','other',LAN_CHECK_2)." -
-
-
"; - */ - -} - - -// ---------------------------------------------------------------------------- - -/* -function language_adminmenu() -{ - $pref = e107::getPref(); - - $action = e_QUERY; - - if ($action == "") - { - $action = getperms('0') ? "main" : "tools"; - } - if ($_GET['mode'] == 'db') - { - $action = "db"; - } - - if($_GET['mode'] == 'tools') - { - $action = 'tools'; - } - - if(getperms('0')) - { - $var['main']['text'] = LAN_PREFS; - $var['main']['link'] = e_SELF; - - if (isset($pref['multilanguage']) && $pref['multilanguage']) - { - $var['db']['text'] = LANG_LAN_03; - $var['db']['link'] = e_SELF."?mode=db"; - } - } - -// $lcnt = explode(",", e_LANLIST); -// if (count($lcnt) > 1) -// { - $var['tools']['text'] = LANG_LAN_21; - $var['tools']['link'] = e_SELF."?mode=tools"; -// } - e107::getNav()->admin(ADLAN_132, $action, $var); -}*/ -// Zip up the language pack. -// =================================================== - - - - -/* -function zip_up_lang($language) -{ - if (is_readable(e_ADMIN."ver.php")) - { - include (e_ADMIN."ver.php"); - } - - $tp = e107::getParser(); - - - require_once (e_HANDLER.'pclzip.lib.php'); - list($ver, $tmp) = explode(" ", $e107info['e107_version']); - $newfile = e_UPLOAD."e107_".$ver."_".$language."_utf8.zip"; - $archive = new PclZip($newfile); - $core = grab_lans(e_LANGUAGEDIR.$language."/", $language); - $plugs = grab_lans(e_PLUGIN, $language); - $theme = grab_lans(e_THEME, $language); - $file = array_merge($core, $plugs, $theme); - $data = implode(",", $file); - if ($archive->create($data) == 0) - { - return $archive->errorInfo(true); - } - else - { - if($_POST['contribute_pack']) - { - $full_link = $tp->createConstants($newfile); - $email_message = "Site: ".SITENAME." - User: ".USERNAME."\n - IP:".USERIP." - ...would like to contribute the following language pack for e107 v".$e107info['e107_version'].". - Please see attachment."; - $subject = basename($newfile); - //TODO - send email to languagepack@e107.org with attachment. - } - - return LANG_LAN_22." (".str_replace("../", "", e_UPLOAD)."".basename($newfile).")."; - } -} - -*/ - - - - -// ----------------------- - - class lanDeveloper @@ -1285,15 +1102,21 @@ class lanDeveloper //$lanfile = $this->findIncludedFiles($script,vartrue($_POST['deprecatedLansReverse'])); } + + } - - if(!is_readable($script)) + foreach($script as $scr) { - // $mes->addError("Not Readable: ".$script); - // $script = $scriptname; // matching files. lan_xxxx.php and xxxx.php + if(!is_readable($scr)) + { + $mes->addError("Not Readable: ".$scr); + // $script = $scriptname; // matching files. lan_xxxx.php and xxxx.php + } } + + // $found = $this->findIncludedFiles($script,vartrue($_POST['deprecatedLansReverse'])); // print_a($found); @@ -1357,7 +1180,7 @@ class lanDeveloper if($script == true) { - return array('define'=>$line,'value'=>'unknown'); + return array('define'=>$line,'value'=>'-'); } if(preg_match("#\"(.*?)\".*?\"(.*)\"#",$line,$match) || @@ -1411,7 +1234,7 @@ class lanDeveloper Search for Deprecated Lans - "; @@ -1425,20 +1248,6 @@ class lanDeveloper $srch = array(e_ADMIN,e_PLUGIN, e_BASE); - $text .= ""; - foreach($root as $script=>$lan) - { - if(in_array(basename($lan),$exclude)) - { - continue; - } - $selected = (in_array($lan, $_POST['deprecatedLans'])) ? "selected='selected'" : ""; - $text .= "\n"; - } - - $text .= ""; - - $text .= ""; foreach($lans as $script=>$lan) { @@ -1446,13 +1255,29 @@ class lanDeveloper { continue; } - $selected = (in_array($lan, $_POST['deprecatedLans'])) ? "selected='selected'" : ""; + $selected = (!empty($_POST['deprecatedLans']) && in_array($lan, $_POST['deprecatedLans'])) ? "selected='selected'" : ""; + $text .= "\n"; + } + + $text .= ""; + + $text .= ""; + foreach($root as $script=>$lan) + { + if(in_array(basename($lan),$exclude)) + { + continue; + } + $selected = (!empty($_POST['deprecatedLans']) && in_array($lan, $_POST['deprecatedLans'])) ? "selected='selected'" : ""; $text .= "\n"; } $text .= ""; + + + $depOptions = array( 1 => "Script > Lan File", 0 => "Script < Lan File" @@ -1468,7 +1293,7 @@ class lanDeveloper $prev = 'Core'; - $text .= " "; @@ -1482,7 +1307,7 @@ class lanDeveloper } - $selected = (in_array($val, $_POST['deprecatedLanFile'])) ? "selected='selected'" : ""; + $selected = (!empty($_POST['deprecatedLanFile']) && in_array($val, $_POST['deprecatedLanFile'])) ? "selected='selected'" : ""; $diz = str_replace($search,$replace,$val); list($type,$label) = explode(" ",$diz); @@ -1547,9 +1372,42 @@ class lanDeveloper + function isFound($needle, $haystack) + { + $found = array(); + + foreach($haystack as $file => $content) + { + $count = 1; + $lines = explode("\n",$content); + foreach($lines as $ln) + { + if(preg_match("/\b".$needle."\b/i",$ln, $mtch)) + { + $found[$file]['count'][] = $count; + $found[$file]['line'][] = $ln; + } + $count++; + } + + } + + if(!empty($found)) + { + return $found; + } + + return false; + // print_a($haystack); + + } + + function compareit($needle,$haystack, $value='',$disabled=false, $reverse=false) { + $found = $this->isFound($needle, $haystack); + // return "Need=".$needle."
hack=".$haystack."
val=".$val; $foundSimilar = FALSE; $foundCommon = FALSE; @@ -1583,48 +1441,45 @@ class lanDeveloper $text2 = ''; - foreach($haystack as $script) + foreach($haystack as $file=>$script) { - $lines = explode("\n",$script); + // $lines = explode("\n",$script); $text .= ""; - $text2 .= ($reverse == true) ? "" : ""; + // $text2 .= ($reverse == true) ? "" : ""; - $count = 1; - foreach($lines as $ln) + if(!empty($found[$file]['count'])) { - if(preg_match("/\b".$needle."\b/i",$ln, $mtch)) + if($disabled) { - if($disabled) - { - $text .= ADMIN_WARNING_ICON; - $label = " Must be re-enabled"; - $this->errors++; - // $text .= "blabla"; + $text .= ADMIN_WARNING_ICON; + $label = " Must be re-enabled"; + $this->errors++; + // $text .= "blabla"; // $class = 'alert alert-warning'; - } - elseif($reverse == true) + } + elseif($reverse == true) + { + $value = ADMIN_TRUE_ICON; + $value .= " Line:".implode(", ",$found[$file]['count']) ." "; // "' Found"; + foreach($found[$file]['line'] as $defLine) { - $text .= ADMIN_TRUE_ICON; + $text .= print_a($defLine, true); } - $text .= " Line:".$count." "; // "' Found"; - - if($reverse == true) - { - $text2 .= print_a($ln,true); - } - $found = true; + } + else + { + $text .= " Line:".implode(", ",$found[$file]['count']) ." "; // "' Found"; } - $count++; } + if($reverse == true && in_array($needle,$commonArray)) { $found = false; - $text = ""; - $text2 = ""; + } if(empty($found)) @@ -1637,16 +1492,16 @@ class lanDeveloper // print_a($needle); //$color = "background-color:#E9EAF2"; $class = ''; - $text .= ADMIN_TRUE_ICON; - $value = "".LANG_LAN_130.""; // Common Term. + $value = ADMIN_TRUE_ICON; + $label = "".LANG_LAN_130.""; // Common Term. } else { // $color = "background-color:yellow"; - $text .= "".ADMIN_WARNING_ICON.""; + $value = "".ADMIN_WARNING_ICON.""; $this->errors++; - $value = LANG_LAN_131; - $class = "alert alert-warning"; + $label = "".LANG_LAN_131.""; + // $class = "alert alert-warning"; } } @@ -1665,7 +1520,7 @@ class lanDeveloper } } $text .= ""; - $text2 .= ($reverse == true) ? "" : ""; + } @@ -1697,7 +1552,7 @@ class lanDeveloper // $needle = "".$needle.""; } - return "".$needle .$label. " + return "".$needle ."".$label. " ".print_r($value,true)." ".$text.$text2.""; } @@ -1724,10 +1579,13 @@ class lanDeveloper if($reverse == true) { - - $exclude = array("e_LANGUAGE","e_LANGUAGEDIR","e_LAN","e_LANLIST","e_LANCODE", "LANGUAGES_DIRECTORY"); - - $data = file_get_contents($script); + $mes->addDebug("REVERSE MODE "); + $exclude = array("e_LANGUAGE","e_LANGUAGEDIR","e_LAN","e_LANLIST","e_LANCODE", "LANGUAGES_DIRECTORY", "e_LANGUAGEDIR_ABS", "LAN"); + $data = ''; + foreach($script as $d) + { + $data .= file_get_contents($d)."\n"; + } if(preg_match_all("/([\w_]*LAN[\w_]*)/", $data, $match)) { @@ -1755,7 +1613,7 @@ class lanDeveloper if(!file_exists($scr)) { - $mes->addError(LANG_LAN_121." ".$scr); + $mes->addError("reverse Mode: ".LANG_LAN_121." ".$scr); continue; } @@ -1768,6 +1626,7 @@ class lanDeveloper } else { + $mes->addDebug("NORMAL MODE "); $lanDefines = ''; foreach($lanfile as $arr) { @@ -1781,7 +1640,7 @@ class lanDeveloper { if(!file_exists($scr)) { - $mes->addError(LANG_LAN_121." ".$scr); + $mes->addError("Normal mode: ".LANG_LAN_121." ".$scr); continue; } $compare[$scr] = file_get_contents($scr); @@ -1796,12 +1655,12 @@ class lanDeveloper if(!$compare) { - $mes->addError(LANG_LAN_121." ".$script); + $mes->addError("Line ".__LINE__.": ".LANG_LAN_121." ".$script); } if(!$lanDefines) { - $mes->addError(LANG_LAN_121." ".$lanfile); + $mes->addError("Line ".__LINE__.": ".LANG_LAN_121." ".$lanfile); } $srch = array(""); @@ -1813,19 +1672,34 @@ class lanDeveloper $text = $frm->open('language-unused'); $text .= "- - - + + + "; + + foreach($lanfile as $l) + { + $text .= "\n"; + } + + $text .= " - "; + + "; + + if($reverse == false) + { + $text .= ""; + } foreach($compare as $k=>$val) { $text .= ""; } + + if($reverse == true) { $text .= ""; @@ -1843,10 +1717,11 @@ class lanDeveloper { if(trim($line) !="") { - $disabled = (preg_match("#^//#i",$line)) ? " ".LANG_LAN_125 : false; + $disabled = (preg_match("#^//#i",$line)) ? " (".LAN_DISABLED.")" : false; if($match = $this->getDefined($line,$reverse)) { $text .= $this->compareit($match['define'], $compare, $match['value'], $disabled, $reverse); + } } } @@ -1968,28 +1843,3 @@ class lanDeveloper - - - - - - - - -/** - * Handle page DOM within the page header - * - * @return string JS source - */ - - - - - - - - - - - - diff --git a/e107_languages/English/admin/lan_lancheck.php b/e107_languages/English/admin/lan_lancheck.php index 82d2d5a46..d92d28c87 100644 --- a/e107_languages/English/admin/lan_lancheck.php +++ b/e107_languages/English/admin/lan_lancheck.php @@ -6,26 +6,11 @@ * */ -define("LAN_CHECK_1", "Verify/Edit Language-Pack Files"); // modified in 0.7.6 define("LAN_CHECK_2", "Verify"); define("LAN_CHECK_3", "Verification of"); define("LAN_CHECK_4", "File missing!"); define("LAN_CHECK_5", "Phrase missing!"); - -// define("LAN_CHECK_7", "phrase"); - -// define("LAN_CHECK_8", "A file is missing..."); -// define("LAN_CHECK_9", " files are missing..."); -// define("LAN_CHECK_10", "Critical error: "); -// define("LAN_CHECK_11", "No files missing !"); -// define("LAN_CHECK_12", "A file is wrong..."); -// define("LAN_CHECK_13", " files are wrong..."); -// define("LAN_CHECK_14", "All existing files are valid !"); - - -// v1.0 - -// define("LAN_CHECK_15", "Illegal characters or spaces found before '<?php' or after '?>'"); +define("LAN_CHECK_15", "Illegal characters or spaces found before [x] or after [y]"); define("LAN_CHECK_16", "Original File"); define("LAN_CHECK_17", "A write problem occured while trying to save the file."); define("LAN_CHECK_18", "Language files in the standard format are NOT available for this plugin/theme."); @@ -36,24 +21,21 @@ define("LAN_CHECK_22", "Theme"); define("LAN_CHECK_23", "Errors Found"); define("LAN_CHECK_24", "Summary"); define("LAN_CHECK_25", "Themes"); -define("LAN_CHECK_26", "File"); - -// v2.0 - -define("LAN_CHECK_15", "Illegal characters found before [php]"); // [php] is automatically replaced, do not edit! - - -//define("LAN_CHECK_20", "File"); -//define("LAN_CHECK_21", "Theme"); -//define("LAN_CHECK_22", "Themes"); - -//define("LAN_CHECK_23", "[x] saved"); // [x] is automatically replaced, do not edit! - define("LAN_CHECK_PAGE_TITLE", "Languages"); -//define("LAN_CHECK_24", "Edit/Create file"); -//define("LAN_CHECK_25", "Language verification"); -//define("LAN_CHECK_26", "No data"); define("LAN_CHECK_27", "Number of language-pack errors found"); +define("LANG_LAN_30", "Release Date"); +define("LANG_LAN_31", "Compatibility"); +define("LANG_LAN_35", "The following language packs are available for this version of e107."); +define("LANG_LAN_111", "Release-date"); +define("LANG_LAN_112", "Compatible"); +define("LANG_LAN_114", "Download Pack"); +define("LANG_LAN_115", "Please verify and correct the remaining [x] error(s) before attempting to create a language-pack."); +define("LANG_LAN_116", "Please verify your language files ('Verify') then try again."); +define("LANG_LAN_117", "You should correct the remaining errors before contributing your language pack."); +define("LANG_LAN_119", "Please check that CORE_LC and CORE_LC2 have values in [x] and try again."); +define("LANG_LAN_120", "Please make sure you are using default folder names in e107_config.php (eg. e107_languages/, e107_plugins/ etc.) and try again."); + +define("LANG_LAN_AGR", "Note: By using these tools you agree to share your language pack(s) with the e107 community."); ?> \ No newline at end of file diff --git a/e107_languages/English/admin/lan_language.php b/e107_languages/English/admin/lan_language.php index 6429819c8..4bb65df8d 100644 --- a/e107_languages/English/admin/lan_language.php +++ b/e107_languages/English/admin/lan_language.php @@ -15,7 +15,6 @@ define("LANG_LAN_05", "Not Installed"); define("LANG_LAN_06", "Create tables"); define("LANG_LAN_07", "Drop existing tables?"); define("LANG_LAN_08", "Replace existing tables (data will be lost)."); -// define("LANG_LAN_10", "Confirm delete"); define("LANG_LAN_11", "Delete unchecked tables above (if they exist)."); define("LANG_LAN_12", "Multi-Language Database Tables"); define("LANG_LAN_13", "Language Preferences"); @@ -28,65 +27,26 @@ define("LANG_LAN_19", "e.g. The domain fr.mydomain.com would set the language to define("LANG_LAN_20", "Enter one domain per line. eg. mydomain.com etc. or leave blank to disable."); define("LANG_LAN_21", "Language-Packs"); -define("LANG_LAN_22", "Language Pack created successfully."); define("LANG_LAN_23", "Create Language-Pack (zip)"); -define("LANG_LAN_24", "Generate"); define("LANG_LAN_25", "Language-Pack Creation Status"); define("LANG_LAN_26", "Load language files only for current language"); define("LANG_LAN_27", "If checked, and a required language cannot be found, there will be an error"); - -define("LANG_LAN_PAGE_TITLE", "Languages"); - -define("LANG_LAN_AGR", "Note: By using these tools you agree to share your language pack(s) with the e107 community."); define("LANG_LAN_EML", "Please email your language pack to:"); - - -define("LANG_LAN_29", "You should correct the remaining errors before contributing your language pack."); -define("LANG_LAN_30", "Release Date"); -define("LANG_LAN_31", "Compatibility"); define("LANG_LAN_32", "Installed Languages"); define("LANG_LAN_33", "Display only errors during verification"); -define("LANG_LAN_34", "Please verify and correct the remaining [x] error(s) before attempting to create a language-pack."); - - -// define("LANG_LAN_09", "Are you sure?"); -//define("LANG_LAN_34", "Available Language Packs"); -//define("LANG_LAN_35", "The following language packs are available for this version of e107."); -//define("LANG_LAN_36", "Language-Pack errors found! Please first verify your language files are without errors, before creating a language-pack."); - define("LANG_LAN_50", "Admin-Area Interface Language"); - -// e107 v2 - define("LANG_LAN_100", "[x] deleted."); define("LANG_LAN_101", "[x] could not be deleted."); define("LANG_LAN_103", "[x] created."); -// define("LANG_LAN_31", "%s couldn\"t be deleted."); define("LANG_LAN_104", "[x] was disabled but left intact."); define("LANG_LAN_105", "Delete all tables in [x]?"); define("LANG_LAN_106", "Language by Domain Name"); define("LANG_LAN_107", "Domain determines the site's language. Enter domain without the 'www.'"); -define("LANG_LAN_108", "Name"); -define("LANG_LAN_109", "Version"); -//define("LANG_LAN_110", "Author");//LAN_AUTHOR -define("LANG_LAN_111", "Release-date"); -define("LANG_LAN_112", "Compatible"); -define("LANG_LAN_113", "Download"); -define("LANG_LAN_114", "Download Pack"); -define("LANG_LAN_115", "Please verify and correct the remaining [x] error(s) before attempting to create a language-pack."); -define("LANG_LAN_116", "Please verify your language files ('Verify') then try again."); -define("LANG_LAN_117", "You should correct the remaining errors before contributing your language pack."); -define("LANG_LAN_118", ""); // Unused -define("LANG_LAN_119", "Please check that CORE_LC and CORE_LC2 have values in [x] and try again."); -define("LANG_LAN_120", "Please make sure you are using default folder names in e107_config.php (eg. e107_languages/, e107_plugins/ etc.) and try again."); + define("LANG_LAN_121", "Couldn't Load:"); define("LANG_LAN_124", "Definition"); -define("LANG_LAN_125", "(disabled)"); define("LANG_LAN_126", "Disable All Unused"); -define("LANG_LAN_127", "Pink items are likely to be unused LANs."); -define("LANG_LAN_128", "Comment out and test thoroughly."); -define("LANG_LAN_129", "Deprecated LAN Check (experimental!)"); define("LANG_LAN_130", "Common Term"); define("LANG_LAN_131", "Missing from language file"); define("LANG_LAN_132", "is a common phrase.");
".str_replace(e_LANGUAGEDIR,"",$lanfile)."Value".str_replace(e_LANGUAGEDIR,"",implode("
", $lanfile))."
".LAN_STATUS."Value".str_replace("../","",$k)."".LANG_LAN_124."