De kansen voor Sociaal Epe!

de noodzaak voor een serieuze linkse samenwerking...

Nu de verkiezingsrook is opgetrokken, is het tijd om de uitslag nader te bekijken. De uitslag van de Kamerverkiezingen leert namelijk ook iets over de politieke verhoudingen in de gemeente Epe. De enorme winst van de SP in Epe wekt de schijn dat de kiezers een ruk naar links hebben gemaakt, maar de harde cijfers laten iets heel anders zien.

Cijfers
In 2003 haalde links (Pvda, GroenLinks en SP) in Epe 35,26 procent van de stemmen. Bij de laatste verkiezingen waren deze partijen goed voor 37,14% van de stemmen. De koek is anders verdeeld, maar de facto is er weinig echte winst behaald.

Zetten we deze cijfers af tegen de uitkomst van de recente gemeenteraadsverkiezingen dan is er nog meer te leren. In maart haalden PvdA en GroenLinks – SP deed niet mee in de gemeente – 30,6 procent van de stemmen. Zo´n vijf procent van de kiezers nam ofwel niet de moeite om te gaan stemmen of stemde op een andere partij. Van de kiezers die kozen voor een lokale partij mag je uitgaan dat ze kozen voor Nieuwe Lijn, want Gemeentebelangen Epe en LBP staan niet bekend als links bolwerken.

De verkiezingsuitslag van 22 november laat zien dat de SP in Epe 'slechts' half zo groot is als de PvdA. Doorvertaald naar de gemeente betekent dit dat we weer een veredelde splinter in de raad krijgen én dat de PvdA wordt onthoofd. Voor GroenLinks ´gloort´ de teruggang naar één zetel in de Raad.

Meer partijen en minder invloed
Meer splinters betekent minder invloed. Om een beslissende invloed op de Eper politiek te behouden zal links écht moeten samenwerken. Tijdens het lijsttrekkersdebat begin maart in Emst konden de PvdA en GroenLinks amper uitleggen wat de verschillen waren. Ze gingen samen de verkiezingen in met een lijstverbinding én een tienpunten actieplan. Hoe is het vervolgens uit te leggen dat op basis van hetzelfde actieprogramma de ene partij in het college zit en de andere partij oppositie voert?

Om de partijen bij de landelijke, provinciale (Eerste Kamer!) en Europese verkiezingen te ondersteunen, is het van belang dat de partijen afzonderlijk vertegenwoordigd zijn in de gemeente. In de landelijke en internationale politiek komen grote beleidsterreinen als milieubeleid en inkomenspolitiek aan de orde. Die partijafdelingen moeten dus vooral blijven bestaan.

Maar die partijen zouden afzonderlijk niet aan de gemeenteraadsverkiezingen moeten deelnemen. In de gemeente spelen ideologische verschillen maar een beperkte rol; laat staan de micro-ideologische verschillen binnen de linkse stroming. Ik kan dan ook geen wezenlijke gemeentelijke beleidsterreinen bedenken waar PvdA, GroenLinks en SP elkaar niet zouden kunnen vinden.

Sociaal Epe!
De linkse kiezers in Epe zijn gebaat bij een sterke linkse invloed in de Raad en het bestuur. Dat belang is veel groter dan de afzonderlijke belangen van de linkse partijen; laat staan de belangen van de individuele politici. Het is echt te gek voor woorden dat in ons dwergparlement met drieëntwintig zetels na de volgende verkiezingen misschien wel drie lokale en drie linkse partijen vertegenwoordigd zijn.

Als links de belangen van de burgers voorop stelt zou ze met één lijst de volgende gemeenteraadsverkiezingen moeten ingaan. Door te kiezen voor de lijst Sociaal Epe! kan de linkse coalitie zich bovendien presenteren als dé gemeentebelangenpartij. Daarmee zou het ook mogelijk worden om de weggelopen stemmers bij de Nieuwe Lijn terug te halen in het eigen kamp. En dan wordt er ook nog echte winst gehaald.

Wil je de samenwerking realiseren dan zullen de linkse partijen zo snel mogelijk met elkaar moeten gaan praten. Ik realiseer me heel goed, dat het niet eenvoudig is. De PvdA zal als machts/collegepartij die boot natuurlijk sterk afhouden en de SP gaat in de verblindende roes van overwinning natuurlijk geheel voor het eigen belang. Alleen GroenLinks kan er echt belang bij hebben. De vraag is echter of de afwijzing van Nuijs bij de collegevorming geen oud zeer heeft opgeleverd.

De cijfers spreken echter boekdelen. Waarom kunnen de ChristenUnie en SGP wel met één lijst komen en zouden de linkse partijen het niet kunnen? Door niet samen te werken, lacht rechts in haar vuistje.

