View file admin/theme/templates.php

File size: 8.05Kb
<?
echo '<div class="mainname">'.Lang::__('Подробнее о Шаблонах').'</div>';
echo '<div class="mainpost">';
    //Подключаем необходимые стили для работы с подвеской
    echo '<link rel="stylesheet" href="../../engine/skins/mirror/codemirror.css">
    <link rel=stylesheet href="../../engine/skins/mirror/lib/codemirror.css">
    <script src="../../engine/skins/mirror/lib/codemirror.js"></script>
    <script src="../../engine/skins/mirror/mode/xml/xml.js"></script>
    <script src="../../engine/skins/mirror/mode/javascript/javascript.js"></script>
    <script src="../../engine/skins/mirror/mode/css/css.js"></script>
    <script src="../../engine/skins/mirror/mode/htmlmixed/htmlmixed.js"></script>
    <script src="../../engine/skins/mirror/addon/edit/matchbrackets.js"></script>
    <style>
        .CodeMirror { width: 99%;height: 463px; border: solid 1px #BBB; }
        .CodeMirror pre { padding-left: 7px; line-height: 1.25; }
    </style>';
        //Если нажата кнопка сохранение ....
        if($_POST['submit']){
		    //Проверяем есть ли название
            if($_POST['filename']) { 
                $data = $_POST['fileentry']; //Парамерт []
                $data = get_magic_quotes_gpc() ? stripslashes($data) : $data;  //__ 1
                $fp = fopen($_POST['filename'], 'w'); //Обновляем файл выбранный
                    fwrite($fp, $data); // ? ___
                    fclose($fp); // ! ___
                echo engine::success(Lang::__('Файл успешно сохранен')); // Уведомление
				echo '</div>';
				echo engine::home(array(Lang::__('Назад'),'')); // переадресация
				exit;
		    } 
        }
		    //Пункт работы с шаблонами
            switch($act):
			    // По умолчанию
                default:
				// Путь папки
                if($_GET['path'])  {
	                $path = $_GET['path'];
                }
                else{
				    //Если нет то по умолчанию 
	                $path=$_GET['path']='../../templates';
                }   
				    //Вывод
	                if(strlen($_SERVER['DOCUMENT_ROOT'])<strlen($path)){
    	                echo '<p class="posts"><a href="?path='.substr($path, 0, strrpos($path, '/')).'"><strong>../'.Lang::__('назад').'</strong></a></p>'; 
	                }
					    //Получанием данные из подкаталогов
                        foreach(glob($path.'/*') as $obj) { 
                            $filename=substr($obj, strlen($path)+1, strlen($obj)-strlen($path)); 
							    //Если доступны папки выводим их
                                if(is_dir($obj)) {
				  				    echo '<div class="row"><img src="../icons/theme/directory.png"> <a href="?do=templates&path='.$obj.'">'.$filename.'/</a></div>';
				                }
				                else { 
                                    if($_GET['path']) {
									    //Убираем названия остовляем только расщирение файлов (Картинок)
						                $file_img = engine::format($filename);
										    //Если имеются такие расщирения png,gif,jpg
							                if($file_img == 'png' or $file_img == 'gif' or $file_img == 'jpg') {
							                    // То советую  не заполнять данный пункт!
							                }elseif($file_img == 'js') { //Если есть js то выводим ее
							                    echo '<div class="row"><img src="../icons/theme/js.png">  <a href="?do=templates&act=edit&path='.$_GET['path'].'&file='.$obj.'">'.$filename.'</a></div>'; 
							                }elseif($file_img == 'css') { //Если имеется css файлы то выводим их
							                    echo '<div class="row"><img src="../icons/theme/css.png">  <a href="?do=templates&act=edit&path='.$_GET['path'].'&file='.$obj.'">'.$filename.'</a></div>'; 
							                }elseif($filename == 'template.ini') { //Попытка вывода  template.ini файла
											    //Не нужно выводит ini параметр
											}else { //Если из выше перечисленных нету то выводим этот параметр где будут указываться все необходимы поля
						                        echo '<div class="row"><img src="../icons/theme/html.png">  <a href="?do=templates&act=edit&path='.$_GET['path'].'&file='.$obj.'">'.$filename.'</a></div>'; 
						                    }
					                }
                                    else{
						                echo '<div class="row"><a href="?file='.$obj.'"></a></div>'; 
                                    } 
                                }
		                }
		            echo '</div>';
		            echo engine::home(array(Lang::__('Назад'),'index.php'));
            break;
            
			//Начинаем редактирование шаблона
			case 'edit':
			    ///Получает категорию
                if($_GET['path']){
    	            echo '<form action="?do=templates&act=edit&path='.$_GET['path'].'&file='.$_GET['file'].'" method=post>'; 
	            }
                else {
	                echo '<form action="?do=templates" method="post">'; 
                }
	                //ЕСЛИ файл имеется выводим 
                    if($_GET['file']) { 
                        $filename = $_GET['file']; 
						    //Путь файла
                            echo '<div class="subpost">'.Lang::__('Путь файла:').'<b>'.$filename.'</b></div>'; 
							//Небольше описание
			                echo '<div class="subpost">'.Lang::__('Для поиска по шаблону используйте горячие клавиши: Ctrl-F начать поиск, Ctrl-G продолжить поиск.').'</div>';
                            //Необходимый скрытый параметр
							echo '<input type=hidden name=filename value="'.$filename.'">'; 
                    } 
		            else { 
		                echo Lang::__('Ничего не выбрано'); 
		            }
					    //Выводим в текстовое поле полученный текст
                        echo '<textarea id="code" name="fileentry">'; 
                            // Text true
						    if($_GET['file']) { 
                                $filerows = file($filename); 
                                    foreach($filerows as $value) { 
                                        echo htmlspecialchars($value); 
                                    } 
                            } 
                        echo '</textarea>'; 
					//Кнопка сохранения
                    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>'; 
                echo '</form>';
			//Если не понимаете для чего параметр (советую вообще ее не трогать чтобы не испортить модуль)	
	        echo '<script>
                var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
                    lineNumbers: true,
                    mode: "text/html",
	                mode: "text/css",  
	                lineNumbers: true,
                    matchBrackets: true,
                    continueComments: "Enter",
                    extraKeys: {"Ctrl-Q": "toggleComment"}
                });
            </script>';
	        
			echo '</div>';
	        echo engine::home(array(Lang::__('Назад'),'index.php?do=templates'));
        break;

        endswitch; // Exit
echo '</div>';
?>