Tuesday, October 16, 2012

Creating a Joomla! Module Position

I know how it works. At least I did, once... I tend to forget, thus I'll write it down once and for all.

Step 1: Adding the position to the correct xml file

Go to your template's root folder (usually <Joomla-Root>/templates/<your-template>) and open templateDetails.xml in a text editor. Scroll down 'til  you find <position>-tags. At the end of the row of position tags, add another one (just clone the last tag and increase the number by 1). Save.

before
after

Step 2: Check if what you just did worked

Go to your Joomla! backend. Open Extensions > Module Manager. Select a module (open the module item by clicking on it). Click "Select Position". Does the position you just created appear in the table? Good!


Step 3: Name your position (optional)

Now you can give your position a name. The name is what appears in brackets in the position table. Go to the <Joomla-Root>/administrator/language/<your-language> folder. Open file <your-language>.com_modules.ini (for example en-GB.com_modules.ini) in a text editor. Look for a line that reads 'COM_MODULES_POSITION_POSITION-18="Position 18"' (where 18 would be the number of your new position -1) and add a line for your new position (i. e. 'COM_MODULES_POSITION_POSITION-19="Position 19"'). Save. (By the way: you can specify whatever you want to be the name of your position. It doesn't have to be "Position -<NumberOfPosition>")


Step 4: Insert the position in index.php

All that's missing is the tag that specifies where your position should be included. Go to your template's root folder (usually <Joomla-Root>/templates/<your template>) and open index.php in a text editor. Go to the position where you want to include the position and insert a tag similar to this one:
<jdoc:include type="modules" name="position-19" />
Replace "position-19" with the correct information you entered in the xml file (this is NOT the name you specified in the language file!).


Step 5: Assigning a module to the position

Well, you should know how this works. Just open Extensions > Module Manager in your Joomla! backend, open a module, click "select position" and select your new very special own position. Reload your page to see if everything worked (clearing your cache might be necessary).


Let me know if you had any problems with this!

Saturday, October 13, 2012

"Fehlerhafter Code"

One day I tried to log in to my Joomla 1.7.1 frontend area as a member of the site. I entered the correct contact information, but on clicking "Log In" I just got a white screen with the message "Fehlerhafter Code". Google only wanted me to update the page (which needs to be done sometime, I know...) - so that was not very helpful.

Suddenly I remembered that I had changed the language settings of my page some time ago - it was German before, and I changed it to English. So far, so good, but I apparently forgot to set the default language for the frontend - I removed the German language pack so that only English was left. But I did not click on the "default" star icon (needs to be yellow).

Go to "Extensions" - "Language Manager" - select the tab "Installed - Site" and make sure you have a default language selected.

When I returned back to the frontend, I cleared the cache and everything worked fine again...