Inhaltsverzeichnis

Einbinden eines iframes als Menupunkt

Hier gibt es mehrere Ansätze, als erstes versucht man evtl. den Iframe als HTML direkt in einen Artikel zu schreiben. Jedoch entfernt der Editor solche Tags wieder. Als nächstes versucht man dann den Iframe per PHP in einen Artikel einzubinden, z.B. mit Jumie oder Sourcerer. Am einfachsten gelingt es aber über das normale Menu "Menu Manager: Menu Items". Dort den Navigationseintrage der den iframe anzeigen soll, auswählen und als "Menu Item Type" unter "Wrapper" den "Iframe Wrapper" auswählen. Den kann man wie üblich konfigurieren. Und fortan wird bei einem Klick auf den Menüpunkt der iframe geladen.


Wikimedia-Artikel als Joomla-Artikel anzeigen

Um einen Wikimedia-Artikel in Joomla anzuzeigen, gibt es folgende Möglichkeit. Ladet die Extension sourcerer herunter, um in Artikeln PHP-Code auszuführen. Zusätzlich kann man sogar die Wiki-CSS einbinden, man sollte nur darauf achten das die eigenen CSS nicht von denen aus der Wiki überschrieben werden. Im Artikel nun folgenden Code einfügen:

 <?php
 //action=render nur den reinen Artikel nicht das Layout
 $strUrl='http://de.wikipedia.org/wiki/Amsel?action=render';
 //falls http-authentifizierung erforderlich ist ansonsten kann 
 //man den context auch weglassen da file_get_contents diesen 
 //Paramter nicht unbedingt benötigt
 $context = stream_context_create(array(
 'http' => array(
   'header' => "Authorization: Basic " . 
    base64_encode("username:password")
  )
 ));
 $strSite = file_get_contents($strUrl, false, $context);
 //Achtung! Bearbeiten nur anzeigen wenn der User eingeloggt ist, 
 //ansonsten werden die bearbeiten Links gelöscht
 if ($_SESSION[__default][user]->usertype!="Super Administrator"){
  $strSite =preg_replace(
   '#<span class="editsection">(.*)</span>#Uis','\\2', $strSite );
 }
 echo $strSite;
 ?>

Sprachen überschreiben / Language override

Installieren der Deutschen Sprachdatei von Joomla über den Extension-Manager. Das Sprachmodul über den "Extension-Manager -> Language" für Front- und Backend aktivieren.
Überschreiben der Standardwerte in der Sprachdatei. Dazu eine Datei /language/override/de-DE.override.ini anlegen. Soll z.B, der Absende-Button einer Kontaktanfrage geändert werden, kann man dort dann COM_CONTACT_CONTACT_SEND="E-Mail abschicken" eintragen. Dieser Wert überschreibt einfach den Orginal-Wert "E-Mail senden". Analog das ganze für die Englische Version dann /language/override/en-EN.override.ini.


Bearbeiten von Layouts bzw. Templates

Nach Möglichkeit nicht in der Komponente oder dem Modul selbst rumbasteln, den bei jedem Update besteht die Gefahr das die Änderungen überschrieben werden. Am besten immer die Templates im Ordner /templates/html/... nehmen. Dort finden sich alle wichtigen Templates, die kann man nach Lust und Laune bearbeiten.

sitemap.xml mit xmap

Xmap erzeugt ja keine sitemap.xml. Man kann aber über die .htaccess Regeln definieren die die sitemap.xml über mod_rewrite simulieren. Die URL in der RewriteRule muss man natürlich an seine URL anpassen.

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* /index.php?option=com_xmap&view=xml&tmpl=component&id=1

Meta Tag Generator im Template entfernen

Einfach in der index.php nach (defined('_JEXEC') or die;) des aktiven templates folgenden Befehl einfügen:

$this->setMetaData("generator","");

Installation von VirtueMart

Reihenfolge:

1. Joomla deutsches Sprachpaket installieren und Back- und Frontend umstellen.
2. com_virtuemart.2.0.6.tar.gz
3. com_virtuemart.2.0.6_ext_aio.tar.gz
4. virtuemart Sprachpaket kopieren nach /administrator/components/com_virtuemart/languages

Modulpositionen im Layout auf der Seite anzeigen lassen

Bei neureren Joomla Versionen muss man unter Erweiterungen -> Templates -> Optionen => "Vorschau Modulpositionen" freigeben. Dann kann man die Joomla-Seite mit anghängten Paramter /?tp=1 aufrufen und bekommt die Modulposition im Web-Design angezeigt.

Joomla-Version herausfinden

Für 1.5 siehe libraries/joomla/version.php RELEASE zeigt MAJOR und MINOR Release-Nummer. Der DEV_LEVEL zeigt die Maintenance Release-Nummer
Für 2.5 siehe libraries/cms/version/version.php
Für Wordpress übrigens wp-includes/version.php
Für Redaxo include/master.inc.php

Fehlermeldung: Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in libraries/joomla/cache/handler/callback.php on line 99

Editieren modules/mod_mainmenu/helper.php
Änderen von function buildXML(&$params) zu function buildXML($params) in Zeile 31.

Joomla Framework laden

define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

Lightbox einbinden

Code in Artikel einfügen:

<link type="text/css" href="/joomla_2.5.4/media/system/css/modal.css" rel="stylesheet">
<script src="/joomla_2.5.4/media/system/js/mootools-more.js" type="text/javascript"></script>
<script type="text/javascript" src="/joomla_2.5.4/media/system/js/modal.js"></script>
<script type="text/javascript">
  window.addEvent('domready', function() {
    SqueezeBox.initialize({});
    SqueezeBox.assign($$('a.modal'), {
      parse: 'rel'
    });
  });
</script>
<a rel="{handler: 'iframe', size: {x: 800, y: 600}, onClose: function() {}}" href="/http://www.ql.de" class="modal">webdesign-freiburg.ql.de</a>

Beispiele: Datenbankzugriff Joomla

$db=JFactory::getDbo();
$db->setQuery("");
$db->query();
public     loadObject      Erste Zeile aus der DB-Abfrage lesen
public     loadObjectList  Komplettes Ergbnissarray holen, jede Zeile ist ein Objekt.
public     updateObject    
public     insertObject    
public     insertid        Gibt die letzte ID eines inserts zurueck
table = #__qltest
$this->db=$this->getDbo();
$this->query    = $this->db->getQuery(true);
$this->query->select('us.name AS name');
$this->query->select('us.username AS username');
$this->query->join('LEFT', '#__users AS us ON us.id=a.id');


Acymailing massenlöschen aller Mailempfänger

delete from #_acymailing_listsub;
delete from #_acymailing_subscriber;
delete from #_acymailing_userstats;

alternativ kann man in der Joomla configuration.php das $list_limit auf 500 setzen und dann mittels der Userliste eine große Anzahl löschen.

Joomla Administrator Passwort vergessen und eine neues mit phpMyAdmin setzen

Im phpMyAdmin öffnen der Tabelle _users und Anzeigen
Datensatz der geändert werden soll bearbeiten
Rechts neben dem Feld password als Funktion md5 wählen und in der Spalte Wert den Hash löschen und das neue Passwort eintragen. Danach auf OK.