<?php
/*
Автор скрипта: Juse
Модификация: Jahak
*/

include_once 'config.php';
include_once 'head.php';
$sf = str_replace('../', '', $_GET['fid']);
// $sf = strtolower(substr($_GET['fid'], 1 + strrpos($_GET['fid'], "/")));
?>
<div class="bmenu">Файл: <b><?php echo $sf; ?></b></div>
<div class="list2">
<?php
if (!file_exists($_GET['fid'])){
    echo '<div class="rmenu"><b>Ошибка! Файл не найден!</b></div></div>';
    include_once "foot.php";
    exit;
}
if(!is_writeable($_GET['fid'])){
    echo '<div class="rmenu">Внимание! Файл не доступен для записи!<br />Редактирование не возможнo..</div>';
}
if ($_GET['action']=="edit"){
    $file = file($_GET['fid']);
    $total = count($file);
    for ($i=0; $i<$total; $i++) {
        if($_GET['ai'] == $i) {
            $fp = fopen($_GET['fid'], "a+");
            flock($fp, LOCK_EX);
            ftruncate($fp, 0);
            for ($i=0; $i<sizeof($file); $i++) {
                if ($_GET['ai'] != $i){
                    fputs($fp, $file[$i]);
                } else {
                    fputs($fp, $_POST['name']."\r\n");
                }
            }
            fflush($fp);
            flock($fp, LOCK_UN);
            fclose($fp);
        }
    }
    $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
    header('Location: ?fid='.$_GET['fid'].'&start='.(int)$_GET['start'].'');
    exit;
}
if($_GET['action']=="newstr"){
    $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
    echo '<form action="?action=newstrok&amp;fid='.$_GET['fid'].'&amp;ai='.$_GET['ai'].'&amp;start='.(int)$_GET['start'].'" method="post">' .
    'Новая строка<br />Строка: #'.($_GET['ai']+2).'<br />' .
    '<textarea rows="'.$udata[4].'" name="name"></textarea><br />' .
    '<input type="submit" value="Вставить"/></form></div>' .
    '<div class="menu"><a href="?fid='.$_GET['fid'].'&amp;start='.(int)$_GET['start'].'#'.($_GET['ai']+1).'">Назад</a></div>';
    include_once "foot.php";
    exit;
}
if($_GET['action']=="newstrok"){
    $_GET['fid'] = str_replace('%2f', '/', $_GET['fid']);
    $file = file($_GET['fid']);
    $fp = fopen($_GET['fid'], "a+");
    $total = count($file); 
    if (!$total){
        $total='';
    }
    for ($i=0; $i<$total; $i++){
        if($_GET['ai']==$i){
            flock ($fp, LOCK_EX);
            ftruncate($fp, 0); 
            for($i=0; $i<sizeof($file); $i++){
                if ($_GET['ai']!=$i){
                    fputs($fp, $file[$i]);
                } else {
                    $bizname = $file[$i];
                    fputs($fp, $bizname.$_POST['name']."\r\n");
                }
            } 
            fflush ($fp);
            flock($fp, LOCK_UN);
            fclose($fp);
        }
    }
    $_GET['fid'] = str_replace("/", "%2f", $_GET['fid']);
    header('Location: ?fid='.$_GET['fid'].'&start='.(int)$_GET['start'].'');
    exit;
}
if($_GET['action']=="delstr"){
    if ($_GET['r']=="1"){
        $file = file($_GET['fid']);
        $fp = fopen($_GET['fid'], "w");
        flock($fp, LOCK_EX);
        for ($i=0; $i< sizeof($file); $i++){
            if ($i==$_GET['ai']){
                unset($file[$i]);
            }
        }
        fputs($fp, implode($file));
        flock ($fp, LOCK_UN);
        fclose($fp);
        $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
        header('Location: ?fid='.$_GET['fid'].'&start='.(int)$_GET['start'].'');
        exit;
    } else {
        $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']); 
        echo '<b>Вы подтверждаете что хотите удалить строку '.($_GET['ai']+1).'?</b><br /><a href="?action=delstr&r=1&fid='.$_GET['fid'].'&ai='.$_GET['ai'].'&start='.(int)$_GET['start'].'">Да</a>&nbsp;/&nbsp;<a href="?fid='.$_GET['fid'].'&start='.(int)$_GET['start'].'#'.($_GET['ai']+1).'">Нет</a></div>';
    }
}
if($_GET['action']=="ob"){
    $fp = fopen($_GET['fid'], "a+");
    flock ($fp, LOCK_EX);
    fputs($fp, "".$_POST['name']."\r\n");
    flock ($fp, LOCK_UN);
    fclose($fp);
    $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
    header('Location: ?fid='.$_GET['fid'].'&amp;start='.(int)$_GET['start'].'');
}
if($_GET['action']=="sstring"){
    if(empty($_GET['fid'])){
        echo 'Данные утеряны!';
        include'foot.php';
        exit;
    }
    if(empty($_GET['s'])){
        $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
?>
<form action="edit.php?action=sstring&amp;fid=<?php echo $_GET['fid']; ?>&amp;s=yes" method="post">
Что ищем?<br />
<input type="text" name="text" value="" /><br />
<input type="submit" value="Искать"/>
</form>
</div>
<div class="menu"><a href="edit.php?fid=<?php echo $_GET['fid']; ?>">Назад</a></div>
<?php
    } else {
        $fle = $_GET['fid'];
        $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
        $text = $_POST['text'];
        $file = file($fle);
        $cou = count($file);
        for($i=0; $i<$cou; $i++){
            if(eregi($text, $file[$i])){
                $t1 = ceil($i/$udata[2]);
                $stra = $t1*10+$udata[2];
                echo ($i+1).'. <a href="edit.php?action=viewstr&amp;fid='.$_GET['fid'].'&amp;ai='.$i.'&amp;start='.$stra.'">'.htmlspecialchars($file[$i], ENT_QUOTES, "UTF-8").'</a><br />';
                $pp++;
            }
        }
        if(empty($pp)){
            echo 'Ничего не найдено';
        }
        echo '<hr noshade width="540"><br /></div><div class="menu"><a href="edit.php?fid='.$_GET['fid'].'">назад</a></div>';
    }
}
// if($_GET['action']=="pstring"){
    // if(empty($_GET['s'])){
        // $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
