[lms-dev] Sztywny zapis dokumentów

Sylwester Zdanowski sylwesterzdanowski w gmail.com
Sob, 13 Lut 2010, 23:40:22 CET


Witam,

Stworzyłem de facto częściowe rozwiazanie metody zapisu dokumentów wraz
ze zmianami wprowadzonymi w step1
Działanie wyglada następująco.
1.W pliku dokument_step2.php odczytuje z bazy danych(tablica
documentcontents )nazwę ostatniozapisanego pliku.
2.Odczytaną sumę md5 zmieniam na nazwę katalogu i pliku
3.Zapisuję na nowo plik ze zmieniona treścia.
Wykorzystuje następujący kod:
$temp= $DB->GetRow('SELECT docid, md5sum FROM documentcontents ORDER by
docid DESC');
			$file
='/usr/share/lms/documents/'.$temp['md5sum'][0].$temp['md5sum'][1].'/'.$temp['md5sum'];
			$output= '/usr/share/lms/templets/contract_2_step2.html';
			$output = $SMARTY->fetch('contract_2_step2.html'); 
			file_put_contents($file,$output); 
			echo $output;

Rozwiazanie ma słaby punkt w postaci pobierania nazwy. Jeżeli ostatni
plik zostanie dodany w miejsce skasowanego lub pomiędzy przejściem od
step1 do step2 ktoś inny utworzy dokument pobrana nazwa będzie
nieprawidłowa.
Rozwiązaniem było by przekazanie nazwy do step 1 i do step2 z
miejsca jej tworzenia w pliku documentadd.php. 
Od wskazanego pliku w zmiennych nazwa ta musi dojść do pliku
dokument_step2.php. Stworzyło by to niezawodną mozliwosć zapisu
dokumentów z wypełniona ną stałe treścia. Jedyną ceną jest przekazanie
zmiennej.
Niestety przekazania zmiennej nie udało mi się wykonać. Tymczasem inne
dane klienta przechodzą taką ścierzkę.
Alternatywę stanowi dodanie do tablicy z nazwammi klucza i zapisanie
odpowiedniej wartości w pierwotnie zapisywanym pliku dokumentu. Przy
odczycie wzoru z niewidocznego pola formularza należało by przenieść
nazwę pliku do zmiennej php.





Więcej informacji o liście lms-dev