Checkboxes in admin interface – a quick & dirty trick

If you add enum-fields to a table and want to make them editable in an admin menue you are faced to the fact that if the box is not checked - no parameter is passed to the according PHP-script. Normally you would have to write a small module of the according class containing the save function with something like this:

if(!isset($aParams['nameOfCheckboxField']))
    $aParams['nameOfCheckboxField'] = 0;

Writing a module for such simple stuff is a bit overhead. So what you can do instead in the according template is:

<input type="hidden" name="nameOfCheckboxField" value="0">
<input type="checkbox" name="nameOfCheckboxField" value="1">

So now, if the checkbox is checked, the parameter nameOfCheckboxField with value "1" is posted to the PHP script. If the checkbox is not checked then the value of the hidden field is posted - and you don't need any module at all.

Off course this might not be totally valid code. But in the backend I would not care about validation as much as about functionality.

Backend Extensions: additional fields

From a developers view the reason why I like the Oxid eShop is, that quite a view things are very easy to customize. One of these things is adding your own fields to tables in the database and make them editable through the backend interface. Here is how to do it:

Let's say you want to add a field MY_FIELD to the oxarticles table and want to put a new form field into the main article menue to edit the content of the new table field.

First of course add the field to the database using phpMyAdmin or whatever tool you use for your db-administration. Now look for the template which has to be extended for adding the form field. If you don't know how to find the right template, do the following:

Open the admin interface, open menue Administer Products -> Products and klick on an article of the list at the top of the page. Now, if you move your mouse over the tabs (Main, Extended, Inventory etc.) have a look at the status bar at the bottom of your browser. There you will see something like this: javascript:ChangeEditBar( 'article_main', 0); - which shows you the name of the PHP-class - and file - which is called by clicking on that tab. The templates are named the same. So if you see 'article_main' you cann be sure that a.) the used class is called article_main.php and the according template is called article_main.tpl (I assume that the locations of admin view classes and templates is known).

Well, so open the template article_main.tpl with an editor. If your new field is a text-field, look for a similar field in the already existend code. For example you could take the searchkeys-field:

<tr>
<td class="edittext">
[{ oxmultilang ident="ARTICLE_MAIN__OXARTICLES__OXSEARCHKEYS_RR" }]&nbsp;
</td>
<td class="edittext">
<input type="text" class="editinput" size="32" 
  maxlength="[{$edit->oxarticles__oxsearchkeys->fldmax_length}]" 
  name="editval[oxarticles__oxsearchkeys]" 
  value="[{$edit->oxarticles__oxsearchkeys->value}]">
</td>
</tr>

(This is an example of the OXID EE code - PE is slightly different but the differences are obvious.)

So now just copy that table-row an paste it to the end of the table before the section with the submit button. Afterwards changed the used variables to the names of your table field:

<tr>
<td class="edittext">
Title of my field
</td>
<td class="edittext">
<input type="text" class="editinput" size="32" 
  maxlength="[{$edit->oxarticles__my_field->fldmax_length}]" 
  name="editval[oxarticles__my_field]" 
  value="[{$edit->oxarticles__my_field->value}]">
</td>
</tr>

Now you can fill out your new field and save the content to the database.

My collection of oxid hints

Triggered by I a training I did some days ago I got the idea to build up a collection of hints and informations about customizing the oxid eshop software. Cause one of the participants of my training was australian I had to do it in english - and that again caused me to write my oxid-stuff here in english, too, as there are not many oxid related ressources yet for developers around in englisch language. And german coders will certainly understand the english stuff too, I think.

I hope that might be helpful for some people.

615.810 EUR gewonnen? – Loteria Primitiva

Als ich eben meinen Briefkasten öffnete fand ich einen Umschlag, der aus Malaga, Spanien  stammte. Inhalt: eine Gewinnbenachrichtigung über EUR 615.810,00!! Von einer spanischen Lotterie, an der ich natürlich nie teilgenommen habe.

Man könnte darüber jetzt viel Spaßiges schreiben - aber das haben, wie ich sehe, andere schon zur Genüge getan - ein Beispiel findet sich hier: Andis Soapbox: Loteria Primitiva.

