diff --git a/e107_admin/language.php b/e107_admin/language.php
index 0b301c157..b1753d349 100644
--- a/e107_admin/language.php
+++ b/e107_admin/language.php
@@ -191,35 +191,54 @@ if (varset($action) == "tools")
}
- function findIncludedFiles($script)
+ function findIncludedFiles($script,$reverse=false)
{
$data = file_get_contents($script);
+ if(strpos($data, 'e_admin_dispatcher')!==false)
+ {
+ $reverse = false;
+ }
+
$dir = dirname($script);
$dir = str_replace("/includes","",$dir);
$plugin = basename($dir);
- $newLangs = array(
- 0 => $dir."/languages/English/English_admin_".$plugin.".php",
- 1 => $dir."/languages/English_admin_".$plugin.".php",
- 2 => $dir."/languages/English_admin.php",
- 3 => $dir."/languages/English/English_admin.php"
- );
-
+ if(strpos($script,'admin')!==false || strpos($script,'includes')!==false) // Admin Language files.
+ {
+
+ $newLangs = array(
+ 0 => $dir."/languages/English/English_admin_".$plugin.".php",
+ 1 => $dir."/languages/English_admin_".$plugin.".php",
+ 2 => $dir."/languages/English_admin.php",
+ 3 => $dir."/languages/English/English_admin.php"
+ );
+ }
+ else
+ {
+ $newLangs = array(
+ 0 => $dir."/languages/English/English_".$plugin.".php",
+ 1 => $dir."/languages/English_admin_".$plugin.".php",
+ 2 => $dir."/languages/English_front.php",
+ 3 => $dir."/languages/English/English_front.php",
+ 4 => $dir."/languages/English_front.php",
+ 5 => $dir."/languages/English/English_front.php"
+ );
+ }
// if(strpos($data, 'e_admin_dispatcher')!==false)
{
foreach($newLangs as $path)
{
- if(file_exists($path))
+ if(file_exists($path) && $reverse == false)
{
return $path;
}
}
}
- //
-
+
+
preg_match_all("/.*(include_lan|require_once|include|include_once) ?\((.*e_LANGUAGE.*?\.php)/i",$data,$match);
@@ -229,16 +248,17 @@ if (varset($action) == "tools")
foreach($match[2] as $lanFile)
{
$arrt = str_replace($srch,$repl,$lanFile);
- if(strpos($arrt,'admin'))
+ // if(strpos($arrt,'admin'))
{
- return $arrt;
+ //return $arrt;
+ $arr[] = $arrt;
}
}
-
+ return implode(",",$arr);
- return $arr[0];
+ // return $arr[0];
}
@@ -301,7 +321,7 @@ if(varset($_POST['searchDeprecated']) && varset($_POST['deprecatedLans']))
else // Plugin
{
$mes->addDebug("Mode: Search Plugins");
- $lanfile = findIncludedFiles($script);
+ $lanfile = findIncludedFiles($script,vartrue($_POST['deprecatedLansReverse']));
}
if(!is_readable($script))
@@ -310,7 +330,7 @@ if(varset($_POST['searchDeprecated']) && varset($_POST['deprecatedLans']))
// $script = $scriptname; // matching files. lan_xxxx.php and xxxx.php
}
- $found = findIncludedFiles($script);
+ $found = findIncludedFiles($script,vartrue($_POST['deprecatedLansReverse']));
// print_a($found);
@@ -319,24 +339,13 @@ if(varset($_POST['searchDeprecated']) && varset($_POST['deprecatedLans']))
{
$script = e_ADMIN."update_routines.php,".e_ADMIN."e107_update.php";
}
-
- $mes->addDebug("LanFile: ".$lanfile);
- $mes->addDebug("Script: ".$script);
-
- if(is_readable($lanfile))
+ if($res = unused($lanfile, $script, vartrue($_POST['deprecatedLansReverse'])))
{
- $mes->addDebug("Reading LanFile... ");
- if($res = unused($lanfile,$script))
- {
- $ns -> tablerender($res['caption'],$mes->render(). $res['text']);
- }
- }
- else
- {
- $mes->addError("No Language file found!");
- $ns -> tablerender(vartrue($res['caption']), $mes->render(). vartrue($res['text']));
- }
+ $ns -> tablerender($res['caption'],$mes->render(). $res['text']);
+ }
+
+
}
@@ -760,10 +769,11 @@ function show_tools()
$fl = e107::getFile();
$fl->mode = 'full';
- $omit = array('languages','\.png','\.gif');
+ $omit = array('languages','\.png','\.gif','templates','handlers');
$lans = $fl->get_files(e_ADMIN,'.php','standard',0);
- $plugs = $fl->get_files(e_PLUGIN,'.*?/?admin.*?\.php',$omit,2);
-
+ $fl->setFileFilter(array("^e_"));
+ $plugs = $fl->get_files(e_PLUGIN,'.*?/?.*?\.php',$omit,2);
+
$exclude = array('lan_admin.php');
$srch = array(e_ADMIN,e_PLUGIN);
@@ -794,9 +804,16 @@ function show_tools()
$text .= "";
+
+ $depOptions = array(
+ 0 => "Lan File > Script",
+ 1 => "Script > Lan File"
+ );
$text .= "
- ".$frm->admin_button('searchDeprecated',"Check",'other')."
+ ".
+ $frm->selectbox('deprecatedLansReverse',$depOptions,$_POST['deprecatedLansReverse']).
+ $frm->admin_button('searchDeprecated',"Check",'other')."
".(count($lans) + count($plugs))." files found
";
@@ -1013,7 +1030,7 @@ function grab_lans($path, $language, $filter = "")
* @param object $script
* @return string|boolean FALSE on error
*/
-function unused($lanfile,$script)
+function unused($lanfile,$script,$reverse=false)
{
$mes = e107::getMessage();
@@ -1023,18 +1040,72 @@ function unused($lanfile,$script)
unset($_SESSION['language-tools-unused']);
// $mes->addInfo("LAN=".$lanfile."
Script = ".$script);
-
+
- $lanDefines = file_get_contents($lanfile);
-
- $tmp = explode(",",$script);
- foreach($tmp as $scr)
+ if($reverse == true)
{
- $compare[$scr] = file_get_contents($scr);
+
+ $exclude = array("e_LANGUAGE","e_LANGUAGEDIR","e_LAN","e_LANLIST","e_LANCODE");
+
+ $data = file_get_contents($script);
+
+ if(preg_match_all("/([\w_]*LAN[\w_]*)/", $data, $match))
+ {
+ // print_a($match);
+ $foundLans = array();
+ foreach($match[1] as $val)
+ {
+ if(!in_array($val, $exclude))
+ {
+ $foundLans[] = $val;
+ }
+ }
+ sort($foundLans);
+ $foundLans = array_unique($foundLans);
+ $lanDefines = implode("\n",$foundLans);
+
+ }
+
+ $mes->addDebug("Script: ".$script);
+
+ $tmp = explode(",", $lanfile);
+ foreach($tmp as $scr)
+ {
+ if(!file_exists($scr))
+ {
+ $mes->addError("Couldn't Load: ".$scr);
+ continue;
+ }
+
+ $compare[$scr] = file_get_contents($scr);
+ $mes->addDebug("LanFile: ".$scr);
+
+ }
+
+ $lanfile = $script;
}
+ else
+ {
+ $lanDefines = file_get_contents($lanfile);
+ $mes->addDebug("LanFile: ".$lanfile);
+
+ $tmp = explode(",",$script);
+ foreach($tmp as $scr)
+ {
+ if(!file_exists($scr))
+ {
+ $mes->addError("Couldn't Load: ".$scr);
+ continue;
+ }
+ $compare[$scr] = file_get_contents($scr);
+ $mes->addDebug("Script: ".$scr);
+ }
+ }
+
+
- $mes = e107::getMessage();
+
if(!$compare)
{
@@ -1046,12 +1117,11 @@ function unused($lanfile,$script)
$mes->add("Couldn't read ".$lanfile, E_MESSAGE_ERROR);
}
-
$srch = array("");
$lanDefines = str_replace($srch,"",$lanDefines);
$lanDefines = explode("\n", $lanDefines);
- if($lanDefines && $compare)
+ if($lanDefines)
{
$text = $frm->open('language-unused');
$text .= "