Content moved

Beginning in November 2018 I decided to move this blog and my wordpress multisite construction from my own v-server to a hosted wordpress.com instance.

Because of a lack of time, the blogging was not as much as I wished. So the content moved from a payed server to a hosted page at no cost.

Some old pictures and links may not work properly anymore after the migration.

Until now, it’s just a collection of old posts.

Advertisements

PDF Erstellung – Liste BuddyPress Mitglieder – Wordpress

Wer WordPress in Verbindung mit BuddyPress nutzt, um seine Webseiten Benutzer zu verwalten, kann eventuell auf die Idee kommen, die hinterlegten Informationen als druckbares Dokument bereit zu stellen. Dies ist z.B. vorteilhaft für ein Firmen Intranet, in dem die Nutzer gepflegt werden und die Daten auf den Laptops der Mitarbeiter zur Verfügung stehen sollen, falls sie außer Haus sind oder aber eine ausgedruckte Liste besitzen wollen.
Ich habe dies folgendermaßen gelöst:
Ein PHP Skript ließt die Informationen aus der Datenbank der WordPress Instanz aus und kreiert aus den Datensätzen eine statische HTML-Seite, die eine tabellarische Auflistung der Mitarbeiter enthält. Dies dient als als Grundlage für eine Tabelle und ein PDF.

[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]

<!doctype html>
<html>
 <head>
 </head>
 <body>
<?php
// error_reporting(E_ALL | E_STRICT);
define('DBHOST','localhost');
define('DBUSER','root');
define('DBPASS','ZaaQg7Oo361D564');
define('DBNAME','wordpress');
$con = mysqli_connect(DBHOST,DBUSER,DBPASS);
mysqli_query($con, "set names 'utf8'");
mysqli_select_db($con, DBNAME);


//User_IDs
$sqluser = "SELECT distinct user_id FROM intranet_bp_xprofile_data" ;
$result_user = mysqli_query($con, $sqluser);

if( mysqli_num_rows($result_user) > 0 )
{
echo "<table border=1>";

//Überschriften
$sql_field_ids = "SELECT distinct a.field_id, b.name FROM intranet_bp_xprofile_data a, intranet_bp_xprofile_fields b where a.field_id=b.id" ;
$result_field_ids = mysqli_query($con, $sql_field_ids);
echo "<tr>";
while( $data_field_ids = mysqli_fetch_assoc($result_field_ids) )
{
 extract($data_field_ids);
 echo "<td>$name ($field_id)</td>";
 $l = 0;
}
echo "</tr>";

//Jetzt pro User eine Zeile
while( $data_result_users = mysqli_fetch_assoc($result_user) )
{
 echo "<tr> ";
 //Extract für $user_id
 extract($data_result_users);
 //Werte des jeweiligen Benutzers
 $sql_unique_user = "SELECT * from (SELECT * from intranet_bp_xprofile_data where user_id=$user_id) a right OUTER join (SELECT DISTINCT field_id from intranet_bp_xprofile_data) b on a.field_id=b.field_id" ;
 $result_unique_user = mysqli_query($con, $sql_unique_user);
 while( $data_result_unique_users = mysqli_fetch_assoc($result_unique_user) ){
 extract($data_result_unique_users);
 echo "<td>$value</td>";
 }
 echo "</tr> ";
}
echo "</table>";
}
?>
 </body>
</html>

Wird die Seite im Browser aufgerufen, sieht es so aus:

Mitarbeiterverzeichnis

Um aus diesem Dokument nun ein PDF generieren zu können, braucht man Server seitig das Tool wkhtmltopdf.

Nach der Installation erstellt man ein kleines Shellskript, welches den Befehl ausführt und die Seite als PDF ablegt.

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]

#!/bin/bash
rm /var/www/*Telefonliste.pdf
Datum=`date +%y%m%d%H%M%S`
Name='Telefonliste.pdf'
Dateiname=$Datum'_'$Name
xvfb-run /usr/bin/wkhtmltopdf http://localhost/ma.php /var/www/$Dateiname.pdf >> log.tmp

Dadurch wird das PDF generiert und das aktuelle Datum im Dateinamen hinterlegt. Der Vorgang wird in der Logdatei protokolliert.

Wer möchte, kann das als Cronjob hinterlegen und die Datei auf ein gemountetes Share (z.B. vom Fileserver) speichern.

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]

*/120 * * * * /Pfad/zum/Skript.sh
*/121 * * * * cp /Pfad/zum/.pdf /Pfad/zum/Share/

