{HEADER END}
{BLAME START}

MLAB

[/] [Server/] [GenIndex/] [GenIndex.php] -

Blame information for rev 944

Číslo řádky Revize Autor Line
1 944 miho <?php
2 944 miho
3 944 miho   error_reporting(E_ALL);               // nastavení varování při ladění
4 944 miho
5 944 miho   require_once('Common.php');           // Společné funkce
6 944 miho   require_once('TemplateEngine.php');   // Stroj pro práci s templejty
7 944 miho   require_once('DirMetadata.php');      // Modul pro načítání informace o adresářích
8 944 miho
9 944 miho   define('DIRINFO''DirInfo.txt'true);     // Jméno souboru s informacemi o adresáři
10 944 miho   define('PRJINFO''PrjInfo.txt'true);     // Jméno souboru s informacemi o projektu
11 944 miho   define('WRAP',    70true);                // Lámání řetězcových hodnot
12 944 miho
13 944 miho   define('TEMPLATEPATH''Templates'true);  // relativní cesta k templejtům
14 944 miho   $TemplateFile 'Modules.ihtml';      // přípona jazyka se doplní sama
15 944 miho
16 944 miho
17 944 miho // Stavová informace
18 944 miho // -----------------
19 944 miho //
20 944 miho // Tento skript používá pro přenesení stavu ke kliemtovi a zpět dvě stavové
21 944 miho // proměnné prostřednictvím odkazu. Jsou to:
22 944 miho //
23 944 miho // lang - zde je kód jazyka, neplatný či chybějící kód se mapuje na angličtinu
24 944 miho //
25 944 miho // path - zde se uvádí cesta vůči DOCUMENT_ROOT webu, neplatná cesta se mapuje
26 944 miho //        na cestu k root adresáři webu
27 944 miho //
28 944 miho
29 944 miho // Vyzvedni si parametry z URL
30 944 miho // ---------------------------
31 944 miho
32 944 miho // Parametr cesty z položky path
33 944 miho // Načteme, ověříme a pokud je něco špatně vracíme root
34 944 miho $Path '';
35 944 miho if (isset($_GET['path']))
36 944 miho   $Path CheckWebPath($_GET['path']);
37 944 miho if ($Path == '')
38 944 miho   $Path '/';
39 944 miho $Params['path'] = $Path;
40 944 miho
41 944 miho // Parametr jazyka z položky lang
42 944 miho // Pozor, tento parametr se nekontroluje a musí se ošetřit až při použití
43 944 miho // Předpokládá se, že neplatný jazyk se bude chovat jako angličtina
44 944 miho $Lang 'en';
45 944 miho if (isset($_GET['lang']))
46 944 miho   $Lang substr($_GET['lang'], 02);
47 944 miho $Params['lang'] = $Lang;
48 944 miho
49 944 miho
50 944 miho // Proveď zpracování templejtu nahrazovacím strojem
51 944 miho // ------------------------------------------------
52 944 miho
53 944 miho // Založ objekt templejtu
54 944 miho $Template = new TemplateEngine();
55 944 miho
56 944 miho // Načti templejt do objektu
57 944 miho $error $Template->LoadTemplate(TEMPLATEPATH.'/'.$TemplateFile$Params['lang']);
58 944 miho if ($error!='')
59 944 miho   Error($error);
60 944 miho
61 944 miho // Generuj dynamický obsah do proměnných
62 944 miho PowerFunction($Template$Params);
63 944 miho
64 944 miho // Odešli výsledek klientovi
65 944 miho echo $Template->GetPage();
66 944 miho
67 944 miho
68 944 miho function PowerFunction($Template$Params)
69 944 miho // Tato funkce vykonává maso (generuje dynamický obsah stránky do podoby pole
70 944 miho // proměnných. Toto pole se následně použije na modifikaci templejtu .
71 944 miho {
72 944 miho   // Lokálně používané prametry pěkně při ruce
73 944 miho   $Path $Params['path'];
74 944 miho   $Lang $Params['lang'];
75 944 miho
76 944 miho   // Zjisti informace o sekci (z prvního adresáře cesty)
77 944 miho   $SectionDirInfo = new DirMetadata();
78 944 miho   $SectionDirInfo->LoadDirInfo('/'.GetSection($Path).'/'.DIRINFO$Lang);
79 944 miho   
80 944 miho   // Pokud cesta sahá do sekce, která nemá popis spadneme do rootu
81 944 miho   if(!$SectionDirInfo->GetValid())
82 944 miho   {
83 944 miho     $Params['path'] = '/';
84 944 miho     $Path $Params['path'];
85 944 miho   }
86 944 miho
87 944 miho   // Zjisti informace o aktuálním adresáři
88 944 miho   $ThisDirInfo = new DirMetadata();
89 944 miho   $ThisDirInfo->LoadDirInfo($Path.'/'.DIRINFO$Lang);
90 944 miho   
91 944 miho   // HTML hlavička - doplň sekci
92 944 miho   $Template->SetVariable('InfoSection'GetSection($Path));
93 944 miho
94 944 miho   // Zkopíruj informace z DIRINFO (z adresáře sekce a pak z aktuálního adresáře)
95 944 miho   // do proměnných templejtu
96 944 miho   foreach($SectionDirInfo->DirData as $Key => $Value)
97 944 miho   {
98 944 miho     $Template->SetVariable($Key$ValueWRAP);
99 944 miho   }
100 944 miho   foreach($ThisDirInfo->DirData as $Key => $Value)
101 944 miho   {
102 944 miho     $Template->SetVariable($Key$ValueWRAP);
103 944 miho   }
104 944 miho
105 944 miho   // Klikací řádka s cestou
106 944 miho   $Template->SetVariable('InfoPath',
107 944 miho     CreateScriptLinkPath($Params$Template->GetString('InfoPathTitle')));
108 944 miho
109 944 miho
110 944 miho   // Procházej adresář
111 944 miho   // -----------------
112 944 miho
113 944 miho   
114 944 miho   // Odstraň lomítko u prázdné cesty aby se nezdvojovalo
115 944 miho   if ($Params['path']=='/')
116 944 miho     $Params['path'] = '';
117 944 miho
118 944 miho   // Objekt pro načítání informací o adresářích a projektech
119 944 miho   $DirInfo = new DirMetadata();
120 944 miho
121 944 miho   // Abych nešahal pořád do objektu, použiju proměnnou
122 944 miho   $Glue $Template->GetVariable('InfoGlue');
123 944 miho
124 944 miho   // Sem se střádá mezivýsledek
125 944 miho   // Zvlášť adresáře a projekty aby byly oddělené ve výsledku
126 944 miho   $LinesDir '';   // Adresáře
127 944 miho   $LinesPrj '';   // Projekty
128 944 miho
129 944 miho   // Procházení adresářem
130 944 miho   $Dir glob($_SERVER['DOCUMENT_ROOT'].$Path.'/*'GLOB_ONLYDIR);
131 944 miho
132 944 miho   // Vezmi jen jméno adresáře a vytvoř asociativní pole s klíči
133 944 miho   foreach ($Dir as $Key => $DirName)
134 944 miho   {
135 944 miho     $DirName basename($DirName);
136 944 miho     $NewDir[$DirName] = $DirName;
137 944 miho   }
138 944 miho   $Dir $NewDir;
139 944 miho   unset($NewDir);
140 944 miho
141 944 miho   // Setřídění adresářů podle preferovaného třídění ze [SortPreferences]
142 944 miho   $NewDir = array();
143 944 miho   $Sort $ThisDirInfo->GetVariable('SortPreferences');  // vzorové třídění
144 944 miho   if ($Sort!='')
145 944 miho   {
146 944 miho     $Sort explode("\n"$Sort);
147 944 miho     // Najdi a přendej nalezené položky
148 944 miho     foreach ($Sort as $Value)
149 944 miho     {
150 944 miho       $Value trim($Value);
151 944 miho       if (isset($Dir[$Value]))
152 944 miho       {
153 944 miho         // Zařaď do nového pole
154 944 miho         $NewDir[] = $Value;
155 944 miho         // Vyhoď ze starého
156 944 miho         unset($Dir[$Value]);
157 944 miho       }
158 944 miho     }
159 944 miho     // Přendej zbylé položky
160 944 miho     foreach ($Dir as $Value)
161 944 miho     {
162 944 miho       $NewDir[] = $Value;
163 944 miho     }
164 944 miho     $Dir $NewDir;
165 944 miho     unset($NewDir);
166 944 miho   }
167 944 miho   
168 944 miho   // Zpracování položek
169 944 miho   foreach ($Dir as $DirName)
170 944 miho   {
171 944 miho     // Načti informace o (každém) adresáři
172 944 miho     $DirInfoValid $DirInfo->LoadDirInfo($Path.'/'.$DirName.'/'.DIRINFO$Lang);
173 944 miho     
174 944 miho     // Pokud to není adresář, tak načti informace o projektu
175 944 miho     if (!$DirInfoValid)
176 944 miho     {
177 944 miho       $ProjectInfoValid $DirInfo->LoadDirInfo($Path.'/'.$DirName.'/'.PRJINFO$Lang)
178 944 miho       or
179 944 miho       // Heuristika pro projekty, které ještě nemají popis
180 944 miho       $ProjectInfoValid is_dir($_SERVER['DOCUMENT_ROOT'].$Path.'/'.$DirName.'/DOC')
181 944 miho       or
182 944 miho       $ProjectInfoValid is_dir($_SERVER['DOCUMENT_ROOT'].$Path.'/'.$DirName.'/SCH');
183 944 miho     }
184 944 miho
185 944 miho     // Zkontroluj, zda jsme v platné sekci
186 944 miho     // if ($Path!='' || $Valid)
187 944 miho     if ($DirInfoValid || $ProjectInfoValid)
188 944 miho     {
189 944 miho       // Připrav si proměnné
190 944 miho       unset($Variables);
191 944 miho       foreach($DirInfo->DirData as $Key => $Value)
192 944 miho       {
193 944 miho         $Variables[$Key] = $DirInfo->GetString($KeyWRAP);
194 944 miho       }
195 944 miho
196 944 miho       $Variables['InfoName']        =
197 944 miho           $DirInfoValid CreateScriptLink($Params$DirName$DirInfo->GetString('InfoLongDescription'))
198 944 miho                         : $DirName;
199 944 miho
200 944 miho       $Variables['InfoPicture']     = CreatePicturesLink($Params['path'].'/'.$DirName$Glue'Žluťoučký kůň'TEMPLATEPATH.'/'.$Template->GetVariable('InfoNoPicture'));
201 944 miho       $Variables['InfoDescripion']  = $DirInfo->GetString('InfoShortDescription'WRAP);
202 944 miho       $Variables['InfoWebSVN']      = CreateSVNLink($Params['path'].'/'.$DirName$Params['lang'], $Template->GetString('InfoSVNTitle'));
203 944 miho       $Variables['InfoHTML']        = CreateFilesLink($Params['path'].'/'.$DirName.'/DOC/HTML/*.[hH][tT][mM][lL]'$Glue);
204 944 miho       $Variables['InfoPDF']         = CreateFilesLink($Params['path'].'/'.$DirName.'/DOC/*.[pP][dD][fF]'$Glue);
205 944 miho       $Variables['InfoSCH']         = CreateFilesLink($Params['path'].'/'.$DirName.'/SCH/*.[pP][dD][fF]'$Glue);
206 944 miho
207 944 miho       // Poukni proměnné do vzoru a střádej si výsledek
208 944 miho       if ($DirInfoValid)
209 944 miho         $LinesDir .= $Template->Substitute($Variables$Template->GetVariable('InfoLine'));
210 944 miho       else
211 944 miho         $LinesPrj .= $Template->Substitute($Variables$Template->GetVariable('InfoLine'));
212 944 miho     }
213 944 miho   }
214 944 miho
215 944 miho   // Slož k sobě obě části (adresář / separátor / projekt)
216 944 miho   if ($LinesDir!='' and $LinesPrj!='')
217 944 miho     $Lines $LinesDir.$Template->GetString('InfoSeparator').$LinesPrj;
218 944 miho   else
219 944 miho     $Lines $LinesDir.$LinesPrj;
220 944 miho
221 944 miho   // Teď sestavené položky ulož do proměnné "InfoLine" objektu
222 944 miho   $Template->SetVariable('InfoLine'$Lines);
223 944 miho }
224 944 miho
225 944 miho /*
226 944 miho //Načtení adresáře
227 944 miho         if ((Is_Dir($path.$folder."/".$HTTP_GET_VARS["file"]."/".$soubor1)) && (substr($soubor1,0,1) <> ".") && (substr($soubor1,0,1) <> "!")) {
228 944 miho //Nastavení suffixu u obrázků
229 944 miho           $img = $soubor1."_Small.jpg";
230 944 miho
231 944 miho //Pokud existuje náhled obrázku, zobraz ho
232 944 miho     if (file_exists($path.$folder.'/'.$HTTP_GET_VARS["file"]."/".$soubor1."/".$img)) {
233 944 miho     echo "<td><A HREF=\"image.php?pth=".$HTTP_GET_VARS["file"]."/".$soubor1."&fname=".$soubor1."\" TARGET=\"_blank\"><img src=\"thumb.php?pth=".$HTTP_GET_VARS["file"]."/".$soubor1."&fname=".$soubor1."\" border=\"0\"></a></td>\n";
234 944 miho     } else { echo "<td><img src=\"thumb.php?pth=".$HTTP_GET_VARS["file"]."/".$soubor1."&fname=".$soubor1."\"></td>\n"; }
235 944 miho
236 944 miho //Pokud existuje HTML dokumentace k modulu vytvoř na ni odkaz
237 944 miho           if (file_exists($path.$folder."/".$HTTP_GET_VARS["file"]."/".$soubor1."/DOC/HTML/".$soubor1.".".$lang.".html")) {
238 944 miho             echo "<td><a href=\"".$www.$folder."/".$HTTP_GET_VARS["file"]."/".$soubor1."/DOC/HTML/".$soubor1.".".$lang.".html\">".$soubor1."</a></td>\n";
239 944 miho           } else { echo "<td>".$soubor."<b>".$soubor1."</b></td>\n"; }
240 944 miho //Pokud existuje PDF dokumentace k modulu zobraz odkaz
241 944 miho           if (file_exists($path.$folder."/".$HTTP_GET_VARS["file"]."/".$soubor1."/DOC/".$soubor1.".".$lang.".pdf")) {
242 944 miho             echo "<td><a href=\"".$www.$folder."/".$HTTP_GET_VARS["file"]."/".$soubor1."/DOC/".$soubor1.".".$lang.".pdf\">PDF</a></td>\n";
243 944 miho           } else { echo "\n<td>-</td>\n"; }
244 944 miho //WebSVN odkaz
245 944 miho           echo "<td><a href=\"http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&amp;path=/Modules/".$HTTP_GET_VARS["file"]."/".$soubor1."/\">WebSVN</a></td>\n";
246 944 miho //Pokud existuje stručné info, zobraz ho
247 944 miho           if (file_exists($path.$folder.'/'.$HTTP_GET_VARS["file"]."/".$soubor1."/".$info1)) {
248 944 miho             $fp = FOpen ($path.$folder.'/'.$HTTP_GET_VARS["file"]."/".$soubor1."/".$info1, "r");
249 944 miho             $data = FRead ($fp, FileSize ($path.$folder.'/'.$HTTP_GET_VARS["file"]."/".$soubor1."/".$info1));
250 944 miho             FClose ($fp);
251 944 miho             echo "<td>".wordwrap($data, 50, "<br>")."</td>\n";
252 944 miho           } else { echo "\n<td><i>No description available</i></td>\n"; }
253 944 miho           echo "</tr>\n\n";
254 944 miho         }
255 944 miho
256 944 miho
257 944 miho     $PathEncoded = URLEncode($Path.'/'.$FileName);
258 944 miho
259 944 miho     $htmllink = "<a href='".$_SERVER['SCRIPT_NAME']."?lang=$Lang&amp;path=$PathEncoded'>$FileName</a>";
260 944 miho
261 944 miho */
262 944 miho
263 944 miho
264 944 miho ?>
{BLAME END}
{FOOTER START}

Poháněno WebSVN v2.1 alpha 1