Dennoch wollte ich ein paar Worte darüber schreiben, auch um Leichtgläubige entsprechend vorzuwarnen. Wie das ganze funktioniert, kann man übrigens auch hier nachlesen: Loteria Primitiva: Ein primitiver Trick.

Schade eigentlich ... - dieses Sümmchen hätte mir gerade verdammt gut in den Kram gepasst. *snüff*

Kann mir jemand helfen?

So, nachdem ich nun so ganz allämlich auch step-by-step die Feinheiten des Bloggens kennenlerne, habe ich in einem ersten Schritt einigermaßen verstanden, was "pings" und "trackbacks" sind und wie das funktioniert.

Leider stelle ich bei meinen eigenen - also von mir bzw. meinem Blog gesendeten - trackbacks fest, dass da immer ein ellenlanger Pfad vorne dran steht. Das sieht dann z. B. so aus:

Urbans Blog » Blog Archive » Bloggen ohne Knautschzone? on Bloggen im Auftrag des Herrn

und das sieht irgendwie Scheiße bescheiden aus in den Kommentarübersichten anderer Blogs. Kann mir jemand helfen und mir erklären, wie ich das weg bekomme? Bei anderen steht da meist nur der Titel des Beitrags - oder halt nur der Autor.
Hab schon im Code gewühlt, aber bin bisher nicht fündig geworden. :-(

[Update]
Wie schon unten im Kommentar beschrieben, habe ich die Lösung selbst finden können. Für eine sinnvolle Titel-Gestaltung ist dieser Link hier sehr nützlich:
WordPress Theme-Optimierungen

“You are the Hanged Man”

Uff ... - angeregt durch einen Link im Blog von Frau Pe hatte ich mir gerade mal den Spaß erlaubt, ebenfalls die paar Fragen zu beantworten, die angeblich nötig sind, um einem die "richtige" Tarot-Karte zuzuweisen.

Obwohl ich nicht ganz - sagen wir mal "unspirituell" - bin (Herr Fritz: Sie lesen hier jetzt mal ganz schnell drüber weg ... husch hush ... verziehen Sie sich wieder in die Polit-Ecke - das hier haben Sie überhaupt nicht gesehen ...), halte ich von diesem Tarot-Kram wenig bis gar nichts.

Aber gerade war ich dann doch ein wenig ... - hmmm ... zuerst geschockt und dann überrascht. Bei mir kam nämlich das hier raus:

You are the Hanged Man

Self-sacrifice, Sacrifice, Devotion, Bound.

With the Hanged man there is often a sense of fatalism, waiting for something to happen. Or a fear of
loss from a situation, rather than gain.

The Hanged Man is perhaps the most fascinating card in the deck. It reflects the story of Odin who offered himself as a sacrifice in order to gain knowledge. Hanging from the world tree, wounded by a spear, given no bread or mead, he hung for nine days. On the last day, he saw on the ground runes that had fallen from the tree, understood their meaning, and, coming down, scooped them up for his own. All knowledge is to be found in these runes.

The Hanged Man, in similar fashion, is a card about suspension, not life or death. It signifies selflessness, sacrifice and prophecy. You make yourself vulnerable and in doing so, gain illumination. You see the world differently, with almost mystical insights.

What Tarot Card are You?
Take the Test to Find Out.

 

Und so ganz abwegig fand ich das gar nicht, was da so steht ... "You make yourself vulnerable and in doing so, gain illumination" - da ist was dran. Nicht an dem Tarot-Kram. Eher an dem Test-Ergebnis.

Danke Fau Pe für diesen kleinen Stupser in Sachen Selbsterkenntnis.

Von falscher Bescheidenheit

Als ich heute morgen das hier las, bekam ich ganz kurz rote Ohren und begann sofort einen Kommentar zu schreiben, der die dortige Lobeshymne mal kräftig relativieren sollte, alles mal ein bißchen tiefer hängen und so ...

Kurz bevor ich dann auf den "speichern"-Button klickte, musste ich dann aber doch noch mal drüber grübeln. Und mir wurde plötzlich klar: Das, was der Herr Beil da schreibt, ist eigentlich genau DAS, wie ich mein persönliches Ziel innerhalb meiner Firma definieren würde (zumindest eines davon). Genau so sollen sich meine Kunden behandelt fühlen - und wenn das beim Herrn Beil so angekommen ist, dann habe ich offenbar in letzter Zeit einiges richtig gemacht. Und darauf bin ich stolz.

Von daher: Danke, Herr Beil! - Schön, dass es mir gelungen ist, zumindest schon mal den Rahmen zu schaffen, in dem sich meine Kunden aufgehoben fühlen sollen. Und Ihr Kompliment wird mir ein besonderer Ansporn sein, die daraus entstandenen Erwartungen so weit wie möglich zu erfüllen (das haben Sie schon sehr geschickt angestellt .... - erst die "Mund-wässrig-machen-Aktion" - und nun das! ;-) ).

