Modifikationen mit Codebeispielen für PHPFox

Mitglieder Reihenfolge verändern

Hin und wieder verspürt der Admin den Wunsch die Reihenfolge der Mitglieder zu ändern um beispielsweise die neu registrierten User mit einem Blick zu sehen um etwa Spam auszusortieren.

Die lässt sich leicht durch einen Core-Edit erreichen. Hier wird die Datei /module/user/include/component/controller/browse.class.php (Zeile 139, V3.5.0) bearbeitet. Sucht nach:

und ersetzt diese beiden Zeilen durch:

Danach wie üblich bei allen Änderungen den Cache im AdminCP leeren

Online Mitglieder mit Rahmen anzeigen lassen

Mit einem simplen CSS Trick ist es möglich, Mitglieder die gerade online sind mit einem Rahmen zu versehen. So sehen andere Mitglieder gleich, wer von den Members online ist. Dies funktioniert seitenweit, also auch im Main Feed. Bearbeitet wird dazu die layout.css die folgenden Code am Ende der Datei hinzu bekommt:

Die Border Angabe ist dabei die Stärke des Rahmens. Wem das zuviel ist, setzt diesen Wert auf 1px. Die Farbe kann mit dem Background Wert bestimmt werden. Sucht euch den gewünschten HEX Code aus und ändert ihn nach Belieben.

MP4 Uploads erlauben

Wer den Videoupload auf seiner Seite freigeschaltet hat und somit das Hochladen von eigenen Videos auf die Plattform erlaubt, kann in der Standardeinstellung keine MP4 Dateien hochladen. Hierzu ist ein Core-Edit notwendig der jedoch leicht zu machen ist. 2 Dateien müssen dabei geändert werden. Sucht in der Datei:

/module/video/include/service/video.class.php

nach:

und ersetzt dies durch:

Um das ganze dann auch noch für den Mehrfach Uploader zu aktivieren ist die folgende Datei zu bearbeiten:

/module/video/include/component/controller/add.class.php

Sucht nach:

und ändert die Zeile in:

Danach wie üblich einmal den Cache leeren und dem Upload mit MP4 Dateien sollte nichts mehr im Wege stehen.

Sprache für TinyMCE ändern

Wer TinyMCE als Editor aktiviert hat und das deutsche Sprachpaket als Standard nutzt, wird schnell merken das der TinyMCE Editor weiterhin alles in Englisch anzeigt. Das verwirrt den User nur und kann wie folgt geändert werden:

Zunächst muss dafür das aktuelle Sprachpaket direkt von TinyMCE herunter geladen werden. Nach dem ihr das Sprachpaket ausgewählt und herunter geladen habt, müsst ihr es in das folgende Verzeichnis mit einem FTP Client kopieren:

Nun müssen wir TinyMCE noch mitteilen das es die neu hinzugefügte Sprachdatei auch nutzen soll. Dies geschieht über einen kleinen Core-Edit in dieser Datei:

Sucht nach:

und fügt folgende Code direkt darunter ein:

Die ersten Zeilen sehen dann korrekt so aus

Die Datei auf dem Server speichern und wie immer einmal den Cache über das AdminCP leeren. Jetzt sollte die Sprache korrekt übersetzt sein.

[alert type=“info“ close=“false“ text=“Wie immer gilt bei einem Core-Edit: Vorher ein Backup der Dateien machen damit ihr im Falle eines Fehlers wieder auf die originale Datei zurückgreifen könnt.“]

Phpfox Video Uploads in MP4 speichern

Das Video Modul von Phpfox konvertiert alle Videos nach dem Upload ins Flashformat (FLV). Das dies in Zeiten von immer mehr mobilen Usern nicht mehr zeitgemäß ist sollte jedem klar sein. Zwar können Android Besitzer darüber noch lächeln, aber Apples Fangemeinde mit Iphone, Ipad und Ipod bleiben beim Video schauen draußen. Dies betrifft allerdings nur die hochgeladenen Videos und nicht die, die per URL eingefügt wurden, wie etwa die von Youtube oder Vimeo.

Um nun einen eventuellen Wechsel des integrierten Players (installiert ist Flowplayer) auf zum Beispiel JWPlayer Vorschub zu leisten empfiehlt es sich, die Video im MP4 Format abzuspeichern. Um dies zu erreichen ist ein saftiger Core-Edit notwendig. Bearbeitet wird dazu die folgende Datei: /phpfoxroot/module/video/include/service/convert.class.php.

Nachfolgend die bereits geänderte Datei:

 

Nun müssen wir noch die Anweisungen für FFMPEG ändern damit auch die korrekten Parameter zum konvertieren mitgegeben werden. Diese Einstellung wird hier erledigt: http://meinedomain.com/admincp/setting/edit/module-id_video/ (meinedomain.com müsst ihr durch euren Domainnamen ersetzen).

Gute Qualität

-qscale 3 -i {source} -vcodec libx264 -level 12 -b 128kb/s -r 25 -bt 144kb/s -coder 1 -flags +loop -cmp +chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method hex -subq 7 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -bf 2 -refs 1 -directpred 1 -trellis 0 -flags2 +bpyramid+wpred+dct8x8+fastpskip -acodec libfaac -ab 128kb/s -ac 2 -ar 48000 -s {width}x{height} {destination}

Wer bessere Qualität haben möchte muss mit dem String etwas spielen. Hier eine andere Variante:

Bessere Qualität

