Changeset 21
- Timestamp:
- Jun 12, 2009, 7:26:20 PM (15 years ago)
- Location:
- trunk/www
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/www/config.sample.php
r20 r21 27 27 'ShowRuntimeInfo' => false, 28 28 'ErrorLogFile' => 'php_script_error.log', 29 'TableRowPerPage' => 30, 29 30 ), 30 31 'BaseDir' => '/opt/wowhosting/', -
trunk/www/form.php
r16 r21 33 33 foreach($this->Definition['Items'] as $Index => $Item) 34 34 { 35 if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default']; 36 $Edit = ExecuteTypeEvent($Item['Type'], 'OnView', 37 array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type'])); 38 array_push($Table['Rows'], array($Item['Caption'], $Edit)); 35 if($Item['Type'] != 'Hidden') 36 { 37 if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default']; 38 $Edit = ExecuteTypeEvent($Item['Type'], 'OnView', 39 array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type'])); 40 array_push($Table['Rows'], array($Item['Caption'], $Edit)); 41 } 39 42 } 40 43 $Output = '<div style="text-align: center">'.$this->Definition['Title'].'</div>'.Table($Table, 'WideTable'); … … 60 63 foreach($this->Definition['Items'] as $Index => $Item) 61 64 { 62 if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default']; 63 $Edit = ExecuteTypeEvent($Item['Type'], 'OnEdit', 64 array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type'])); 65 array_push($Table['Rows'], array($Item['Caption'].':', $Edit)); 65 if($Item['Type'] != 'Hidden') 66 { 67 if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default']; 68 $Edit = ExecuteTypeEvent($Item['Type'], 'OnEdit', array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type'])); 69 array_push($Table['Rows'], array($Item['Caption'].':', $Edit)); 70 } 66 71 } 67 72 $Output = '<fieldset><legend>'.$this->Definition['Title'].'</legend>'.Table($Table, 'BasicTable'). 68 73 '</fieldset>'; 74 foreach($this->Definition['Items'] as $Index => $Item) 75 if($Item['Type'] == 'Hidden') $Output .= ExecuteTypeEvent($Item['Type'], 'OnEdit', array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type'])); 69 76 return($Output); 70 77 } … … 78 85 foreach($this->Definition['Items'] as $Index => $Item) 79 86 { 80 $this->Values[$Index] = $DbRow[$Index]; 87 if($Item['Type'] != 'Hidden') 88 $this->Values[$Index] = $DbRow[$Index]; 81 89 } 82 90 } -
trunk/www/form_classes.php
r20 r21 71 71 'Database' => array('Type' => 'Database', 'Caption' => 'Databáze', 'Default' => 0), 72 72 'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'), 73 'ServerId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0), 73 74 //'TimeCreation' => array('Type' => 'DateTime', 'Caption' => 'Datum založení', 'Default' => 'NOW()'), 74 75 ), -
trunk/www/global.php
r17 r21 263 263 } 264 264 265 function GetRemoteAddress() 266 { 267 if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER)) $IP = $_SERVER['HTTP_X_FORWARDED_FOR'] ; 268 else if(array_key_exists('REMOTE_ADDR', $_SERVER)) $IP = $_SERVER['REMOTE_ADDR']; 269 else $IP = '0.0.0.0'; 270 return($IP); 271 } 272 273 function RemoveDiacritic($Text) 274 { 275 return(str_replace( 276 array('á', 'č', 'ď', 'é', 'ě', 'í', 'ľ', 'ň', 'ó', 'ř', 'š', 'ť', 'ú', 'ů', 'ý', 'ž', 'Á', 'Č', 'Ď', 'É', 'Ě', 'Í', 'Ľ', 'Ň', 'Ó', 'Ř', 'Š', 'Ť', 'Ú', 'Ů', 'Ý', 'Ž'), 277 array('a', 'c', 'd', 'e', 'e', 'i', 'l', 'n', 'o', 'r', 's', 't', 'u', 'u', 'y', 'z', 'A', 'C', 'D', 'E', 'E', 'I', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'U', 'Y', 'Z'), 278 $Text)); 279 } 280 281 function NotBlank($Text) 282 { 283 if($Text == '') return(' '); else return($Text); 284 } 285 286 function MakeLink($Target, $Title) 287 { 288 return('<a href="'.$Target.'">'.$Title.'</a>'); 289 } 290 291 function Table($Table, $Class) 292 { 293 $Result = '<table class="'.$Class.'">'; 294 if(array_key_exists('Header', $Table)) 295 { 296 $Result .= '<tr>'; 297 foreach($Table['Header'] as $Item) 298 $Result .= '<th>'.$Item.'</th>'; 299 $Result .= '</tr>'; 300 } 301 foreach($Table['Rows'] as $Row) 302 { 303 $Result .= '<tr>'; 304 foreach($Row as $Index => $Item) 305 { 306 if($Index == 0) $Class = ' class="Header"'; else $Class = ''; 307 $Result .= '<td'.$Class.'>'.$Item.'</td>'; 308 } 309 $Result .= '</tr>'; 310 } 311 $Result .= '</table>'; 312 return($Result); 313 } 314 315 function GetQueryStringArray() 316 { 317 $Result = array(); 318 $Parts = explode('&', $_SERVER['QUERY_STRING']); 319 foreach($Parts as $Part) 320 { 321 if($Part != '') 322 { 323 $Item = explode('=', $Part); 324 $Result[$Item[0]] = $Item[1]; 325 } 326 } 327 return($Result); 328 } 329 330 function SetQueryStringArray($QueryStringArray) 331 { 332 $Parts = array(); 333 foreach($QueryStringArray as $Index => $Item) 334 { 335 $Parts[] = $Index.'='.$Item; 336 } 337 return(implode('&', $Parts)); 338 } 339 265 340 // Zobrazení číselný seznamu stránek 266 function PagesList($URL, $Page, $TotalCount, $CountPerPage, $Around = 10) 267 { 341 function PageList($QueryStringVar, $Page, $TotalCount, $CountPerPage, $Around = 10) 342 { 343 $QueryStringArray = GetQueryStringArray(); 268 344 $Count = ceil($TotalCount / $CountPerPage); 269 345 $Result = ''; … … 272 348 if($Page > 0) 273 349 { 274 $Result .= '<a href="'.$URL.'0"><<</a> '; 275 $Result .= '<a href="'.$URL.($Page - 1).'"><</a> '; 350 $QueryStringArray[$QueryStringVar] = 0; 351 $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'"><<</a> '; 352 $QueryStringArray[$QueryStringVar] = $Page - 1; 353 $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'"><</a> '; 276 354 } 277 355 $PagesMax = $Count - 1; … … 286 364 { 287 365 if($i == $Page) $Result .= '<strong>'; 288 $Result .= '<a href="'.$URL.$i.'">'.($i + 1).'</a> '; 366 $QueryStringArray[$QueryStringVar] = $i; 367 $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">'.($i + 1).'</a> '; 289 368 if($i == $Page) $Result .= '</strong>'; 290 369 } … … 292 371 if($Page < ($Count - 1)) 293 372 { 294 $Result .= '<a href="'.$URL.($Page + 1).'">></a> '; 295 $Result .= '<a href="'.$URL.($Count - 1).'">>></a>'; 373 $QueryStringArray[$QueryStringVar] = $Page + 1; 374 $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">></a> '; 375 $QueryStringArray[$QueryStringVar] = $Count - 1; 376 $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">>></a>'; 296 377 } 297 378 } … … 299 380 } 300 381 301 function GetRemoteAddress()302 {303 if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER)) $IP = $_SERVER['HTTP_X_FORWARDED_FOR'] ;304 else if(array_key_exists('REMOTE_ADDR', $_SERVER)) $IP = $_SERVER['REMOTE_ADDR'];305 else $IP = '0.0.0.0';306 return($IP);307 }308 309 function RemoveDiacritic($Text)310 {311 return(str_replace(312 array('á', 'č', 'ď', 'é', 'ě', 'í', 'ľ', 'ň', 'ó', 'ř', 'š', 'ť', 'ú', 'ů', 'ý', 'ž', 'Á', 'Č', 'Ď', 'É', 'Ě', 'Í', 'Ľ', 'Ň', 'Ó', 'Ř', 'Š', 'Ť', 'Ú', 'Ů', 'Ý', 'Ž'),313 array('a', 'c', 'd', 'e', 'e', 'i', 'l', 'n', 'o', 'r', 's', 't', 'u', 'u', 'y', 'z', 'A', 'C', 'D', 'E', 'E', 'I', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'U', 'Y', 'Z'),314 $Text));315 }316 317 function NotBlank($Text)318 {319 if($Text == '') return(' '); else return($Text);320 }321 322 function MakeLink($Target, $Title)323 {324 return('<a href="'.$Target.'">'.$Title.'</a>');325 }326 327 function Table($Table, $Class)328 {329 $Result = '<table class="'.$Class.'">';330 if(array_key_exists('Header', $Table))331 {332 $Result .= '<tr>';333 foreach($Table['Header'] as $Item)334 $Result .= '<th>'.$Item.'</th>';335 $Result .= '</tr>';336 }337 foreach($Table['Rows'] as $Row)338 {339 $Result .= '<tr>';340 foreach($Row as $Index => $Item)341 {342 if($Index == 0) $Class = ' class="Header"'; else $Class = '';343 $Result .= '<td'.$Class.'>'.$Item.'</td>';344 }345 $Result .= '</tr>';346 }347 $Result .= '</table>';348 return($Result);349 }350 351 382 ?> -
trunk/www/index.php
r20 r21 47 47 $Output .= $Form->ShowTable(); 48 48 $Output .= '<div style="text-align: center">'; 49 if(( $this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) and ($this->System->Modules['User']->User['Id'] == $Server->Server['User']))49 if((($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) and ($this->System->Modules['User']->User['Id'] == $Server->Server['User'])) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 50 50 { 51 51 $Output .= '<br /><a href="http://'.$this->System->Config['Web']['Host'].'/mysql/">Správa databáze</a> '; … … 53 53 { 54 54 $ServerStatus = $Server->GetState(); 55 if($ServerStatus['RealmdPortState'] == true) $Output .= ' <a href="?Action=ServerStop ">Zastavit</a> <a href="?Action=ServerRestart">Restartovat</a>';56 else $Output .= ' <a href="?Action=ServerStart ">Spustit</a>';55 if($ServerStatus['RealmdPortState'] == true) $Output .= ' <a href="?Action=ServerStop&Id='.$Server->Id.'">Zastavit</a> <a href="?Action=ServerRestart&Id='.$Server->Id.'">Restartovat</a>'; 56 else $Output .= ' <a href="?Action=ServerStart&Id='.$Server->Id.'">Spustit</a>'; 57 57 } 58 $Output .= ' <a href="?Action=ServerEdit ">Upravit</a>';59 $Output .= ' <a href="?Action=ServerDatabaseImport ">Načtení čisté databáze</a>';58 $Output .= ' <a href="?Action=ServerEdit&Id='.$Server->Id.'">Upravit</a>'; 59 $Output .= ' <a href="?Action=ServerDatabaseImport&Id='.$Server->Id.'">Načtení čisté databáze</a>'; 60 60 } 61 61 $Output .= '</div>'; … … 253 253 { 254 254 if(array_key_exists('Id', $_GET)) $Output .= $this->ShowServer($_GET['Id']); 255 else 256 { 257 $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 258 $Server = $DbResult->fetch_assoc(); 259 $Output .= $this->ShowServer($Server['Id']); 260 } 255 else $this->SystemMessage('Zobrazení serveru', 'Nebylo zadáno Id'); 261 256 } else 262 257 if($_GET['Action'] == 'ServerEdit') 263 258 { 264 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 265 { 266 $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 267 $Server = $DbResult->fetch_assoc(); 259 $Server = new Server($this->Database, $_GET['Id']); 260 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 261 { 268 262 $Form = new Form('EditServer'); 269 $Form->LoadValuesFromDatabase($Server['Id']); 263 $Form->LoadValuesFromDatabase($_GET['Id']); 264 $Form->Values['ServerId'] = $_GET['Id']; 270 265 $Form->OnSubmit = '?Action=ServerSave'; 271 266 $Output .= $Form->ShowEditForm(); 272 } else $ Output .= USER_BAD_ROLE;267 } else $this->SystemMessage('Nastavení serveru', 'Nemáte oprávnění'); 273 268 } else 274 269 if($_GET['Action'] == 'ServerSave') 275 270 { 276 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 277 { 278 $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 279 $Server = $DbResult->fetch_assoc(); 280 $UserOptions = new Form('EditServer', array()); 281 $UserOptions->LoadValuesFromForm(); 271 $Server = new Server($this->Database, $_POST['ServerId']); 272 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 273 { 274 $Form = new Form('EditServer', array()); 275 $Form->LoadValuesFromForm(); 276 $ServerId = $_POST['ServerId']; 277 unset($Form->Values['ServerId']); 282 278 $Output .= $this->SystemMessage('Upravit server', 'Nastavení serveru uloženo.'); 283 $ UserOptions->SaveValuesToDatabase($Server['Id']);284 $ UserOptions->OnSubmit = '?Action=ServerSave';279 $Form->SaveValuesToDatabase($_POST['ServerId']); 280 $Form->OnSubmit = '?Action=ServerSave'; 285 281 286 $Server = new Server($this->Database, $ Server['Id']);282 $Server = new Server($this->Database, $_POST['ServerId']); 287 283 $Server->SaveConfiguration(); 288 289 $Output .= $ UserOptions->ShowEditForm();290 } else $ Output .= USER_BAD_ROLE;284 $Form->Values['ServerId'] = $ServerId; 285 $Output .= $Form->ShowEditForm(); 286 } else $this->SystemMessage('Nastavení serveru', 'Nemáte oprávnění'); 291 287 } else 292 288 if($_GET['Action'] == 'ServerStart') … … 294 290 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 295 291 { 296 $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 297 $Server = $DbResult->fetch_assoc(); 298 $Server = new Server($this->Database, $Server['Id']); 299 $Output .= $this->SystemMessage('Spuštění serveru', $Server->Start()); 292 $Server = new Server($this->Database, $_GET['Id']); 293 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 294 { 295 $Output .= $this->SystemMessage('Spuštění serveru', $Server->Start()); 296 } else $this->SystemMessage('Spuštění serveru', 'Nemáte oprávnění'); 300 297 } else $Output .= USER_BAD_ROLE; 301 298 } else … … 304 301 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 305 302 { 306 $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 307 $Server = $DbResult->fetch_assoc(); 308 $Server = new Server($this->Database, $Server['Id']); 309 $Output .= $this->SystemMessage('Zastavení serveru', $Server->Stop()); 303 $Server = new Server($this->Database, $_GET['Id']); 304 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 305 { 306 $Output .= $this->SystemMessage('Zastavení serveru', $Server->Stop()); 307 } else $this->SystemMessage('Zastavení serveru', 'Nemáte oprávnění'); 310 308 } else $Output .= USER_BAD_ROLE; 311 309 } else … … 314 312 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 315 313 { 316 $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 317 $Server = $DbResult->fetch_assoc(); 318 $Server = new Server($this->Database, $Server['Id']); 319 $Server->ImportDatabase(true); 320 $Output .= $this->SystemMessage('Import čisté databáze', 'Úloha zařazena do fronty'); 314 $Server = new Server($this->Database, $_GET['Id']); 315 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 316 { 317 $Server->ImportDatabase(true); 318 $Output .= $this->SystemMessage('Import čisté databáze', 'Úloha zařazena do fronty'); 319 } else $this->SystemMessage('Zastavení serveru', 'Nemáte oprávnění'); 321 320 } else $Output .= USER_BAD_ROLE; 322 321 } else -
trunk/www/mangos_debug.php
r18 r21 33 33 $Output .= '<br />'; 34 34 } 35 $Output .= Page sList('?Page=', $Page, $Total, $this->ItemPerPage, 2);35 $Output .= PageList('Page', $Page, $Total, $this->ItemPerPage, 2); 36 36 37 37 $Output .= '</td><td valign="top" width="90%">'; -
trunk/www/page.php
r20 r21 32 32 if($DbRow[0] > 0) 33 33 { 34 $Output .= ' <a href="?Action=ServerShow">Vlastní server</a>'; 35 $Output .= ' <a href="?Action=ServerDebug">Ladící záznamy</a>'; 34 $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 35 $Server = $DbResult->fetch_assoc(); 36 $Output .= ' <a href="?Action=ServerShow&Id='.$Server['Id'].'">Můj server</a>'; 37 $Output .= ' <a href="?Action=ServerDebug&Id='.$Server['Id'].'">Ladící záznamy</a>'; 36 38 } else $Output .= ' <a href="?Action=ServerAdd">Vytvořit vlastní server</a>'; 37 39 $Output .= ' <a href="'.$this->System->Config['Web']['RootFolder'].'/?Action=UserOptions">Nastavení účtu</a>'; -
trunk/www/style.css
r6 r21 74 74 border-top-color: gray; 75 75 border-width: 1px 0 0 0; 76 margin-top: 7px;76 margin-top: 20px; 77 77 padding-top: 2px; 78 78 font-size: 10px; … … 330 330 text-align: center; 331 331 } 332 333 .Pager 334 { 335 text-align: center; 336 } -
trunk/www/table.php
r20 r21 9 9 var $OnRow; 10 10 var $QueryParameters; 11 var $TotalRowCount; 11 12 12 13 function __construct($ClassName) … … 20 21 function Show() 21 22 { 23 global $Config; 24 22 25 $Header = array(); 23 26 if(!array_key_exists('Order', $_GET)) $_GET['Order'] = 0; 24 27 if(!array_key_exists('Column', $_GET)) $_GET['Column'] = 0; 25 $QueryParts = explode('&', $_SERVER['QUERY_STRING']); 26 foreach($QueryParts as $Part) 27 { 28 if($Part != '') 29 { 30 $Part2 = explode('=', $Part); 31 $QueryItems[$Part2[0]] = $Part2[1]; 32 } 33 } 34 $QueryItems['Order'] = $_GET['Order']; 28 $QueryStringArray = GetQueryStringArray(); 29 $QueryStringArray['Order'] = $_GET['Order']; 35 30 foreach($this->Definition['Items'] as $Index => $Item) 36 31 { 37 $QueryItems['Column'] = $Index; 38 if($_GET['Column'] == $Index) $QueryItems['Order'] = 1 - $_GET['Order']; 39 else $QueryItems['Order'] = $_GET['Order']; 40 $QueryParts = array(); 41 foreach($QueryItems as $Index2 => $Item2) 42 { 43 $QueryParts[] = $Index2.'='.$Item2; 44 } 45 $Header[] = '<a href="?'.implode('&', $QueryParts).'">'.$Item['Caption'].'</a>'; 32 $QueryStringArray['Column'] = $Index; 33 if($_GET['Column'] == $Index) $QueryStringArray['Order'] = 1 - $_GET['Order']; 34 else $QueryStringArray['Order'] = $_GET['Order']; 35 $Header[] = '<a href="?'.SetQueryStringArray($QueryStringArray).'">'.$Item['Caption'].'</a>'; 46 36 } 47 37 $Table = array( … … 50 40 ); 51 41 $Output = Table($Table, 'WideTable'); 42 $Output .= '<div class="Pager">'.PageList('Page', $this->Page, $this->TotalRowCount, $Config['Web']['TableRowPerPage']).'</div>'; 52 43 return($Output); 53 44 } … … 55 46 function LoadValuesFromDatabase($Database) 56 47 { 48 global $Config; 49 57 50 $OrderType = array('ASC', 'DESC'); 58 51 if(!array_key_exists('Order', $_GET)) $_GET['Order'] = 0; … … 72 65 foreach($this->QueryParameters as $Index => $Item) 73 66 $Table = str_replace('%'.$Index, $Item, $Table); 74 $DbResult = $Database->query('SELECT * FROM '.$Table.' ORDER BY T.'.$_GET['Column'].' '.$OrderType[$_GET['Order']]); 67 $DbResult = $Database->query('SELECT COUNT(*) FROM '.$Table.' ORDER BY T.'.$_GET['Column'].' '.$OrderType[$_GET['Order']]); 68 $DbRow = $DbResult->fetch_row(); 69 $this->TotalRowCount = $DbRow[0]; 70 if(array_key_exists('Page', $_GET)) $this->Page = $_GET['Page']; else $this->Page = 0; 71 if($this->Page > ($this->TotalRowCount / $Config['Web']['TableRowPerPage'])) $this->Page = 0; 72 $DbResult = $Database->query('SELECT * FROM '.$Table.' ORDER BY T.'.$_GET['Column'].' '.$OrderType[$_GET['Order']].' LIMIT '.($this->Page * $Config['Web']['TableRowPerPage']).', '.$Config['Web']['TableRowPerPage']); 75 73 while($DbRow = $DbResult->fetch_assoc()) 76 74 { … … 90 88 $this->Values[] = $Row; 91 89 } 92 } 90 } 93 91 } 94 92
Note:
See TracChangeset
for help on using the changeset viewer.