Posts
231
Comments
64
Trackbacks
4
June 2006 Entries
CMS Qualisite: praktische Eigenschaft IsInActiveHierarchy()

Im CMS Qualisite gibt es im Navigations-Objekt die praktische Eigenschaft "IsInActiveHierarchy()". Diese Eigenschaft liefert true zurück, wenn die aktuelle Seite einem Navigationspunkt entspricht.

Den Wert dieser Eigenschaft kann man nutzen um dem aktuellen Menüpunkt per CSS ein anderes Layout zuzuweisen.

posted @ Friday, June 30, 2006 11:35 AM | Feedback (0)
CMS Qualisite: Menüpunkte mit Grafiken anzeigen

Das CMS Qualisite bietet standarmäßig keine Funktion mit der sich die Menüpunkte anstatt mit Systemschrift mit Grafiken anzeigen lassen können.

Wenn man die Grafiken jedoch mit dem Namen des Menüpunktes versieht, dann lassen sich diese einbinden:

<%

@ Control Language="c#" %>
<%
@ import Namespace="PGK.Qualisite.Application.Site" %>
<%
@ import Namespace="PGK.Qualisite.Application" %>

<

script runat="server">
void Page_Load(object sender, System.EventArgs e) {
   
if(CmsContext.Current.Page.Navigation != null) {
      
this.RP_SubNav.DataSource = CmsContext.Current.Page.Navigation.GetHierarchyByLevel(1);
      
this.RP_SubNav.DataBind();
   }
}

public string FormatGrafikName(string titel, bool InHierarchy){
   
string strGrafikname = titel.Replace("ö","oe");
   strGrafikname = strGrafikname.Replace(
"ä", "ae");
   strGrafikname = strGrafikname.Replace(
"ü", "ue");

   if (InHierarchy) {
      strGrafikname = strGrafikname +
"_a";
   
}

   return strGrafikname;
}

</

script>

<

asp:Repeater id="RP_SubNav" Runat="server">
<ItemTemplate>

<asp:Repeater Runat="server" DataSource='<%# (((NavigationItem) Container.DataItem).IsInActiveHierarchy() ? CmsContext.Current.Page.Navigation.GetHierarchyByLevel(2) : null ) %>' >

<ItemTemplate>

<a href='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString() %>' target='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString("{1}") %>'><img src="/ee_hp/bilder/sub_<%# FormatGrafikName(((NavigationItem) Container.DataItem).Title, ((NavigationItem)Container.DataItem).IsInActiveHierarchy()) %>.gif" alt="<%# ((NavigationItem) Container.DataItem).Title %>" border="0" class="mr_subemnue" /></a>

</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</
asp:Repeater>
posted @ Thursday, June 29, 2006 10:05 AM | Feedback (0)
Nützliches Tool: Synergy

Ich möchte hier ein kleines Tool erwähnen welches mir schon manche gute Dienste erwiesen hat: Synergy http://sourceforge.net/projects/synergy2/.

Dieses kleine Freeware Programm kann man auf zwei Rechnern installieren um hinterher mit der Maus und Tastatur des ersten Rechners auch den zweiten zu bedienen. Dies soll auch unter unterschiedlichen Betriebsystemen funktionieren.

posted @ Wednesday, June 28, 2006 9:29 PM | Feedback (0)
CMS Qualisite: Alle Menüpukte in der Navigation anzeigen

Mit dem folgenden User-Control lassen sich alle Menüpukte in der Navigation anzeigen:

<%

@ Control Language="c#" %>
<%
@ import Namespace="PGK.Qualisite.Application.Site" %>
<%
@ import Namespace="PGK.Qualisite.Application" %>

<script runat="server">
   
void Page_Load(object sender, System.EventArgs e) {
      
if(CmsContext.Current.Page.Navigation != null) {
         
this.RP_SubNav.DataSource = CmsContext.Current.Page.Navigation.GetHierarchyByLevel(1);
         
this.RP_SubNav.DataBind();
      }
   }
</script>

Alle Menü-Ebenen:<BR><BR>

<asp:Repeater id="RP_SubNav" Runat="server">
   
<ItemTemplate>
      
<%# ((NavigationItem) Container.DataItem).Title %><br />

      
<asp:Repeater Runat="server" DataSource='<%# ((NavigationItem) Container.DataItem).Childs %>' >   
         
<ItemTemplate>
            &nbsp;&nbsp;&nbsp;- <%# ((NavigationItem) Container.DataItem).Title %><br />
            
            
<asp:Repeater Runat="server" DataSource='<%# ((NavigationItem) Container.DataItem).Childs %>' >

               <ItemTemplate>
                  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <%# ((NavigationItem) Container.DataItem).Title %><br />    
               
