Ignore:
Timestamp:
Feb 22, 2015, 11:20:50 PM (9 years ago)
Author:
chronos
Message:
  • Modified: Tabs converted to spaces.
  • Modified: Remove spaces from end of lines.
  • Added: Code format script.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Wiki/Wiki.php

    r609 r816  
    1313    $this->Dependencies = array();
    1414  }
    15  
     15
    1616  function Install()
    1717  {
     
    2222  {
    2323    parent::UnInstall();
    24   } 
    25  
     24  }
     25
    2626  function Start()
    2727  {
     
    2929    $this->LoadPages();
    3030  }
    31  
     31
    3232  function Stop()
    3333  {
    34         parent::Stop();
    35   }
    36  
     34    parent::Stop();
     35  }
     36
    3737  function LoadPages()
    3838  {
    39         $DbResult = $this->Database->select('WikiPage', '*', 'VisibleInMenu=1');
    40         while($DbRow = $DbResult->fetch_assoc())
    41         {
    42                 $this->System->RegisterPage($DbRow['NormalizedName'], 'PageWiki');
    43                 $this->System->RegisterMenuItem(array(
    44                                 'Title' => $DbRow['Name'],
    45                                 'Hint' => '',
    46                                 'Link' => $this->System->Link('/'.$DbRow['NormalizedName'].'/'),
    47                                 'Permission' => LICENCE_ANONYMOUS,
    48                                 'Icon' => '',
    49                 ), 6);
    50         }
     39    $DbResult = $this->Database->select('WikiPage', '*', 'VisibleInMenu=1');
     40    while($DbRow = $DbResult->fetch_assoc())
     41    {
     42      $this->System->RegisterPage($DbRow['NormalizedName'], 'PageWiki');
     43      $this->System->RegisterMenuItem(array(
     44          'Title' => $DbRow['Name'],
     45          'Hint' => '',
     46          'Link' => $this->System->Link('/'.$DbRow['NormalizedName'].'/'),
     47          'Permission' => LICENCE_ANONYMOUS,
     48          'Icon' => '',
     49      ), 6);
     50    }
    5151  }
    5252}
     
    5454class PageWiki extends Page
    5555{
    56         function Show()
    57         {
    58                 if(array_key_exists('Action', $_GET))
    59                 {
    60                         if($_GET['Action'] == 'Edit') $Output = $this->EditContent();
    61                         else if($_GET['Action'] == 'EditSave') $Output = $this->SaveContent();
    62                         else if($_GET['Action'] == 'History') $Output = $this->ShowHistory();
    63                         else $Output = $this->ShowContent();
    64                 } else $Output = $this->ShowContent();
    65                 return($Output);
    66         }
    67        
    68         function ShowContent()
    69         {
    70                 $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
    71                 $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
    72                 if($DbResult->num_rows > 0)
    73                 {
    74                         $DbRow = $DbResult->fetch_assoc();
    75                         if(array_key_exists('ver', $_GET))
    76                         {
    77                                 $DbResult2 = $this->Database->select('WikiPageContent', '*', 'Page='.$DbRow['Id'].' AND Id='.$_GET['ver']*1);
    78                           if($DbResult2->num_rows > 0)
    79                           {
    80                                   $DbRow2 = $DbResult2->fetch_assoc();
    81                                 $Output = '<h3>Archív stránky '.$DbRow['Name'].' ('.HumanDateTime($DbRow2['Time']).')</h3>';
    82                                   $Output .= $DbRow2['Content'];
    83                       if($this->System->User->Licence(LICENCE_MODERATOR))
    84                         $Output .= '<div><a href="?Action=Edit">Upravit nejnovější</a> <a href="?Action=History">Historie</a></div>';
    85                           } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
    86                         } else
    87                         {
    88                           $DbResult2 = $this->Database->select('WikiPageContent', '*', 'Page='.$DbRow['Id'].' ORDER BY Time DESC LIMIT 1');
    89                           if($DbResult2->num_rows > 0)
    90                           {
    91                                   $DbRow2 = $DbResult2->fetch_assoc();
    92                             $Output = '<h3>'.$DbRow['Name'].'</h3>';
    93                                   $Output .= $DbRow2['Content'];
    94                       if($this->System->User->Licence(LICENCE_MODERATOR))
    95                         $Output .= '<hr><div><a href="?Action=Edit">Upravit</a> <a href="?Action=History">Historie</a></div>';
    96                           } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
    97                         }
    98                 } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
    99                 return($Output);
    100         }
    101 
    102         function EditContent()
    103         {
    104                 if($this->System->User->Licence(LICENCE_MODERATOR))
    105                 {
    106                 $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
    107                 $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
    108                 if($DbResult->num_rows > 0)
    109                 {
    110                         $DbRow = $DbResult->fetch_assoc();
    111                         $Output = '<h3>Úprava '.$DbRow['Name'].'</h3>';
    112                         $DbResult2 = $this->Database->select('WikiPageContent', '*', 'Page='.$DbRow['Id'].' ORDER BY Time DESC LIMIT 1');
    113                         if($DbResult2->num_rows > 0)
    114                         {
    115                                 $DbRow2 = $DbResult2->fetch_assoc();
    116                     $Output .= '<form action="?Action=EditSave" method="post">'.
    117                     '<textarea name="content" rows="8" cols="80" onkeydown="ResizeTextArea(this)" class="textedit">'.$DbRow2['Content'].'</textarea><br/>'.
    118                     '<input type="submit" name="save" value="Uložit"/> '.
    119                     '<input type="button" name="cancel" value="Zrušit" onclick="location.href=\'?\'"/>'.
    120                     '</form>';
    121                         } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
    122                 } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
    123                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    124                 return($Output);
    125         }
    126        
    127         function SaveContent()
    128         {
    129                 if($this->System->User->Licence(LICENCE_MODERATOR))
    130                 {
    131                 $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
    132                 $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
    133                 if($DbResult->num_rows > 0)
    134                 {
    135                         $DbRow = $DbResult->fetch_assoc();
    136                         if(array_key_exists('content', $_POST) and array_key_exists('save', $_POST))
    137                         {
    138                           $DbResult2 = $this->Database->insert('WikiPageContent', array('Content' => stripslashes($_POST['content']),
    139                                 'User' => $this->System->User->Id, 'Time' => 'NOW()', 'Page' => $DbRow['Id']));
    140                           $Output = ShowMessage('Wiki stránka uložena', MESSAGE_INFORMATION);                     
    141                         } else $Output = ShowMessage('Nezadána platná data', MESSAGE_CRITICAL);
    142                         $Output .= $this->ShowContent();
    143                 } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
    144                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    145                 return($Output);
    146         }
    147        
    148         function ShowHistory()
    149         {               
    150                 if($this->System->User->Licence(LICENCE_MODERATOR))
    151                 {
    152                   $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
    153                   $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
    154                   if($DbResult->num_rows > 0)
    155                   {
    156                           $DbRow = $DbResult->fetch_assoc();
    157                        
    158                           $Output = '<h3>Historie stránky '.$DbRow['Name'].'</h3>';
    159                           $DbResult2 = $this->Database->query('SELECT COUNT(*) FROM `WikiPageContent` WHERE Page='.$DbRow['Id']);
    160                         $DbRow2 = $DbResult2->fetch_row();
    161                         $PageList = GetPageList($DbRow2[0]);
    162                        
    163                         $Output .= $PageList['Output'];
    164                         $Output .= '<table class="BaseTable">';
    165                        
    166                           $TableColumns = array(
    167                                         array('Name' => 'Time', 'Title' => 'Čas'),
    168                                         array('Name' => 'User', 'Title' => 'Uživatel'),
    169                                         array('Name' => 'Action', 'Title' => 'Akce'),
    170                           );
    171                          
    172                           $Order = GetOrderTableHeader($TableColumns, 'Time', 1);
    173                           $Output .= $Order['Output'];
    174                          
    175                           $DbResult2 = $this->Database->query('SELECT *, (SELECT `Name` FROM `User` WHERE `User`.`ID`=`WikiPageContent`.`User`) AS `UserName` '.
    176                                 ' FROM `WikiPageContent` WHERE Page='.
    177                         $DbRow['Id'].' '.$Order['SQL'].$PageList['SQLLimit']);
    178                           while($PageContent = $DbResult2->fetch_assoc())
    179                           {
    180                                 $Output .= '<tr>'.
    181                                         '<td>'.HumanDateTime($PageContent['Time']).'</td>'.
    182                                 '<td><a href="'.$this->System->Link('/user.php?user='.$PageContent['User']).'">'.$PageContent['UserName'].'</a></td>'.                                                                                         
    183                                         '<td><a href="?id='.$PageContent['Id'].'&amp;ver='.$PageContent['Id'].'">Zobrazit</a></td>';
    184                                 $Output .= '</tr>';
    185                           }                     
    186                      
    187                           $Output .= '</table>'.
    188                                   $PageList['Output'];
    189                   } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
    190                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    191                 return($Output);
    192         }
    193        
    194         function ToHtml($text)
     56  function Show()
     57  {
     58    if(array_key_exists('Action', $_GET))
     59    {
     60      if($_GET['Action'] == 'Edit') $Output = $this->EditContent();
     61      else if($_GET['Action'] == 'EditSave') $Output = $this->SaveContent();
     62      else if($_GET['Action'] == 'History') $Output = $this->ShowHistory();
     63      else $Output = $this->ShowContent();
     64    } else $Output = $this->ShowContent();
     65    return($Output);
     66  }
     67
     68  function ShowContent()
     69  {
     70    $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
     71    $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
     72    if($DbResult->num_rows > 0)
     73    {
     74      $DbRow = $DbResult->fetch_assoc();
     75      if(array_key_exists('ver', $_GET))
     76      {
     77        $DbResult2 = $this->Database->select('WikiPageContent', '*', 'Page='.$DbRow['Id'].' AND Id='.$_GET['ver']*1);
     78        if($DbResult2->num_rows > 0)
     79        {
     80          $DbRow2 = $DbResult2->fetch_assoc();
     81          $Output = '<h3>Archív stránky '.$DbRow['Name'].' ('.HumanDateTime($DbRow2['Time']).')</h3>';
     82          $Output .= $DbRow2['Content'];
     83          if($this->System->User->Licence(LICENCE_MODERATOR))
     84            $Output .= '<div><a href="?Action=Edit">Upravit nejnovější</a> <a href="?Action=History">Historie</a></div>';
     85        } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
     86      } else
     87      {
     88        $DbResult2 = $this->Database->select('WikiPageContent', '*', 'Page='.$DbRow['Id'].' ORDER BY Time DESC LIMIT 1');
     89        if($DbResult2->num_rows > 0)
     90        {
     91          $DbRow2 = $DbResult2->fetch_assoc();
     92          $Output = '<h3>'.$DbRow['Name'].'</h3>';
     93          $Output .= $DbRow2['Content'];
     94          if($this->System->User->Licence(LICENCE_MODERATOR))
     95            $Output .= '<hr><div><a href="?Action=Edit">Upravit</a> <a href="?Action=History">Historie</a></div>';
     96        } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
     97      }
     98    } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
     99    return($Output);
     100  }
     101
     102  function EditContent()
     103  {
     104    if($this->System->User->Licence(LICENCE_MODERATOR))
     105    {
     106    $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
     107    $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
     108    if($DbResult->num_rows > 0)
     109    {
     110      $DbRow = $DbResult->fetch_assoc();
     111      $Output = '<h3>Úprava '.$DbRow['Name'].'</h3>';
     112      $DbResult2 = $this->Database->select('WikiPageContent', '*', 'Page='.$DbRow['Id'].' ORDER BY Time DESC LIMIT 1');
     113      if($DbResult2->num_rows > 0)
     114      {
     115        $DbRow2 = $DbResult2->fetch_assoc();
     116        $Output .= '<form action="?Action=EditSave" method="post">'.
     117        '<textarea name="content" rows="8" cols="80" onkeydown="ResizeTextArea(this)" class="textedit">'.$DbRow2['Content'].'</textarea><br/>'.
     118        '<input type="submit" name="save" value="Uložit"/> '.
     119        '<input type="button" name="cancel" value="Zrušit" onclick="location.href=\'?\'"/>'.
     120        '</form>';
     121      } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
     122    } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
     123    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     124    return($Output);
     125  }
     126
     127  function SaveContent()
     128  {
     129    if($this->System->User->Licence(LICENCE_MODERATOR))
     130    {
     131    $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
     132    $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
     133    if($DbResult->num_rows > 0)
     134    {
     135      $DbRow = $DbResult->fetch_assoc();
     136      if(array_key_exists('content', $_POST) and array_key_exists('save', $_POST))
     137      {
     138        $DbResult2 = $this->Database->insert('WikiPageContent', array('Content' => stripslashes($_POST['content']),
     139          'User' => $this->System->User->Id, 'Time' => 'NOW()', 'Page' => $DbRow['Id']));
     140        $Output = ShowMessage('Wiki stránka uložena', MESSAGE_INFORMATION);
     141      } else $Output = ShowMessage('Nezadána platná data', MESSAGE_CRITICAL);
     142      $Output .= $this->ShowContent();
     143    } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
     144    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     145    return($Output);
     146  }
     147
     148  function ShowHistory()
     149  {
     150    if($this->System->User->Licence(LICENCE_MODERATOR))
     151    {
     152      $PageName = $this->System->PathItems[count($this->System->PathItems) - 1];
     153      $DbResult = $this->Database->select('WikiPage', 'Name, Id', 'NormalizedName="'.$PageName.'"');
     154      if($DbResult->num_rows > 0)
     155      {
     156        $DbRow = $DbResult->fetch_assoc();
     157
     158        $Output = '<h3>Historie stránky '.$DbRow['Name'].'</h3>';
     159        $DbResult2 = $this->Database->query('SELECT COUNT(*) FROM `WikiPageContent` WHERE Page='.$DbRow['Id']);
     160        $DbRow2 = $DbResult2->fetch_row();
     161        $PageList = GetPageList($DbRow2[0]);
     162
     163        $Output .= $PageList['Output'];
     164        $Output .= '<table class="BaseTable">';
     165
     166        $TableColumns = array(
     167            array('Name' => 'Time', 'Title' => 'Čas'),
     168            array('Name' => 'User', 'Title' => 'Uživatel'),
     169            array('Name' => 'Action', 'Title' => 'Akce'),
     170        );
     171
     172        $Order = GetOrderTableHeader($TableColumns, 'Time', 1);
     173        $Output .= $Order['Output'];
     174
     175        $DbResult2 = $this->Database->query('SELECT *, (SELECT `Name` FROM `User` WHERE `User`.`ID`=`WikiPageContent`.`User`) AS `UserName` '.
     176          ' FROM `WikiPageContent` WHERE Page='.
     177          $DbRow['Id'].' '.$Order['SQL'].$PageList['SQLLimit']);
     178        while($PageContent = $DbResult2->fetch_assoc())
     179        {
     180          $Output .= '<tr>'.
     181            '<td>'.HumanDateTime($PageContent['Time']).'</td>'.
     182            '<td><a href="'.$this->System->Link('/user.php?user='.$PageContent['User']).'">'.$PageContent['UserName'].'</a></td>'.
     183            '<td><a href="?id='.$PageContent['Id'].'&amp;ver='.$PageContent['Id'].'">Zobrazit</a></td>';
     184          $Output .= '</tr>';
     185        }
     186
     187        $Output .= '</table>'.
     188          $PageList['Output'];
     189      } else $Output = ShowMessage('Wiki stránka nenalezena', MESSAGE_CRITICAL);
     190    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     191    return($Output);
     192  }
     193
     194  function ToHtml($text)
    195195  {
    196196    $text = preg_replace('/&lt;source lang=&quot;(.*?)&quot;&gt;(.*?)&lt;\/source&gt;/', '<pre lang="$1">$2</pre>', $text);
Note: See TracChangeset for help on using the changeset viewer.