Das einzige, was dem Herrn Beil nicht schmecken wird ist, dass ich aufgrund eins SOLCHEN Rufes nun natürlich zwangsläufig meine Preise ordentlich erhöhen muss (*sfg*). Sonst würde ja die Qualität in keinem gesunden Verhältnis zum Preis stehen oder?

Mal ernshaft: Ich hab mich sehr gefreut über die Zeilen in Deinem Blog, Oliver! Und mir ist das wirklich wichtig, meine Arbeit nach den von Dir genannten Maßstäben auszurichten. Der Erfolg der letzten 1-2 Jahre hat mir auch gezeigt, dass das der richtige Weg ist - außerdem macht's gerade SO auch viel mehr Spaß. Aber der Erfolg führt auch dazu, dass mehr Anfragen kommen als Kapazitäten frei sind. Von daher gibt's zwischendrin immer auch mal Phasen, wo's auch bei uns hier ein bißchen drunter und drüber geht. Aber: wir arbeiten dran - auch an personeller Verstärkung.

(Falls jemand mitliest, der gute PHP-Kenntnisse hat und einen Job sucht: Bitte hier melden: anzido GmbH !!!)

So - nun aber genug gebloggt - die Arbeit ruft!

Bloggen ohne Knautschzone?

Mit einer ausgesprochen netten Begrüßung in der Blogosphäre hat der Frontalaufpraller mich gestern empfangen. Wobei: so ganz passt der Titel ja nicht (mehr) ... - zumindest stehe ich schon länger nicht mehr auf der Lohnliste des dort genannten Auftraggebers und schufte und blogge lieber auf eigene Rechnung. - Andererseits: wer weiß .... die Wege dieses Auftraggebers sollen ja bekanntlich unergründlich sein, und vielleicht werkle ich ganz und gar fremdbestimmt und der Große Boss zeigt mir am Ende die lange Nase. :-o

Der Frontalaufpraller beschreibt übrigens in seinem Impressum seine Mission folgendermaßen:

“frontalaufprall” is a german word which means literally “frontal collision”. I really like this word - it fit’s and describes also my character - I do love a real challenge and like to hit the problem full speed until either me ( which never happend till now ) or the problem is gone.

Das hört sich energiegeladen - aber auch schmerzhaft an. Von daher, Dodger, wünsche ich Dir eine ordentliche Knautschzone für solche Probleme, die sich vielleicht nicht so ohne weiteres in Luft auflösen wollen. ;-)

Ein lieber Gruß in den Süden!

Wie teuer ist ein Rumäne?

Wie ich gerade lesen muss, "könnte (Nokia die, Verf.) teuerste Werksschließung in der Geschichte Deutschlands werden". Da heißt es doch glatt: "... dürften sich Kosten für die Schließung des Werks auf mehrere hundert Millionen Euro belaufen. Der größte Teil der Belastungen würde dabei durch einen Sozialplan entstehen, der z.B. Abfindungen und die Gründung von Beschäftigungsgesellschaften regelt."