-i {source} -vcodec libx264 -level 12 -b 128kb/s -r 25 -bt 144kb/s -coder 1 -flags +loop -cmp +chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method full -subq 7 -me_range 23 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -bf 16 -refs 4 -directpred 2 -trellis 1 -flags2 +bpyramid+wpred+mixed_refs+dct8x8+fastpskip -acodec libfaac -ab 128kb/s -ac 2 -ar 48000 -s {width}x{height} {destination}

Die Dokumentation liefert Informationen zu den Parametern.
Wer hier einen besseren String findet kann ihn gerne als Kommentar posten.

Wie üblich wird nach einer Änderung der Cache über das AdminCP geleert und dann testweise ein Video hochgeladen. Es sollte so einwandfrei ins MP4 Format konvertiert und abgespeichert werden. Das MP4 Format wird ganz hervorragend mit dem intergrierten Flowplayer abgespielt.

Warum das ganze?

Sollte sich ein Community Betreiber dazu entscheiden den Flowplayer gegen JW-Player auszutauschen, können hochgeladene Videos die im MP4 Format abgespeichert worden auch auf iOS Geräten abgespielt werden. Wird diese Änderung nicht gemacht und die Filme werden wie von Phpfox vorgegeben im Flashformat gespeichert, nützt auch ein JW-Player nichts da die Videos dann nicht auf iOS Geräten sichtbar sind bzw. nicht abgespielt werden können.

Die Änderung ist also eine Investition in die Zukunft und beugt einem eventuellem Playerupdate vor da die Änderung natürlich nur für neue Videos greift.

Wer Videouploads mangels FFMPEG auf dem Server nicht aktiviert hat  oder sie eh nicht erlaubt, braucht diese Änderung überhaupt nicht.

Für Leute die das probieren wollen empfiehlt es sich, dies zuerst auf einer Development Plattform zu ändern und sich das Ergebnis dort anzuschauen. Wie immer gilt: Vorher ein Backup machen!

Hier mal das Ergebnis als Video:

 

Seitendesigner deaktiveren

In Phpfox Version 3.1.0 hat der Seitendesigner wieder Einzug gehalten. Hiermit ist es möglich den Mitglieder weitere Freiheiten beim Gestalten ihrer Seiten zu geben. Ich persönlich mag diese Funktion überhaupt nicht weil sie meines Erachtens das Gesamtdesign einer Seite ruinieren kann. Leider kann man diese Funktion im Backend nicht abzustellen, dies kann im Moment nur über einen Temlate-Edit gemacht werden. Wer es ebenfalls nicht erlauben möchte, geht ins AdminCP->Themes verwalten->Template bearbeiten und sucht unter Seite nach dem Block link.html.php.
Hier wird die folgende Zeile auskommentiert oder einfach gelöscht:

<li><a href=“{$aPage.link}designer/“>{phrase var=’pages.customize_design‘}</a></li>

Cache löschen und der Link sollte nicht mehr zu sehen sein.

Foto mit Android Handys hochladen

In der Basisversion von Phpfox ist es zur Zeit nicht möglich mit mobilen Endgeräten in der mobilen Ansicht  Fotos hochzuladen. Durch eine Modifikation kann zumindest Android Handys der Upload erlaubt werden. Dazu muss folgende Datei bearbeitet werden: /phpfoxroot/module/photo/template/default/controller/add.html.php

Ihr könnt den Code so wie er ist übernehmen und den bisherigen Code aus der Datei löschen. Legt am besten eine Sicherheitskopie an damit ihr wieder zurück wechseln könnt falls ihr den Code falsch kopiert.

Leider eigent sich der Code nicht für den Upload von Apple Geräte wie etwa das Iphone. Apple hat Beschränkungen im Betriebssystem die es ohne Jailbreak unmöglich machen via Web Fotos hochzuladen.

Wer möchte kann sich diese Funktion auf unserer Developmentseite ansehen und ausprobieren. Dort wurde sie über das AdminCP integriert.

App Frame anpassen

Wer versucht in Phpfox ein paar Apps einzubauen wird irgendwann auf das Problem stossen, das die Höhe und die Breite des App-Frames nicht passt. Dies kann durch zwei Arten angepasst werden. Zunächst ein Core-Edit den ich jedoch nicht unbedingt empfehle da er beim nächsten Update überschrieben wird und somit erneut eingepflegt werden muss.

Bearbeitet wird die Datei /phpfoxroot/module/apps/static/jscript/view.js

Suche nach:

und ersetze diese Zeile durch:

Durch diese Änderung wird der App-Frame 20 Pixel in der Breite beschnitten. Dieser Wert kann angepasst werden sofern notwendig.

Der Code zum ändern der Höhe steht in der gleichen Datei und muss wie folgt aussehen:

Kommen wir nun zur besseren Variante die ohne den Core-Hack auskommt. Geht ins AdminCP->Themes verwalten und wählt euer Template aus. In der linken Seitenleiste Apps wählen und dann als Controller VIEW.HTML.PHP.

Sucht nach:

und ersetzt dies durch:

Sollte die Höhe von 1000 Pixel nicht ausreichen erhöht einfach den Wert. Nach der Änderung einmal den Cache leeren und die Arbeit ist getan.

Eine viel elegantere Lösung für App Entwickler ist jedoch die Größe des Iframes in der index.php mit zu übergeben. Nachfolgend eine geänderte Zeile damit ihr eine Idee bekommt wie das auszusehen hat:

In diesem Beispiel wurde die Höhe auf 1400 Pixel und die Breite auf 1020 Pixel gesetzt. Diese Variante ist allen anderen vorzuziehen da sie keine Core Dateien verändert.