Просмотр файла admin/theme/templates.php

Размер файла: 8.05Kb
  1. <?
  2. echo '<div class="mainname">'.Lang::__('Подробнее о Шаблонах').'</div>';
  3. echo '<div class="mainpost">';
  4. //Подключаем необходимые стили для работы с подвеской
  5. echo '<link rel="stylesheet" href="../../engine/skins/mirror/codemirror.css">
  6. <link rel=stylesheet href="../../engine/skins/mirror/lib/codemirror.css">
  7. <script src="../../engine/skins/mirror/lib/codemirror.js"></script>
  8. <script src="../../engine/skins/mirror/mode/xml/xml.js"></script>
  9. <script src="../../engine/skins/mirror/mode/javascript/javascript.js"></script>
  10. <script src="../../engine/skins/mirror/mode/css/css.js"></script>
  11. <script src="../../engine/skins/mirror/mode/htmlmixed/htmlmixed.js"></script>
  12. <script src="../../engine/skins/mirror/addon/edit/matchbrackets.js"></script>
  13. <style>
  14. .CodeMirror { width: 99%;height: 463px; border: solid 1px #BBB; }
  15. .CodeMirror pre { padding-left: 7px; line-height: 1.25; }
  16. </style>';
  17. //Если нажата кнопка сохранение ....
  18. if($_POST['submit']){
  19. //Проверяем есть ли название
  20. if($_POST['filename']) {
  21. $data = $_POST['fileentry']; //Парамерт []
  22. $data = get_magic_quotes_gpc() ? stripslashes($data) : $data; //__ 1
  23. $fp = fopen($_POST['filename'], 'w'); //Обновляем файл выбранный
  24. fwrite($fp, $data); // ? ___
  25. fclose($fp); // ! ___
  26. echo engine::success(Lang::__('Файл успешно сохранен')); // Уведомление
  27. echo '</div>';
  28. echo engine::home(array(Lang::__('Назад'),'')); // переадресация
  29. exit;
  30. }
  31. }
  32. //Пункт работы с шаблонами
  33. switch($act):
  34. // По умолчанию
  35. default:
  36. // Путь папки
  37. if($_GET['path']) {
  38. $path = $_GET['path'];
  39. }
  40. else{
  41. //Если нет то по умолчанию
  42. $path=$_GET['path']='../../templates';
  43. }
  44. //Вывод
  45. if(strlen($_SERVER['DOCUMENT_ROOT'])<strlen($path)){
  46. echo '<p class="posts"><a href="?path='.substr($path, 0, strrpos($path, '/')).'"><strong>../'.Lang::__('назад').'</strong></a></p>';
  47. }
  48. //Получанием данные из подкаталогов
  49. foreach(glob($path.'/*') as $obj) {
  50. $filename=substr($obj, strlen($path)+1, strlen($obj)-strlen($path));
  51. //Если доступны папки выводим их
  52. if(is_dir($obj)) {
  53. echo '<div class="row"><img src="../icons/theme/directory.png"> <a href="?do=templates&path='.$obj.'">'.$filename.'/</a></div>';
  54. }
  55. else {
  56. if($_GET['path']) {
  57. //Убираем названия остовляем только расщирение файлов (Картинок)
  58. $file_img = engine::format($filename);
  59. //Если имеются такие расщирения png,gif,jpg
  60. if($file_img == 'png' or $file_img == 'gif' or $file_img == 'jpg') {
  61. // То советую не заполнять данный пункт!
  62. }elseif($file_img == 'js') { //Если есть js то выводим ее
  63. echo '<div class="row"><img src="../icons/theme/js.png"> <a href="?do=templates&act=edit&path='.$_GET['path'].'&file='.$obj.'">'.$filename.'</a></div>';
  64. }elseif($file_img == 'css') { //Если имеется css файлы то выводим их
  65. echo '<div class="row"><img src="../icons/theme/css.png"> <a href="?do=templates&act=edit&path='.$_GET['path'].'&file='.$obj.'">'.$filename.'</a></div>';
  66. }elseif($filename == 'template.ini') { //Попытка вывода template.ini файла
  67. //Не нужно выводит ini параметр
  68. }else { //Если из выше перечисленных нету то выводим этот параметр где будут указываться все необходимы поля
  69. echo '<div class="row"><img src="../icons/theme/html.png"> <a href="?do=templates&act=edit&path='.$_GET['path'].'&file='.$obj.'">'.$filename.'</a></div>';
  70. }
  71. }
  72. else{
  73. echo '<div class="row"><a href="?file='.$obj.'"></a></div>';
  74. }
  75. }
  76. }
  77. echo '</div>';
  78. echo engine::home(array(Lang::__('Назад'),'index.php'));
  79. break;
  80. //Начинаем редактирование шаблона
  81. case 'edit':
  82. ///Получает категорию
  83. if($_GET['path']){
  84. echo '<form action="?do=templates&act=edit&path='.$_GET['path'].'&file='.$_GET['file'].'" method=post>';
  85. }
  86. else {
  87. echo '<form action="?do=templates" method="post">';
  88. }
  89. //ЕСЛИ файл имеется выводим
  90. if($_GET['file']) {
  91. $filename = $_GET['file'];
  92. //Путь файла
  93. echo '<div class="subpost">'.Lang::__('Путь файла:').'<b>'.$filename.'</b></div>';
  94. //Небольше описание
  95. echo '<div class="subpost">'.Lang::__('Для поиска по шаблону используйте горячие клавиши: Ctrl-F начать поиск, Ctrl-G продолжить поиск.').'</div>';
  96. //Необходимый скрытый параметр
  97. echo '<input type=hidden name=filename value="'.$filename.'">';
  98. }
  99. else {
  100. echo Lang::__('Ничего не выбрано');
  101. }
  102. //Выводим в текстовое поле полученный текст
  103. echo '<textarea id="code" name="fileentry">';
  104. // Text true
  105. if($_GET['file']) {
  106. $filerows = file($filename);
  107. foreach($filerows as $value) {
  108. echo htmlspecialchars($value);
  109. }
  110. }
  111. echo '</textarea>';
  112. //Кнопка сохранения
  113. echo '<div class="submit"><input class="Button" type=submit value="'.Lang::__('Сохранить').'" name="submit"> или <span class="cancel"><a href="index.php?do=templates">'.Lang::__('Отменить').'</a></span></div>';
  114. echo '</form>';
  115. //Если не понимаете для чего параметр (советую вообще ее не трогать чтобы не испортить модуль)
  116. echo '<script>
  117. var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
  118. lineNumbers: true,
  119. mode: "text/html",
  120. mode: "text/css",
  121. lineNumbers: true,
  122. matchBrackets: true,
  123. continueComments: "Enter",
  124. extraKeys: {"Ctrl-Q": "toggleComment"}
  125. });
  126. </script>';
  127. echo '</div>';
  128. echo engine::home(array(Lang::__('Назад'),'index.php?do=templates'));
  129. break;
  130.  
  131. endswitch; // Exit
  132. echo '</div>';
  133. ?>