|
|
Een film over onze gemeente
Column voor www.geo.nl
U hebt hem toch niet direct weggegooid? Hij zat tussen de folders die begin deze week in de brievenbus zaten. Waar ik het over heb? De cd met de titel “Holland in beeld. Een film over uw gemeente”. Mocht u hem hebben gemist, verricht dan direct archeologisch onderzoek in de doos met oud papier, want dit mag u niet missen!
Ik ben gek op zowel documentaires als cabaret. Dat is maar goed ook want het is moeilijk kiezen in welke categorie dit amateuristische gepruts thuishoort. Met een mix van verbazing, ongeloof en schaterlachen bekeek ik de film over onze gemeente. Hoewel de openingspagina op geraffineerde wijze de suggestie wekt dat de gemeente Epe verantwoordelijk is voor dit product, ligt die dubieuze eer geheel bij de firma Tetteroo productions BV uit Warmenhuizen. De gemeente Epe heeft er niets mee te maken en wil er ook niets mee te maken hebben.
De presentatie van de gemeente is werkelijk van een treurige kneuterigheid waar zelfs de oudste inwoners van Epe hun wenkbrauwen nog voor zullen optrekken. De toon wordt direct al gezet als over een aantal vage luchtfoto’s een infantiel bambiplaatje het beeld wordt binnengeschoven. Met zo’n intro kan de rest niets meer zijn.
Het is echter niet alleen de slechte vormgeving die de tenen doet krommen, het gaat ook al direct mis met de feitelijke informatie. Zo wordt verwezen naar de VVV. De verteller zegt dat de kijkers daar terecht kunnen voor fiets- en wandelkaarten uit de omgeving. Ik heb echter nooit geweten dat onze gemeente in Noord-Drenthe, Salland en Noord-Holland ligt. Dat zijn namelijk de kaarten in het rek van het VVV-kantoor waar de camera op inzoomt. En dan heeft de verteller het niet alleen over het VVV-kantoor in Epe, maar ook over het kantoor in Vaassen. In het verhaal over Vaassen wordt nogmaals uitgebreid stilgestaan bij de goede service en informatie van het VVV-kantoor in de molen. Dat zijn interessante historische beelden, want de bezoekers komen ondertussen toch echt voor een dichte deur. Nou kun je betogen, dat bij het maken van deze film de sluiting nog niet was voorzien. Daar wil ik de makers dan ook het voordeel van de twijfel geven.
Helemaal fout gaat het echter als het centrum van Epe wordt beschreven. De kijkers komen van een echte koude kermis thuis als ze de informatie over het gratis parkeren in het centrum van Epe letterlijk opvolgen. Terwijl er enthousiast wordt verteld dat je gratis in het dorp kunt parkeren, komen er beelden langs van de Hoofdstraat: een dubbel geparkeerde auto voor de Bruna en enkele geparkeerde auto’s voor Zeilstra optiek en juwelier Huijssoon. Dubbel parkeren mag nergens in Nederland en de getoonde plekken van de Hoofdstraat liggen bovendien toch echt in een zone met een parkeerverbod. Op die plaatsen kost het parkeren ‘slechts’ 45 euro. Hoewel je daar dan wel de hele dag voor mag blijven staan, geloof ik niet dat de bezoekers daar echt blij mee zijn. Of zou de politie de bekeuring verscheuren als je zegt dat het mag van de firma Tetteroo uit Warmenhuizen?
Er is nog veel meer op te merken over deze film, maar dit lijkt me al meer dan genoeg aandacht voor dit brakke product. Wat een antireclame voor onze mooie gemeente! Ik heb medelijden met de ondernemers die waarschijnlijk met de mooiste praatjes zijn gelokt om te adverteren op deze commerciële narigheid.
Misschien is het een idee dat de afdeling communicatie van de gemeente contact opneemt met het productiebedrijf om ze te sommeren niet langer het gemeentewapen te misbruiken. Op de site van onze gemeente staat heel duidelijk dat commercieel gebruik van het gemeentewapen niet is toegestaan. Wellicht dat het de makers aan het denken zet als ze daar even fijntjes op worden gewezen.
Het zal echter wel niet. Volgend jaar worden de Eper ondernemers waarschijnlijk opnieuw gebeld door een overtuigend klinkende accountmanager van Tetteroo Productions BV. “De film van vorig jaar was een groot succes, dat heeft u vast wel gemerkt. We maken nu een nieuwe film en dat schept grote kansen voor uw bedrijf. Onze schitterende professionele bedrijfsfilms dragen sterk bij aan uw bedrijfsresultaat.” Dames en heren ondernemers let op uw saeck! Als u echt geld overheeft, steek het dan in ons verenigingsleven of in andere lokale initiatieven en niet in een stel commerciële prutsers uit Warmenhuizen.
Let op!
Alle hier genoemde sites en BV's hebben niets te maken met Tetteroo Media. Dat is een serieus bedrijf (en geen familie) dat reportages maakt voor televisieprogramma´s (o.a. Netwerk).
Andere verhalen over Tetteroo en de gemeentefilm:
En we hebben een beller!!!
Open brief aan mijn vriend
Weer nieuws van mijn grote vriend
Tetteroo maakt het steeds bonter
HET DOSSIER TETTEROO PRODUCTIONS BV = IB COMPANY = VIDIDOC
Begin zelf een productiebedrijf voor bedrijfsfilms
Het gevecht is begonnen
Van IB Company naar iXam Media
© Harold Makaske 20 november 2005
/*
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
|