orgaMAX: Rechnung auf uneinbringbar setzen

Ich nutze die Büro-Software orgaMAX für meine Kunden- und Rechnungsverwaltung, weil sie sehr übersichtlich und einfach zu bedienen ist.

Grundsätzlich kann man in orgaMAX einer Rechnung einen Zahlungsstatus zuweisen. Zum Beispiel weist man in der Rechnungsübersicht den von den Kunden beglichenen Rechnungen den Status vollständig bezahlt zu. Doch leider wird jede(r) Selbstständige den Fall kennen, dass Rechnungen bisweilen uneinbringlich sind. Wie man den Status uneinbringbar vergibt, danach musste ich ziemlich suchen, aber es ist eigentlich ganz einfach.

Man muss die betreffende Rechnung als Einzelansicht aufrufen und in den Bearbeitungsmodus setzen. Dort klickt man auf den Reiter Eingabemaske und wählt im Auswahlmenü Zahlungsstatus den Punkt uneinbringbar aus. Fertig.

orgaMAX: Zahlungsstatus uneinbringbar
(Aufs Bild klicken zum Vergrößern)

Tomato Cart 2.0 Alpha 4: Installation hängt bei Beispieldaten

Inzwischen ist das Shopsystem Tomato Cart, ein osCommerce-Fork, für mich gestorben. Es gab einfach zu viele Probleme. Was ich als ein viel besseres Open-Source-Shop-System empfinde, gerade für den deutschen Markt, ist modified eCommerce. Jedenfalls, ich habe zuletzt noch Tomato Cart 2.0 in der Alpha-Version 4 ausprobiert. Die Zweier-Version wird, wenn sie fertig entwickelt ist (eine komplette Neuentwicklung), vermutlich besser als die Einser-Produktlinie funktionieren, aber Alpha 4 nervte mich schon, als die Installation an dem Punkt hängen blieb, wo die Beispieldaten installiert werden sollen. Immerhin fand ich eine Lösung, die ich hier gern noch präsentieren möchte.

Zu bearbeiten ist folgende Datei: /install/applications/controllers/setting.php. Man löscht folgenden Code (ab Programmzeile 97):

    
//import sample data
if ($sample == 'on') {
    //import sample sql data
    $this->import_sample_sql();

    //copy sample data
    toc_copy('samples/images', '../images');

    //resize images
    $this->resize_product_images();
}

Und noch diesen Code (ab Programmzeile 141):

/**
 * Import sample sql data
 *
 * @access private
 * @return boolean
 */
private function import_sample_sql() {
    //get database configuration from session
    $config = $this->session->userdata('db_config');

    //connect to database
    $this->load->database($config);

    //database is connected
    if ($this->db) {
        $sql_data = $this->load->file(realpath(dirname(__FILE__) . '/../../../') . '/install/tomatocart_sample_data.sql', TRUE);
        $sql_data = str_replace('`toc_', '`' . $config['dbprefix'], $sql_data);

        //split sql data with ;
        $statements = preg_split("/;[\r\n]/", $sql_data) ;

        //execute the sql statement
        foreach ($statements as $statement) {
            $this->db->query($statement);
        }

        return TRUE;
    }

    return FALSE;
}

Dann hat man zwar keine Beispieldaten (die ich sowieso überflüssig finde, weil man sie mühsam vor Inbetriebnahme des Shops wieder löschen muss), aber immerhin läuft die Installation auf diese Weise flüssig durch.

Sieben Webdesign-Sünden

Gerade habe ich einen Artikel über sieben Webdesign-Sünden gelesen. Nun, sieben, das klingt nicht gerade viel. Bestimmt gibt es noch einige Fehler mehr, welche man machen kann, aber die in dem Beitrag beschriebenen Entgleisungen sind besonders schlimme Sünden. Die meisten Webauftritte sind ja schön, informativ und übersichtlich. Aber manchmal stößt man eben auch auf Websites, wo man erst mal gar nicht so richtig weiß, worum es geht und was der Betreiber uns eigentlich sagen will. Dies ist ein Punkt, der in dem Artikel gleich zuallererst genannt wird.

Doch insbesondere Punkt 6 hat mich angesprochen. Es geht um die Lesefreundlichkeit von Webseiten. Ich prangere ja oft genug zu kleine Schriftgrößen oder zu geringe Kontraste zwischen Schrift und Hintergrund an und noch ein paar Dinge mehr. Doch ich habe bisweilen das Gefühl, mit dieser Meinung alleine dazustehen. Wunderbar, dass ich mich in diesem Punkt irre und es Menschen gibt, die meine Ansichten teilen.

