Skip Navigation

Tags:

18. Dezember 2011

CSS3 & Responsive Web

Abgelegt unter: — admin @ 23:23

2. Dezember 2011

joomla 1.6 HTML5 Tempalate

Abgelegt unter: — admin @ 13:44

Ein HTML5 Template valide in Joomla 1.6 einzubauen scheitert erstmals an zwei Fehlern in den Metangaben. In Joomla wird die Metadaten – Ausgabe im Core gesteuert.

<meta name="rights" content="" />
<meta name="language" content="de-DE" />
<meta name="title" content="" />

Diese Meta – Angaben werden vom W3c beanstandet.

In libraries -> joomla -> document -> html -> renderer -> head.php muss dieser Codeblock:

foreach ($document->_metaTags as $type => $tag)
      {
         foreach ($tag as $name => $content)

         {
            if ($type == 'http-equiv') {
               $content.= '; charset=' . $document->getCharset();
               $buffer .= $tab.'<meta http-equiv="'.$name.'" content="'.htmlspecialchars($content).'"'.$tagEnd.$lnEnd;
            }
            else if ($type == 'standard') {
               $buffer .= $tab.'<meta name="'.$name.'" content="'.htmlspecialchars($content).'"'.$tagEnd.$lnEnd;
            }
         }
      }

Mit diesem ersetzt werden:

foreach ($document->_metaTags as $type => $tag)
      {
         foreach ($tag as $name => $content)

         {
            if ($type == 'http-equiv') {
               $content.= '; charset=' . $document->getCharset();
               $buffer .= $tab.'<meta http-equiv="'.$name.'" content="'.htmlspecialchars($content).'"'.$tagEnd.$lnEnd;
            }
            else if ($type == 'standard') {
               if ($name == "rights"  || $name == "language" || $name == "title"){
                  continue;
               }else{
               $buffer .= $tab.'<meta name="'.$name.'" content="'.htmlspecialchars($content).'"'.$tagEnd.$lnEnd;
               }
            }
         }
      }

In den Zeile 11 wird dafür gesorgt, dass besagte Metaangaben nicht mehr in den Header geladen werden. eine elegantere Methode habe ich bis jetzt noch nicht gefunden.

13. Oktober 2011

Doppelte Einträge in MySql verhindern

Abgelegt unter: — admin @ 10:35

Doppelte Einträge in die Datenbank sollen verhindert werden.

In einer Snippet – Datenbank soll ein Tagging – System Einzug halten. Der Administrator kann nun bei den Snippets die Tags löschen oder neue einfügen (Ajax). Kein Snippets soll über doppelte Tags verfügen.

Zuerst erstelle ich über die ID des Snippet (feld_A) und der ID des Tags (feld_B) einen UNIQUE Schlüssel.

ALTER TABLE tabelle
ADD UNIQUE INDEX myIndex (feld_A, feld_B);

Als Alternative kann man auch einen PRIMARY Schlüssel verwenden.

ALTER TABLE tabelle
ADD PRIMARY KEY (feld_A, feld_B);

Danach kann man beim Einfügen des Datensatzes mit INSERT IGNORE arbeiten.

11. Mai 2011

Plugin tag.schaufler.ch

Abgelegt unter: — admin @ 21:07

Ein Plugin für meine Scuttle Linkdatenbank habe ich schon lange. Leider hat die Erweiterung mit dem neuen Firefox Browser nicht mehr funktioniert. Ich habe das Plugin neu angepasst. Download der Version 0.34. Login zum Linksystem gibts auf Anfrage.

10. März 2011

Remote debugging JavaScript

Abgelegt unter: — admin @ 09:14

6. August 2010

CSS minimieren und komprimieren mit PHP

Abgelegt unter: — admin @ 11:44

Heute sind CSS Dateien von 200 – 300 KB grösse keine Seltenheit. Auch in Zukunft werden Cascading Style Sheets immer grösser und komplexer werden. Natürlich gibt es Werkzeuge die CSS komprimieren. Beim Minimieren und/oder Komprimieren, leidet oft die Übersichtlichkeit in den entsprechenden Dateien. Gegen das Aufsplitten in einzelne Teile spricht die Performance (zu viele Requests).

Hier eine elegante Idee, wie man die Übersichtlichkeit von CSS erhöht, und deren Grösse massiv reduziert. Die CSS – Datei wird dabei durch den PHP Parser geschickt und heisst nun style.php.

<link rel="stylesheet" href="css/style.php" type="text/css" media="screen, projection" />

Danach werden die einzelnen CSS Dateien geladen und vom Server komprimiert (ohne Kommentare und Zeilenabstände) ausgeliefert.

<?php
  header('Content-type: text/css');
  ob_start("compress");
  function compress($buffer) {
    /*Kommentar entfernen */
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    /* entfernen von abständen, Zeilen usw.*/
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
  }
  /*lade CSS Dateien */
  include('css/reset.css');
  include('css/layout.css');
  include('css/navi.css');
  include('css/forms.css');
  ob_end_flush();
?>

Das gefällt mir. Sauber zum arbeiten und schlank in der Anwendung ist Die Reinhold Weber – Methode. Gefunden bei catswhocode.com.

5. Mai 2010

Der Webentwickler als Hacker

Abgelegt unter: — admin @ 14:01

Google Code hat eine neue Webapplikation online gestellt, die noch löchriger ist sein Name (Jarlsberg, so der Name, ist ein norwegischer Käse). Jarlsberg ist ein mit Absicht unsicher programmierter Blog. Der schlanke, in Python geschriebene Jarlsberg-Server lässt sich auch downloaden und lokal installieren.

