Office 2013 und die administrativen Vorlagendateien (ADM/ADMX)

- Veröffentlicht unter Software - Windows von

Heute kam ich das erste Mal mit den Vorlagendateien für Office 2013 in Berührung, da ich die Neuausrüstung einer kleiner Firma vorzubereiten hatte. Himmel, was hat Microsoft da bloß angestellt! OK, auch in früheren Office-Versionen waren die Templates nicht frei von Fehlern, aber Office 2013 übertrifft das locker. Obwohl ich nur einige wenige Einstellungen anpassen wollte, erwuchsen daraus einige Stunden Arbeit.

So lässt sich z. B. der Pfad für die Arbeitsgruppenvorlagen nicht mehr festlegen. Die Einstellung ist zwar wie bei Office 2010 vorhanden, aber sie "zieht" nicht. Wertet man den Startvorgang von Word mittels Process Monitor aus, stellt man fest, dass Word überhaupt nicht auf den resultierenden Registry-Wert "HKCU\Software\Policies\Microsoft\Office\15.0\Common\General\SharedTemplates" schaut. Offenbar haben da einige Mitarbeiter bei Microsoft aneinander vorbei gearbeitet.

Sehr "schön" sind auch die beiden Einstellungen bezüglich des ersten Starts von Office. Eigentlich sollen sie die Dialoge "Willkommen bei Ihrem neuen Office!" (siehe unten) usw. unterdrücken. Aktiviert man BootedRTM und DisableMovie jedoch, werden diese Dialoge fortan bei jedem Office-Start angezeigt. Echt prima!

Willkommen bei Ihrem neuen Office!

Die derzeit einzig mögliche "Lösung" ist das Setzen bestimmter Registry-Werte per Group Policy Preferences:

  1. "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\FirstRun\BootedRTM", Typ REG_DWORD, Wert 1
  2. "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\FirstRun\DisableMovie", Typ REG_DWORD, Wert 1
  3. "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\General\SharedTemplates", Typ REG_EXPAND_SZ, Wert <gewünschter Pfad>

Ich bezweifle jedoch, dass Microsoft noch eine andere Lösung präsentieren wird, da die GPPs ja bereits funktionieren.

Tipp: Wer auch noch folgenden Dialog unterdrücken will, sollte ein REG_DWORD namens ShownFileFmtPrompt mit dem Wert 1 im Zweig "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\General" erstellen.

Standarddateitypen

Das Wetter am 28. Juli 2013

- Veröffentlicht unter Unkategorisiert von

Es ist jetzt 22:30 Uhr und das Thermometer im Wohnzimmer zeigt immer noch 31,7 Grad Celcius an. Im Bad werden sogar 32,4 Grad Celcius angezeigt. Dabei fing der Tag relativ entspannt an, so dass man schon glauben mochte, die Meteorologen hätten sich vertan gehabt. Es waren in der Nacht zwar auch um die 25 Grad Celcius, aber gegen 7 Uhr zog sich der Himmel zu und es regnete an paar Tropfen, weswegen die Temperatur kaum anstieg. Zur Mittagszeit herrschte aber wieder blauer Himmel mit ein paar kleinen weißen Wölkchen vor. So landete Berlin doch wieder bei offiziellen 34,4 Grad (gemessen in Tempelhof). Ab Mitternacht soll ein heftiges Gewitter endlich Abkühlung bringen. Allerdings könnte es am nächsten Wochenende schon wieder ähnlich warm werden.

Aufgabe Nr. 8: Backslashes aus Artikelliste des Admin-Panel entfernen

- Veröffentlicht unter Software - Web von

Kommen im Titel eines Artikels Anführungszeichen vor, werden diese im Admin-Panel mit einem vorangestellten Backslash angezeigt. Da hat spyka wohl ein stripslashes() vergessen. Also in der Datei adm/index.php ändern von: <td><a href=\"admin.php?mode=edit&id={$row['post_id']}\">{$row['post_title']}</a></td> nach: <td><a href=\"admin.php?mode=edit&id={$row['post_id']}\">" . stripslashes($row['post_title']) . "</a></td>

Hinweis: Bei der korrekten Formatierung des Quellcodes in diesem Artikel hat mir das Online HTML escape tool sehr geholfen.

Aufgabe Nr. 7: Sortierung der Artikel im Admin-Panel ändern

- Veröffentlicht unter Software - Web von

Es gefällt mir nicht, dass im Admin-Panel der neueste Artikel ganz unten in der Liste steht. Je mehr sich mein Blog füllt, desto weiter muss ich nach unten scrollen, wenn ich kürzlich veröffentlichte Artikel nachbearbeiten möchte. Somit habe ich nun in der Datei adm/index.php an den SQL-Befehl SELECT * FROM `miniblog` noch ORDER BY `date` DESC' angehängt, damit der neueste Artikel ganz oben steht.