</ItemTemplate>

            </asp:Repeater>
   
      </ItemTemplate>
   
   </asp:Repeater>   
   </ItemTemplate>
</
asp:Repeater>

Mit geeigentem HTML-Code und Style-Sheets lässt sich die Navigation jedem Layout anpassen.

posted @ Wednesday, June 28, 2006 10:20 AM | Feedback (0)
CMS QualiSite: Breadcrumps

Im CMS QualiSite lassen sich Breadcrumps ("Sie sind hier: Rubrik > Rubrik > Rubrik") leicht mittels enes User-Conrols einfügen:

<%

@ Control Language="c#" %>
<%
@ import Namespace="PGK.Qualisite.Application.Site" %>
<%
@ import Namespace="PGK.Qualisite.Application" %>

<

script runat="server">
void Page_Load(object sender, System.EventArgs e) {
   
if(CmsContext.Current.Page.Navigation != null) {
      
this.RP_BreadCrumbs.DataSource = CmsContext.Current.Page.Navigation.GetHierarchy(true);
      
this.RP_BreadCrumbs.DataBind();
   }
}
</script>

<

ASP:Repeater id="RP_BreadCrumbs" runat="server">
<headertemplate>
Sie sind hier:
</headertemplate>

   <ItemTemplate>
   <a href='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString() %>' target='<%# ((NavigationItem) 
   Container.DataItem).GetLinkRecursive().ToString("{1}") %>
' class="pfad">
   
<%# ((NavigationItem) Container.DataItem).Title %></a>
   </ItemTemplate>

   <SeparatorTemplate>
   &gt;
   
</SeparatorTemplate>

</

ASP:Repeater>


Das Layout lässt sich natürlich per CSS definieren.

posted @ Tuesday, June 27, 2006 3:00 PM | Feedback (0)
CMS QualiSite: Bereichsnavigation

Im CMS Qualisite lässt sich die Navigation in das Layout-Template per User-Controls einbinden. Hier ein Beispiel für eine Navigation mit 2 Ebenen, falls es zu einem Menüpunkt eine 2te Menüebene gibt, dann wird diese angezeigt:

<%

@ Control Language="c#" %>
<%
@ import Namespace="PGK.Qualisite.Application.Site" %>
<%
@ import Namespace="PGK.Qualisite.Application" %>

<

script runat="server">

void Page_Load(object sender, System.EventArgs e) {
   if(CmsContext.Current.Page.Navigation != null) {
      
this.RP_SubNav.DataSource = CmsContext.Current.Page.Navigation.GetHierarchyByLevel(1);
      this.RP_SubNav.DataBind();
   }
}

void RP_SubSubNav_PreRender(object sender, EventArgs e) {
   Repeater rp = (Repeater) sender;
   rp.Visible = (rp.Items.Count > 0);
}

</

script>

<asp:Repeater id="RP_SubNav" Runat="server">
<ItemTemplate>

<a href='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString() %>' target='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString("{1}") %>'>&gt; <%# ((NavigationItem) Container.DataItem).Title %></a>

<br />

<asp:Repeater Runat="server" DataSource='<%# (((NavigationItem) Container.DataItem).IsInActiveHierarchy() ? CmsContext.Current.Page.Navigation.GetHierarchyByLevel(2) : null ) %>' OnPreRender="RP_SubSubNav_PreRender">

<ItemTemplate>

<a href='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString() %>' target='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString("{1}") %>'>&gt; <%# ((NavigationItem) Container.DataItem).Title %></a>

<br />

</ItemTemplate>

</asp:Repeater>

</ItemTemplate>

</

asp:Repeater>


Mit geeigentem HTML-Code und Style-Sheets lässt sich die Navigation jedem Layout anpassen.

 

posted @ Monday, June 26, 2006 12:27 PM | Feedback (0)
CMS QualiSite: Medien und Dokumente

Im CMS QualiSite müssen alle auf der Homepage verwendeten Bilder und Medien im Bereich "Medien & Dokumente" in das CMS kopiert werden.

Mehrere Bilder oder Dokumente eines Ordners lassen sich als ZIP-Datei in das CMS kopieren um dort entpackt zu werden.

posted @ Saturday, June 24, 2006 9:54 AM | Feedback (0)
CMS QualiSite: Layoutvorlagen erstellen

Layoutvorlagen können mit einem beliebigen HTML-Editor erstellt werden und müssen anschließend in ein Verzeichnis des CMS kopiert werden. Damit die Layoutvorlagen im CMS zu sehen sind müssen diese manuell in zwei Tabellen des CMS eingetragen werden. Zu jeder Layoutvorlage lässt sich auch ein Vorschaubild speichern.