© Harold Makaske 3 december 2006 to allow skipping count when used in template (ie to not count on click in main page) V1.4 - Fixed ignoe same IP count problem V1.5 - Added views_log table and changed plugin performance to check for unique visits by IP address. [gRegor] - Added option to set the length of time before re-counting hits from the same IP address (default: 2 hours) [gRegor] V1.6 - Added plugin menu to display all view count, w/ counter reset function - Delete view counter and log for deleted item V1.7 - use sql_query V1.8 - Admin page enhancement to preserve order and sort info v1.9 - Added item title in admin menu v1.9.1 - ignore draft in admin menu */ class NP_Views extends NucleusPlugin { // Note: I never run this plugin on 2.0 and have no idea whether it // wil work on <2.5. A user can simply chnage it to return // '200' and see if it works (likely will). I will gladly // change the min version to 2.0 and add the sql_table fix // upon such report. 8) function getMinNucleusVersion() { return '250'; } function getName() { return 'Views'; } function getAuthor() { return 'Rodrigo Moraes | Edmond Hui (admun) | gRegor Morrill'; } function getURL() { return 'http://www.tipos.com.br'; } function getVersion() { return '1.9.1'; } function getDescription() { return 'This plugin counts how many times an entry has been displayed.'; } function getEventList() { return array('PostAddItem', 'QuickMenu', 'PostDeleteItem'); } function supportsFeature($what) { switch($what) { case 'SqlTablePrefix': return 1; default: return 0; } } function getTableList() { return array( sql_table('plugin_views'), sql_table('plugin_views_log') ); } function install() { sql_query('CREATE TABLE IF NOT EXISTS ' . sql_table('plugin_views') . ' (id int(11) NOT NULL default "0", views int(15) NOT NULL default "0")'); sql_query('CREATE TABLE IF NOT EXISTS ' . sql_table('plugin_views_log') . ' (id int(11) NOT NULL auto_increment, ip varchar(20) NOT NULL default "", itemid int(11) NOT NULL default "0", viewtime varchar(32) NOT NULL default "", PRIMARY KEY (id) )'); $this->createOption('silent','Silent mode - No #Display shown in Item (still need to add the skinVar, for use with MostViewed)','yesno','no'); $this->createOption('deletetables','Delete this plugin\'s table and data when uninstalling?','yesno','yes'); $this->createOption('timespan', 'Hours to wait before re-counting visitors', 'text', '2'); } function unInstall() { if ($this->getOption('deletetables') == 'yes') { sql_query('DROP TABLE ' . sql_table('plugin_views') ); sql_query('DROP TABLE ' . sql_table('plugin_views_log') ); } } function hasAdminArea() { return 1; } /** * Adds an entry to the 'Quick Menu' on the Nucleus administration pages. * The entry will link to the commentcontrol admin page */ function event_QuickMenu(&$data) { global $member; if (!($member->isLoggedIn() && $member->isAdmin())) return; array_push( $data['options'], array( 'title' => 'View Counts', 'url' => $this->getAdminURL(), 'tooltip' => 'See the view count of all items' ) ); } function doTemplateVar(&$item, $input) { $itemid = $item->itemid; $remote_ip = ServerVar('REMOTE_ADDR'); $timespan = $this->getOption('timespan') * 3600; $now = time(); // get the current Views count $query = "SELECT views FROM " . sql_table('plugin_views') . " WHERE id=" . $itemid; $result = sql_query($query); $row = mysql_fetch_object($result); $views = intval($row->views); // Only do count updates if "skipcount" is not set if ($input != 'skipcount') { // This takes care of previous items if (mysql_num_rows($result) == 0) { $query = "INSERT INTO " . sql_table('plugin_views') . " (id, views) VALUES('$itemid', '1')"; sql_query($query); //$views = 0; } // end if // Check the views_log table to see if this IP has a viewtime for this item $query = "SELECT viewtime FROM " . sql_table('plugin_views_log') . " WHERE ip='" . $remote_ip . "' AND itemid=" . $itemid; $result = sql_query($query); // No views from this IP in the past X hours, so update the Views count if (mysql_num_rows($result) == 0) { $views++; $this->_updateViewsCount($itemid, $views); $this->_addViewsLog($itemid, $remote_ip, $now); } // end if else { $viewtime = mysql_result($result, 0, 'viewtime'); // It's been longer than X hours, so recount if (($now - $timespan) > $viewtime) { $views++; $this->_updateViewsCount($itemid, $views); $this->_updateViewsLog($itemid, $remote_ip, $now); } } // end else } // end if // Clear logs that are more than X hours old $time = $now - $timespan; $query = "DELETE FROM " . sql_table('plugin_views_log') . " WHERE (viewtime < $time)"; sql_query($query); if ($this->getOption('silent') == 'no') { echo $views; } // end if } function event_PostAddItem($data) { $itemid = $data['itemid']; $query = "INSERT INTO " . sql_table('plugin_views') . " (id, views) VALUES('$itemid', '0')"; sql_query($query); } function event_PostDeleteItem($data) { $itemid = $data['itemid']; $query = "DELETE FROM " . sql_table('plugin_views') . " WHERE id=". $itemid; sql_query($query); $query = "DELETE FROM " . sql_table('plugin_views_log') . " WHERE itemid=". $itemid; sql_query($query); } function _updateViewsCount($itemid, $views) { // update the Views table with the new count $query = "UPDATE " . sql_table('plugin_views') . " SET views='$views' WHERE id=$itemid"; sql_query($query); } function _addViewsLog($itemid, $ip, $time) { // add IP and itemid to views_log table so it won't be recounted for X hours $query = "INSERT INTO " . sql_table('plugin_views_log') . " (ip, itemid, viewtime) VALUES ('$ip', '$itemid', '$time')"; sql_query($query); } function _updateViewsLog($itemid, $ip, $time) { // update the views_log viewtime so it won't be recounted for X hours $query = "UPDATE " . sql_table('plugin_views_log') . " SET viewtime='$time' WHERE ip='$ip'"; sql_query($query); } function doAction($actionType) { global $CONF, $member; if (!($member->isLoggedIn() && $member->isAdmin())) return 'Sorry. not allowed'; if ($actionType == 'resetview'){ $id = requestVar('id'); $query = "UPDATE " . sql_table('plugin_views') . " SET views=0 WHERE id=$id"; sql_query($query); } else if ($actionType == 'resetallview') { $query = "UPDATE " . sql_table('plugin_views') . " SET views=0"; sql_query($query); } $order = requestVar('order'); $sort = requestVar('sort'); header('Location: ' . $CONF['PluginURL'] . 'views/index.php?sort=' . $sort . '&order='.$order); } } ?> - Hoofdstuk: 10. Epe