?>
<!-- <form action="edit.php?action=pstring&amp;fid=<?php echo $_GET['fid']; ?>&amp;s=yes" method="post">Введите номер строки:<br /><input type="text" name="nom" size="6" value="1"/><br /><input type="submit" value="Перейти"/></form> -->
<?php
    // } else {
        // $nom = (int)$_POST['nom'];
        // $ill = str_replace('%2f','/',$_GET['fid']);
        // $cou = count(file($ill));
        // if($nom<=$cou) {
            // $t1 = ceil($nom/$udata[2]);
            // $stroka = $t1*10+$udata[2];
        // } else {
            // $t1 = ceil($cou/$udata[2]);
            // $stroka = $t1*10+$udata[2];
        // }
        // $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
        // header('Location: ?fid='.$_GET['fid'].'&start='.$stroka.'');
    // }
// }

if($_GET['action']=="obs"){
    $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
    echo 'Новая строка:<br />' .
    '<form action="?action=ob&amp;fid='.$_GET['fid'].'&amp;start='.(int)$_GET['start'].'" method="post">' .
    '<textarea rows="'.$udata[4].'" name="name"></textarea><br />' .
    '<input type="submit" value="Вставить"/></form>' .
    '<a href="?fid='.$_GET['fid'].'&amp;start='.(int)$_GET['start'].'">Назад</a></div>';
}