Hier der Artikel: Die 7 Website-Sünden.

Wenn WordPress im Wartungsmodus hängen bleibt

Ist mir gerade passiert: drei Plugins waren in WordPress zu aktualisieren, was normalerweise glatt über die Bühne geht. Diesmal jedoch blieb WordPress im Wartungsmodus hängen und ich konnte das Backend nicht mehr bedienen. Zum Glück fand ich schnell eine sehr einfache Lösung, und zwar im Blog von Ansas Meyer: WordPress Wartungsmodus manuell beenden. Vielen Dank für den Tipp!

Die korrekte Verwendung des Apostrophs

Ich rege mich immer wieder auf, in welch unsinniger Weise der Apostroph, also das Auslassungszeichen, verwendet wird. Dieses eigentlich eher selten verwendete Zeichen muss wohl äußerst beliebt sein, denn es wird gern und häufig an den unmöglichsten Stellen gesetzt, also dort, wo es überhaupt nicht hingehört. Und dann wird dieser scheue und rare Apostroph auch noch mit anderen Zeichen verwechselt. Doch ein Akzent zum Beispiel ist nun mal schlicht und ergreifend kein Apostroph. Das mag typografisch desinteressierten Menschen alles pingelig und kleinkariert vorkommen, aber Typografie hat nicht nur sehr viel mit guter Lesbarkeit, sondern genauso viel auch mit Ästhetik und Schönheit zu tun. Man trägt ja zum Nadel­streifen­anzug oder schwarzen Kostüm auch keine Badelatschen, nur weil die gerade am griffbereitesten im Schuhschrank liegen.

Wie der Apostroph korrekt verwendet wird, kann man bei Typefacts – Typografie verstehen nachlesen.

concrete5: Wenn im Composer Eingabefelder fehlen (Teil 2)

Kürzlich hatte ich beschrieben, wie man fehlende Eingabefelder im Composer für die Blogartikel-Texte nachrüsten kann.

Ich hatte geschrieben, dass man sich ins Dashboard einloggt, zu den Seitentypen navigiert und im Seitentyp blog_entry die gewünschten Blöcke als Platzhalter einfügt. Nur leider fehlte eine Winzigkeit: Man muss, während man sich im Bearbeitung­smodus befindet, im Kontextmenü des eingefügten Blocks noch Composer-Einstellungen wählen.

concrete5-block-in-composer-einbinden-1.png

Im daraufhin erscheinenden Bearbeitungs-Fenster setzt man dann ein Häkchen bei Block in Composer einbinden. Erst dann erscheint solch ein Bereich auch im Composer.

concrete5-block-in-composer-einbinden-2.png

Das wirkt zunächst einmal alles ein bisschen umständlich. Es wird aber einleuchtend, wenn man bedenkt, dass sich die in einem Theme (Gestaltungsthema) enthalten Seitenvorlagen sehr flexibel durch den Webentwickler für den Kunden programmieren lassen und somit das System gar nicht wissen kann, welche Block-Platzhalter überhaupt im Composer zur Verfügung gestellt werden sollen und wie der Webentwickler sie genannt hat. Dennoch wäre es sicherlich eine gute Idee, wenn die concrete5-Programmierer die beiden Standard-Platzhalter Main und Blog Post More, falls vorhanden, im Composer auswählbar machen würden oder so was. So steht man als Anwender und/oder Webdesigner nicht wie der Ochs vorm Berg. Und wie man an den Fragen in den Foren erkennen kann, bin ich beileibe nicht der einzige »Ochse«.

orgaMAX Bürosoftware zeitlich begrenzt mit 35 % Rabatt!

Der deutsche Software-Hersteller Deltra bietet eine hervorragende Bürosoftware namens orgaMAX an. Das ist ein modulares System, mit dem man, je nach Ausbaustufe, die gesamte Büroarbeit organisieren und abwickeln kann. Ich selbst benutze es seit Anbeginn meiner Selbst­ständigkeit zur Angebots- und Rechnungs­erstellung.

Und jetzt, zur Fußball-WM, gewährt Deltra nach jedem Spiel, an dem die deutsche Mannschaft beteiligt war, 5 Prozent Rabatt pro Tor, das Deutschland geschossen hat. Bei dem Sieg gegen Brasilien sind es also satte 35 Prozent! Billiger, so glaube ich, kann man an diese stabil laufende, nützliche Software (fürs Windows-Betriebssystem) nicht dran kommen. Natürlich sind solche Angebote zeitlich stark begrenzt.