Zudem müssen die Layoutvorlagen als ASPX-Dateien gespeichert und mit den notwendigen Deklarativen versehen werden. Dies betrifft vor allem die Ableitung der Basisklasse sowie die Registrierung von zusätzlichen Controls. Zudem ist die Einbindung eines Server-seitigen Formulars notwendig.

<%

@ Page Language="C#" autoeventwireup="true" Inherits="PGK.Qualisite.Application.BaseCmsPageHandler" %>
<%
@ Register TagPrefix="QS" Namespace="PGK.Qualisite.Web.UI" Assembly="PGK.Qualisite" %>
<%
@ Register TagPrefix="AreaNavigation" TagName="AreaNavigation" Src="AreaNavigation.ascx" %>
<%
@ Register TagPrefix="BreadCrumbs" TagName="BreadCrumbs" Src="BreadCrumbs.ascx" %>
<%
@ Import Namespace="PGK.Qualisite.Application" %>
<%
@ Import Namespace="PGK.Qualisite.Application.Site" %>
<%
@ Import Namespace="PGK.Qualisite.Application.Page" %>

Ferner lassen sich auch Controls für den Header-Bereich platzieren:

<

head>
<title><asp:Literal ID="LT_HtmlTitle" Runat="server" /></title>
<QS:BACKENDHEAD id="Backendhead" runat="server" />
<QS:CSSHEAD id="CssHead" runat="server" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</
head>
posted @ Saturday, June 24, 2006 9:48 AM | Feedback (0)
WG: Ich hab mir auch eine Deutschland-Fahne fürs Auto geholt :-)

posted @ Friday, June 23, 2006 6:20 PM | Feedback (0)
CMS QualiSite: Layout des Adminbereiches

Das Layout und der Aufbau des Adminbereiches erinnert an Outlook, dies macht es einfacher neue Benutzer an dieses CMS heranzuführen:

posted @ Friday, June 23, 2006 1:57 PM | Feedback (0)
CMS QualiSite: Anlegen der Navigationsstruktur

Die Navigationstruktur lässt sich unter dem Menüpunkt "Navigation" anlegen. Es empfhielt sich mit den jeweils untersten Menüpunkten anzufangen, da in der Liste die nächsten Menüpunkte direkt darüber eingefügt werden.

Später lassen sich die einzelnen Menüpunkte natürlich noch verschieben, jedoch lässt sich mit dieser Vorgehensweise bei umfangreichen Navigationen einige Zeit sparen.

Ach ja: Nach dem Verschieben von Navigationspunkten speichern nicht vergessen ;-)

posted @ Friday, June 23, 2006 12:04 PM | Feedback (0)
Content-Management-System QualiSite

In einem aktuellen Projekt entwicklen wir mit dem .NET Content-Management-System QualiSite eine umfangreiche Webseite, deshalb werde ich hier ab und zu über QualiSite berichten ...

posted @ Friday, June 23, 2006 11:48 AM | Feedback (0)
was mir neulich bei CSS aufgefallen ist

Ein paar Feinheiten, die mir neullich beim Erstellen eines Style-Sheets aufgefallen sind:

Schriftgrößen die aus keinen ganzen Zahlen bestehen, werder in den verschiedenen Browsern unterschiedlich dargestellt. So wird z.B. aus "11.5px" im Internet Explorer und in Opera 11 Pixel (=abgrundet), in Firefox und Safari (Mac) jedoch 2 Pixel (=aufgerundet).

Will man die Abstände nach einem Absatz <p> oder einem Titel <H1> verringern, dann wird dies in den oben genannten Browsern ebenfalls unteschiedlich dargestellt:

h1 {
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
color:#646567;
margin-bottom:-9px;
}

posted @ Thursday, June 22, 2006 1:11 PM | Feedback (0)
DATEADD und DATEDIFF

Gute Beispiele zu DATEADD und DATEDIFF:
http://www.geocities.com/sqlserverexamples/article5.htm

posted @ Tuesday, June 20, 2006 12:35 PM | Feedback (0)
MSN Dektopsuche

Von einem Kollegen wurde ich letztens auf die MSN Dektopsuche hingewiesen:
http://toolbar.msn.de/

Diese habe ich mir anschliessend heruntergeladen und auf meinem Rechner istalliert:

Mich überzeigt die MSN Desktopsuhe mehr wie diejenige von Google: Die Suchmaske passt sich in die Taskleiste ein, die Trefferliste wird schnell angezeigt, etc.

posted @ Monday, June 19, 2006 3:40 PM | Feedback (0)
Resourcen-Datei (*.resx)

