Die vervelende weblogs toch

Nu heeft Van Nuijs weer problemen met een blogger...

Webloggen en wethouderen gaat blijkbaar niet samen in Epe. Was het eerst wethouder René de Vries die te keer ging over mijn webloggerij, nu doet wethouder Joop van Nuijs het verhaal over de bouw van de Formido bij 't Hemeltjen op het weblog van zijn eigen fractievoorzitter Henk van Kessel af als ‘een persoonlijke mening’.

Je moet het in de Eper politiek blijkbaar altijd eens zijn met de regenten. Als het aan bestuurders ligt, zouden zelfs eigen partijgenoten klapvee moeten zijn. Dat ligt bij de PvdA in Epe iets genuanceerder. Fractievoorzitter Henk van Kessel heeft gelukkig een eigen mening en die is te lezen op zijn weblog. Het is te gek voor woorden dat een wethouder deze mening afdoet als ‘een persoonlijke mening’. Meneer de wethouder: ook persoonlijke meningen tellen gelukkig in de politiek. Tegen de tijd dat persoonlijke meningen er in politiek niet meer toe doen, wordt het tijd om eens stevig te gaan discussiëren over de democratie. En bovendien: in ons staatsbestel is de gemeenteraad het hoogste orgaan. Dus als de gemeenteraad het college alsnog verzoekt ´t Hemeltjen te vrijwaren van een metalen doos annex bouwmarkt dan heeft het college dat uit te voeren. Anders stappen ze maar op. Dat geldt ook voor wethouder Joop van Nuijs!

Ondertussen gaat de voorbereiding van de Formido bouw gewoon door. B en W schermen met het argument dat zelfs Monumentenzorg geen problemen heeft met de bouw. Dat lijkt indrukwekkend, maar het zegt mij bijzonder weinig. Die ambtenaren zijn helemaal niet betrokken bij het wel en wee van de gemeente en hoeven niet tegen die bouwmarkt aan te kijken. Ik ben eigenlijk wel benieuwd hoe zij tot zo´n mening komen. Kijken ze niet veel meer naar de technische gevolgen van het bouwen dan naar de esthetische waarde en leefbaarheid? En hadden zij ook niet hun zorg uitgesproken over de te verwachten verkeersdrukte?

Maar het begint allemaal met het doorzetten van de bouwaanvraag door de eigenaar van de Formido. Die ondernemer in bouwmaterialen moet de ogen uit zijn kop schamen om zo tegen de publieke opinie en het maatschappelijk cultureel belang van een dorp in met het blinde eigenbelang voorop zijn eigen zin door te drammen. Eerst mocht er niet worden verhuisd naar het industrieterrein. Nu mag het wel, maar wil de eigenaar van de Formido niet verhuizen omdat “een betere locatie dan aan de Sint Antonieweg” niet is te vinden, lees ik in De Stentor. Als je zo´n gipsplaat voor je kop hebt, verdien je het niet om de Epenaren als klant te hebben. Zelf zal ik geen stap in de nieuwe Formido zetten. Ik ga niet jaren schrijven dat het bizar is om op die locatie te bouwen om er vervolgens wel te gaan winkelen. Dat zou bijzonder hypocriet zijn. Het is jammer voor de Formido, want ik kom er toch zeer regelmatig. Ik kan mij voorstellen dat meer Epenaren dit voorbeeld volgen. Gelukkig is er straks een alternatief: de Gamma… op het industrieterrein!

Maar zover is het nog niet. Ook voor politici geldt: alleen mensen zonder mening kunnen niet van mening veranderen. Natuurlijk moet je als overheid betrouwbaar zijn, maar dat wil niet zeggen dat je ook ruiterlijk kunt toegeven dat er in het verleden verkeerde afwegingen zijn gemaakt? Het belang van individuele ondernemers gaat toch niet zover dat een bepalend dorpsgezicht wordt aangetast? Zolang er niet wordt gebouwd kan de politiek dit nog tegenhouden. We leven toch niet in een gemeente waar ondernemers die lak hebben aan de inwoners en omgeving waar ze opereren het beleid bepalen? Dan bevindt de politiek zich in troebel water en stevent ze recht op de Koersk af.

Ik hoop dat Van Kessel zijn poot stijf houdt en dat hij het Politbureau en de apparatsjiks in de Oost-Duitse brandweerkazerne weet te overtuigen. Mochten Van Nuijs c.s. volharden op hun dwaalpad dan kunnen de burgers met voorkeurstemmen in 2010 laten blijken in hoeverre persoonlijke meningen in de politiek worden gewaardeerd. Helaas is er dan wel weer een mooi stukje Epe naar de knoppen. Laten we dan de parkeerplaats bij ´t Hemeltjen vernoemen naar alle wethouders die de bouw mogelijk hebben gemaakt. Dan krijgen de burgers van Epe in de toekomst direct antwoord als ze de vraag stellen: wie hebben deze dorpsverzieking in vredesnaam mogelijk gemaakt?

© Harold Makaske 3 januari 2007 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