more modules
[old-projects.git] / philter / philter / include / philter.inc.php
index 0196f66..4a71714 100644 (file)
@@ -11,6 +11,7 @@ require_once("include/core.inc.php");
 
 function i18n($_index) { global $philter; echo $philter->i18n($_index); }
 function _i18n($_index) { global $philter; return $philter->i18n($_index); }
+function bd() { global $philter; return ($philter->is_advanced() ? 'tmp_' : ''); }
 
 /** Philter base configuration class
  * This is the base class of Philter.
@@ -27,15 +28,19 @@ class Philter {
     function Philter() {
         $this->config = array(
             'db'      => array('host', 'name', 'user', 'pwd', 'link'),
-            'path'    => array('procmail', 'spool'),
+            'path'    => array('spool'),
             'match_plugins' => array(),
             'action_plugins' => array(),
-            'global_plugin' => array(),
+            'global_plugins' => array(),
             'i18n' => array()
         );
         $this->err = "";
     }
 
+    function is_advanced() { return isset($_SESSION['philter_adv']); }
+    function set_advanced() { $_SESSION['philter_adv'] = true; }
+    function del_advanced() { unset($_SESSION['philter_adv']); }
+
     /** returns the i18n string
      * @param   $_index   the index of the string
      * @returns the string or false
@@ -78,10 +83,19 @@ class Philter {
     }
 
     /** function that writes the procmailrc.
+     * @param   &$procmail  the string containing the procmail filter
+     * @param   $filename   the base filename of the procmailrc filter
      * @return  true if all is ok
      */
-    function write_procmailrc() {
-        // TODO
+    function write_procmailrc(&$procmail, $filename) {
+        $file = $this->config['path']['spool']."/".$filename;
+        $f = fopen($file.".tmp", "w");
+        fwrite($f, $procmail, strlen($procmail));
+        fclose($f);
+        rename($file.".tmp", $file);
+        echo "<pre>\n";
+        echo $procmail;
+        echo "</pre>\n";
         return true;
     }
 
@@ -133,12 +147,12 @@ class Philter {
                 return false;
             }
             
-            if(isset($this->config['global_plugin'][$rtti])) {
+            if(isset($this->config['global_plugins'][$rtti])) {
                 $this->err = "Philter::register_global_plugin : a plugin is already registerd";
                 return false;
             }
             
-            $this->config['global_plugin'][$rtti] = $_plugin;
+            $this->config['global_plugins'][$rtti] = $_plugin;
             return true;
         }