Im .NET-Framework gibt es eine, für die Entwicklung von datenbankunabhängigen Applikationen, sehr praktische Datei: Resourcen-Datei (*.resx).

Dies ist im wesentlichen eine XML-Datei in welcher SQL-Statements abgelegt werden. Dies ist vor allem dann sinnvioll, wenn eine Applikation mit verschiedenen Datenbanksystemen funktionsfähig sein soll. Je nach zugrundeliegender Datenbank lassen sich später in der Resourcendatei die SQL-Statements anpassen.

Wird diese Datei in Visual-Studio in einer Anwendung angelegt, dann erstellt Visual Studio / .NET-Framework hierfür automatisch eine CS-Datei und legt eine Klasse an.

Innerhalb der Anwendung lässt sich dann über die Klasse auf die Eigenschaften und somit auf die in der Resourcendatei abgelegten SQL-Statements zugreifen.

posted @ Wednesday, June 14, 2006 1:56 PM | Feedback (0)
BSI veröffentlicht Mailverschlüsselungslösung


Das BSI stellt unter der Adresse http://www.gpg4win.de/  ein kostenlose EMail- und Datei-Verschlüsselung vor. Hier kann auch dieses kostenlose Programm heruntergeladen werden. Für Outlook 2003 gibt es das Plugin GPGol.

posted @ Tuesday, June 13, 2006 10:21 AM | Feedback (0)
Was ist der Unterschied zwischen den Datentypen char und varchar?

Was sind die genauen Unterschiede zwischen den Datentypen char und varchar?

In beiden Datentypen können alphanumerische Zeichen gespeichert werden. Dabei wird beim Datentyp char der reservierte Platz immer bis zur vollen Länge mit Leerstellen aufgefüllt. Dies gilt auch beim Wert NULL. Dadurch belegt der Datentyp bei an sich variablen Werten deutlich mehr Platz in den Daten- und Indexseiten. Char sollte nur für solche Spalten genutzt werden, die in der Regel fast vollständig gefüllt werden.

Der Datentyp Varchar wird nur bis zur eigentlichen Länge des Wertes gefüllt. Die Länge des Wertes wird ebenfalls gespeichert. Hierfür wird 1 Byte benötigt. Ein Feld vom Typ varchar(1) macht keinen Sinn, da intern 2 Bytes genutzt werden. Eins für den eigentlichen Wert und ein weiteres für die Information, daß der Wert nur 1 Byte groß ist.

posted @ Monday, June 12, 2006 2:20 PM | Feedback (0)
Kostenloses Tool zum Verschlüsseln von Dateien

Eine Alternative für die Verschlüsselung von Dateien, z.B. für den E-Mail-Versand, ist die Software PrivateCrypto von Safeguard (http://www.utimaco.de/privatecrypto/). Diese Software lässt sich auf dem Webserver installieren und deren Objekte können von ASP aus angesprochen werden. Für private Kunden ist der Einsatz dieser Software kostenlos, ein PDF-Handbuch erläutert alle Funktionen.

Die Verschlüsslung wird dem Verschlüsselungsalgorithmus AES (128 Bit) realisiert und es können mehrere Dateien zusammengefasst werden. Diese Objekte bieten auch Möglichkeit zur Erzeugung selbstextrahierenden Dateien (SFX) die anschließend bequem und sicher per E-Mail versendet werden können.

posted @ Sunday, June 11, 2006 7:27 AM | Feedback (0)
Kostenloses WebChart Control

Hier habe ich ein kostenloses WebChart Control gefunden:
http://www.carlosag.net/Tools/WebChart/Default.aspx

Damit lassen sich in ASPX-Dateien in Realtime ansehnliche Diagramme darstellen:

Der Quellcode hierzu sieht so aus:

<Web:ChartControl
ID="ChartControl1"
runat="server"
Background-Color="white"
Background-ForeColor="white"
PlotBackground-Type="Solid"
PlotBackground-Color="white"
ChartPadding="30"
Width="520"
Height="350"
HasChartLegend=false
GridLines="horizontal"
YTitle-Text="Prozent"
YTitle-StringFormat="near, far, Character, DirectionVertical"
XAxisFont-StringFormat="near, far, Character, DirectionVertical"
BottomChartPadding="35"
ToolTip="Übersicht über die geforderten Kenntnisse bei den Angeboten"
BorderStyle="none"
Border-Width=0
Border-Color="black">
</Web:ChartControl>
posted @ Monday, June 05, 2006 6:34 PM | Feedback (0)
Code Translater

Hier kann man VB-NET Code in C# und umgekehrt übersetzen lassen:
http://www.carlosag.net/Tools/CodeTranslator/Default.aspx

posted @ Monday, June 05, 2006 6:09 PM | Feedback (2)