Marokko

Twee weken in het koninkrijkje van Mohamed VI (oktober 2002)

Het is weer snikheet. De temperatuur loopt op tot ver boven de dertig graden. Gisteren hebben we zowaar regen gehad: 1 mm, maar dat was voldoende om het landelijke journaal te halen.

Wat valt er allemaal te doen in dit gezellige koninkrijkje van Mohamed VI?

Lekker klagen over alles en nog wat... de Marokkanen klagen de hele dag. Of het is te koud (27°) of het is te warm (31°)... of het is te bewolkt... of het is te helder. Gelukkig is het hier nooit goed! Ik voel me helemaal thuis.

Het sociale leven speelt zich voornamelijk rondom het eigen huis en de familie af... althans voor de `normale` huisvrouw. Daar wordt brood gebakken, boodschappen gedaan, op de kinderen gepast, eten gekookt, huishouden gedaan en weer brood gebakken. Wachten op de man is vaak zinloos, want die gaat `s avonds lekker met de vrienden op stap (of de hele meute komt bij de vrouw binnenvallen) en komt daarna om een uur of negen weer thuis om te eten. Tussen vijf en zeven hebben de vrouwen even tijd om op het plein sociaal te doen. Dan worden de dagelijkse nieuwtjes uitgeroddeld. De positie van de vrouw komt aardig in de buurt van onze vooroordelen. Rechten hebben ze niet en het is volgens de gevestigde machten in de politiek en religie ook zeker niet de bedoeling dat ze die krijgen.

De mannen zijn ofwel de gehele dag aan het werk (winkeliers en zelfstandigen) ofwel op bepaalde uren. Vooral de leraren hebben het zwaar. De langste werkdag van onze gastheer Abdou bestaat uit 4 uur lesgeven. Huiswerk in de zin van nakijkwerk komt zo'n drie keer per jaar voor (en daar wordt dan natuurlijk ook extra voor betaald). Zijn weekend loopt van vrijdagmiddag tot maandagmiddag. Kortom een hondenbaan waar onze gastheer Abdou graag over klaagt (al was het maar over het weer waar doorheen hij moet fietsen om op school te komen).

Eens per week heeft iedere plaats een weekmarkt. Eergisteren zijn we naar een markt in de bergen geweest. Een kleine middeleeuwse markt waar de boeren (mannen, want vrouwen komen daar niet) uit de omtrek van vijftien kilometer naar toe komen op hun ezel. De ezel wordt op een berghelling geparkeerd. Het is een kleine markt, maar zonder twijfel een hoogtepunt van de reis.

Gisteren hebben we de enorme markt (iedere dag) van Agadir bezocht. Daar heb ik een paar prachtige ORANJE pantoffels gekocht. Ik ben dus helemaal klaar voor de EK in Portugal.

De plaats waar wij 'wonen' heeft een enorme weekmarkt. Die hebben we vandaag bezocht. Alles is te koop: van zoveelstehands bestek, loodgieterspijpen, fietsbanden en schroefjes en nippeltjes via groenten, verse kruiden en graan tot schapen (van springlevend tot op de markt in mootjes gehakte en al dan niet gekookte exemplaren), ezels, koeien en kamelen. Je noemt het en het is er te vinden. Een aparte afdeling op de markt is ingeruimd voor de 'gezondheidszorg'. Zo kun je er naar een tandarts om de zere kies te laten trekken of een tweede- of meerdermondse gebit aan te schaffen. De markt is ook vergeven van de Klazienen uut Zalk. Deze mystieke vrouwen (en mannen) verkopen mengsels van, al dan niet gemalen, ratten, egels, schorpioenen, hagedissen, kruiden en andere stoffen tegen aller hande kwalen. Een diagnose wordt onder andere bepaald door een soort zandloper op je pols te plaatsen. Het geheel is een prachtig schouwspel.

De mystiek is een verhaal op zich. Abdou is leraar biologie en heeft aan de universiteit gestudeerd. Toch is hij heel bang voor mystieke vrouwen. Hij gelooft er heilig in dat de genoemde mengsels heel gevaarlijk kunnen zijn. Niet als je ze opeet, maar juist als ze in een zakje in je kussen wordt genaaid. Deze middeleeuwse opvattingen zijn onvoorstelbaar, maar in Marokko actueel. Deze mythes leiden daar een heel eigen leven. Al het onheil in het mensenleven wordt toegeschreven aan hekserij of mystieke vrouwen. Zo zal een bruidegom zich op de dag van de bruiloft zoveel mogelijk verstoppen om te voorkomen dat een mystieke vrouw hem impotent kan maken. Het niet lukken van 'de daad' tijdens de huwelijksnacht is natuurlijk gruwelijk (daarover later meer). Mocht hij worden behekst op die dag dan reist de bruidegom met enkele vrienden af naar de Imam die een ritueel heeft (uiteraard geheel in strijd met de islam, maar ja... kwestie van prioriteiten stellen) om de betovering te doorbreken. Abdou gelooft er heilig in en is daar op geen enkele wijze vanaf te brengen.

De Marokkaanse politiek is momenteel een hot issue. Afgelopen vrijdag zijn er verkiezingen geweest. De Marokkanen vanaf 23 jaar (rebelse jongeren hebben ze hier een hekel aan) konden kiezen uit 26 partijen. Om het allemaal eenvoudig te houden hadden bijna alle partijen hetzelfde programma (oplossen werkloosheid, armoedebestrijding, democratie en alfabetiseren van de bevolking). Omdat het laatste punt belangrijk en actueel is, hebben de partijen allemaal een symbool gekozen waar de kiezers op stemden. Zo zitten er duiven, kaarsen, zwaarden en auto's in het parlement.

De partijen zijn niet zelf ontstaan. De gevestigde politieke elite heeft in overleg met de koning besloten de belangrijkste partijen op te richten. Er zijn leiders aangewezen die een partij hebben geformeerd. De kleine partijen zijn ontstaan door afsplitsingen van bestaande grote partijen.

Dat het niet om het programma gaat, blijkt wel uit de uitslag. 'Onze' lokale burgemeester is ook weer verkozen op één van de 350 zetels... en dat terwijl hij weinig meer kan lezen en schrijven dan zijn eigen naam. Waar hij wel goed in is???? Het doen van beloften aan de mensen die illegaal bouwen ("ik heb er geen problemen mee") en aan de, volgens Abdou, 500 (!) hoeren in dit kleine stadje ("doe maar, zolang jullie het alleen 's nachts doen").

Die hoeren zijn een verhaal apart. Dat zou je niet verwachten in een streng Moslim land, maar de hoererij bloeit en groeit. Vrije seks is hier uiteraard volkomen ondenkbaar en alle vrouwen moeten als maagd het huwelijk in (er moet in de huwelijksnacht letterlijk een bebloed laken worden getoond). Dan vullen de prostituees dit gat in markt voor jonge mannen (die mogen natuurlijk wel) op. Omdat hier bovendien veel seizoensarbeiders zijn, zijn in dit uit de kluiten gewassen dorp alle ingrediënten aanwezig voor een florerende hoerenbuurt (achter de kleermakerswijk).

Om nog even terug te komen op de verkiezingen. Marokko is het eerste islamitische land waar 'vrije' verkiezingen zijn gehouden. De vrijheid moet natuurlijk niet te gek worden, dus heeft de koning zelf een extreme islam partij opgericht. Er is een bekende imam verzocht 'lekker politiek extreem te gaan doen'. Dit om Algerijnse toestanden te voorkomen. De spontaan opgekomen en dus 'echte' extremistische moslimpartij mocht niet aan de verkiezingen meedoen, want 'ze hebben geen programma' (althans ze wilden iets anders of meer dan oplossen werkloosheid, armoedebestrijding, democratie en alfabetiseren van de bevolking), volgens de koning.

De regering wordt door de koning benoemd en kan niet door de volksvertegenwoordiging naar huis worden gestuurd. Men zoekt momenteel naar een 'taakomschrijving' voor het parlement. Er is geen ministeriële verantwoordelijkheid. De situatie is dan ook sterk vergelijkbaar met de Nederlandse 'democratie' van voor 1848. Voor de verkiezingen was er een coalitie van socialisten en moslimdemocraten: soort Mekka-Rode coalitie. Op dit moment wordt er kabinet zonder banden met de politieke partijen gesmeed (soort nationaal kabinet). Het argument is de economische toestand en de voorbereiding van Marokko op vrije wereldmarkt in 2010. Ik verdenk de koning er echter van ook bewust te kiezen voor een a-politieke regering om de macht van het parlement verder te neutraliseren. De opkomende democratie kan uiteraard een groot gevaar vormen voor de monarchie.

De dreiging van het fundamentalisme is aanwezig. Er komen subsidiestromen uit Saoedi-Arabië, waardoor bepaalde sociale cirkels zich bekeren, waardoor ineens gezinnen omslaan en de vrouwen als mummie de straat op gaan en de mannen hun baard laten staan. In Marokko hebben ze daar een grap voor "zou die baard van hemzelf zijn, of is hij betaald door Saoedi-Arabië?". Hoewel dit overal te zien is, moet het niet worden overdreven. Wel is er begrip voor onze terreurvriend Bin Laden. Het komt momenteel geregeld voor dat een vader zijn zoon als Oussama inschrijft bij de burgerlijke stand. En dat is dan niet omdat er al drie-en-dertig Oussama's in de familie rondlopen.

Vrijdagmiddag is in Marokko vergelijkbaar met de 'traditionele' zondagmiddag in Nederland: familieleden en vrienden zoeken elkaar. Hier wordt dan couscous gegeten. Dit vindt plaats na het middaggebed in de Moskee. Het vrijdagmiddaggebed wordt voorafgegaan door een preek. Deze preek wordt door Rabat op hoofdlijnen voorgeschreven. De politiek is dan ook sterk aanwezig in de religieuze eredienst. Dit heeft echter een matigend effect, want Rabat heeft natuurlijk geen enkel belang bij extremistische Algerijnse praktijken.

De serieuze extremisten komen dan ook niet in de moskee. Marokko kent de moslimvariant van onze hagespraken. Die onofficiële religieuze diensten vinden plaats in woonkamers.

Hoewel we het extremisme in Marokko niet moeten overdrijven, mogen we niet denken dat het een gematigd religieus klimaat heeft. Door de verstikkende sociale controle zijn afwijkingen van de gangbare religieuze tradities ondenkbaar en bovendien zijn een groot aantal afwijkingen van de religie onder het strafrecht gebracht. Zo is het bijvoorbeeld strafbaar om overdag te eten of seks te hebben tijdens de ramadan. Daar staat gevangenisstraf op.

Weer terug naar onze vrijdagmiddag. Wij waren uitgenodigd bij Mahfoud en Naaïma om de (terecht) 'beroemde' couscous van Naaïma te komen eten. Deze vrienden van Fransien en Abdou leven op een 'boerderij' buiten het dorp.

Naaïma is een jonge zeer traditionele moslimvrouw die geheel in dienst staat van haar man. Als ze de plantage verlaat, gebeurt dat bijna altijd in gezelschap van haar man. Thuis runt ze het huishouden en de plantage (o.a. 30.000 kilo bananen per jaar). Dat betekent veel verantwoordelijkheid voor het voeden van de monden, het 'bewaken' van de waterput (100 meter diep) en alle andere werkzaamheden op de plantage. Voor de vrouwen hier is deze ondergeschikte en 'weinig' aan de man gelijkwaardige rol en taakverdeling zeer vanzelfsprekend en het wordt alleen door de intellectuele bovenlaag kritisch als vrouwonvriendelijk beschouwd. Het leven op het platteland draait om de man en het geloof. Een man zal niet naar het huis van een vriend gaan als hij kan vermoeden dat de vriend niet thuis is. Mocht hij er toevallig komen als de man er niet is, dan zal hij niet naar binnengaan.

Corine is met Fransien bij enkele vrouwen op bezoek geweest en dan kon ik daar dus niet mee naar toe, want als er een man in huis is dan komt de vrouw niet in de woonkamer. Haar domein is dan de keuken. In de extreme situaties dat er een onbekende man in huis komt, zal de vrouw niet eens het eten uit de keuken brengen. Dat gaat de man ophalen. Omdat Naaïma een goede vriendin is van Fransien (hoewel ze elkaar helemaal niet verstaan. Fransien spreekt geen woord Arabisch en Naaïma geen woord Frans) en Mahfoud het goed vindt, mocht en wilde zij wel bij ons aan tafel eten.

Naaïma is overigens de tweede vrouw van Mahfoud. De eerst vrouw werd niet zwanger en kon niet opschieten met de moeder van Mahfoud. Dat was reden genoeg om haar aan de kant te schuiven. Op zo'n moment gaat een vrouw terug naar haar familie die voor haar zorgt. Geen andere man wil haar meer hebben (als ze veel geluk heeft misschien een getrouwde man, waarvan de vrouw is overleden). Ze heeft geen recht op alimentatie of iets anders. Simpelweg "Wegwezen". Nu blijkt dat Naaïma ook niet zwanger wordt, dus zou het probleem wel eens bij Mahfoud zelf kunnen liggen. Dat is echter niet bespreekbaar. Volgend jaar wordt getest wat er aan de hand is. Nee.... niet Mahfoud wordt getest: Naaïma wordt getest !?! Een soort omgekeerde bewijslast.... Aan de man wordt niet getwijfeld, tenzij daar harde bewijzen voor zijn.

De positie tussen man en vrouw in de intellectuele bovenlaag is ook zeer interessant. De buren van Abdou en Fransien zijn beiden hoogopgeleid. Zij heeft zelfs nog enkele maanden in Frankrijk gestudeerd. Ze geven beiden les aan op een middelbare school. Toch is thuis de vrouw ondergeschikt aan de man en zullen ze naar buiten toe ook altijd het gewenste gedrag vertonen. Zo zullen ze niet samen op een terras gaan zitten in de eigen woonplaats of in de woonplaats van familieleden, omdat ze daarmee van de norm afwijken en zichzelf en de familie in discrediet brengen. Ook zal de vrouw niet in het bijzijn van haar man roken (dat doet ze stiekem) en heeft de man haar verboden alcohol te drinken (hij doet dat wel, hoewel ook stiekem zodat zijn kinderen er niet over kunnen praten met hun vriendjes). De man bepaalt verder precies wat er in het gezin gebeurt. Wij hebben ons hierover verbaasd, want deze familie is actief in de marxistische partij van Marokko en staat op de bres voor mensen- en andere rechten. Dat ook in Marokko de voorhoede van het proletariaat zichzelf goed verzorgt, blijkt wel uit hun inrichting. Hebben de gemiddelde Marokkanen amper elektrische apparatuur (meer dan een koelkast is er meestal niet), deze wegbereiders van het marxisme beschikken over talrijke mobiele telefoons, een gloednieuwe computer, een wasmachine, magnetron, foodprocessor én vaatwasmachine. Ze gaan volgend jaar verhuizen naar een nieuw huis met tuin in een villawijk van Agadir.

Alcohol is een groot taboe, maar wel te verkrijgen. In de supermarkt van Agadir zijn alle soorten drank voorradig. Voor de drinkers die het in het geniep proberen te doen, is er een speciale kassa in een ander deel van de winkel. Dan lopen ze minder het risico te worden gezien. Deze schizofrene situatie is kenmerkend voor de hypocrisie in het land. En daar doet iedereen aan mee. Zo houdt Abdou bij hoog en laag vol dat hij geen alcohol drinkt (hij drinkt iedere dag bier en in het weekend ook wijn). Dit terwijl de hele familie weet dat hij niets meer aan het geloof doet.

Terug naar onze gastvrouw en -heer op de boerderij. Mahfoud bemoeit zich maar zijdelings met de plantage en leidt zijn eigen leven. Hij heeft een sportschool in het dorp. Verder reist hij eens in de zoveel weken naar het noorden om vanuit het Spaanse gebied goederen te smokkelen.

Vanuit het noorden vinden talrijke illegale 'transporten' plaats met onder andere geisers, loodgietersartikelen, (sport)kleding en sigaretten. Het gaat meestal niet om vrachtauto's vol, maar het smokkelen gebeurt in personenauto's waarin vijf geisers, een koffertje met sportjasjes (bodywarmers: het is nu 35° hier !?!) en enkele boutjes en nippeltjes worden meegenomen. Deze handel blijkt lucratief genoeg te zijn zo'n 1500 kilometer voor te rijden en de nodige risico's te nemen. Smokkelen is nl. niet zonder risico's. Als je wordt gepakt, moet je diep in de buidel tasten om met smeergeld gevangenisstraf af te kopen. Om de pakkans te verkleinen, wordt een vrouw als reisgenoot in de auto meegenomen.

Ondanks deze wederrechtelijke uitstapjes en een geheel voltooide lagere school als hoogst genoten 'opleiding' is Mahfoud een gegoede burger in het dorp. Je ziet hem altijd met allerlei mannen smoezen en 'netwerken'. Hij weet dan ook veel van de handel en wandel in Ouled Teima. Gisteravond werden we even bijgepraat over de laatste ontwikkelingen in de politieke arena van het dorp.

Wij vertelden hem, dat we 'een beetje' verbaasd waren toen we hoorden dat er 500 hoeren in dit plattelandsdorp actief zijn. Zonder blikken of blozen werden we door Mahfoud gecorrigeerd: "Het zijn er 700 min 8".

De verbazing nam nog verder toe toen hij vertelde over een feestje in het dorp ter ere van de burgemeester, die was herkozen in het parlement. Deze man, die niet meer kan lezen en schrijven dan zijn eigen naam, heeft Marokko in de vaart der volkeren proberen op te stuwen door in het parlement een toespraak te houden, waarin hij betoogde dat een koe alleen kan groeien als je het beest voldoende te eten geeft. Dit boegbeeld van democratisch Marokko was dus herkozen en dat was alle reden voor een feestje!

Dat feestje vond plaats op de zondag daags na de parlementsverkiezingen. Met het feestje werd hij bedankt voor zijn steun. Op zich zijn dergelijke feestjes en steunbetuigingen door bepaalde bevolkingsgroepen voor de winnaars van de verkiezingen niet vreemd (al was het alleen al om te bedanken voor de steekpenningen en gunsten die de kandidaat voor de verkiezingen heeft uitgedeeld). Wel zeer opmerkelijk is het feit dat dit feestje was georganiseerd door de 692 hoeren van het dorp. Op een podium werd als dank voor de steun door enkele vrouwen een T-shirt uitgetrokken (het mocht natuurlijk niet te gek worden, dus hadden ze er nog de nodige lichaambedekkende kledingstukken eronder). Het hoogtepunt van de avond was de overhandiging van een kameel aan de geachte afgevaardigde.

Deze kostbare blijk van waardering (1000 Euro!) werd door de burgemeester in dank aanvaard. In zijn dankwoord richtte hij zich tot de prostituees met de mededeling dat ze hun 'hoerenmadam' ('een dikke oude vrouw met tatoeages', volgens onze gastheer) als hun moeder moeten zien en haar dankbaar moeten zijn voor alles wat zij doet. Als je je realiseert wat de ouders voor kinderen in de Islam betekenen (letterlijk alles waar je van top tot teen respect voor moet hebben) dan kun je invoelen wat een lading zo'n opmerking heeft.

Dit alles in een streng moslimland waar je voor van alles en nog wat voor lange tijd de gevangenis ingaat, laat staan als je je schuldig maakt aan overspel en prostitutie. Gelukkig blijken ook hier wetten rekkelijk te zijn.

Tja... we blijven ons verbazen... al was het alleen maar over het feit dat de bevolking hier ervan is overtuigd dat dit land helemaal klaar is voor de toetreding tot de EU en dat we hen niet kunnen overtuigen dat ze daar toch niet 'helemaal' bijhoren, al was het alleen al om het feit dat Marokko nog steeds in Afrika ligt.

De overheidsadministratie is ook een verhaal apart. Nederland heeft de afgelopen jaren een enorme strijd geleverd met de Marokkaanse regering over het controleren van de kadasters door Nederlandse ambtenaren. Na dreigementen om de geldstromen vanuit Nederland stop te zetten, is de Marokkaanse regering overstag gegaan om de Nederlandse ambtenaren toe te laten tot het kadaster. Maar wat heeft Nederland eigenlijk gewonnen??? Onze gastheer Abdou heeft tien jaar geleden een stuk grond gekocht en heeft in vier jaar tijd een huis op laten zetten. Dat werkt in Marokko als volgt. Een potentiële huiseigenaar koopt de grond en laat dan op basis van zijn (haar... zo goed als uitgesloten!) financiën er een huis op bouwen. Wat je daar ziet is veel braakliggende stukken grond met b.v. alleen een muur, of uitsluitend een voordeur (?), of één etage of een huis zonder dak. Deze 'projecten' worden al dan niet bewoond. Welnu mijn schoonneef had een meevaller en heeft dus in één keer zijn huis kunnen laten bouwen. Dat staat er al zes jaar. Nu overwegen ze het huis te gaan verkopen (aan een 'luie' Marokkaanse familie die niet zelf het huis wil bouwen, zoals Abdou dat omschrijft), maar nu is er een probleem. Tot op heden is nog nooit de grond en het huis opgenomen in het kadaster. Daar bestaat namelijk helemaal geen verplichting toe in Marokko. Het idiote is dat zeer veel Marokkanen formeel helemaal geen huis hebben. Hoe werkt dat het eigendom? In Marokko hebben ze nog nooit gehoord van privaatrecht op basis van overeenkomsten en verbintenissen. Daar gaat het op basis van getuigen. Als je in dat land 12 directe buren bereid vindt om te verklaren dat het betreffende stuk grond of huis van jou is dan zal dat worden geaccepteerd door de overheid en in de rechtszaal. Voor een vrouw ligt dat iets anders. Als een vrouw aanspraak wil maken op hetzelfde huis dan moet ze 24 buren bereid vinden om te verklaren dat zij eigenaar is. Ik heb dus met verbazing naar dit bizarre verhaal van mijn gastheer zitten luisteren (hij was bezig om het huis geregistreerd te krijgen i.v.m. eventuele verkoop) en vroeg me direct af... "wat denken die Nederlandse ambtenaren dan in Marokko dan te gaan vaststellen en wat denkt de Nederlandse staat daar te gaan bewijzen?". Je raakt redelijk ontluisterd als je dit soort verhalen - die in alle oprechtheid worden verteld, zonder dat mijn schoonneef besefte waarnaar ik zat te 'vissen' - aanhoort.

Bij dit verhaal valt de televisiespot van het Nederlandse Centrum voor Werk en Inkomen (CWI = voormalige arbeidsbureau), die wij op prime-time op de best bekeken Marokkaanse staatszender langs zagen komen, helemaal in het niet. Deze spot - waarin Marokkanen worden opgeroepen om in Nederland te komen werken - is volkomen in strijd met ons eigen immigratiebeleid en heel onkies, als ik dezelfde avond op BVN - wereldomroep televisie - hoor dat de werkloosheid in Nederland oploopt. Maar ja... die spot kunnen we tenminste zelf intrekken. We kunnen als Nederlandse regering toch moeilijk eerst het Marokkaanse privaatrecht aanpassen, vervolgens daar de wetgeving op het kadaster invoeren en dan alles gaan beschrijven?

Kortom het is op bepaalde terreinen een fascinerend land. Het is met name uitermate boeiend omdat we het vanuit de "inner circle" konden aanschouwen.


© Harold Makaske 22 oktober 2003 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: 4. Reizen