Aufgabe Nr. 6: Sortierung der Tabellenzeilen ändern

- Veröffentlicht unter Software - Web von

Ich weiß nicht, wie es passiert ist, aber die Blog-Software hat die Zeilen in der SQL-Tabelle miniblog nicht in der erwarteten Reihenfolge angelegt. Die Reihenfolge der Post-IDs lautet: 1, 3, 4, 5, 2, 6. In der Ansicht für Besucher spielt das keine Rolle, aber im Admin-Panel stört es einfach. (In der Datei adm/index.php steht nämlich ganz simpel SELECT * FROM `miniblog`. Es findet also keine Sortierung z. B. nach der Spalte post_id statt.)

Ich sortiere nun mittels ALTER TABLE miniblog ORDER BY post_id um und werde das beobachten.

Aufgabe Nr. 5: Erste Auszeichnungsfehler beheben

- Veröffentlicht unter Software - Web von

Entwickelt man für das WWW sollte man die erzeugten Seiten wenigstens (!) hin und wieder mal durch den W3C Markup Validation Service jagen um zu prüfen, ob die Seiten den gängigen Standards entspricht. Das habe ich nun mit meiner miniblog-Installation getan und sogleich einige "Schusselfehler" in meinen Artikeln gefunden und korrigiert. Ich sollte wohl alsbald die Markdown-Syntax einbinden.

Weiterhin habe ich noch zwei grobe Schnitzer in der von spyka ausgelieferten Datei index.php gefunden. Die Zeile <body> gehört selbstverständlich direkt unter </head> und über der Zeile </body> muss noch ein </div> notiert werden, damit das Block-Element <div class="wrapper"> geschlossen wird. Um bezüglich des verwendeten Zeichensatzes auf der sicheren Seite zu sein, habe ich auch noch die Zeile <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> unter <head> eingefügt. Letzteres muss spyka wohl ausgerechnet hier vergessen habe, denn in den Dateien adm/header.php, adm/simple-header.php und install.php ist die Zeile bereits vorhanden.

Aufgabe Nr. 4: Favicon einbinden

- Veröffentlicht unter Software - Web von

Update 2013-09-17: Zwischenzeitlich hat Florian eingeräumt, dass der lizenzrechtliche Status des Icons, vorsichtig ausgedrückt, doch nicht so klar ist. Ich verwende daher stattdessen nun die Datei npp.ico von Notepad++.


Bei knapp 30 Grad Celsius Zimmertemperatur um 21 Uhr bin ich wenig motiviert, die (vermutlich) große Aufgabe „Feed-Generator“ anzugehen. Ich beschränke mich deswegen erneut auf eine kleine.

Und da ich ein miserabler Grafiker bin, „recycle“ ich für diesen Zweck das Icon meines bevorzugten Texteditors. Netterweise hat Florian Balmer Notepad2 unter einer BSD-Lizenz veröffentlicht.

Aus dem Quellcode-Archiv notepad2_4.2.25_src.zip entnehme ich die Datei res\Notepad2.ico und speichere sie als favicon.ico im Hauptverzeichnis meiner miniblog-Installation. Weiterhin notiere ich in der Datei index.php über der Zeile <style type="text/css"> eine neue Zeile <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />.

Und da Florian das Copyright für das Icon hat, wird der Footer-Abschnitt in der Datei index.php um die Zeile <a href="http://www.flos-freeware.ch/notepad2.html">Notepad2</a>-Favicon Copyright &copy; 2004-2011 <a href="http://www.flos-freeware.ch/">Florian Balmer</a></p> ergänzt.

2024-07-28: Falls oben „©“ dargestellt werden sollte, dann ist eigentlich
die Zeichenfolge 'Ampersand „copy“ Semikolon' gemeint, weil miniblog zu
diesem Zeitpunkt noch kein UTF-8 kannte.
Aber der HTMLy-Beitragseditor, zumindest bis einschließlich Version 2.9.9,
wandelt diese Zeichenfolge leider bei jedem Bearbeiten des Beitrags erneut
um und ich habe dann die manuelle Korrektur vergessen.

Bei dieser Gelegenheit kommt direkt darüber gleich noch die Zeile <p>Falls nicht anders bezeichnet, ist der Inhalt dieses Blogs unter der folgenden Lizenz veröffentlicht: <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC Attribution-Share Alike 3.0 Unported</a><br />, die ich sowieso schon die ganze Zeit einbauen wollte.

Aufgabe Nr. 3: Darstellung des Datums ändern

- Veröffentlicht unter Software - Web von

Momentan sieht man z. B. „July 20, 2013“ als Erstellungsdatum eines Blog-Artikels. Ich möchte es jedoch gern im Format „Samstag, 20. Juli 2013, 22:24 Uhr“ anzeigen lassen.

