Skip to content

Commit 36b6e6d

Browse files
committed
original
0 parents  commit 36b6e6d

File tree

13 files changed

+1582
-0
lines changed

13 files changed

+1582
-0
lines changed

.editorconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Editor configuration, see https://editorconfig.org
2+
root = true
3+
4+
[*]
5+
charset = utf-8
6+
indent_style = tab
7+
indent_size = 4
8+
end_of_line = lf
9+
insert_final_newline = true
10+
trim_trailing_whitespace = true

.gitignore

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Created by .ignore support plugin (hsz.mobi)
2+
### JetBrains template
3+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
4+
5+
*.iml
6+
7+
## Directory-based project format:
8+
.idea/
9+
# if you remove the above rule, at least ignore the following:
10+
11+
# User-specific stuff:
12+
# .idea/workspace.xml
13+
# .idea/tasks.xml
14+
# .idea/dictionaries
15+
16+
# Sensitive or high-churn files:
17+
# .idea/dataSources.ids
18+
# .idea/dataSources.xml
19+
# .idea/sqlDataSources.xml
20+
# .idea/dynamic.xml
21+
# .idea/uiDesigner.xml
22+
23+
# Gradle:
24+
# .idea/gradle.xml
25+
# .idea/libraries
26+
27+
# Mongo Explorer plugin:
28+
# .idea/mongoSettings.xml
29+
30+
## File-based project format:
31+
*.ipr
32+
*.iws
33+
34+
## Plugin-specific files:
35+
36+
# IntelliJ
37+
/out/
38+
39+
# mpeltonen/sbt-idea plugin
40+
.idea_modules/
41+
42+
# JIRA plugin
43+
atlassian-ide-plugin.xml
44+
45+
# Crashlytics plugin (for Android Studio and IntelliJ)
46+
com_crashlytics_export_strings.xml
47+
crashlytics.properties
48+
crashlytics-build.properties
49+

LICENSE