Und trotzdem lohnt sich das? Neubau in Ungarn und Rumänien?? Kostet doch sicher auch wieder ein paar (hundert?) Millionen ...
Aber wenn die das trotzdem machen, dann muss es sich ja wohl lohnen. Das wiederum kann aber doch nur heißen, dass Rumänen und Ungarn quasi umsonst arbeiten oder? Ich mein: man braucht ja eigentlich nur mal nachrechnen ... - "mehrere" hundert Millionen, hmmm ... das können 200 sein ... - das können auch 900 sein. Und was verdient so ein Nokia-Arbeiter? ... Hmm ... doch gar nicht so einfach mit dem Nachrechnen.

Aber da gibt's ja die Datenkrake - also frag ich die mal - und was ich da finde, kann ich kaum glauben:

"Der durchschnittliche Monatsbruttolohn in Rumänien betrug im Mai 2005 rund 260 EUR. Daraus ergibt sich ein Nettolohn von etwa 199 EUR."
(http://www.exportinitiative.at/filemanager/download/13537/)

Jetzt versteh ich Nokia. - Ich glaub, ich leg mir mal ein paar von deren Aktien ins Depot, die scheinen ja echt clever zu sein. Oder vielleicht sollte ich meine Butze hier auch dicht machen und nach Rumänien gehen? Aber die ham' bestimmt keine gescheiten Kartbahnen da. Geht also nicht ... :(

Gnadenloses Web … – Genialität wird immer schwieriger

Skypenderweise kam mir gestern eine - wie ich zunächst glaubte - glorreiche, einzigartige Idee für eine Artikel-Headline hier im Blog. Irgendwie ahnend, dass evtl. irgendwo da draußen irgendwann ein anderes Individuum vielleicht doch schon einen ähnlichen Gedanken gehabt haben könnte, gab ich dann meine Headline heute mal bei Google ein ... - um auf deprimierende 20.800 Treffer zu stossen. :(

Und - um es gleich vorweg zu nehmen: NEIN! Ich werde mein ach-so-genial geglaubtes Sprüchlein hier jetzt NICHT ausbreiten - das könnte euch so passen ... - ich kann doch jetzt schon euer breites Grinsen geradzu körperlich wahrnehmen: "Waaaaas??? Das hast du vorher noch nie gehört?? Aber das findet man doch in jedem zweiten Blog ..."

Entschuldigung, aber ich bin neu hier. Zwar bewege ich mich seit ca. 1994 im Internet, aber meist arbeitenderweise und nicht zu meinem Vergnügen. Und Blogs kannte ich bis vor kurzem nur vom Hörensagen.

Das o. g. Gefühl der Frustration kenne ich auch von meinen schon an anderer Stelle erwähnten Domain-Jagdausflügen. Auch dort wurde so schon so manch genial geglaubter Einfall innerhalb weniger Mausklicks aufs Schmerzhafteste zerstört. Sagte ich schon, dass ich das Internet hasse? Früher in der Schule war es ja schon peinlich, wenn man einen - wie man glaubte - brandneuen Witz erzählen wollte und schon beim zweiten Satz sich die meisten Zuhörer müde gähnend abwandten mit den Worten: "ach der ... - den kenn ich schon ...". Aber da hatte man wenigstens noch die Chance, den Witz dann doch gewinnbringend z. B. in der Clique im Jugendzentrum unter's Volk zu bringen.

Neuigkeiten, glorreiche Einfälle und neue Witze sind in Zeiten des Internets fast unmöglich geworden - zumindest aber hält man sich damit besser zurück, weil die Wahrscheinlichkeit, dass jemand anders diesbezüglich bereits posauniert hat - und vor allem die Wahrscheinlichkeit, dass dieser Posaunenstoss bereits einmal um die Welt gegangen ist, die ist halt verdammt groß.

Und nun ... - nun muss ich sogar lesen, dass MEIN Spruch bereits auf T-Shirts gedruckt unter's Volk geworfen wird. Unglaublich wie schnell das heute mit der Produktpiraterie geht *kopfschüttel* ... - die sollte man alle in den Knast stecken ... - was mir da jetzt an Gewinnen entgangen ist ... *snüff*