Projektverwaltung

Für die Verwaltung umfangreicher Projekte mit mehreren Mitarbeitern ist Projectknife (ehemals Projectfork) - eine umfangreiche Projektverwaltung für Joomla eine gute Wahl.

Im konkretem Fall wurde eine einfache Projektverwaltung mit Vorschaufunktion für den Kunden benötigt. Die Umsetzung erfolgte in Joomla 2.5 (s.a. Doku zum Projektmanager).

Die Umstellung auf Joomla 3.5 ist aktuell noch nicht abgeschlossen.

Bewertung lässt sich nicht speichern

Das Problem?

In einer Joomla-Installation lassen sich immer mal wieder die Bewertungen nicht abspeichern. Mal funktioniert es, mal kommt eine weisse Seite.

Die Ursache

Wenn Artikel in Kategorie-Blogs als Ganzes angezeigt werden, wird in Joomla 2.5.4 die Forms für die Bewertung angezeigt. Dies wäre auch OK, denn der Artikel könnte ja bewertet werden. Allerdings tritt bei der Bewertung ein Fehler auf:

Auszug aus error.log:

mod_fcgid: stderr: PHP Fatal error:  
Call to undefined method ContentModelCategory::storeVote() 
in /var/www/vhosts/xxxxxxxx/httpdocs/components/com_content/controllers/article.php on line 300, 
referer: http://...

Für das Model Category gibt es die Funktion storeVote() nicht.
Um hier nicht im Core ändern zu müssen, kann das Plugin vote angepasst werden. Dazu das gesamte Plugin kopieren, und dann in der Datei vote.php

Die Zeile

 

    if (( $view == 'article' && $row->state == 1) || ( $row->readmore == 0))

anpassen.

    if ( $view == 'article' && $row->state == 1 )

Anschließend das Plugin vote deaktivieren und das geänderte Plugin aktivieren. Man kann die Änderung auch direkt in der Datei durchführen, allerdings geht diese Änderung bei einen Joomla-Update verloren.

Vermutlich gibt es noch eine bessere Variante, aber in der betroffenen Installation, hat das geholfen.

Menülinks mit einen nofollow versehen

Normalerweise ist es gewünscht, dass Menüpunkte von den robots der Suchmaschinen besucht werden. Aber es soll auch Ausnahmen geben.

Wer also so eine Ausnahme hat, kann in Admin unter Menüs, Menüpunkt bearbeiten auch die Metadatenoptionen eintragen. 

  • robots: follow / nofollow / index / noindex
  • title
  • description

Diese Werte werden allerdings nur bei der Anzeige der von Menüpunkt aufgerufenen Seite interpretiert und dort im head eingebunden. 

Wenn der robot aber dem Link nicht folgen soll, wäre der Eintrag direkt am Link ebenfalls sinnvoll. Aktuell macht Joomla 2.5 das allerdings nicht.

Wer sich mit Joomla auskennt, kann jetzt im Core herumeditieren und das Modul mod_menu anpassen, aber besser ist es, das Modul im Core so zu belassen und die Anpassung als Overide im Template durchzuführen.

Dazu erstellt man im Verzeichnis des verwendeten Templates das Unterverzeichnis html und darunter ein Verzeichnis mit dem Namen des zu überschreibenden Moduls, also in diesem Fall mod_menu

Dorthin kopiert man die TPL-Dateien aus dem Modul mod_menu.

Nun kann man den Code anpassen, in der Datei

default_url.php

wird ca. in der Zeile 16, nach der Zuordnung von class der folgende Code ergänzt:

// Override Joomla Core-Datei 2.5.8
// 2012-12-12 Martina Major
// nofollow aus der Menuezuordnung interpretieren und zum Menuelink 
// rel_nofollow hinzufuegen, wenn gesetzt.

$robots = $item->params->get('robots');
$nofollow = '';
$pos = strpos($robots, 'nofollow');
if($pos>0) $nofollow = ' rel="nofollow" ';

Jetzt enthält die Variable $nofollow entweder nichts, oder die komplette Anweisung rel="nofollow".

Diese muss nur noch an den 3 passenden Stellen am Ende der Datei im Link eingefügt werden.


<a <?php 
echo $nofollow.$class; 
?>href="<?php echo $flink; ?>" <?php echo $title; ?>><?php 
echo $linktype; 
?></a>

Mit der Datei default_component.php muss man dann noch die gleichen Anpassungen machen.

Die Dateien, die nicht geändert wurden kann aus dem Unterverzeichnis im Template wieder löschen. Das sind die default.php und die default_separator.php.

 

Hier der Download

http://doku.major-online.de/downloads/joomla/template-overide/mod_menu.zip
 

Update Joomla 2.5.x

Das neue Joomla (ab 1.7.x) bietet einen integrierten Update-Service. Leider hat dies auf meinem virtuellen Server unter Plesk 9.3 nicht auf Anhieb funktioniert.

Update ab Version 2.5.0

getestet auf joomla.pcdino.de - Testinstallation ohne zusätzliche Erweiterungen

Folgende möglich Ursachen können dafür verantwortlich sein:

Hier folgen, nach entprechender Aufklärung auch die anderen gefundenen Ursachen.

 

Update ab Version 1.7.4

getestet auf doku.major-online.de - aktive Homepage, mit ProjectForc und zusätzlichen Erweiterungen

Leider ist das automatische Update in einer Katastrophe geendet.

Nachdem sich das Update offensichtlich mittdendrin verabschiedet hatte, ging weder das Frontend noch konnte ich mich im Backend einloggen. Ein Blick auf den Server mit FTP, zeigte die Ursache des Problems: fast alle Dateien auf dem Server (dieser Subdomain), die etwas mit Joomla zu tun hatten jetzt 0Byte! Klar das so kein Login mehr geht.

Das manuelle Überspielen der kompletten 1.7.5 Version (ohne das Verzeichnis Installation) hatte leider nicht wirklich eine Verbesserung bewirkt, da auch diverse Plugins, Sprachdateien und andere Dateien, die nicht zum Joomla-Core gehörten betroffen waren.

Hier ging nur das Rückspielen der kompletten Sicherung (gesamtes Verzeichnis httpdocs).

Glüklicherweise bzw. vernünftigerweise hatte ich vorher die Datenbank und das Verzeichnis gesichert. Das Update auf 1.7.5 habe ich dann per FTP drüberkopiert.

Da mir völlig unklar ist, was dieses Phänomen ausgelöst hat, werde ich das ganze nochmal mit einer Demo-Version versuchen.

^