wp-wahlblackout

Check-in [9a593b528f]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Initial import into Fossil
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | trunk
Files: files | file ages | folders
SHA3-256: 9a593b528fef43d91c7f0fab8cff431ace8751b21ed1b2f6012165d262e01b7a
User & Date: Cthulhux 2019-10-01 21:25:36
Context
2019-10-01
21:25
Initial import into Fossil Leaf check-in: 9a593b528f user: Cthulhux tags: trunk
21:24
initial empty check-in check-in: d2bc532e8e user: Cthulhux tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Added COPYING.





























>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2013-2019 tux. <hirnfick@tuxproject.de>

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.

Added blackout.css.































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
BODY
{
	background-color: #000000;
	width: 800px;
	text-align: center;
}
H1
{
	color: #00FF18;
	font-family: monospace;
}
H2
{
	color: #00FF18;
	font-family: monospace;
}
P
{
	color: #FFFFFF;
	font-family: monospace;
	font-size: 14px;
}
.fusszeile
{
	font-size: 11px;
	font-family: sans-serif;
	color: #606060;
}
.uhrzeit
{
	color: #FF0000;
	font-weight: bold;
}
A:link, A:visited
{
	color: #D3D3D3;
	text-decoration: underline;
}
A:hover
{
	color: #FFA500;
}
.fusszeile A:link, .fusszeile A:visited
{
	color: #777373;
	text-decoration: underline;
}

