MySQL Dumper läuft nicht mehr unter PHP 7

Feb 15
2017

Leider wird diese Tool nicht mehr weiterentwickelt.
Viele, ich selbst eingeschlossen, finden das schade und können nicht ohne diese sinnvolle MySQL Datenbankbackup Programm leben.
Zum Glück hat sich einer dem Problem angenommen und ein Fork des Tools herausgebracht.

Das Tool nennt sich MyOOS und basiert auf MySQL Dumper.
Hier kann man es direkt beim Entwickler herunterladen.

Sollte der Link mal nicht funktionieren, könnt ihr es auch direkt beim mir im Blog herunterladen.

Bootstrap Elemente in TinyMCE für CMSms einfügen

Jan 21
2017

Leider ist Dokumentation in diesem Fall sehr schlecht. Daher schreibe ich hier eine kurze Anleitung um ein komfortabeles Backend Menü für Bootstrap basierte Seiten im CMS made simple Content Management System.
Lange Rede kurzer Sinn, jetzt gehts an´s Eingemachte:

Download des Moduls (kostenpflichtig):

tinyMce Bootstrap Plugin

Hochladen der Dateien

Die Ordner bootstrap und css per FTP  (den ganzen Ordner, nicht nur den Inhalt) in folgendes Verzeichnis hinein kopieren:

/modules/TinyMCE/lib/js/tinymce/plugins/bootstrap/

Da, das Modul nur in englischer und französischer Sprache vorliegt, haben wir jetzt 2 Möglichkeiten um es zum Laufen zu überreden:
1. Wir benennen die Dateien: en_EN.php und en.php im Ordner:

/modules/TinyMCE/lib/js/tinymce/plugins/bootstrap/langs/ auf de_DE.php und de.php um.
2. Oder wir übersetzen die Dateien anhand der englischen Exemplare.

Zurück zum CMS:

Activieren des Plugins:
Unter Erweiterungen -> TinyMCE WYSIWYG Editor ein Profil auswählen. Dort unter Erweiterungen -> Erweiterungen: bootstrap eintragen. Bei mir sieht das so aus:
 autolink anchor code fullscreen image link media paste table visualblocks hr emoticons bootstrap

Plugin zur Wrekzeugauswahl hinzufügen:

Unter Werkzeuge -> Werkzeugleiste – zweite Zeile habe ich dann noch folgendes eingetragen: bootstrap

Damit die Werkzeuge auch richtig funktionieren, werden jetzt noch einige Einstellungen benötigt. Unter Vorlagen bitte folgendes hinzufügen:

paste_as_text: true,
image_caption: true,
bootstrapConfig: {
imagesPath:  ‚http://ihredomain.tld‘ + ‚/uploads/images‘,
bootstrapCssPath: ‚http://ihredomain.tld‘ + ‚/uploads/bootstrap/css/bootstrap.min.css‘
}

Wer die Einstellungen jetzt speichert und beispielsweise „Insert/Edit Bootrap Pager“ testet, wird mit einer netten Fehlermedlung begrüßt. So ist es zumindest derzeit bei CMS made simple Version 2.1.6 (so zumindest mit aktiverierter htaccess Datei) :

Forbidden

You don’t have permission to access /cms/modules/TinyMCE/lib/js/tinymce/plugins/bootstrap/bootstrap-pager.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

In meinem Fall ist dies die .htaccess Datei welche sich im cms root Verzeichnis befindet. Dort sind Umleitungen vorhanden die vor direktem Ausführen einiger php Dateien schützen sollen.
Leider werden aber auch unsere Bootstrap php Dateien blockiert.
Die Quick and Dirty Lösung lautet:
suche folgende Einträge:
RedirectMatch 403 ^.*/plugins/.*\.php$
RedirectMatch 403 ^.*/modules/.*\.php$

durch eine vorangestellte Raute kann man die Befehle der htaccess Datei enträftigen.

Das Ganze sieht dann in etwa so aus:
#RedirectMatch 403 ^.*/plugins/.*\.php$
#RedirectMatch 403 ^.*/modules/.*\.php$

… fertig, jetzt kann man das TinyMCE Bootstrap Plugin in CMS made simple (2) nutzen.

CMSms TinyMCE HTML Templates für WYSIWYG Editor

Nov 09
2016

Looks like kindof a dead thread, but I just went through the process of figuring out how this works, so I’ll share my findings for anyone who wants to use the template plugin in TinyMCE.

The trick is to place the configuration code in the „Extra configuration“ box in the advanced tab in the TinyMCE config page.

I put this in as a test:
Code:

template_templates : [
{
title : "simple snippet",
src : "tinytemplates/snippet.html",
description : "add a test snippet"
}
],
template_replace_values : {
test : "TEST CONTENT"
}

And snippet.html:
Code:
<p class=“test“>This is a simple <strong>snippet</strong>. Will be replaced: {$test}.</p>

The path to the template is relative to the web root. There is a suggestion above that you could use Template Externalizer to manage the template, and that would work, but these templates become static once inserted into the content–i.e. you won’t be able to change all instances of the template by editing the source template.

This plugin is really just a way to insert complex snippets and give you some variables that will be applied at the time it’s inserted. You could, (and I haven’t figured this out yet) have a pop-up come in that asked for specific content, then when the snippet was inserted, that content would be placed in the snippet. For instance, if you wanted to add a caption to an image, this plugin would allow you to select the image, type in the caption, and then it would do the job of wrapping the caption and image together.

Gefunden im CMSms Forum: https://forum.cmsmadesimple.org/viewtopic.php?t=12138

