комбинация от два урока - въпрос

crystalline

Registered
здравейте,
става дума за ето тази система за новини http://web-tourist.net/login/login/view.php?st=775, която е страхотна, ноо примерно аз се нуждая от възможност за редактиране на файловете...staf ме посъветва да комбинирам със системата за ъплоуд и едит http://web-tourist.net/login/login/view.php?st=801 и от там да си редактирам файловете...ок, но при мен ъплоуд/едит системата не тръгна на локалхост...

Успешно качихте файл 050k--k35-022-3.gif
ноо няма индексиране, самата папка в която качвам е празна...

таа едва ли никой не се е сетил да добави тази възможност за едит на новините..би било страхотно. :?: самата система наистина кефи...въпреки че не е с БД, ноо ще го преглътна. само да се намери някой герой който да каже как да се подкарат нещата или пък да преложи алтернатива да редактиране на новините...

поздрави :)

всъщност това се случва и с двете версии на file manager-a
 
хм ... не виждам смисъл от това да комбнираш 2-та урока ако искаш да можеш да едитваш новините ... просто трябва да инклуднеш файла в PHP да речем с нещо като това:

Код:
<?php
  $getID = $_GET['id'];
  $getFile = "direktoriq/" . $getID . ".html";
  $fp = fopen($getFile,"r");
  $file = fread($fp,10000);
  echo "<form method='post' action='doedit.php'><textarea cols='30' rows='30' name='text'>" . $file . "</textarea><input type='hidden' name='id' value='" . $getID "'><br><input type='submit' name='submit' value='submit'></form>";
?>

и след това си правиш един файл doedit.php :

Код:
<?php
$getText = $_POST['text'];
$getID = $_POST['id'];
$getFile = "direktoriq/" . $getID . ".html";
$fp = fopen($getFile,"w");
$fwrite = fwrite($fp,$text);
$fclose = fclose($fp);
?>

Мисля че пак върши работа.

Трябва да промениш само direktoriq/ и на това място трябва да поставиш пътя до файловете! Така всичко което трябва да направиш е да влезеш в сървъра си и да отидеш до първият файл като сложиш отзад ?id=ID_NA_NOVINATA която искаш да промениш
 
Здравей!

Виж това:
http://web-tourist.net/forum/viewtopic.php?t=3341&postdays=0&postorder=asc&start=0

Запис на отделни редове, но в един файл.
Мисля, че може да ти свърши работа, ако решиш да доокрупняваш скрипта...

А иначе, по предложението на LinuxBГ, за да не пишеш връзките на ръка, може да добавиш и това:
Четене на директорията, в която са файловете с новините - получаваме имената им, в случая използвам readdir(); но можеш да я смениш с новата scandir();
За нея виж тук:
http://bg2.php.net/manual/en/function.scandir.php

Функцията readdir(); връща масив, обхождаме го с фор-цикъл и извличайки имената на файловете, поставяме връзки на всеки един към формата за редактиране.
Страницирането по-долу е направено с помощта на Админ, обяснения за него, може да видиш в урока му за странициране:
http://web-tourist.net/login/login/view.php?st=740

<?
$g=opendir('/дир_с_файловете');
while ($fajl= readdir( $g ) )
{
if(!is_dir($fajl) && !is_link($fajl) && $fajl != ".." && $fajl != ".") {
$fm[]=$fajl;
}
}

closedir ($g);


$broinastranica = 10;
$pageNum = 1;

if(isset($_GET['page']))
{
$pageNum =$_GET['page'];
$start = ($pageNum - 1) * $broinastranica;
}
else
{
$start=0;
}



$kolko=count ($fm);

for($i = $start; $i < ($start+$broinastranica); $i++){
$name= $fm[$i];
if ($i==$kolko) break;
echo <<< GAN
$name --- <A HREF="файл_1_на_линукс?id=$name" >Редактирай</A><BR>
GAN;
}


$maxPage = ceil($kolko/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= " [$page] ";
}
else
{
$nomeranastranici .= " <a href=\"$self?page=$page\" >$page</a> ";
}
}

if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"$self?page=$page\"> <<</a> ";

$parva = " <a href=\"$self?page=1\">Pyrva str</a> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?page=$page\"> >></a> ";

$posledna = " <a href=\"$self?page=$maxPage\" >Posledna str</a> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}


echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;
?>


За текстареа-та може да добавиш едно WRAP, за да запазиш новия ред и по-късно при листване да не получаваш един единствен параграф:

<textarea cols='30' rows='30' name='text' WRAP>

Мисля, че и в другата форма - тази за създаване на новината отсъстваше, за да имаш пренасяне на новия ред, трябва да го добавиш и там.

После при принтиране с ехо на новината използваш функцията nl2br(); за да превърнеш новия ред в <БР>-таг:

echo nl2br($прочетеното_ от_ файла);

Успех!
 

Back
Горе