In den Options des Admin-Panels ist standardmäßig F d, Y eingetragen. Das bedeutet:

  • F = Monat als ganzes Wort, wie January oder March,
  • d = Tag des Monats, 2-stellig mit führender Null und
  • Y = Vierstellige Jahreszahl.

Ich versuche es daher gemäß date zunächst einmal mit: l, d. F Y, H:i

Gar nicht mal schlecht! Allerdings sind Wochentag und Monat in englischer Sprache („Saturday, 20. July 2013, 22:24“). Mit date() in Zeile 44 der Datei includes/miniblog.php werde ich da nicht weiterkommen. Ich muss auf strftime umsteigen.

Ich schreibe also zuerst setlocale(LC_TIME, 'de_DE'); in eine neue Zeile der Datei includes/config.php und ersetze anschließend Zeile 44 der Datei includes/miniblog.php mit:

$postdate$' => strftime($config['date-format'], $posts['date']),

Zuletzt setze ich das „Date format“ in den Options des Admin-Panels auf %A, %d. %B %Y, %H:%M Uhr. Et voilà!

Als Perfektionist ändere ich dann selbstverständlich noch die Datenbanktabelle miniblog_config.

Aus:

Date format as per the PHP date function <a href="http://www.php.net/date">here</a>

wird:

Date format as per the PHP strftime function <a href="http://www.php.net/strftime">here</a>

Oha! Eine unerwünschte (aber eigentlich auch logische) Nebenwirkung: Im Admin-Panel ist die Datumsanzeige vermurkst, denn in der Datei adm/index.php wird in Zeile 22 ebenfalls date verwendet.

Aus:

<td>" . date($config['date-format'], $row['date']) . "</td>

wird:

<td>" . strftime($config['date-format'], $row['date']) . "</td>

Noch mehr date kommt im gesamten miniblog-Quellcode dann aber doch nicht vor. Schwein gehabt!

Aufgabe Nr. 2: Beschreibung „latest product updates“ ändern

- Veröffentlicht unter Software - Web von

Die Beschreibung steht in der Datei index.php im „H2“-Tag in Zeile 88. Mit meinen Erkenntnissen aus Aufgabe Nr. 1 sollte das also ein Kinderspiel werden.

Die Datenbanktabelle miniblog_config ergänze ich um eine neue Zeile:

  • miniblog-description,
  • Das persönliche Blog von Robert Riebisch,
  • Short subtitle of this blog

und korrigiere wieder die Reihenfolge mit dem SQL-Befehl:

ALTER TABLE miniblog_config ORDER BY FIELD(config_name, 'miniblog-title', 'miniblog-description', 'posts-per-page', 'date-format', 'password', 'miniblog-filename', 'use-modrewrite')

Anschließend ersetze ich Zeile 88 durch:

<h2><?=$config['miniblog-description']?></h2>

Funktioniert! Das war schon fast zu einfach. Aber ich habe mir heute bewusst nur eine kleine Aufgabe ausgesucht, denn ich habe wenig Zeit zur Verfügung.

Aufgabe Nr. 1: Titel „miniblog“ ändern

- Veröffentlicht unter Software - Web von

Nach der Installation von miniblog trägt die installierte Instanz den Namen „miniblog“. Diesen würde ich gern anpassen und wo steht dieser Name?

Auf jeden Fall in der Datei index.php im „Title“-Tag in Zeile 9 und im „H1“-Tag in Zeile 87. Könnte ich jetzt also einfach editieren. Ich möchte den Titel aber stattdessen gern in der Datenbank speichern, so dass er über das Admin-Panel angepasst werden kann.

Daher füge ich als ersten Schritt mittels phpMyAdmin in der Tabelle miniblog_config eine neue Zeile mit diesen Werten ein:

  • miniblog-title (für config_name),
  • Notepad (für config_value) sowie
  • Name of this blog (für config_explain).

Anschließend ersetze ich in der Datei index.php die Zeile 9 durch:

<title><?=$config['miniblog-title']?></title>

und die Zeile 87 durch:

<h1><?=$config['miniblog-title']?></h1>

Wow! Das klappt sogar besser als erwartet, denn miniblog liest in der Datei functions.php ab der Zeile 15 durch die Funktion mb_config() sämtliche in der Tabelle miniblog_config vorhandenen Zeilen ein und weist sie entsprechend PHP-Variablen zu. Das bedeutet, dass dank der Zeilen 102-148 der Datei adm/index.php der Wert auch bereits über das Admin-Panel verändert werden kann.

Nun steht dieser aber ganz unten auf der Seite. Er soll aber oben stehen. Hier hilft der folgende SQL-Befehl ausgeführt wieder mittels phpMyAdmin:

ALTER TABLE miniblog_config ORDER BY FIELD(config_name, 'miniblog-title', 'posts-per-page', 'date-format', 'password', 'miniblog-filename', 'use-modrewrite')

Damit ist die erste Aufgabe schon geschafft. Hurra! So kann es bitte weitergehen.

Seite 4 von 5