7 Tore für Deutschland gegen Brasilien = 35 % Rabatt

concrete5: Wenn im Composer Eingabefelder fehlen

Der Composer im CMS concrete5 ist dafür da, auf besonders einfache Art neue Seiten oder Blogartikel zu erstellen. Andere Möglichkeiten sind, in der Verwaltung den Seitenbaum aufzurufen und dort eine neue Seite anzulegen. Oder man geht direkt auf die Seite, zu welcher eine Unterseite erstellt werden soll. Der Composer soll einem diese langen Wege ersparen. Außerdem kann man ganz gut Seiten vorbereiten, ohne sie gleich veröffentlichen zu müssen; anders gesagt, es lassen sich Entwürfe speichern.

Ich muss gestehen, dass ich früher nie verstand, was dieser Composer überhaupt sollte. Aber es wurden bei mir auch nie irgendwelche Editoren oder Eingabebereiche für die zu erstellenden Texte angezeigt.
concrete5-composer-editoren.png

Ich begann zwar bald zu ahnen, dass da vielleicht in den Einstellungen etwas nicht stimmen konnte, ging der Sache aber nicht weiter nach. Kürzlich ließ mir das Thema aber endlich doch keine Ruhe mehr, und ich ging auf die Suche nach einer Lösung. Diese Lösung lautet: Man loggt sich ins Dashboard ein, geht zu Verwaltung >> Seiten & Themes > Seitentypen, dort zu Blog Entry > Standards und fügt hier schon einmal Inhaltsblöcke ein. Am besten gibt man kurze Platzhalter-Texte als Hinweise ein.
concrete5-composer-bloecke.png

Quelle: concrete5.org/community/forums/

Nachtrag: Ein letzter Handgriff fehlt noch, wie ich feststellen musste! Er wird in Teil 2 beschrieben.

concrete5: Datum von Blogartikeln

Das CMS concrete5 speichert in der Datenbank die Angabe, wann ein Blogartikel erstellt wurde. Das dem Blogbesucher angezeigte Datum lässt sich allerdings ändern – und nach diesen öffentlichen Daten wird die Artikelliste auch sortiert, falls man eine chronologische Sortierung im Seitenlisten-Block eingestellt hat.
c5-blogartikel-datum.png

Wie aber lässt sich im Seitentyp blog_entry.php einstellen, dass eben diese Datumsangabe angezeigt werden soll? Indem man die Methode getCollectionDatePublic statt getCollectionDateAdded benutzt, etwa folgendermaßen:

<?php
    global $u;
    echo t(
        '%1$s',	
        $c->getCollectionDatePublic(DATE_APP_GENERIC_MDY_FULL) 
    );
?>

Quelle: concrete5.org/community/forums/

Was tun mit alten Windows-XP-Notebooks?

Freunde haben mich gefragt, was sie jetzt, nach dem Support-Ende für Windows XP, nachdem also keine Sicherheits-Updates mehr erscheinen werden, mit ihrem Notebook anstellen sollen, auf dem noch XP installiert ist.

Na schön, die eine Möglichkeit wäre, Linux zu installieren. Es gibt einige Distributionen, die sich auch für ältere Hardware noch eignen und flott darauf laufen. Ich persönlich komme mit Lubuntu gut zurecht:
lightweight, fast, easier

Der Weg, Linux auf neuerer Hardware mit vorinstalliertem Windows 8 zu installieren, ist aller­dings mit Stolpersteinen gepflastert:
Lubuntu statt Windows
Logo-Korsett

Doch von Windows auf Linux umzusteigen, mag für Leute, die sich noch nie mit Linux beschäftigt haben, eine Hürde sein. Und daher lautet meine alternative Empfehlung gemäß dem alten IT-Ausspruch: »Ändere niemals ein laufendes System« und bleibe bei XP. Denn diese angeblich so gewaltigen Sicherheitsrisiken lassen sich durch einen bewussten und selbst­kritischen Umgang und das Betreiben einer guten Internet-Sicherheits-Suite, am besten in einer Kauf-Vollversion, minimieren.
Windows XP: so sicher wie nie
Malware-Definitionen für Windows XP bis Juli 2015

Dennoch der (augenzwinkernde) Hinweis an meine Leser: Alle Angaben ohne Gewähr, und ich hafte nicht für Schäden, die durch Windows, Linux oder sonst was entstehen könnten.