Vorwort | 6 |
Inhaltsverzeichnis | 9 |
1 Was ist PostNuke? | 13 |
1.1 Was ist ein CMS? | 13 |
1.2 Beispielhaftes Anforderungsprofil | 14 |
1.3 Die PostNuke-Historie | 14 |
1.4 Leistungsfähigkeit des PostNuke-CMS | 15 |
1.5 Produktdetails und Voraussetzungen | 17 |
1.6 Unternehmenskriterien | 18 |
1.6.1 Bedienung | 18 |
1.6.2 Funktionalität | 19 |
1.6.3 Benutzerverwaltung | 19 |
1.6.4 Technische Leistungsfähigkeit | 19 |
1.6.5 Erweiterbarkeit | 20 |
1.6.6 Investitionssicherheit | 20 |
1.7 Zusammenfassung | 20 |
1.8 Ausblick | 20 |
2 Installation einer Webserver- Umgebung | 21 |
2.1 Aufsetzen einer Server-Umgebung mit XAMPP ( Windows) | 21 |
2.1.1 XAMPP-Varianten | 22 |
2.1.2 Installation von XAMPP Lite unter Windows | 22 |
2.1.3 Start, Test und Stopp der XAMPP-Umgebung unter Windows | 23 |
2.2 Zusammenfassung | 23 |
2.3 Ausblick | 24 |
3 Die PostNuke-Installation | 25 |
3.1 Download von PostNuke | 25 |
3.2 Installation mit install.php | 25 |
3.3 Alternative: manuelle Installation | 28 |
3.4 Installation absichern | 28 |
3.5 Die config.php | 29 |
3.6 Deutsches Sprachpaket installieren | 30 |
3.7 Grundkonfiguration | 31 |
3.7.1 Allgemeine Einstellungen | 31 |
3.7.2 Benutzer-Einstellungen | 34 |
3.8 Zusammenfassung | 35 |
3.9 Ausblick | 35 |
4 Umgang mit PostNuke | 37 |
4.1 Die Startseite und ihre Funktionen | 37 |
4.1.1 Linke Spalte | 38 |
4.1.2 Mittlere Spalte / Content-Fenster | 38 |
4.1.3 Rechte Spalte | 38 |
4.2 Anmelden am System (Login) | 39 |
4.3 Benutzerspezifische Konfiguration | 39 |
4.4 Benutzer-Verwaltung | 40 |
4.4.1 Benutzer anlegen | 40 |
4.4.2 Kennwort vom System zurücksetzen lassen/neues Kennwort anfordern | 41 |
4.4.3 Passwort eines Benutzers zurücksetzen | 41 |
4.4.4 Dynamische Benutzerdaten | 42 |
4.5 Gruppen | 42 |
4.6 Blöcke und Module | 43 |
4.6.1 Grundlagen | 43 |
4.6.2 Modul installieren | 45 |
4.6.3 Modul administrieren | 46 |
4.6.4 Aufruf von Modulen | 46 |
4.6.5 Modul deinstallieren | 48 |
4.6.6 Blöcke administrieren | 48 |
4.6.7 Block hinzufügen | 49 |
4.6.8 Hauptmenü-Block dynamisieren | 50 |
4.7 WYSIWYG HTML-Editor „Type Tool“ | 50 |
4.8 Content-Pflege: Den ersten Artikel erstellen | 51 |
4.8.1 Als Administrator | 51 |
4.8.2 Als Benutzer | 54 |
4.8.3 Freigabe von Artikeln | 54 |
4.9 Einrichtung einer echten Autoren-Gruppe | 55 |
4.10 Topics | 57 |
4.11 Kategorien | 58 |
4.12 Wiki | 59 |
4.12.1 Aktivierung von Wiki | 59 |
4.12.2 Grundlegende Formatierungen (Wiki-Syntax) | 59 |
4.13 Hooks | 60 |
4.14 Zusammenfassung | 62 |
4.15 Ausblick | 62 |
5 Sicherheit | 63 |
5.1 PHP | 63 |
5.2 Apache | 65 |
5.3 SSL | 66 |
5.4 Berechtigungen und Zugriffsrechte in PostNuke | 67 |
5.4.1 Grundlagen | 68 |
5.4.2 Benutzer vs. Gruppen | 69 |
5.4.3 Zugriffsarten/Stufen | 69 |
5.4.4 Abarbeitungsreihenfolge | 70 |
5.4.5 Anwendung | 71 |
5.4.6 Die Auswertung des Regelsatzes | 72 |
5.5 Allgemeine PostNuke Sicherheitstipps | 73 |
5.6 Zusammenfassung | 74 |
5.7 Ausblick | 74 |
6 Blöcke | 75 |
6.1 Admin Messages/Show Admin Messages | 76 |
6.2 Core/Button Link Block | 76 |
6.3 Core/Categories Menu | 77 |
6.4 Core/Custom Banner Display | 77 |
6.5 Core/Display Poll | 77 |
6.6 Core/Ephemerids | 78 |
6.7 Core/FXP Currency Exchange | 78 |
6.8 Core/Generic Menu | 78 |
6.9 Core/HTML | 79 |
6.10 Core/Languages | 81 |
6.11 Core/Latest Web Links | 82 |
6.12 Core/Online | 82 |
6.13 Core/Past Articles | 82 |
6.14 Core/PHP Script | 83 |
6.15 Core/Plain Text | 83 |
6.16 Core/RSS Newsfeed | 84 |
6.17 Core/RSS Extra | 85 |
6.18 Core/Search Box | 85 |
6.19 Core/Simple File Include | 85 |
6.20 Core/Story Related Links | 86 |
6.21 Core/Story Titles | 86 |
6.22 Core/Today’s Big Story | 87 |
6.23 Core/Topics Menu | 87 |
6.24 Core/User’s Login | 87 |
6.25 Core/User’s Custom Box | 88 |
6.26 pnRender/custom pnRender block | 88 |
6.27 Quotes/Random Quote | 89 |
6.28 Xanthia/Logo Block for Xanthia Themes | 89 |
6.29 Xanthia/Display module output in a block | 89 |
6.30 Sie brauchen mehr Blöcke? | 90 |
6.31 Zusammenfassung | 90 |
6.32 Ausblick | 90 |
7 Module | 91 |
7.1 AddStory | 93 |
7.2 Admin | 94 |
7.3 Admin Messages | 95 |
7.4 AutoLinks | 97 |
7.5 AvantGo | 98 |
7.6 Banners | 99 |
7.7 Blocks | 102 |
7.8 Censor | 103 |
7.9 Comments | 104 |
7.10 Credits | 105 |
7.11 Downloads | 107 |
7.12 Ephemeriden | 108 |
7.13 FAQ | 109 |
7.14 Groups | 111 |
7.15 Languages | 112 |
7.16 Legal Documents | 114 |
7.17 LostPassword | 115 |
7.18 Mailer | 116 |
7.19 MailUsers | 116 |
7.20 Members List | 117 |
7.21 Messages | 118 |
7.22 Modules | 119 |
7.23 Multisites | 120 |
7.24 News | 121 |
7.25 NewUser | 121 |
7.26 Past_Nuke | 122 |
7.27 Permissions | 123 |
7.28 pnRender | 124 |
7.29 Polls | 125 |
7.30 Quotes | 126 |
7.31 Ratings | 127 |
7.32 Recommend Us | 128 |
7.33 Referers | 128 |
7.34 Reviews | 129 |
7.35 Search | 130 |
7.36 Sections | 131 |
7.37 Settings | 132 |
7.38 Stats | 132 |
7.39 Submit News | 133 |
7.40 Template | 134 |
7.41 Topics | 135 |
7.42 Top List | 135 |
7.43 typetool | 136 |
7.44 Users | 137 |
7.45 Web Links | 138 |
7.46 Wiki | 139 |
7.47 Xanthia | 139 |
7.48 Xmlrpc | 141 |
7.49 Your_Account | 143 |
7.50 Sie brauchen mehr Module? | 144 |
7.51 Zusammenfassung | 144 |
7.52 Ausblick | 145 |
8 Xanthia-Themes | 147 |
8.1 Einführung | 147 |
8.2 Themes administrieren | 150 |
8.2.1 Themes hinzufügen | 150 |
8.2.2 Einfache Theme-Anpassungen vornehmen | 151 |
8.2.3 Theme-Eigenschaften editieren | 151 |
8.2.4 Templates ändern und neu laden | 152 |
8.2.5 Config-Cache aufbauen | 152 |
8.3 Xanthia konfigurieren | 153 |
8.3.1 Short URLs | 154 |
8.4 Theme erstellen | 156 |
8.4.1 Die Dateien eines Themes | 156 |
8.4.2 Eigenes Theme als Beispiel | 159 |
8.4.3 Im Beispiel verwendete Variablen | 166 |
8.4.4 Valider HTML-Code | 167 |
8.5 pnRender | 167 |
8.6 Zusammenfassung | 167 |
8.7 Ausblick | 168 |
9 Die PostNuke- Verzeichnisstruktur | 169 |
9.1 Das PostNuke-Verzeichnis | 169 |
9.2 Beispiel: language, modules und themes | 172 |
9.2.1 Verzeichnis language/eng | 172 |
9.2.2 Verzeichnis modules/Template | 172 |
9.2.3 Verzeichnis themes/ExtraLite | 173 |
9.2.4 Verzeichnis themes/Postnuke | 174 |
9.3 Zusammenfassung | 174 |
9.4 Ausblick | 174 |
10 Datenbank-Tabellen einer PostNuke- Installation | 175 |
11 Multisites | 179 |
11.1 Einrichtung des Webservers | 180 |
11.2 Einrichtung unterschiedlicher Themes | 182 |
11.3 Einrichtung unterschiedlichen Contents | 184 |
11.4 Zusammenfassung | 186 |
11.5 Ausblick | 187 |
12 Troubleshooting, Backup und Recovery | 189 |
12.1 Das PostNuke Swiss Army Knife (PSAK) | 189 |
12.2 Backup | 190 |
12.2.1 Dateien sichern | 190 |
12.2.2 Datenbank sichern | 191 |
12.3 Recovery | 192 |
12.4 Zusammenfassung | 192 |
12.5 Ausblick | 192 |
13 pnmini | 193 |
13.1 Vorbereitung | 193 |
13.2 Notwendige Module | 194 |
13.3 Verzeichnisse löschen | 194 |
13.4 Notwendige Blöcke | 195 |
13.5 Blöcke löschen | 195 |
13.6 Dateien löschen | 196 |
13.7 Notwendige Datenbank-Tabellen | 197 |
13.8 Ergebnis | 198 |
13.9 Zusammenfassung | 198 |
13.10 Ausblick | 198 |
14 Performance & Tuning | 199 |
14.1 Tools zur Performance-Messung | 199 |
14.2 Anzahl Seitenabrufe in Abhängigkeit von Bandbreite | 200 |
14.3 Hardware | 202 |
14.4 Software | 203 |
14.4.1 PHP | 203 |
14.4.2 Encoder | 203 |
14.4.3 HTTP-Kompression | 203 |
14.4.4 CGI | 204 |
14.4.5 Betriebssystem | 204 |
14.4.6 Datenbank | 204 |
14.5 PostNuke-Bordmittel nutzen | 206 |
14.6 Zusammenfassung | 206 |
14.7 Ausblick | 206 |
15 Das PostNuke-CVS | 207 |
15.1 CVS-Module | 207 |
15.2 Die Zugangsdaten | 208 |
15.2.1 CVS über HTTP | 208 |
15.2.2 CVS auf der Kommandozeile | 208 |
15.2.3 Zugriff mit TortoiseCVS | 208 |
15.3 Das Bauen einer lauffähigen PostNuke- Umgebung aus dem CVS | 209 |
15.4 Zusammenfassung | 212 |
15.5 Ausblick | 212 |
16 Sprachpakete und Sprachentabelle | 213 |
16.1 Sprachpakete beziehen | 213 |
16.2 Sprachen, ihre Kürzel und Fundort | 214 |
17 Tipps & Tricks zu PostNuke | 217 |
17.1 Allgemein | 217 |
17.2 Benutzer / Sessions | 219 |
17.3 Blöcke und Module | 221 |
17.4 Themes | 222 |
17.5 Ausblick | 224 |
18 Die PostNuke- Programmierung | 225 |
18.1 Programmierung von autarken Blöcken | 225 |
18.2 Sicherheit oder: die 12 goldenen Regeln der Modulentwicklung | 229 |
18.3 Grundlagen zur Modulentwicklung | 230 |
18.3.1 Absicherung von Formularen | 230 |
18.3.2 Modul- vs. Session-Variablen | 231 |
18.3.3 Exception-Handling | 231 |
18.3.4 PHP-Dateien und Smarty-Templates | 231 |
18.3.5 JavaScript-Routinen valide einbinden | 232 |
18.3.6 Hooks | 233 |
18.3.7 Debugging von PostNuke-Modulen | 235 |
18.3.8 Template/Example-Modul als Einstieg | 235 |
18.4 Entwicklung des Moduls „Rooms“ | 236 |
18.4.1 Vorgehensweise | 236 |
18.4.2 Anforderungsdefinition | 236 |
18.4.3 Rechte | 237 |
18.4.4 Datenbank-Struktur | 237 |
18.4.5 Name des Moduls, Verzeichnisse anlegen | 238 |
18.4.6 pnversion.php | 238 |
18.4.7 consts.rooms.php | 240 |
18.4.8 pntables.php | 241 |
18.4.9 pninit.php | 242 |
18.4.10 Erster Installations-Test | 243 |
18.4.11 Entwurf der Admin-Oberfläche | 243 |
18.4.12 Smarty-Plugin | 247 |
18.4.13 Programmierung der pnadmin.php | 248 |
18.4.14 Programmierung der pnadminapi.php | 251 |
18.4.15 Entwurf der Benutzeroberfläche | 253 |
18.4.16 Programmierung der pnuser.php | 256 |
18.4.17 Programmierung der pnuserapi.php | 257 |
18.4.18 Programmierung des Modul-Blocks | 262 |
18.4.19 Search-Plugin | 264 |
18.4.20 Sprachpakete | 267 |
18.4.21 Modul-Icon | 268 |
18.4.22 Persönliche Benutzer-Shortcuts | 268 |
18.4.23 Tuning & Code Review | 268 |
18.4.24 Vollständiger Modul-Test | 269 |
18.5 Zusammenfassung | 269 |
18.6 Ausblick | 270 |
19 Smarty | 271 |
19.1 Kommentare | 271 |
19.2 section, sectionelse | 272 |
19.3 foreach, foreachelse | 272 |
19.4 if, elseif, else | 272 |
19.5 Funktionen | 273 |
19.6 Variablen | 273 |
19.7 $ smarty | 274 |
19.8 Templates durch Plugins erweitern | 275 |
19.9 Ausblick | 276 |
20 Die PostNuke-API | 277 |
20.1 pnNameDerRoutine [NameDerAPI] | 277 |
20.2 Fehlerkonstanten in PostNuke | 278 |
20.3 accesslevelname [pnSecurity] | 279 |
20.4 accesslevelnames [pnSecurity] | 279 |
20.5 addinstanceschemainfo [pnSecurity] | 280 |
20.6 authorised [pnSecurity] | 281 |
20.7 blocks [pnBlocks] | 281 |
20.8 getinstanceschemainfo [pnSecurity] | 282 |
20.9 getmodulesinstanceschemainfo [ pnSecurity] | 283 |
20.10 pnADODBInit [pnAPI] | 283 |
20.11 pnAssert [pnAPI] | 284 |
20.12 pnBannerDisplay [pnBanners] | 285 |
20.13 pnBlockGetInfo [pnBlocks] | 286 |
20.14 pnBlockGetInfoByTitle [pnBlocks] | 287 |
20.15 pnBlockLoad [pnBlocks] | 288 |
20.16 pnBlockLoadAll [pnBlocks] | 288 |
20.17 pnBlockShow [pnBlocks] | 289 |
20.18 pnBlockVarsFromContent [pnBlocks] | 290 |
20.19 pnBlockVarsToContent [pnBlocks] | 291 |
20.20 pnConfigDelVar [pnAPI] | 292 |
20.21 pnConfigGetVar [pnAPI] | 292 |
20.22 pnConfigInit [pnAPI] | 294 |
20.23 pnConfigSetVar [pnAPI] | 294 |
20.24 pnDBGetConn [pnAPI] | 295 |
20.25 pnDBGetTables [pnAPI] | 296 |
20.26 pnDBInit [pnAPI] | 297 |
20.27 pnDBSetTables [pnAPI] | 298 |
20.28 pnGetBaseURI [pnAPI] | 298 |
20.29 pnGetBaseURL [pnAPI] | 299 |
20.30 pnGetCurrentURI [pnAPI] | 300 |
20.31 pnGetStatusMsg [pnAPI] | 300 |
20.32 pnInit [pnAPI] | 301 |
20.33 pnLocalReferer [pnAPI] | 301 |
20.34 pnMail [pnAPI] | 302 |
20.35 pnModAPIFunc [pnMod] | 303 |
20.36 pnModAPILoad [pnMod] | 304 |
20.37 pnModAvailable [pnMod] | 305 |
20.38 pnModCallHooks [pnMod] | 305 |
20.39 pnModDBInfoLoad [pnMod] | 307 |
20.40 pnModDelVar [pnMod] | 307 |
20.41 pnModFunc [pnMod] | 308 |
20.42 pnModGetAdminMods [pnMod] | 309 |
20.43 pnModGetAllMods [pnMod] | 310 |
20.44 pnModGetIDFromName [pnMod] | 311 |
20.45 pnModGetInfo [pnMod] | 312 |
20.46 pnModGetName [pnMod] | 313 |
20.47 pnModGetUserMods [pnMod] | 313 |
20.48 pnModGetVar [pnMod] | 314 |
20.49 pnModIsHooked [ pnMod] | 315 |
20.50 pnModLoad [pnMod] | 315 |
20.51 pnModRegisterHook [pnMod] | 316 |
20.52 pnModSetVar [pnMod] | 317 |
20.53 pnModUnRegisterHook [pnMod] | 318 |
20.54 pnModURL [pnMod] | 319 |
20.55 pnModVarExists [pnMod] | 320 |
20.56 pnRedirect [pnAPI] | 320 |
20.57 pnSecAddSchema [pnSecurity] | 321 |
20.58 pnSecAuthAction [pnSecurity] | 322 |
20.59 pnSecConfirmAuthKey [pnSecurity] | 323 |
20.60 pnSecGenAuthKey [pnSecurity] | 324 |
20.61 pnSecGetAuthInfo [pnSecurity] | 324 |
20.62 pnServerGetVar [pnAPI] | 326 |
20.63 pnSessionDelVar [pnSession] | 326 |
20.64 pnSessionGetVar [pnSession] | 327 |
20.65 pnSessionInit [pnSession] | 328 |
20.66 pnSessionSetup [pnSession] | 328 |
20.67 pnSessionSetVar [pnSession] | 329 |
20.68 pnStripslashes [pnAPI] | 329 |
20.69 pnThemeGetVar [pnAPI] | 330 |
20.70 pnThemeLoad [pnAPI] | 330 |
20.71 pnUserDelVar [pnUser] | 331 |
20.72 pnUserGetAll [pnUser] | 331 |
20.73 pnUserGetIDFromName [pnUser] | 332 |
20.74 pnUserGetLang [pnUser] | 333 |
20.75 pnUserGetTheme [pnUser] | 333 |
20.76 pnUserGetVar [pnUser] | 334 |
20.77 pnUserGetVars [pnUser] | 335 |
20.78 pnUserLoggedIn [pnUser] | 337 |
20.79 pnUserLogIn [pnUser] | 338 |
20.80 pnUserLogOut [pnUser] | 339 |
20.81 pnUserSetVar [pnUser] | 339 |
20.82 pnVarCensor [pnAPI] | 340 |
20.83 pnVarCleanFromInput [pnAPI] | 341 |
20.84 pnVarPrepForDisplay [pnAPI] | 342 |
20.85 pnVarPrepForOS [pnAPI] | 342 |
20.86 pnVarPrepForStore [pnAPI] | 343 |
20.87 pnVarPrepHTMLDisplay [pnAPI] | 344 |
20.88 pnVarValidate [pnAPI] | 345 |
21 PostNuke 0.760 | 347 |
22 Begriffe | 349 |
22.1 ADODB | 349 |
22.2 API (Application Programming Interface) | 349 |
22.3 Artikel | 350 |
22.4 BaseURI | 350 |
22.5 BaseURL | 350 |
22.6 BBCode (Bulletin Board Code) | 350 |
22.7 Benutzer | 351 |
22.8 Berechtigungen | 351 |
22.9 Besucher | 351 |
22.10 Block | 351 |
22.11 Blog | 352 |
22.12 Category | 352 |
22.13 CMS(Content Management System) | 352 |
22.14 Content | 353 |
22.15 Core | 353 |
22.16 Document Root | 353 |
22.17 Ephemerid | 353 |
22.18 Extranet | 353 |
22.19 Fork | 354 |
22.20 Gruppe | 354 |
22.21 Hack | 354 |
22.22 Hooks | 354 |
22.23 Intranet | 354 |
22.24 LAMPP | 355 |
22.25 Modul | 355 |
22.26 Multisites | 355 |
22.27 Permissions | 355 |
22.28 Portal | 355 |
22.29 PostNuke | 356 |
22.30 PostNuke-API | 356 |
22.31 Rechte | 356 |
22.32 RSS (RDF Site Summary) | 356 |
22.33 Section | 356 |
22.34 SSL | 357 |
22.35 Template | 357 |
22.36 Theme | 357 |
22.37 Topics | 358 |
22.38 URI | 358 |
22.39 URL | 358 |
22.40 WAMPP | 358 |
22.41 Workflow | 358 |
22.42 Wiki | 359 |
22.43 WYSIWYG (What You See Is What You Get) | 359 |
22.44 XAMPP | 359 |
22.45 Xanthia | 359 |
22.46 XMLRPC | 359 |
22.47 XTE (Xanthia Templating Engine) | 360 |
22.48 Zugriffsrechte | 360 |
23 Links | 361 |
23.1 Zu PostNuke | 361 |
23.2 Weitere Module | 362 |
Index | 363 |