PageRenderTime 42ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/Upload/DoYouHaoBaby/Tools/App.php

http://dyhb-frame.googlecode.com/
PHP | 212 lines | 191 code | 14 blank | 7 comment | 28 complexity | 9f2037379af0b282a313bae150e3813a MD5 | raw file
  1. <?php
  2. /* [DoYouHaoBaby!] (C)Dianniu From 2010.
  3. ????????($) */
  4. /** ??PHP???? */
  5. ini_set('default_charset','utf-8');
  6. /** ????? */
  7. $sLang=!empty($_GET['lang']) ? ucfirst(addslashes($_GET['lang'])) : 'Zh-cn';
  8. if(is_file(dirname(__FILE__).'/App/'.$sLang.'/App.lang.php')){
  9. $arrLang=(array)include(dirname(__FILE__).'/App/'.$sLang.'/App.lang.php');
  10. }
  11. else{
  12. $arrLang=(array)include(dirname(__FILE__).'/App/Zh-cn/App.lang.php');
  13. }
  14. /** ?????????? */
  15. if(is_file('./App/AppLock.php')){
  16. exit(sprintf("This Tool Is Locked?Please Delete File < %s > ,Then You Can use it?",'./App/AppLock.php'));
  17. }
  18. /** ???????? */
  19. if(isset($_GET['action']) && $_GET['action']=='lock'){
  20. $sLock ="DoYouHaoBaby Framework App Tools Is Locked !";
  21. $sPath='./App/AppLock.php';
  22. if(!file_put_contents($sPath,$sLock)){// ??????
  23. exit(sprintf('Create Locked File?%s failed?',$sPath));
  24. }
  25. else{
  26. header("Location: App.php");// ??
  27. }
  28. }
  29. function listDir($sDir,$bFullPath=FALSE){
  30. if(is_dir($sDir)){
  31. $hDir=opendir($sDir);
  32. while(($sFile=readdir($hDir))!== false){
  33. if((is_dir($sDir."/".$sFile)) && $sFile!="." && $sFile!=".." && $sFile!='_svn'){
  34. if($bFullPath===TRUE){$arrFiles[]=$sDir."/".$sFile;}
  35. else{$arrFiles[]=$sFile;}
  36. }
  37. }
  38. closedir($hDir);
  39. return $arrFiles;
  40. }
  41. else{
  42. return false;
  43. }
  44. }
  45. $arrListLang=listDir('./App');
  46. /** ??????????? */
  47. if(isset($_POST['app_name'])){
  48. $arrError=array();// ????
  49. $sAppName=preg_replace('[^a-z0-9_]', '', $_POST['app_name']);// ??App_name??????
  50. if(!$sAppName || $sAppName != $_POST['app_name']){
  51. $arrError[]=sprintf($arrLang[0], $sAppName);
  52. }
  53. $sAppPath=trim($_POST['app_path']);
  54. $sReallyPath=realpath($sAppPath);
  55. if(!$sAppPath || $sReallyPath == dirname(__FILE__) || !is_dir($sReallyPath)){
  56. $arrError[]=sprintf($arrLang[1], $sAppPath);
  57. }
  58. else{
  59. $sAppPath=$sReallyPath;
  60. }
  61. $sEnterPath=trim($_POST['enter_path']);// ???????????????
  62. $bIndependent=$_POST['app_type']=='independent' ? true :false;
  63. if($bIndependent and empty($sEnterPath)){
  64. $arrError[]=sprintf($arrLang[2], $sEnterPath);
  65. }
  66. if($bIndependent and substr($sEnterPath,-4)!='.php'){
  67. $arrError[]=sprintf($arrLang[3], $sEnterPath);
  68. }
  69. if($bIndependent===false){
  70. $sEnterPath='';
  71. }
  72. if(empty($arrError)){
  73. require dirname(dirname(__FILE__)) . '/Extension/Generator/GeneratorApplication.class.php';// ??????
  74. ob_start();
  75. $oApp=new GeneratorApplication();
  76. $oApp->APP($sAppName, $sAppPath,$sEnterPath);
  77. $sOutput=ob_get_clean();
  78. $sAppPath=$sAppName='';
  79. }
  80. }
  81. else{
  82. $arrError=array();
  83. $sAppPath=dirname(dirname(dirname(__FILE__)));
  84. $sAppName='home';
  85. $sEnterPath=$sAppPath.'/index.php';
  86. $sOutput='';
  87. $bIndependent=false;
  88. }
  89. ?>
  90. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  91. <html xmlns="http://www.w3.org/1999/xhtml">
  92. <head>
  93. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  94. <title><?php echo $arrLang[4];?></title>
  95. <style type="text/css">
  96. body{font:400 14px/25px '????',Tahoma,sans-serif;background:#F7F7F7;}
  97. a{text-decoration:none; color:#007979; padding:0 5px;}
  98. a:hover{color:#FF0000;}
  99. img{border:0}
  100. input[type="text"]{ color:red; border-bottom:2px dashed blue;border-top:1px solid #fff;border-left:1px solid #fff;border-right:1px solid #fff;}
  101. h1{padding:10px 0;}
  102. h2{font-size:14px;padding:10px;color:#000;border:1px solid #e0e0e0;background:#ffd;}
  103. .hello{width:750px;height:100%;padding:10px; margin:50px auto 0; border:1px solid #DFDFDF;overflow:hidden;background:#fff;}
  104. .output{color: #000; background-color: #45ccf5; border: 1px solid #000; padding: 10px; margin: 10px;width:95%; }
  105. .error{ background:yellow; padding:5px; border:2px solid #000;}
  106. .title{ color:#007979; }
  107. .lang_list{ border:1px solid #000;background:#ccc;padding-left:5px;padding-bottom:5px;padding-right:5px; }
  108. .lang_title{ font-weight:bold;margin-left:20px;color:#000;margin-top:10px; }
  109. .lang_list ul{ list-style:none; }
  110. .lang_list ul li{ float:left; }
  111. .lock{ margin-top:10px;border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted;background:#fdd;padding-left:5px;padding-bottom:5px;padding-right:5px; }
  112. .lock_title{ font-weight:bold;margin-left:20px;color:#000;margin-top:10px; }
  113. .description{ color:#ccc; }
  114. .footer{font-size:14px;padding:5px;color:#000;border:1px solid #e0e0e0;background:#ccc;text-align:center;}
  115. .warning .title{ color:red; }
  116. .warning{ color:gray; }
  117. .clear{ clear:both; }
  118. </style>
  119. </head>
  120. <body>
  121. <div class="hello">
  122. <h1><a href="http://doyouhaobaby.net" title=""><img src="../LibCom/Img/Logo.gif" title="DoYouHaoBaby???"/></a></h1>
  123. <h2><?php echo $arrLang[5];?></h2>
  124. <?php if (!empty($sOutput)): ?>
  125. <p class='output'>
  126. <?php echo nl2br(htmlspecialchars($sOutput)); ?>
  127. </p>
  128. <?php else: ?>
  129. <?php if (!empty($arrError)): ?>
  130. <p class="error">
  131. <?php echo implode('<br />', $arrError); ?>
  132. </p>
  133. <?php endif; ?>
  134. <div class="lang_list">
  135. <div class="lang_title">Please select your language !</div>
  136. <select name="lang-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
  137. <option value="">-- Please select your language --</option>
  138. <?php foreach($arrListLang as $sListLang):?>
  139. <option value="?lang=<?php echo $sListLang;?>" <?php if(strtolower($sLang)==$sListLang):?>selected<?endif;?>><?php echo $sListLang;?></option>
  140. <?endforeach;?>
  141. </select>
  142. </div>
  143. <div class="lock">
  144. <div class="lock_title">Please Lock This Tools After User it!</div>
  145. <a href="app.php?action=lock" title=""><img src="./App/Lock.png"/></a>
  146. </div>
  147. <form id="form1" name="form1" method="post" action="App.php?lang=<?php echo strtolower($sLang);?>">
  148. <p>
  149. <strong class="title"><?php echo $arrLang[6];?></strong>
  150. <input name="app_name" type="text" id="app_name" size="20" value="<?php echo htmlspecialchars($sAppName); ?>" />
  151. <br />
  152. <span class="description"><?php echo $arrLang[7];?></span>
  153. </p>
  154. <p>
  155. <strong class="title"><?php echo $arrLang[8];?></strong>
  156. <input name="app_path" type="text" id="app_path" size="60" value="<?php echo htmlspecialchars($sAppPath); ?>" />
  157. <br />
  158. <span class="description"><?php echo $arrLang[9];?></span>
  159. </p>
  160. <p>
  161. <strong class="title"><?php echo $arrLang[10];?></strong>
  162. <br />
  163. <p>
  164. <input type="radio" name="app_type" value="virtual" <?php if(!$bIndependent):?>checked="checked"<?endif;?> onclick="document.getElementById('hidden1').style.display='none';">
  165. <label><?php echo $arrLang[11];?></label><br />
  166. <span class="description"><?php echo $arrLang[12];?></span>
  167. </p>
  168. <p>
  169. <input type="radio" name="app_type" value="independent" onclick="document.getElementById('hidden1').style.display='block';" <?php if($bIndependent):?>checked="checked"<?endif;?>>
  170. <label><?php echo $arrLang[13];?></label><br />
  171. <span class="description"><?php echo $arrLang[14];?></span>
  172. </p>
  173. <p id="hidden1" style="display:none;">
  174. <strong class="title"><?php echo $arrLang[15];?></strong>
  175. <input name="enter_path" type="text" size="60" value="<?php echo htmlspecialchars($sEnterPath); ?>" />
  176. <br />
  177. <span class="description"><?php echo $arrLang[16];?></span>
  178. </p>
  179. </p>
  180. <p>
  181. <label>
  182. <input type="submit" name="create" id="create" value="<?php echo $arrLang[17];?>" />
  183. </label>
  184. </p>
  185. <p class="warning">
  186. <strong class="title"><?php echo $arrLang[18];?></strong>
  187. <br />
  188. <?php echo $arrLang[19];?>
  189. <br>
  190. <?php echo $arrLang[20];?>
  191. <br><?php echo $arrLang[21];?>
  192. </p>
  193. </form>
  194. <?php endif; ?>
  195. <div class="footer"><?php echo $arrLang[22];?></div>
  196. </div>
  197. </body>
  198. </html>