if($_GET['action']=="viewstr"){
    $file = file($_GET['fid']);
    $_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
    echo '<form action="?action=edit&amp;fid='.$_GET['fid'].'&amp;ai='.$_GET['ai'].'&amp;start='.(int)$_GET['start'].'" method="post">';
    $total = count($file);
    for ($i=0; $i<$total; $i++){
        if($_GET['ai']==$i){
            $file[$i] = htmlspecialchars($file[$i], ENT_QUOTES, 'UTF-8');
            echo 'Строка: #'.(int) ($_GET['ai']+1).'<br />' .
            '<textarea name="name" rows="'.$udata[4].'">'.rtrim($file[$i]).'</textarea><br />';
        }
    }
    echo '<input type="submit" value="Изменить" /></form></div>' .
    '<div class="menu"><a href="?fid='.$_GET['fid'].'&amp;start='.(int)$_GET['start'].'#'.(int) ($_GET['ai']+1).'">Назад</a></div>';
    include_once "foot.php";
    exit;
}
if(!isset($_GET['action'])){
    $file = file($_GET['fid']);
    $_GET['fid'] = str_replace("/", "%2f", $_GET['fid']);
    $total = count($file);
    $start = (int)$_GET['start'];
    if($start<0 || $start>$total) {
        $start = 0;
    }
    if ($total<$start+$udata[2]) {
        $end = $total;
    } else {
        $end = $start+$udata[2];
    }
    for ($i = $start; $i < $end; $i++) {
        $file[$i] = htmlspecialchars($file[$i], ENT_QUOTES, 'UTF-8');
        echo "\t" . '<a name="'.($i+1).'"></a>'.($i+1).'. <a href="?action=viewstr&amp;fid='.$_GET['fid'].'&amp;ai='.$i.'&amp;start='.$start.'" title="Редактировать '.($i+1).' строку">' . $file[$i] . '</a>&nbsp;(<a href="?action=newstr&amp;fid='.$_GET['fid'].'&amp;ai='.$i.'&amp;start='.$start.'" title="Новая '.($i+2).' строка"><img src="images/add.gif" alt="I" /></a>&nbsp;|&nbsp;<a href="?action=delstr&amp;fid='.$_GET['fid'].'&amp;ai='.$i.'&amp;start='.$start.'" title="Удалить '.($i+1).' строку"><img src="images/dl.gif" alt="X" /></a>)<br />' . "\n";
    }
    if($total<1) {
        echo $i.': <a href="?action=obs&amp;fid='.$_GET['fid'].'&amp;start='.$start.'" title="Новая строка"><img src="images/add.gif" alt="I" /></a>';
    }
    echo '<hr noshade width="540">';
    // echo '<br />';
    // if($start!= 0){
        // echo '<a href="?fid='.$_GET['fid'].'&amp;start='.($start-$udata[2]).'">&#60;&#60;&#60; предыдущая</a>&nbsp;|&nbsp;';
    // }
    // if($total>$start+20) {
        // echo '<a href="?fid='.$_GET['fid'].'&amp;start='.($start+$udata[2]).'">следующая &#62;&#62;&#62;</a>';
    // }
    $ba = ceil($total/$udata[2]);
    $ba2 = $ba*$udata[2]-$udata[2];
    echo '<br />Стр:';
    $asd = $start-($udata[2]*3);
    $asd2 = $start+($udata[2]*4);
    if($asd<$total && $asd>0){
        echo ' <a href="?fid='.$_GET['fid'].'&amp;start=0"><u>|1|</u></a>&nbsp;...&nbsp;';
    }
    for($i=$asd; $i<$asd2;){
        if($i<$total && $i>=0){
            $ii = floor(1+$i/$udata[2]);
            if ($start==$i){
                echo ' <b>('.$ii.')</b>';
            } else {
                echo ' <a href="?fid='.$_GET['fid'].'&amp;start='.$i.'"><u>|'.$ii.'|</u></a>';
            }
        }
        $i = $i+$udata[2];
    }
    if($asd2<$total){
        echo '&nbsp;...&nbsp;<a href="?fid='.$_GET['fid'].'&amp;start='.$ba2.'"><u>|'.$ba.'|</u></a>';
    }
    $fl = $f;
    echo '</div>' .
    '<div class="menu">Всего строк: '.(int)$total.'<br />';
    $_GET['fid'] = str_replace('%2f', '/', $_GET['fid']);
    $up = dirname(realpath($_GET['fid']));
    $up = str_replace('/', '%2f', $up);
    $eid = str_replace('/', '%2f', $_GET['fid']);
    echo '<!-- <a href="edit.php?action=pstring&amp;fid='.$eid.'"><u>К</u> строке</a><br /> -->' .
    '<a href="edit.php?action=sstring&amp;fid='.$eid.'"><u>И</u>скать</a><br />' .
    '<a href="index.php?action=viewfile&amp;fid='.$_GET['fid'].'"><u>Н</u>азад</a>';
    $smf = str_replace("%2f", "/", $_GET['fid']);
    $sf = str_replace($root, "", $smf);
    $sf = str_replace("..", "", $sf);
    echo '<br /><a href="http://'.$_SERVER['HTTP_HOST'].$sf.'"><u>П</u>росмотреть</a><br />' .
    '<a href="symbols.php" target="_blank"><u>H</u>TML codes</a></div>';
}
include_once 'foot.php';