Liste-auf-Share[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

30 Regeln für den Umgang mit dem Computer

1. Wenn jemand von der EDV-Abteilung sagt, dass er gleich vorbeikommt,
melde Dich vom System ab und geh einen Kaffee trinken. Es ist für uns
kein Problem, uns 700 Passwörter zu merken.

2. Wenn Du uns rufst um Deinen Computer von einem ins andere Büro zu tragen,
vergewissere Dich, dass er unter Tonnen von Postkarten, Kinderbildern, Stofftieren, vertrockneten Blumen und Kinderkritzeleien begraben ist. Wir haben kein eigenes Leben und wir lieben es,
tief unter dem Müll in irgendetwas Glibberiges von Dir zu greifen.

3. Wenn Du von der EDV-Abteilung eine e-Mail mit höchster Dringlichkeit bekommst, lösche sie sofort.
Wahrscheinlich testen wir nur die öffentlichen Mailverteiler.

4. Wenn ein EDV-Mitarbeiter an seinem Schreibtisch sein Mittagessen verzehrt,
gehe direkt zu ihm, überschütte ihn mit Vorwürfen und Deinen Computerproblemen und erwarte von ihm, dass er sofort antwortet. Wir existieren einzig um zu dienen und wir denken immer nur an die Reparatur von Computern.

5. Wenn sich ein EDV-Mitarbeiter ein Mineralwasser holt, oder er eine Zigarette raucht,
frag ihn irgend etwas über Computer. Der einzige Grund warum wir Mineralwasser trinken,
oder rauchen ist, dass wir nach Usern suchen, die weder E-Mail, noch Telefon besitzen.

6. Wenn Dein PC am Morgen nicht startet. Überprüfe auf keinen Fall, ob sich noch eine Diskette im Laufwerk befindet.
Der IT-Admin freut sich, wenn er zu dir kommen muss, um die Diskette mit deinen putzigen Fotos aus dem Laufwerk zu entfernen.

7. Wenn Du einen EDV-Mitarbeiter per Telefon direkt anrufst, drücke die 5 um die automatische Begrüßung zu umgehen.
in der Dir mitgeteilt wird das der Mitarbeiter zur Zeit im Urlaub ist. Spreche deine Nachricht auf den Anrufbeantworter und warte exakt 24 Stunden, bevor Du eine Beschwerde per e-Mail direkt an den Vorgesetzten schickst,
weil Dich niemand zurückgerufen hat.

8. Wenn der Fotokopierer nicht funktioniert, ruf die EDV-Abteilung.Schließlich ist da auch Elektronik drin, oder…?

9. Wenn Du Zuhause beim Verbindungsaufbau per Modem eine Fehlermeldung wie: “Kein Wählton” oder “No Dial Tone” bekommst, ruf die EDV-Abteilung. Die IT muss doch das auch können oder???
Wir können sogar Telefon und PC-Probleme von zu Hause aus lösen wozu haben wir denn einen Netz-Zugang zur Firma.!!!!!

10. Wenn irgend etwas mit Deinem Privat-PC nicht in Ordnung ist, stell ihn auf einen Stuhl oder Tisch in der EDV-Abteilung. Hinterlasse keinen Namen, keine Telefonnummer und vor allem keine Beschreibung des Problems. Wir lieben es, ein gutes Rätsel zu lösen.

11. Wenn Du einen EDV-Mitarbeiter am Telefon hast, der mit Dir durch die Menüs geht um einen Eintrag zu ändern, lies Zeitung oder tu irgend etwas anderes. Wir wollen nicht wirklich, dass Du etwas tust; wir lieben es, uns selbst reden zu hören.
12. Wenn wir ein Training für die nächste Version des Betriebssystems anbieten, fühle Dich nicht belästigt.
Wir werden da sein um Dein Händchen zu halten, wenn es vorbei ist.

13. Wenn der Drucker nicht drucken will, sende den Druckauftrag 20 mal.
Druckaufträge verschwinden nämlich ohne jeden Grund im Nirgendwo. Weil wieder mal der Admin meint der muss einfach den Printserver durchstarten ohne das es der USER merkt um andere gemeldete Probleme damit lösen zu können, ist dies doch die einfachste Lösung um allen gerecht zu werden, es funktioniert auf jedenfall alles danach, glaube es einfach.!!!!!

14. Wenn der Drucker nach 20 Versuchen immer noch nicht drucken will,
sende den Druckauftrag an alle 150 Drucker in der Firma.
Einer von ihnen wird schon drucken und schicke ne Mail an ALLE mit der Frage wo deine Ausdrucke gelandet sind, danach beauftrage einen externen Dienstleister dir deine Ausdrucke bringen zu lassen, immerhin kannst du nichts dafür wenn ausgerechnet dein Drucker am Arbeitsplatz nicht das ausdruckt was du willst…

15. Benutze nie die Online-Hilfe (das ist die Hilfe, die von jedem Programm angeboten wird…)
Das ist etwas für Schwächlinge.

16. Wenn Du irgendeinen Computerführerschein bei der VHS, oder ähnlichem machst, geh ruhig in der Abteilung rum und “verbessere” Treiber und Programme auf Deinem und auf allen Rechnern Deiner Mitarbeiter. Wir sind dankbar für die Überstunden die wir haben, wenn wir bis 3:00 Uhr morgens die Probleme beheben müssen.

17. Wenn ein EDV-Mitarbeiter um 12:30 Uhr Deinen Computer repariert, mach Mittag und achte darauf, dass er mitbekommt wie lecker das Essen schmeckt.
Wir arbeiten besser, wenn uns vor Hunger ein wenig schwindelig ist.

18. Danke uns niemals. Wir lieben die Arbeit UND wir werden dafür bezahlt!

19. Wenn Dich ein EDV-Mitarbeiter fragt, ob Du irgendeine neue Software auf deinem Rechner installiert hast, LÜGE!
Es geht niemanden etwas an, was auf Deinem Rechner ist.

20. Wenn das Mauskabel droht, Deine Kaffeetasse umzuwerfen, heb Deinen Monitor an und quetsch das Kabel darunter ein. Mauskabel sind ausschließlich dafür entworfen worden um 20 Kg Monitorgewicht zu ertragen.

21. Wenn die Leertaste auf Deiner Tastatur nicht mehr funktioniert, mach das neue Mailprogramm oder etwas anders dafür verantwortlich.
Übrigens:
Tastaturen arbeiten wesentlich besser, wenn sich Brotkrümel, Kaffe oder dicke Tropfen klebrige Cola unter den Tasten befinden.
Der Admin wundert sich nicht warum er am nächsten Tag dann irgendwelche Hautallergien an sich entdeckt..!!!!

22. Wenn Du von einem Programm eine Nachricht mit dem Text: “Sind Sie sicher”, oder “Are you sure” erhältst, klick so schnell wie möglich auf den “JA” oder “YES” – Button. Verdammt, wenn Du nicht sicher wärst, würdest Du das ja nicht tun, oder?

23. Fühle Dich völlig frei Dinge zu sagen wie: “Ich weiß überhaupt nichts über diesen Computer Dreck”.
Es ärgert uns überhaupt nicht, wenn man unseren recht anspruchsvollen Bereich, als Dreck bezeichnet.

24. Wenn der Toner eines Druckers gewechselt werden muss, ruf die EDV-Abteilung.
Einen Toner zu wechseln ist eine äußerst komplexe Angelegenheit und die Druckerhersteller erwarten,
dass diese Aufgabe nur von professionellen Ingenieuren mit einem Doktor in Nuklear-Physik durchgeführt wird.

25. Wenn irgendwas mit Deinem Computer nicht stimmt, sag Deiner Sekretärin, dass sie die EDV-Abteilung anrufen soll.
Wir lieben das Spielchen, mit einer dritten Person ein Problem zu klären von dem Sie absolut überhaupt nichts weiß.

26. Wenn du per E-Mail eine 30 Megabyte große Datei erhältst, sende sie mit höchster Priorität an jeden Mitarbeiter der Firma.
Wir haben unendliche Massen an Festplattenspeicher und Rechnerkapazität auf unserem Mail-Server. Falls Du dich wunderst warum dann dein Outlook hängt, liegt es daran das wieder mal die IT meint das zu viele Mails reinkommen, also warte doch einfach bis deine Mail versendet wurde und du weiter arbeiten kannst. Wenn Du ein Kunde am Telefon hast, sage ihm doch das dein Rechner streikt, weil alles ausgefallen ist…

27. Denke niemals daran, große Druckaufträge in kleine aufzuteilen.
Gott verbietet es, irgend jemand anderem zu gestatten, auch zu drucken.

28. Wenn Du am Samstag einen EDV-Mitarbeiter im Supermarkt triffst, frag ihn irgend etwas über Computer.
Wir arbeiten 24 Stunden an 7 Tagen die Woche und darum auch im Supermarkt am Wochenende und das für Umsonst.

29. Wenn Dein Sohn ein Informatikstudent ist, lass ihn am Wochenende in die Firma kommen, damit er seine Projekte an Deinem schnellen Büro-PC machen kann. Wir werden da sein, wenn seine illegale Kopie von Visual Basic 6.0 die Finanzbuchhaltung abstürzen lässt.

30. Wenn Du uns Deinen brandneuen Privat-PC ins Büro bringst, um ihn kostenlos von uns reparieren zu lassen,
sag uns wie dringend wir ihn reparieren müssen, damit Dein Sohn ganz schnell wieder Doom, Quake oder Moorhuhn spielen kann. Wir werden sofort mit der Reparatur beginnen, da wir jede Menge freie Zeit haben.