Lines changed: 339 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Toolbox #
2+
3+
* Contributors: sergej.mueller
4+
* Tags: tools, functions, modules
5+
* Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZAQUT9RLPW8QN
6+
* Requires at least: 3.3
7+
* Tested up to: 4.0.1
8+
* Stable tag: trunk
9+
* License: GPLv2 or later
10+
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
11+
12+
Werkzeugkoffer für die Modularisierung der functions.php. WordPress Snippets bequem und übersichtlich als Module verwalten.
13+
14+
## Description ##
15+
16+
### Bausteinsystem ###
17+
Vergrößert sich der Funktionsumfang eines WordPress-Blogs, so steigt entweder die Anzahl der installierten Plugins oder die *functions.php* im Theme wächst durch einen stetigen Neuzugang an Code-Fragmenten.
18+
19+
Und da kleinere Funktionsaufrufe kaum als Plugin-Lösungen zur Verfügung stehen, werden diese gern in die besagte Erweiterungsdatei eingefügt. Im Laufe der Zeit und Entwicklung wird die Datei *functions.php* schlicht und einfach unübersichtlich und überdimensioniert. Zudem kommt die Tatsache, dass WordPress die Datei sowohl im Blog-Frontend wie auch im Admin-Bereich einbindet und ausführt.
20+
21+
*Toolbox* wurde konzipiert, um die *functions.php* zu entlasten oder gänzlich abzuschaffen. Das Prinzip: Gruppierte Code-Snippets aus *functions.php* werden in Module zusammengefasst - dafür wird jeweils eine PHP-Datei angelegt und mit notwendigen, optionalen Metadaten versehen. Anschließend lädt der Admin die Module ins Toolbox-Verzeichnis *modules* hoch.
22+
23+
Ab diesem Moment übernimmt das Plugin die Steuerung der Code-Schnipsel: Der Administrator legt fest, in welchem Bereich genau das Modul ausgeführt werden soll. Es kann zwischen *Nur im Frontend*, *Nur im Backend* und *Im Front- und Backend* gewählt werden. Einzelne Module lassen sich jederzeit abschalten.
24+
25+
Auf diese Weise müssen WordPress-Hooks und andere Funktionserweiterungen nicht länger als Plugins in Betrieb genommen werden, um überschaubar und übertragbar zu sein. Als Toolbox-Modul ist der Code zugänglich abgelegt und kann mühelos gepflegt werden.
26+
27+
### Stärken ###
28+
* Ein- und abschaltbar
29+
* Zeitsparendes Management der Module
30+
* Ausstattung der Module mit Metadaten
31+
* Kombinierbare Bereiche der Einbindung
32+
* Kein Durcheinander in der *functions.php*
33+
* Ordnung durch angelegte Toolbox-Module
34+
* Einfache Weitergabe der WordPress-Snippets
35+
* Modus für mehr Sicherheit beim Ausführen der Module
36+
37+
### Systemanforderungen ###
38+
* PHP ab 5.3
39+
* WordPress ab 3.3
40+
41+
### Dokumentation ###
42+
* [Toolbox: WordPress Snippets als Module](http://playground.ebiene.de/toolbox-wordpress-plugin/ "Toolbox: WordPress Snippets als Module")
43+
44+
### Unterstützung ###
45+
* Per [Flattr](https://flattr.com/thing/818f7271bb99b074f3e0d749db181f17)
46+
* Per [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZAQUT9RLPW8QN)
47+
48+
### Autor ###
49+
* [Google+](https://plus.google.com/110569673423509816572 "Google+")
50+
* [Plugins](http://wpcoder.de "Plugins")
51+
* [Portfolio](http://ebiene.de "Portfolio")
52+
53+
54+
55+
## Changelog ##
56+
57+
### 0.1 ###
58+
* Toolbox geht online
59+
60+
61+
62+
## Screenshots ##
63+
64+
1. Toolbox Optionen

modules/admin_bar.php

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
/*
3+
Module Name: Modifizierung der Admin Bar
4+
Module URI: https://plus.google.com/110569673423509816572/posts/eFtCpa2AH1L
5+
Description: Entfernung einzelner Menüeinträge + Suche über Beiträge hinweg im Admin. [Backend]
6+
Author: Sergej Müller
7+
Author URI: http://ebiene.de
8+
*/
9+
10+
11+
/* Sicherheitsabfrage */
12+
if ( !class_exists('Toolbox') ) {
13+
die();
14+
}
15+
16+
17+
/* Ab hier kann's los gehen */
18+
function adjust_admin_bar() {
19+
/* Global */
20+
global $wp_admin_bar;
21+
22+
/* Aktiv und Admin? */
23+
if ( !is_admin_bar_showing() or !is_admin() ) {
24+
return;
25+
}
26+
27+
/* Einträge löschen */
28+
$wp_admin_bar->remove_menu('view');
29+
$wp_admin_bar->remove_menu('updates');
30+
$wp_admin_bar->remove_menu('wp-logo');
31+
$wp_admin_bar->remove_menu('comments');
32+
$wp_admin_bar->remove_menu('appearance');
33+
$wp_admin_bar->remove_menu('view-site');
34+
$wp_admin_bar->remove_menu('new-content');
35+
$wp_admin_bar->remove_menu('my-account');
36+
37+
/* Suche definieren */
38+
$form = '<form action="' .esc_url( admin_url('edit.php') ). '" method="get" id="adminbarsearch">';
39+
$form .= '<input class="adminbar-input" name="s" tabindex="1" type="text" value="" maxlength="50" />';
40+
$form .= '<input type="submit" class="adminbar-button" value="' .__('Search'). '"/>';
41+
$form .= '</form>';
42+
43+
/* Suche einbinden */
44+
$wp_admin_bar->add_menu(
45+
array(
46+
'parent' => 'top-secondary',
47+
'id' => 'search',
48+
'title' => $form,
49+
'meta' => array(
50+
'class' => 'admin-bar-search'
51+
)
52+
)
53+
);
54+
}
55+
56+
/* Funktionsaufruf */
57+
add_action(
58+
'wp_before_admin_bar_render',
59+
'adjust_admin_bar'
60+
);

modules/only_posts.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
/*
3+
Module Name: Begrenzung der Suche auf Beiträge
4+
Description: Beschränkung der Blogsuche ausschließlich auf veröffentlichte Artikel. [Frontend]
5+
Author: Sergej Müller
6+
Author URI: http://ebiene.de
7+
*/
8+
9+
10+
/* Sicherheitsabfrage */
11+
if ( !class_exists('Toolbox') ) {
12+
die();
13+
}
14+
15+
16+
/* Ab hier kann's los gehen */
17+
add_filter(
18+
'pre_get_posts',
19+
function($query) {
20+
if ( $query->is_main_query() && $query->is_search ) {
21+
$query->set('post_type', 'post');
22+
}
23+
24+
return $query;
25+
}
26+
);

modules/optimize_db.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
/*
3+
Module Name: Optimierung der Datenbanktabellen
4+
Description: Wöchentliche Anwendung des MySQL-Befehls OPTIMIZE TABLE auf Tabellen. [Backend]
5+
Author: Sergej Müller
6+
Author URI: http://ebiene.de
7+
*/
8+
9+
10+
/* Sicherheitsabfrage */
11+
if ( !class_exists('Toolbox') ) {
12+
die();
13+
}
14+
15+
16+
/* Ab hier kann's los gehen */
17+
function optimize_db_tables() {
18+
/* Global */
19+
global $wpdb;
20+
21+
/* Tabellen */
22+
$tables = $wpdb->tables();
23+
24+
/* Loop */
25+
foreach ( $tables as $table ) {
26+
$wpdb->query("OPTIMIZE TABLE `$table`");
27+
}
28+
}
29+
30+
/* Cronjob */
31+
if ( ! get_transient('sm_optimized_db') ) {
32+
set_transient(
33+
'sm_optimized_db',
34+
'ilovesweta',
35+
60 * 60 * 24 * 7 // 1 Woche
36+
);
37+
38+
add_action(
39+
'admin_init',
40+
'optimize_db_tables'
41+
);
42+
}

modules/pingback_header.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
/*
3+
Module Name: Filterung des Pingback-Headers
4+
Description: Eliminierung des von WordPress gesendeten Pingback-Headers "X-Pingback". [Frontend]
5+
Author: Sergej Müller
6+
Author URI: http://ebiene.de
7+
*/
8+
9+
10+
/* Sicherheitsabfrage */
11+
if ( !class_exists('Toolbox') ) {
12+
die();
13+
}
14+
15+
16+
/* Ab hier kann's los gehen */
17+
add_filter(
18+
'wp_headers',
19+
function ($header) {
20+
unset($header['X-Pingback']);
21+
22+
return $header;
23+
}
24+
);

modules/post_shortcode.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
/*
3+
Module Name: Verlinkung der Artikel via Shortcode
4+
Module URI: http://playground.ebiene.de/wordpress-shortcode-links/
5+
Description: Zukunftssichere Verlinkung der Artikel untereinander mithilfe der PostID. [Frontend]
6+
Author: Sergej Müller
7+
Author URI: http://ebiene.de
8+
*/
9+
10+
11+
/* Sicherheitsabfrage */
12+
if ( !class_exists('Toolbox') ) {
13+
die();
14+
}
15+
16+
17+
/* Ab hier kann's los gehen */
18+
add_shortcode(
19+
'post',
20+
function($atts, $data) {
21+
return sprintf(
22+
'<a href="%s" title="%s">%s</a>',
23+
get_permalink($atts['id']),
24+
esc_attr(get_the_title($atts['id'])),
25+
$data
26+
);
27+
}
28+
);

modules/reduced_footer.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
/*
3+
Module Name: Reduzierung des Admin-Footers
4+
Description: Entfernt den Inhalt des Footers im Administrationsbereich des Blogs. [Backend]
5+
Author: Sergej Müller
6+
Author URI: http://ebiene.de
7+
*/
8+
9+
10+
/* Sicherheitsabfrage */
11+
if ( !class_exists('Toolbox') ) {
12+
die();
13+
}
14+
15+
16+
/* Ab hier kann's los gehen */
17+
add_filter( 'admin_footer_text', '__return_false' );
18+
add_filter( 'update_footer', '__return_false', 11 );

0 commit comments

Comments
 (0)