En we hebben een beller!!!

Over het koninklijk kwaliteitskeur...

Daar ging de telefoon… Meneer Tetteroo van Tetteroo Productions BV belde mij. Voor wie het even heeft gemist – of ondertussen al heeft verdrongen – meneer Tetteroo is de maker van die geweldige mooie films over de gemeenten in Nederland. In de serie Holland in Beeld heeft dit bedrijf ook een film gemaakt over Epe (had ik al gezegd hoe mooi die producties zijn?). De trouwe beeldbuiskijkers weten dat ik daar ik onlangs een paar licht kritische opmerkingen over maakte. En daar wilde meneer Tetteroo de eigenaar van Tetteroo Productions BV even met mij over van gedachte wisselen.

Ik zie het namelijk helemaal verkeerd. De kwaliteit van zijn films over de gemeenten in Holland zijn hoogwaardig en fantastisch (alsof Epe in Holland ligt of daar ooit heeft gelegen… Dit was het land van de Hertog van Gelre meneer Tetteroo, maar ja… de kaarten bij het VVV over de wandel- en fietsroutes in de regio hebben u wellicht op het verkeerde been gezet). De films zijn zooooooo hoogwaardig en fantastisch dat hij onlangs zo’n schitterende cd aan de koningin heeft mogen uitreiken. “Als je dat mag doen, dan geeft dat toch wel aan dat het een kwalitatief hoogstaand product is”, zei de trotse eigenaar van Tetteroo Productions BV.

Arme vorstin… na al die slecht gebakken krentenbroden, eigen gemaakte koeken, demonstraties kantklossen en andere oud-Nederlandse freubelactiviteiten, wil je thuis toch wel eens lekker ontspannen voor de buis gaan hangen. Maar nee… dan moet je voor je goed fatsoen toch nog even achter de pc om naar dat cd-tje te kijken dat door die aardige meneer Tetteroo van Tetteroo Productions BV is overhandigd. Ik weet nu wel waarom ik al enkele weken niets meer heb vernomen over onze vorstin. Ze ligt waarschijnlijk nu nog met de slappe lach op de bank (of schaamt zich kapot dat ze koningin is van zoveel ellende). Hoe dan ook. We hebben er blijkbaar een nieuw keurmerk bij. Bied de koningin iets aan en vervolgens mag je daarvan zeggen dat het hoogstaande kwaliteit is (misschien moet meneer Tetteroo de Consumentenbond even informeren over deze vondst)!

Ondertussen was mij niet duidelijk wat mijn beller met het telefoongesprek wilde. Ik vraag dus wat hij wil met dit telefoongesprek. “Nou ik wil helemaal niets”, was zijn antwoord. Maar ik zou wel heel goed moeten weten dat zijn vertegenwoordiger bij de gemeente is geweest en dat ze daar niet wilden meewerken. En alle informatie in het filmpje heeft de tekstschrijver – al 18 jaar in dienst en een echte Neerlandicus, het is maar dat we het weten – gehaald uit de gemeentegids, van de gemeentesite en van het VVV. Op mijn vraag wie hem heeft verteld of waar het staat dat dierenpark Wissel bij Emst hoort, bleef het antwoord schuldig. Leuker was de reactie op mijn constatering dat er in Epe dan wel feitelijk gratis geparkeerd mag worden, maar dat je dan geen beelden moet tonen van auto’s op plaatsen met een parkeerverbod. Tetteroo: of ik ooit wel eens een film had gezien waar de beelden en de voice over – het vertelde verhaal – exact bij elkaar passen? Ik antwoordde – naïef als ik ben – “ja hoor”. Dat was natuurlijk helemaal fout. “Nooit! Dat kan niet! Die bestaat niet”, was het antwoord van de maker van kwaliteitsfilms.

Wederom vroeg ik naar het doel van het gesprek. En weer wees hij naar de gemeente. De afdeling communicatie wilde niet meewerken om het script te controleren. Daar hebben ze ons verzoek vier maanden laten liggen met de mededeling dat ze wel contact met hem zouden opnemen als ze wilden samenwerken. En dat is nooit gebeurd. Omdat mij deze redenering de wereld op zijn kop lijkt, stelde ik hem maar de vraag: “Maar is dat dan een argument om als bedrijf een brak product af te leveren?” Dat zou toch echt te gek zijn. Ik ga in het vervolg bij alles wat ik doe eerst vragen of de gemeente wil helpen. Als de gemeente dat afwijst en ik lever brakke producten af, dan wijs ik vervolgens naar de gemeente. Welkom in de werkelijkheid van Tetteroo Productions BV!

Maar goed, geen slecht woord meer over het filmpje over Epe. Tjonge jonge wat is dat toch prachtig! Wat is het een hoogwaardige beeldkwaliteit. Je ziet werkelijk helemaal geen compressie. En wat werkt dat filmpje toch perfect als je niet Microsoft Explorer gebruikt om te internetten maar Firefox als standaardbrowser op je pc hebt staan. Eigenlijk is die film zo mooi dat iedereen hem dagelijks wel een paar keer moet bekijken. Het is wellicht het beste recept tegen alle kwalen en vooral je depressies, die verdwijnen als sneeuw voor de zon.

Zo meneer Tetteroo van Tetteroo Productions BV… ben ik nu positief of ben ik nu positief? Meneer Tetteroo vindt namelijk dat ik heel negatief ben. Laat ik dan voor de verandering maar eens positief eindigen. Beste meneer Tetteroo... laat ik het op dat punt nou toch volledig met u eens zijn!?!


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).

Eerder verhaal over Tetteroo en de gemeentefilm:
  • Een film over onze gemeente

    Vervolg
  • 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 7 december 2005 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