|
|
Eper politieke webtest 2006
Nieuwe lijn beste Eper politieke site...
De site van Nieuwe Lijn ( nieuwelijn.nl) mag zich tooien met de titel “geo.nl beste politieke Internetsite gemeente Epe 2006”. Dat is de uitkomst van een kritisch onderzoek naar de websites van de politieke partijen die op 7 maart in de gemeente Epe meedoen aan de gemeenteraadsverkiezingen. De site van de VVD staat op de tweede plaats en het brons is voor de site van de PvdA. Samen met Maurice Schalker van geo.nl ontwikkelde ik een test, op basis van objectieve criteria, waarmee we de internetsites van de Eper partijen beoordeelden. Daarbij keken we niet naar de politieke inhoud van de sites, maar wel naar de hoeveelheid informatie, het gebruiksgemak en de snelheid waarmee de partijen vragen per e-mail afwikkelen.
In de huidige tijd is Internet niet meer weg te denken uit de politieke campagnes. Tijdens het lijsttrekkersforum in de Nieuwe Eper Sociëteit klaagde de woordvoerders over het gebrek aan aandacht in de traditionele media. Door middel van een Internetsite is het mogelijk om met geringe kosten en inspanningen je eigen boodschap bij de kiezers te presenteren. De campagne voor de gemeenteraadsverkiezingen bracht ons op het idee om de sites van de politieke partijen kritisch tegen het licht te houden.
Uit ons juryrapport blijkt dat de sites die op de eerste vijf plaatsen eindigden optisch dicht bij elkaar liggen. De verschillen zijn ontstaan door de snelheid van de e-mailafhandeling en de opbouw van de site. Op sommige sites wordt de informatie erg rommelig gepresenteerd en dat leidt uiteraard tot puntaftrek.
Een belangrijk onderdeel was de beantwoording van vragen per e-mail. Enkele politieke partijen reageerden helemaal niet op de e-mails die we verstuurden. Het juryrapport constateert dat berichten die via de sites naar het CDA en Gemeentebelangen Epe worden verzonden in een zwart gat lijken te verdwijnen. Met dergelijke nonchalance maakte de jury dan ook korte metten en gaf puntenaftrek. De snelste antwoorden kwamen in twee van de drie gevallen van de Liberale Burger Partij. Ook de VVD, Nieuwe Lijn en GroenLinks scoorden goed op dit onderdeel.
Teleurgesteld constateerden we dat er weinig ruimte is voor discussie. De Eper politieke partijen bieden de kiezers geen mogelijkheden om online met de politici in debat te gaan. Dat is in tijden van de verkiezingen een echt gemiste kans. Het is met de huidige techniek zeer eenvoudig om een forum of chatbox aan de site toe te voegen. Dan biedt je de kiezers de mogelijkheid om in discussie te gaan. We bekijken nog of we bij geo.nl een online politiek café gaan starten. Voorwaarde is wel dat alle partijen daar actief aan meedoen.
Gemeentebelangen Epe en SGP-ChristenUnie waren de hekkensluiters van de test. Ze besteden veel te weinig aandacht tijd aan hun internetsites. De site van SGP-ChristenUnie is half gevuld en Gemeentebelangen Epe heeft al bijna een jaar geen nieuwsberichten meer toegevoegd. Beide sites bieden niet meer dan het verkiezingsprogramma en een kandidatenlijst. Deze partijen kunnen er dan beter voor kiezen om (delen van) de site tijdelijk uit de lucht te halen.
Wij willen deze test ieder jaar opnieuw uitvoeren. Dan kunnen we zien of de partijen hun site ook bijhouden als er geen campagne wordt gevoerd. Dat kan wel eens tot grotere verschillen leiden.
KLIK HIER om het totale testrapport (Word-bestand) met de reacties enkele politieke partijen te downloaden.
© Harold Makaske 28 februari 2006
/*
History:
v1.1
- add getTableList
v1.2
- use sql_table
- Added silent mode (configure via option) to support NP_MostViews
- Added Cleanup upon uninstall option
- Added "just number" minimalist mode
- Added supportsFeature
V1.2a
- Added min version support
V1.3
- Replaced doSkinVar with DoTemplateVar
V1.3a
- Added repeat views ignore function aka repeat F5s from those bored and lonely one
V1.3b
- Fixed counting off by 1 bug
V1.3c
- Added <%Views(skipCount)%> 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
|