Doppelte Einträge aus Smarty Foreach Schleife nicht ausgeben

Feb 08
2016

Lange habe ich nach einer vernünftigen Lösung gesucht, um doppelte Werte aus einer Smarty Foreach-Schleife zu entfernen.
So wie bei der PHP Funktion: array_unique.
Und so funktioniert es unter der Smarty Template Engine:

{foreach from=$items item=item}
    {* gibt es den Eintrag bereits im Array? *}
    {if !in_array($item, $array)}
    {* wenn nein, dann Ausgabe *}
    • {$item}

{* bei jeder Iteration wird das Array gefuellt *}
{append var='array' value=$item}
{/if}
{/foreach}

HTML Buttons nehmen CSS Styling bei Apple Geräte nicht an

Jan 27
2016

input, textarea, select { -webkit-appearance: none; border-radius: 0; -webkit-border-radius:0; }
* { -webkit-tap-highlight-color:transparent; }

Dateipfad aus Image Tag mittels Regulärem Ausdruck extrahieren

Dez 31
2015

Dateiname bzw. Dateipfad aus Image Tag mittels Regulärem Ausdruck extrahieren

$html = '<img border="0" src="/images/image.jpg" alt="Image" width="100" height="100" />';

preg_match( '@src="([^"]+)"@' , $html, $match );

$src = array_pop($match);

echo $src;

// folgende Ausgabe erfolgt:  /images/image.jpg

Springendes Layout mit Scrollbars unterdrücken

Jul 01
2012

Dieses Phänomen kennen wahrscheinlich viele: Eine Webseite füllt nicht den ganzen Bildschirm aus. Navigiert man zu einer Unterseite, die länger ist, springt das Layout kurz, da die Gesamtbreite durch die Scrollbar geschmälert wird.
Dies kann man verhindern, indem man folgendes CSS hinzufügt.

body {
overflow:scroll;
}

Der Nachteil besteht darin, dass nun auf jeder Seite Scrollbars angezeigt werden. Diese sind zwar ausgegraut und nicht direkt zu erkennen, dennoch hat man auch eine horizontale Scrollbar.
Dies kann man unterdrücken, indem man folgenden Code verwendet:

body {
overflow-y:scroll;
}

Zu beachten gilt, dass overflow-y der Firefox ab der Version 1.5 korrekt unterstützt. Opera und Netscape kommen damit gar nicht klar. Der Internet Explorer hat mit der Eigenschaft erstaunlicherweise keine Probleme.

Smartphones oder Tablets Schriftgrößenproblem CSS

Jun 14
2012

Einfach diesen Schnipsel in das CSS Stylesheet einfügen und schon passen die Schriften wieder

@media screen and (max-device-width: 480px) {
body{-webkit-text-size-adjust: none }
}

Wie lege ich einen neuen Benutzer in der MySQL Datenbank an

Jun 28
2010

Zuerst melden wir uns in phpmyadmin an.
Dann gehen wir auf den „Reiter“ SQL und geben folgendes ein:

GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

Wobei monty für den Benutzernamen steht und some_pass für das gewählte Passwort. Diese passt ihr bitte euren Wünschen an.
Das ganze bestätigen wir mit OK.

Voila, der neue Benutzer ist angelegt und hat alle Rechte.
Dies ist besonders sinnvoll wenn man eine Entwicklungsumgebung schaffen möchte und nicht ständig die Logindaten ändern möchte.

Wertigkeiten verändern mit der !important-Regel

Dez 27
2009

Das Schlüsselwort ! important verändert die natürliche Wertigkeit der Style-Angabe.

Dabei spielt es keine Rolle, ob zwischen important und dem Ausrufezeichen ein Leerzeichen ist. Die Regel wird von allen Browsern unterstützt.

Die Wirkweise der !important-Regel ist das „überbieten“ der CSS-Prioritäten. Mit ! important setzen Sie die höchste Priorität.

CSS Code-Beispiel

#content ul li {
color : red;
}
ul li {
color : blue !important;
}

In diesem Beispiel hat die Anweisung #content ul li die höchste Priorität. Listenpunkte würden damit rot dargestellt. Ohne das !important in der zweiten Anweisung hätte die blaue Farbangabe keinen Effekt auf die Listeneinträge, die innerhalb der ID #content sind. Durch das !important geben Sie der zweite Anweisung allerdings ein hohe Wertigkeit, Listenpunkte werden damit blau dargestellt.

Wertigkeiten von CSS-Style-Definitionen

Eine grobe Einteilung der Wertigkeiten des CSS sieht so aus: 

  1. style=“…“ (Angabe innerhalb des HTML)
  2. #eine_id div.eine_klasse
  3. #eine_id div
  4. #eine_id
  5. div .eine_klasse
  6. div.eine_klasse
  7. div

Bewertung

Die !important-Regel ist Teil des CSS-Standards und damit völlig legitim, einzusetzen. Allerdings muss man sich dem Einsatz klar vor Augen halten – es ist CSS-Design mit dem Holzhammer. Eine CSS-Angabe einmal mit einem ! important versehen, werden Sie von einer anderen Stelle aus, mit einer gut geschriebenen Cascade nicht mehr ansprechen können.

Bei großen Projekten oder für die schnelle Lösung kommen Sie manchmal nicht ohne ein ! important aus. Eleganter ist es aber immer, eine neue Klasse einzuführen, oder eine saubere Cascade zu schreiben.

Optimization WordPress Plugins & Solutions by W3 EDGE