JoomlaPack ist ein exzellentes Backup-Tool für Joomla. Es macht Backups mit eigenem Installer, und kann deshalb verwendet werden um existierende Joomla!-Seiten zu kopieren oder Joomla! Template Sites zu erstellen.

Da wir unsere Produktseiten auf Joomla 1.5 updaten wollen, brauchen wir eine Joomla!-Template-Site mit folgender Konfiguration:

  • Subscription-Tracking mit Abrechnungsmöglichkeit: Wir verwenden Joomla AEC, für Joomla! 1.5 scheinen die Version 0.12.6RC2 und Legacy Mode nötig zu sein.
  • Community Builder: Wird für die Verwaltung der Kundendaten verwendet. Der Kunde gibt bei der Registration seine Adresse in sein nicht öffentliches CB-Profil ein. CB braucht ebenfalls den Legacy Mode, allerdings nur bis Version 1.2, die noch nicht released ist.
  • JoomFish: Multi-Language Komponente. Version 2.0 Beta kann mit Joomla 1.5 umgehen.

Joomla 1.5 ist ja schon seit einer Weile draussen. Zeit mal ein paar nette Links & Fakten aufzuschreiben:

Damit auch ein Shell-Script über eine schöne Benutzeroberfläche verfügt, kann man dialog verwenden, um Benutzerinteraktionen darzustellen.

Hier gibts eine deutsche Einführung zu Dialog.

Weitere Doku befindet sich auf der Dialog-Homepage.

Mit xdialog sehen Shell-Scripte auch unter X11 schön aus.

Wenn dialog / xdialog über eine variable angesprochen werden, kann man die beiden Frontends austauschen, da sie Parameter-Kompatibel sind:
DIALOG=/usr/bin/dialog
$DIALOG --textfield

The reconstructor is a program to remaster ubuntu CD-Roms. It’s written in Python and supports (officially) all ubuntu’s up to 7.10. So if one want’s to remaster kubuntu hardy, there’re two issues:

  1. It’s kubuntu.
  2. It’s Hardy.

For issue 1) there are several threads in the reconstructor forum. Here the most important ones:

A lot of (KDE) applications can be configured through reconstructor (third party) modules.

For Issue 2) There’s a simple explanation: It works with hardy, as tested in this configuration:

  • Use a (k)ubuntu hardy Setup as host system to install the reconstructor on.
    • We’ve got the X86 Kubuntu 8.04 Hardy for this.
  • The usplash works, pcx unknown (Diego has to try out the newest ISO yet)
  • Apt has changed a lot: You can’t add to /etc/apt/sources.list with constructor.
    • Hardy has a /etc/apt/sources.list.d/ directory now, you can put multiple source files there.
  • We remastered kubuntu, so the GNOME customization wasn’t used.
  • The VMPlayer plugin doesn’t work since hardy uses a new kernel, thus manual install works.

A tip if the terminal doesn’t start up: Execute the command “xhost +” on a console of your box.

If you need more documentation: Reconstructor is pretty well documented.

Rund um das Symfony Framework gibts eine ganze Menge Cheat Sheets:

Aufbau & Konfiguration:

Model & Database:

View Layer:

Testing:

Coding locally and testing on a remote server, is often troublesome.
For example, forgetting to update the server results in useless tests.
Easiest way is to automatically synchronize the wanted folders.

For Windows I use WinSCP, which allows to easily to keep a remote directory updated.
For Linux, there is a script from Lukas Meyer:

  • livesync
    #!/bin/bash
    #infinite loop, we can end the script hitting ctrl+c
    #define options as array
    declare -a options#set first empty position with new value
    options[${#options[*]}]=”site1″;
    options[${#options[*]}]=”site2″;
    options[${#options[*]}]=”site3″;while [ true ] ; do
    #we create a menu to select which site to update
    select site in “${options[@]}” ; do
    #based on the selection, the syncscript with the proper arguments is called
    case ${site} in ${options[0]})
    syncscript /site1/local/folder server_ip1 username1 password1 /var/www ;
    ;;
    (site2)
    syncscript site2/local/folder server_ip2 username2 password2 site2/remote/folder ;
    ;;
    (site3)
    syncscript site3/local/folder server_ip3 username3 password3 site3/remote/folder ;
    ;;
    esac;
    done
    done
  • syncscript
    #!/usr/bin/expect -f
    #the she bangs line, to find out the path to expect on your system, type "which expect" on the shell
    #we get the command line arguments
    set localfolder [lrange $argv 0 0]
    set server_ip [lrange $argv 1 1]
    set username [lrange $argv 2 2]
    set password [lrange $argv 3 3]
    set remotefolder [lrange $argv 4 4]#this disables the timeout, so our script waits as long as it takes for the transfer
    set timeout -1
    #this calls rsync based on the command line args
    spawn rsync -r -a -v $localfolder $username@$server_ip:$remotefolder –exclude .svn
    #this avoids that if the output is to large, the earlier bytes won’t be fotgotten
    match_max 100000#we’re expecting the password prompt, we use a pattern so it can be anything that contains password: or Password
    expect “*?assword:*”
    #after we get the prompt we send the password
    send — “$password\r”
    #then we send a newline to make sure we get back to the command line
    send — “\r”#wait for the end-of-file in the output
    expect eof