Ignore:
Timestamp:
Oct 8, 2012, 8:48:16 AM (12 years ago)
Author:
chronos
Message:
  • Upraveno: TWebSession zobecněno pro možnost implementace více modulů s obsluhou vstupní stránky.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/ZdechovNET/UModuleZdechovNET.pas

    r98 r103  
    66
    77uses
    8   Classes, SysUtils, UModularSystem, SpecializedDictionary;
     8  Classes, SysUtils, UModularSystem, SpecializedDictionary, UWebPage,
     9  UWebSession, DateUtils;
    910
    1011type
     
    1314
    1415  TModuleZdechovNET = class(TModule)
     16  private
     17    procedure Footer(Session: TWebSession);
     18    procedure GeneratePage(ASession: TWebSession; Page: TWebPage);
     19    procedure TopMenu(Session: TWebSession);
    1520  public
    1621    constructor Create(Owner: TComponent); override;
     
    2934  UCore, USqlDatabase, UXmlClasses, UHtmlClasses, UUtils,
    3035  UInternetPage, UHostingPage, UHistoryPage, UDocumentsPage, UVoIPPage,
    31   ULinksPage, UPlansPage, UServerInfoPage, UWebCamPage,
     36  ULinksPage, UPlansPage, UServerInfoPage, UWebCamPage, UUser,
    3237  UNetworkPage, UAboutPage, UContactPage, UProjectsPage;
    3338
     
    4247  License := 'GNU/LGPL v3';
    4348  Author := 'Chronosoft';
     49  Dependencies.Add('User');
    4450end;
    4551
     
    98104    Data := TDictionaryStringString.Create;
    99105
     106    Core.GeneratePage := GeneratePage;
     107
    100108    Core.CommonDatabase.Query(DbRows,
    101109    'CREATE TABLE IF NOT EXISTS `VPSHosting` (' +
     
    172180begin
    173181  inherited Uninstall;
     182  Core.GeneratePage := nil;
    174183  try
    175184    DbRows := TDbRows.Create;
     
    189198end;
    190199
     200procedure TModuleZdechovNET.Footer(Session: TWebSession);
     201var
     202  Tag: TXMLTag;
     203  AdminTag: TXMLTag;
     204  EmailTag: TXMLTag;
     205  ExecutionTimeTag: TXMLTag;
     206  UsedMemoryTag: TXMLTag;
     207  TextNode: TXmlString;
     208begin
     209  with Session do
     210  with TXmlTag(HtmlDocument.Body.SubItems.AddNew(TXmlTag.Create)) do begin
     211    Name := 'ul';
     212    Attributes.Values['class'] := 'Footer';
     213    with TXmlTag(SubElements.AddNew(TXmlTag.Create)) do begin
     214      Name := 'li';
     215      with TXmlString(SubElements.AddNew(TXmlString.Create)) do begin
     216        Text := TCore(MainModule).Admin;
     217      end;
     218    end;
     219    with TXmlTag(SubElements.AddNew(TXmlTag.Create)) do begin
     220      Name := 'li';
     221      with TXmlString(SubElements.AddNew(TXmlString.Create)) do begin
     222        Text := TCore(MainModule).AdminEmail;
     223      end;
     224    end;
     225    if TCore(MainModule).ShowRuntimeInfo then begin
     226      with TXmlTag(SubElements.AddNew(TXmlTag.Create)) do begin
     227        Name := 'li';
     228        with TXmlString(SubElements.AddNew(TXmlString.Create)) do begin
     229          Text := 'Doba generování: ' +
     230            FloatToStr(Round(((Now - TimeStart) / OneMillisecond) * 100) / 100) + ' s / '; // + ini_get('max_execution_time') + ' s';
     231        end;
     232      end;
     233      with TXmlTag(SubElements.AddNew(TXmlTag.Create)) do begin
     234        Name := 'li';
     235        with TXmlString(SubElements.AddNew(TXmlString.Create)) do begin
     236          //Text := 'Použitá paměť: '  + System.PrefixMultiplier.AddPrefixMultipliers(memory_get_peak_usage(FALSE), 'B').' / '.ini_get('memory_limit').'B';
     237        end;
     238      end;
     239    end;
     240  end;
     241end;
     242
     243procedure TModuleZdechovNET.TopMenu(Session: TWebSession);
     244begin
     245  with Session, THtmlString(HtmlDocument.Body.SubItems.InsertNew(1, THtmlString.Create)) do begin
     246    Text := '<div class="Navigation">';
     247    // Visitor
     248    Text := Text + '<ul class="MenuItem">' +
     249      '<li>' + MakeLink('Úvod', NavigationLink('/')) + '</li>' +
     250      '<li>' + MakeLink('Internet', NavigationLink('/internet/')) + '</li>' +
     251      '<li>' + MakeLink('Hosting', NavigationLink('/hosting/')) + '</li>' +
     252      '<li>' + MakeLink('VoIP', NavigationLink('/voip/')) + '</li>' +
     253      '<li>' + MakeLink('Síť', NavigationLink('/sit/')) + '</li>' +
     254      '<li>' + MakeLink('Odkazy', NavigationLink('/odkazy/')) + '</li>' +
     255      '<li>' + MakeLink('Kontakt', NavigationLink('/kontakt/')) + '</li>' +
     256      '<li>' + MakeLink('Kamery', NavigationLink('/kamery/')) + '</li>' +
     257      '<li><a href="https://mail.zdechov.net/">Pošta</a></li>' +
     258      '<li><a href="http://wiki.zdechov.net/">Wiki</a></li>' +
     259      '</ul><ul class="MenuItem2">'; //<li>&nbsp;</li>';
     260    if Assigned(TCore(MainModule).Pages.FindByName('uzivatel')) then begin
     261      if UserOnline.User = UnknownUser then begin
     262        Text := Text + '</ul>' +
     263          '<ul class="MenuItem2">' +
     264          '<li>' + MakeLink('Přihlášení', NavigationLink('/uzivatel/prihlaseni/')) + '</li>' +
     265          '<li>' + MakeLink('Registrace', NavigationLink('/uzivatel/registrace/')) + '</li>' +
     266          '<li></li>';
     267        // $Output .= '<li>'.$this->System->HTML->MakeLink($this->System->Translate('UserRegistration'), $this->System->MakeLink('UserList', 'Register')).'</li>';
     268      end else begin
     269        Text := Text + '</ul>' +
     270          '<ul class="MenuItem2">' +
     271          '<li>' + User.FullName + '</li>' +
     272          '<li>' + MakeLink('Odhlášení', NavigationLink('/uzivatel/odhlaseni/')) + '</li>' +
     273          '<li>' + MakeLink('Profil', NavigationLink('/uzivatel/profil/')) + '</li>';
     274      end;
     275    end else Text := Text + '</ul><ul class="MenuItem2">&nbsp;';
     276    Text := Text + '</ul></div>';
     277  end;
     278end;
     279
     280procedure TModuleZdechovNET.GeneratePage(ASession: TWebSession; Page: TWebPage);
     281var
     282  I: Integer;
     283  TitleTag: THtmlString;
     284begin
     285  with ASession do begin
     286    HtmlDocument.ContentLanguage := 'cs';
     287    GlobalTitle := 'ZděchovNET';
     288    HtmlDocument.Styles.Add(NavigationLink('/Style/' + TCore(MainModule).Style + '/Style.css'));
     289    HtmlDocument.Scripts.Add(NavigationLink('/Style/' + TCore(MainModule).Style + '/Global.js'));
     290    HtmlDocument.Scripts.Add(NavigationLink('/Style/' + TCore(MainModule).Style + '/jquery.js'));
     291
     292      TitleTag := THtmlString.Create;
     293      HtmlDocument.Body.SubItems.Insert(0, TitleTag);
     294      TopMenu(ASession);
     295      //Page.Page.OnProduce(HandlerData);
     296      HtmlDocument.Title := Page.Caption;
     297      TitleTag.Text := '<div class="TitlePanel"><span class="GlobalTitle">' + GlobalTitle +
     298        '</span> - ' + HtmlDocument.Title + '</div>';
     299      HtmlDocument.Title := GlobalTitle + ' - ' + HtmlDocument.Title;
     300      with HtmlDocument.AsXmlDocument do
     301      try
     302        Formated := TCore(MainModule).FormatHTML;
     303        Response.Content.WriteString(AsString);
     304      finally
     305        Free;
     306      end;
     307    end;
     308end;
     309
     310
    191311end.
    192312
Note: See TracChangeset for help on using the changeset viewer.