<?php if (!defined('PmWiki')) exit();


/*

 ***** 
 *
 * On Mark - Used to fast match marks in a page from config to activate anything
 *           from recipe loading, set variables to especial configurations
 *
 * Copyright 2018 Carlos A. Bonamigo <cabsec.pmwiki@gmail.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 ***** 

*/

$RecipeInfo['OnMark']['Version'] = '20180220';

# sniff text even if auth does not allow
SDV($OnMarkGetAuth, false);

# You can include one or more marks 
# if one mark is found return true
# use: if(OnMark('loadFonts'))
#   include_once("cookbook/loadfonts.php");
function OnMark($m){
global $OnMarkGetAuth,
 $OnMarkItens,$pagename;

$pgnm = $pagename;
$amrk = $OnMarkGetAuth;
$omrk = $OnMarkItens; # for easy ref
$dmrk = trim($m); # defined mark(s)

# now we get page text
# respect new OnMarkGetAuth var
if (!PageExists($pgnm)) return false;
else{
  if($amrk == false)
    $page = ReadPage($pgnm,READPAGE_CURRENT); 
  else
    $page = RetrieveAuthPage($pgnm, 'read', true, READPAGE_CURRENT);
}

if($page['text'] == '') return false;
else{ PCache($pgnm,$page); $ptxt = $page['text']; }

  if(strpos($dmrk,',') === false){

    if(strpos($ptxt,$dmrk) !== false) return true;
    else return false;

  }else{

  $arr = explode(',',$dmrk);

    if(is_array($arr)){

      foreach($arr as $v){
        if(strpos($ptxt,trim("$v")) !== false) $found = 1;
      }

      if($found == 1) return true;
      else return false;

    }
  }
}