Added blackout.php.







































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!doctype html>
<html>
<head>
<title>Heute ist <?php echo get_option('wahlblackout_wahltyp'); ?>!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
BODY {background-color: #000000; width: 800px; text-align: center; }
H1 {color: #00FF18; font-family: monospace; }
H2 {color: #00FF18; font-family: monospace; }
P {color: #FFFFFF; font-family: monospace; font-size: 14px; }
.fusszeile {font-size: 11px; font-family: sans-serif; color: #606060; }
.uhrzeit {color: #FF0000; font-weight: bold; }
A:link, A:visited {color: #D3D3D3; text-decoration: underline; }
A:hover {color: #FFA500; }
.fusszeile A:link, .fusszeile A:visited {color: #777373; text-decoration: underline; }
//-->
</style>
</head>
<body>
<h1>Lest Stimmzettel, keine Blogs!</h1>

<p>Ihr habt heute noch bis <span class="uhrzeit">18 Uhr</span> Zeit, <?php echo get_option('wahlblackout_regierung'); ?> wegen <?php echo get_option('wahlblackout_verfehlung'); ?> abzuwählen oder ihren politischen Kurs gegen die Anfeindungen zu verteidigen.</p>

<h2>Ihr wisst nicht, was ihr wählen sollt?</h2>

<p>Eine Liste der zur Wahl stehenden Parteien mit Verweisen auf die jeweiligen Inhalte gibt es <a href="https://www.bpb.de/politik/wahlen/wer-steht-zur-wahl/">im Web</a>, einen schnellen Test, falls es schon etwas später ist, auch <a href="https://www.voteswiper.org/de">auf eurem Smartphone</a>.</p>

<p>Hier geht es <span class="uhrzeit">nach 18 Uhr</span> weiter. Nutzt die Gelegenheit, etwas zu ändern!</p>

<hr />

<p class="fusszeile">Dies ist WordPress nebst WP-WahlBlackout-Plugin. Keine Sorge, ich bleib' nicht lange.</p>
</body>
</html>

Added wp-wahlblackout-admin.php.































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
/*
WP-WahlBlackout ACP, version 20191001
Made with love.
*/

if ($_POST['uninstall'] == '1') {
	// delete settings
	delete_option('wahlblackout_verfehlung');
	delete_option('wahlblackout_wahltyp');
	delete_option('wahlblackout_regierung');
	delete_option('wahlblackout_datum');
	delete_option('wahlblackout_datum_rein');
	delete_option('wahlblackout_datum_raus');
	delete_option('wahlblackout_cache_leer');
?>
    <div class="updated"><p><strong>WP-WahlBlackout wurde erfolgreich deinstalliert. Danke für Ihren Einsatz für die Demokratie!</strong></p></div>  
<?php
} elseif ($_POST['savesettings'] == '1') {
    // save settings
    $verfehlung = $_POST['wahlblackout_verfehlung'];
    $regierung = $_POST['wahlblackout_regierung'];
    $wahltyp = $_POST['wahlblackout_wahltyp'];

    update_option('wahlblackout_verfehlung', $verfehlung);
    update_option('wahlblackout_regierung', $regierung);
    update_option('wahlblackout_wahltyp', $wahltyp);

    $wahldatum = date('Y-m-d',strtotime($_POST['wahlblackout_datum'])); // kommt als beliebig formatiertes Datum an, also umwandeln...
    $wahldatum_rein = strtotime($wahldatum . " 08:00 AM");
    $wahldatum_raus = strtotime($wahldatum . " 06:00 PM");

    update_option('wahlblackout_datum', $wahldatum);
    update_option('wahlblackout_datum_rein', $wahldatum_rein);
    update_option('wahlblackout_datum_raus', $wahldatum_raus);
  
?>
    <div class="updated"><p><strong>Einstellungen gespeichert.</strong></p></div>  
<?php
} else {
    // read settings
    $verfehlung = get_option('wahlblackout_verfehlung');
    $wahldatum = get_option('wahlblackout_datum');
    $wahltyp = get_option('wahlblackout_wahltyp');
    $regierung = get_option('wahlblackout_regierung');
}
?>

<div class="wrap">
	<h2>WP-WahlBlackout-Einstellungen</h2>

	<div id="poststuff" class="metabox-holder has-right-sidebar">
		<div class="stuffbox">
			<h3>Einstellungen</h3>
			<div class="inside">
				<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
				
				<p>
				<strong>Datum:</strong> <input type="date" name="wahlblackout_datum" value="<?php echo $wahldatum; ?>" required pattern="[0-9]{2}.[0-9]{2}.[0-9]{4}" /><br />
				Tag der <input type="text" name="wahlblackout_wahltyp" value="<?php echo $wahltyp; ?>" size="20" /> im Format "dd.mm.yyyy" (zum Beispiel 24.09.2017).<br />
				</p>

				<p>
				<strong>Countdown-Text (wird im Widget oder per Shortcode <em>[wahlblackout]</em> angezeigt):</strong><br />
				<br />
				In <em>(Countdown)</em> Tagen habt ihr die Möglichkeit, <input type="text" name="wahlblackout_regierung" value="<?php echo $regierung; ?>" size="25" /> wegen <input type="text" name="wahlblackout_verfehlung" value="<?php echo $verfehlung; ?>" size="35" /> abzuwählen.<br />
				</p>

				<input class="button" type="submit" value="Einstellungen speichern &raquo;" name="submit" />
				<input type="hidden" name="savesettings" value="1">
				</form>
			</div>
		</div>

		<div class="stuffbox">
			<h3>Eigene blackout.php</h3>
			<div class="inside">
				<p>
				Wenn Ihnen die mitgelieferte <em>blackout.php</em> nicht gefällt, können Sie auch eine eigene verwenden. Diese legen Sie bitte im Ordner <em>/wp_content/</em> unter dem Namen <em>blackout.php</em> ab, das Plugin wird sie dann automatisch verwenden. Beliebiger HTML- und PHP-Code ist erlaubt.
				</p>
			</div>
		</div>

		<div class="stuffbox">
			<h3 id="uninstall">Deinstallation</h3>
			<div class="inside">
				<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
					<p>Diese Schaltfläche entfernt alle Datenbankeinträge für dieses Plugin. Bitte benutzen Sie sie <strong>vor</strong> Deaktivierung des Plugins.<br /><strong>Achtung:</strong> Dies kann nicht ungeschehen gemacht werden!</p>
					<input type="hidden" name="uninstall" value="1">
					<input class="button" type="submit" value="Optionen löschen &raquo;" />
				</form>
			</div>
		</div>
	</div>
</div>

Added wp-wahlblackout.php.

































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<?php
/*
Plugin Name: WP-WahlBlackout
Plugin URI: https://tuxproject.de/projects/wp-wahlblackout
Description: Schaltet das Blog am Tag der nächsten Wahl von 8 bis 18 Uhr ab; ein Widget mit dem Countdown (in Tagen) ist enthalten.
Version: 20191001
Author: tux.
Author URI: https://tuxproject.de/blog
License: WTFPL

Yep, versioning scheme is yyyymm##, no reference to a day.
Counting builds makes more sense to me.
*/

// ------------------------
// General SQL field defaults
add_option('wahlblackout_verfehlung','Merkel');
add_option('wahlblackout_wahltyp','Bundestagswahl');
add_option('wahlblackout_regierung','Bundesregierung');
add_option('wahlblackout_datum','24.09.2017');
add_option('wahlblackout_datum_rein',strtotime('24-09-2017 08:00 AM'));
add_option('wahlblackout_datum_raus',strtotime('24-09-2017 06:00 PM'));

// ------------------------
// Shortcode
function wp_wahlblackout_shortcode() {
    return ($wahlcountdown > 1 ? "In ".$wahlcountdown." Tagen" : "Morgen") . " habt ihr die Möglichkeit, die " . get_option("wahlblackout_regierung") . " wegen " . get_option("wahlblackout_verfehlung") . " abzuwählen.";
}

// ------------------------
// Set up the ACP
function wp_wahlblackout_admin() {  
    include('wp-wahlblackout-admin.php');  
}  
  
function wp_wahlblackout_admin_action() {
    add_options_page("WP-WahlBlackout", "WP-WahlBlackout", 'manage_options', plugin_basename(__FILE__), "wp_wahlblackout_admin");  
}

// ------------------------
// Sidebar widget
class WahlBlackout_Widget extends WP_Widget 
{
    public function __construct() 
    {
        parent::__construct(
            'wp_wahlblackout_widget',
            'WP-WahlBlackout-Widget',
            array(
                'description' => 'Zeigt die verbleibenden Tage bis zur nächsten Wahl an.'
            )
        );
    }

    public function form($instance) 
    {
        $defaults = array(
            'title' => ''
        );
        $instance = wp_parse_args((array)$instance, $defaults);

        $title = $instance['title'];
?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php echo 'Titel:'; ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
        </p>
<?php
    }

    public function update($new_instance, $old_instance) 
    {
        $instance = array();
        
        $instance['title'] = strip_tags($new_instance['title']);

        return $instance;
    }

    public function widget($args, $instance) 
    {
        extract($args);
        $title = apply_filters('widget_title', $instance['title']);

        echo $before_widget;
        
        if (!empty($title))
        {
            echo $before_title . $title . $after_title;
        }

        $wahldatum = date_create(get_option("wahlblackout_datum"));
        $heute = date("d.m.Y");

        $wahlcountdown = date_diff($heute, $wahldatum)->format("%a");

        echo wp_wahlblackout_shortcode();
        
        echo $after_widget;
    }
}

function wp_wahlblackout_widget_register() {
    register_widget('WahlBlackout_Widget');
}

// ------------------------
// Add meta links
function wp_wahlblackout_plugin_actions( $links, $file ) {
    static $plugin;
    if (!$plugin) $plugin = plugin_basename(__FILE__);
 
    // create additional plug-in row
    if ($file == $plugin) {
        $links[] = '<strong><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=der_tuxman%40arcor%2ede&item_name=Donation%20for%20the%20WahlBlackout%20plugin&no_shipping=1&return=http%3a%2f%2ftuxproject%2ede%2fthx4donation%2f&cn=Note%20for%20me&tax=0&currency_code=EUR&bn=PP%2dDonationsBF&charset=UTF%2d8">Spenden</a></strong>';
    }
    return $links;
}
global $wp_version;
add_filter((version_compare($wp_version, '2.8alpha', '>') ? 'plugin_row_meta' : 'plugin_action_links'), 'wp_wahlblackout_plugin_actions', 10, 2);

// ------------------------
// Caching help:
function wp_wahlblackout_clearcache() {
    // Super Cache Plugin
    if ( function_exists( 'wp_cache_clear_cache' ) ) {
        wp_cache_clear_cache();
    }

    // Hyper Cache Plugin
    if ( function_exists( 'hyper_clean' ) ) {
        hyper_clean();
    }

    // W3 Total Cache Plugin
    if ( function_exists( 'w3tc_pgcache_flush' ) ) {
        w3tc_pgcache_flush();
    }
}

// ------------------------
// Do something useful:
add_action('admin_menu', 'wp_wahlblackout_admin_action'); // add our admin page
add_action('widgets_init', 'wp_wahlblackout_widget_register'); // add our widget
add_shortcode("wahlblackout", "wp_wahlblackout_shortcode"); // add our shortcode

// ------------------------
// WP blog replacements:
function wp_wahlblackout_init() {
    if (current_time('timestamp') >= get_option('wahlblackout_datum_rein') && current_time('timestamp') <= get_option('wahlblackout_datum_raus')) {
        if (!get_option('wahlblackout_cache_leer')) {
            wp_wahlblackout_clearcache();
            add_option('wahlblackout_cache_leer','1');
        }

        if (is_admin()) return;

        ob_start();

        // Own blackout.php? Else use ours :-)
        if ( file_exists( WP_CONTENT_DIR . '/blackout.php' ) )
            include( WP_CONTENT_DIR . '/blackout.php' );
        else
            include('blackout.php');

        ob_flush();
        exit();
    }
    elseif (current_time('timestamp') >= get_option('wahlblackout_datum_raus')) {
        wp_wahlblackout_clearcache();
        delete_option('wahlblackout_cache_leer');
    }
}

add_action('init', 'wp_wahlblackout_init');
?>