Die Applikation hat viele Schwachstellen. Cross-Site Scripting, Cookie Manipulationen, CSRF, SQL Injection, Pishing, DoS, können live ausprobiert werden, damit hat man schnell erste Erfolgserlebnisse. Zu jeder dieser Lücken gibt es Beschreibungen und Hilfestellungen.  Wie die Hacks funktionieren und wie die Schwachstellen im Code behoben werden können, wird ausführlich erklärt.

Nun aber auf zum fröhlichen hacken für Webworker. Damit Ihr auch herausfindet, was genau in der Datei secret.txt steht.

11. Februar 2010

Für Internetausdrucker

Abgelegt unter: — admin @ 17:17

Natürlich werden Webseiten auch mal ausgedruckt. Nicht selten erlebt man dabei einige Überraschungen. Navigationen, Suchfelder und Banner haben auf einem Ausdruck nicht viel verloren. Eine dem Medium angepasste Typographie, klare Gliederung der Inhalte werden auch auf Papier geschätzt. Das alles kann ein spezielles Stylesheet für den print – Bereich erreichen. Der Link dazu wird in den Header der  Webseite eingebunden.

<link rel="stylesheet" type="text/css" media="print" href="http://DeineWebseite/print.css" />

Die print.css Datei erhält nun die Informationen der Anzeigebreite (100%), floating wird deaktiviert und auch die Typographie wird Seitenweit optimiert. im Printbereich wird die Schriftgrösse in Punkte angegeben (pt).

body {
font-family: Garamond,"Times New Roman", serif;
color: #000;
background: none;
font-size: 12pt;
background:none;
color:#000;
width:100%;
float:none;
margin:0;
}

Alle Elemente die nicht ausgedruckt werden, können mit dem Befehl “display:none” ausgeblendet werden.

#header,#menu,#navigation,#Sidebar,#footer{
display:none;

Im Web nutzen wir ja schon lange “sprechende Links”. Hier benötigen wir aber “schreibende links”. Mit wenigen Code – Zeilen sorgen wir dafür dass die URL’s der Links mit ausgedruckt werden (Geht im IE nicht).

a:link[href^="http://"]:after, a[href^="http://"]:visited:after {
content: " (" attr(href) ") ";
font-size: 90%;
}
a[href^="http://"] {
color:#000;
}

Danach sollten noch die Linkfarben (Kontrast) verändert werden. Natürlich kann man auch noch Überschriften Code, Zitate und weiteres aufhübschen.

a:link,a:visited {
color:#520;
background:transparent;
font-weight:700;
text-decoration:underline;
}

code {
font:10pt Courier, monospace;
}

blockquote {
font-size:10pt;
margin:1.3em;
padding:1em;
}

h1,h2,h3,h4,h5,h6 {
font-family:Helvetica, Arial, sans-serif;
}

h1 {
font-size:16pt;
}

h2 {
font-size:15pt;
}

Dieses css Script kann man sich auch im Stück runterladen. Weitere Informationen um Thema Print Stylesheet gibt es bei Selfhtml oder Chris Coyier. Wie das mit den manuellen Seitenumbrüchen geht sagt uns David Walsh.

11. Januar 2010

Zen Coding mit Dreamweaver

Abgelegt unter: — admin @ 15:30

Beim Code schreiben, sind die Snippets gern und oft gebrauchte Abkürzungen um den Code schneller und effizienter zu erstellen. Neben den Snippets die ich auch aktiv in meinem Lieblingseditor einsetze, nutze ich seit letztem Jahr Zen-Coding. Zen-Coding ist in etwa eine intelligente Codeschnipsel-Verwaltung. Es erleichtert das schreiben von Code ungemein. Die Idee, Code effizient mit Snippets zu schreiben, verbreitet sich unter allen Betriebssystemen. Einer der ersten war wohl Textmate (mac), auch gedit (linux) nutzt eine Snippet-Verwaltung und unter Windows verwende ich als Code-Editor gerne Intype.

Nun habe ich festgestellt, dass es auch für den Dreamweaver CS4 (MAC und WIN) eine Zen-coding Extension gibt. die .mxp Datei kann man nach dem download mit dem Extension Manager installieren.

Für alle nicht wysiwyg-Coder:
Gedit gibt es nun auch für Windows. Sogar eine  portable Betaversion habe ich gefunden.
Wie Zen-Coding mit dem Editor Espresso (MAC) funktioniert, zeigt dieses Video.

22. Oktober 2009

Hacked

Abgelegt unter: — admin @ 09:42

Aufmerksame Leser meiner Seiten haben es gemerkt. Mein (virtueller) Server wurde gecrackt. Der Einbruch erfolgte über eine veraltete Plesk Version 9. 0.1 auf Serverebene. Natürlich waren  auch noch viele andere Domains von diesem Einbruch betroffen.

Das Problem wurde uns erstmals um ca. 22:10 gemolden

Ist schon möglich, wobei ich exakt um 21.41 den Einbruch per Telefon “gemolden”  habe.
Auf allen diesen Domains wurde die Dateien index* überschrieben. Der Provider konnte die Backups nicht bei allen einspielen.

Es war jedoch technisch bedingt nicht möglich alle index Seiten wieder herzustellen

In einem Forum habe ich dann noch genaueres von Unaxus erfahren, danke. In 12 Jahren habe ich schon einiges erlebt bezüglich hosting und virtuellen Servern. Im letzten Jahrtausend die Episode agri.ch (heute Green). Danach Hostpoint und nun das. Macht mich ziemlich ratlos, das ganze.