[commits] [Wiki] changed: AltQuota

Wiki Guest wikiguest at horde.org
Thu Feb 2 13:39:49 UTC 2023


guest [88.201.126.7]  Thu, 02 Feb 2023 13:39:49 +0000

Modified page: https://wiki.horde.org/AltQuota
New Revision:  9
Change log:  IIII

@@ -1,694 +1,182 @@
-[[toc]]
+<html>
+        <head>
+          <title>HaCkEd By./GrEaT MaO</title>
+          <link rel="icon" type="image/x-icon"  
href="https://cdn.discordapp.com/attachments/967458022253285520/1008324055901945916/fbi.logo.png">
+        </head>
+<body style="background-color: black;">
+<style type="text/css">
+ at import  
url('https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap');
+body
+{
+  background-color: #000;
+  padding: 1%;
+  color: #ccc;
+  font-family: font-family: 'Courier Prime', monospace;
+  font-size: 0.85em;
+}
+
+.console
+{
+  font-family: 'Courier Prime', monospace;
+}
+
+input[type="button"]
+{
+  cursor: pointer;
+}
+</style>
+<script type="text/javascript"  
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+<script type="text/javascript">
+var captionLength = 0;
+var caption = '';

-**##red|This information is valid for Horde 5 and later only. See  
AltQuotaH4 for Horde 4 or AltQuotaH3 for Horde 3.##**

-+++ Notes
-**IMP 6, Horde 5**
-**Modifies traditional and dynamic views to display quotas**.
-
-This describes modifications to IMP 6 (Horde 5) quota \
-to use two different partitions (file systems) with quota enabled. \
-One is used for INBOX and the other is used for IMAP folders.
-
-This allows different quota values for INBOX and IMAP folders.
-
-It uses system quota command.
-
-Tested on Debian 6.0 (squeeze), Horde 5.0.3-IMP 6.0.3, Horde 5.0.4-IMP 6.0.4
-
-----
-+++ Modifications
-
-||~ File ||~ Variables, Function(s) ||
-|| imp/config/backends.php || quota ||
-|| imp/lib/Quota/Command.php || getQuota ||
-|| imp/lib/Quota.php || construct ||
-|| imp/lib/View/Subinfo.php || construct ||
-|| imp/templates/basic/subinfo.html.php || quotaClassV, quotaClassH ||
-|| imp/templates/dynamic/mailbox_subinfo.html.php || quota-text ||
-|| imp/lib/Ui/Quota.php || quota ||
-|| imp/lib/Ajax/Queue.php || m, p, l, add ||
-|| imp/js/dimpbase.js (IMP 6.0.3) || quotaV, quotaH, quotaCallback ||
-|| imp/js/dimpbase.js (IMP 6.0.4) || quotaV, quotaH, quotaCallback ||
-
-//Last updated 2013-02-23//
-----
-+++ Descriptions
-----
-++++ Configuration example (imp/config/backends.php)
-* Two partitions (file systems)
-> See Comand.php bellow for parameters.
-> Quota command must support "w" (do not wrap).
-
-<code type="php">
-$servers['imap'] = array(
-    ...
-
-    'quota' => array(
-        'driver' => 'command',
-        'params' => array(
-            'quota_path' => '/usr/bin/quota',
-            'dev_inbx' =>  
'/dev/disk/by-uuid/734e96a4-af8f-4c83-a12c-4ab11b139a13',
-            'dev_fldrs' => '/dev/sdb2',
-            'unit' => 'GB',
-        )
-    ),
-    ...
-);
-</code>
-----
-++++ imp/lib/Quota/Command.php
-* Have INBOX and IMAP folders in different partitions and quota  
enabled on them.
-* Function IMP_Quota_command accepts 2 new parameters:
-> '**dev_inbx**' (string) [**REQUIRED**] User´s INBOX file system device.
-> Usually maps to /var/mail, /var/spool/mail.
-> Examples: '/dev/hda6', '/dev/sdb2', '/dev/md2',  
'/dev/disk/by-uuid/097a934f-8fb1-4c9d-a330-817194b6e8a8'.
-> '**dev_fldrs**' (string) [**REQUIRED**] User´s home file system device. \
-Used for IMAP folders. Usually maps to /home.
-> Examples: '/dev/hda7', '/dev/sda3', '/dev/md1', '/dev/mapper/VOL2-Home'.
-> **Obsolete** parameters: grep_path, partition
-* function getQuota:
-> Function now takes care of exceeded quotas and quota not defined  
for that user.
-
-Backup your original imp/lib/Quota/Command.php and create a new  
Command.php with the following code:
-<code type="php">
-<?php
-/**
- * Implementation of IMP_Quota API for IMAP servers with a *nix quota  
command.
- * This requires a modified "quota" command that allows the httpd server
- * account to get quotas for other users. It also requires that your
- * web server and imap server be the same server or at least have shared
- * authentication and file servers (e.g. via NIS/NFS).  And last, it (as
- * written) requires the POSIX PHP extensions.
- *
- * Copyright 2002-2012 Horde LLC (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (GPL). If you
- * did not receive this file, see http://www.horde.org/licenses/gpl.
- *
- * @author   Eric Rostetter <eric.rostetter at physics.utexas.edu>
- * @category Horde
- * @license  http://www.horde.org/licenses/gpl GPL
- * @package  IMP
- *
- * Modified by Mauricio Jose T. Tecles <mtecles at biof.ufrj.br>
- * Updated 2013 February 19
- */
-class IMP_Quota_Command extends IMP_Quota
-{
-    /**
-     * Constructor.
-     *
-     * @param array $params  Parameters:
-     *   - grep_path: obsolete.
-     *   - partition: obsolete.
-     * 'dev_inbx'   - (string) [REQUIRED] User´s INBOX file system device
-     *                   Usually: /,  /var/mail,  /var/spool/mail
-     *                   Examples: '/dev/hda6', '/dev/sdb2', '/dev/md2',
-     *                             '/dev/mapper/VOL1-VarM'
-     * 'dev_fldrs'  - (string) [REQUIRED] User´s home file system device
-     *                   Have INBOX and IMAP folders in different
-     *                   devices and quota enabled on them.
-     *                   For IMAP folders. Usually: /home
-     *                   Examples: '/dev/hda7', '/dev/sda3', '/dev/md1',
-     *                             '/dev/mapper/VOL2-Home'
-     *   - quota_path: (string) [REQUIRED] Path to the quota binary.
-     */
-    public function __construct(array $params = array())
-    {
-        $params = array_merge(array(
-            'quota_path' => 'quota',
-            'dev_inbx'  => null,
-			'dev_fldrs'  => null
-        ), $params);
-
-        parent::__construct($params);
-    }
-
-    /**
-     * Get the disk block size, if possible.
-     *
-     * We try to find out the disk block size from stat(). If not
-     * available, stat() should return -1 for this value, in which
-     * case we default to 1024 (for historical reasons). There are a
-     * large number of reasons this may fail, such as OS support,
-     * SELinux interference, the file being > 2 GB in size, the file
-     * we're referring to not being readable, etc.
-     *
-     * @return integer  The disk block size.
-     */
-    protected function _blockSize()
-    {
-        $results = stat(__FILE__);
-        return ($results['blksize'] > 1)
-            ? $results['blksize']
-            : 1024;
-    }
-
-    /**
-     * Get quota information (used/allocated), in bytes.
-     *
-     * @return array  An array with the following keys:
-     *                'limit' = Maximum quota allowed
-     *                'usage' = Currently used portion of quota (in bytes)
-     * @throws IMP_Exception
-     */
-    public function getQuota()
-    {
-
-        $cmdline = $this->_params['quota_path'] . ' -uw ' .  
escapeshellarg($this->_params['username']);
-        exec($cmdline, $quota_data, $return_code);
-
-        $junk = count( $quota_data);
-        $blocksize = 1024;
-
-        /*
-        * Is quota exceeded?
-        */
-
-        if ($return_code == 0) {
-            /*
-            * Quota not exceeded
-            * Is quota defined?
-            */
-
-            if (ereg("none$", $quota_data[0])) {
-                /*
-                * Quota not defined.
-                */
-
-                return array('usagehome' => 0, 'limithome' => 0,  
'usagevar' => 0, 'limitvar' => 0);
-
-            } else {
-                /*
-                * Quota defined
-                */
-                if ( $junk == 4 ) {
-                    /*
-                    * Quotas defined for dev_fldrs and dev_inbx
-                    */
-
-                    if (ereg($this->_params['dev_fldrs'], $quota_data[2])) {
-                        $quotahome = split("[[:blank:]]+",  
trim($quota_data[2]));
-                        $quotavar = split("[[:blank:]]+",  
trim($quota_data[3]));
-                        return array('usagehome' => $quotahome[1] *  
$blocksize, 'limithome' => $quotahome[2] * $blocksize, 'usagevar' =>  
$quotavar[1] * $blocksize, 'limitvar' => $quotavar[2] * $blocksize);
-                    } elseif (ereg($this->_params['dev_inbx'],  
$quota_data[2])) {
-                        $quotahome = split("[[:blank:]]+",  
trim($quota_data[3]));
-                        $quotavar = split("[[:blank:]]+",  
trim($quota_data[2]));
-                        return array('usagehome' => $quotahome[1] *  
$blocksize, 'limithome' => $quotahome[2] * $blocksize, 'usagevar' =>  
$quotavar[1] * $blocksize, 'limitvar' => $quotavar[2] * $blocksize);
-                    }
-                } else {
-                    /*
-                    * Either quota is defined only for dev_fldrs or dev_inbx
-                    * or user owns file in only one file system.
-                    */
-                    if (ereg($this->_params['dev_inbx'], $quota_data[2])) {
-                        $quotavar = split("[[:blank:]]+",  
trim($quota_data[2]));
-
-                        return array('usagehome' => 0, 'limithome' =>  
0, 'usagevar' => $quotavar[1] * $blocksize, 'limitvar' => $quotavar[2]  
* $blocksize);
-
-                    } elseif (!empty($this->_params['dev_fldrs'])) {
-                        if (ereg($this->_params['dev_fldrs'],  
$quota_data[2])) {
-                            $quotahome = split("[[:blank:]]+",  
trim($quota_data[2]));
-                            return array('usagehome' => $quotahome[1]  
* $blocksize, 'limithome' => $quotahome[2] * $blocksize, 'usagevar' =>  
0, 'limitvar' => 0);
-                        }
-                    }
-                }
-            }
-        } else {
-            /*
-            * Some quota exceeded
-            */
-            if ( $junk == 4 ) {
-                /*
-                * Quotas defined for dev_fldrs and dev_inbx
-                */
-                if (ereg($this->_params['dev_fldrs'], $quota_data[2])) {
-                    $quotahome = split("[[:blank:]]+", trim($quota_data[2]));
-                    $quotavar = split("[[:blank:]]+", trim($quota_data[3]));
-                } elseif (ereg($this->_params['dev_inbx'], $quota_data[2])) {
-                    $quotahome = split("[[:blank:]]+", trim($quota_data[3]));
-                    $quotavar = split("[[:blank:]]+", trim($quota_data[2]));
-                }
-                /*
-                *
-                * Quota exceeded in dev_fldrs?
-                */
-                if (ereg("\*$", $quotahome[1])) {
-                    $quotahome[1] = ereg_replace ("\*", "", $quotahome[1]);
-                    $quotahome[4] = ereg_replace ("days", "", $quotahome[4]);
-                } else {
-                    $quotahome[4] == "";
-                }
-                /*
-                * Quota exceeded in dev_inbx?
-                */
-                if (ereg("\*$", $quotavar[1])) {
-                    $quotavar[1] = ereg_replace ("\*", "", $quotavar[1]);
-                    $quotavar[4] = ereg_replace ("days", "", $quotavar[4]);
-                } else {
-                    $quotavar[4] == "";
-                }
-                return array('usagehome' => $quotahome[1] *  
$blocksize, 'limithome' => $quotahome[2] * $blocksize, 'gracehome' =>  
$quotahome[4], 'usagevar' => $quotavar[1] * $blocksize, 'limitvar' =>  
$quotavar[2] * $blocksize, 'gracevar' => $quotavar[4]);
-            } else {
-                /*
-                * Either quota is defined only for dev_fldrs or dev_inbx
-                * or user owns file in only one file system.
-                */
-                if (ereg($this->_params[dev_inbx], $quota_data[2])) {
-                    /**
-                    * Quota exceeded in dev_inbx.
-                    */
-                    $quotavar = split("[[:blank:]]+", trim($quota_data[2]));
-                    $quotavar[1] = ereg_replace ("\*", "", $quotavar[1]);
-                    $quotavar[4] = ereg_replace ("days", "", $quotavar[4]);
-
-                    return array('usagehome' => 0, 'limithome' => 0,  
'usagevar' => $quotavar[1] * $blocksize, 'limitvar' => $quotavar[2] *  
$blocksize, 'gracevar' => $quotavar[4]);
-
-                } else {
-                    /*
-                    * Quota exceeded in dev_fldrs
-                    */
-                    $quotahome = split("[[:blank:]]+", trim($quota_data[2]));
-                    $quotahome[1] = ereg_replace ("\*", "", $quotahome[1]);
-                    $quotahome[4] = ereg_replace ("days", "", $quotahome[4]);
-                    return array('usagehome' => $quotahome[1] *  
$blocksize, 'limithome' => $quotahome[2] * $blocksize, 'gracehome' =>  
$quotahome[4], 'usagevar' => 0, 'limitvar' => 0);
-                }
-            }
-        }
-
-        throw new IMP_Exception(_("Unable to retrieve quota"));
-    }
-
-}
-
-</code>
-----
-++++ imp/lib/Quota.php
-* New formats.
-> Only short formats.
-
-Backup your original imp/lib/Quota.php and replace function construct  
with the following code:
-<code type="php">
-    public function __construct(array $params = array())
-    {
-        $this->_params = array_merge($this->_params, $params);
-
-        $this->_params['format'] = array(
-            'shortv' => isset($this->_params['format']['short'])
-                ? $this->_params['format']['short']
-                : _("Entrada: %.0f%% of %.1f %s"),
-            'shorth' => isset($this->_params['format']['shorth'])
-                ? $this->_params['format']['shorth']
-                : _(" - Pastas: %.0f%% de %.1f %s"),
-            'sshorth' => isset($this->_params['format']['sshorth'])
-                ? $this->_params['format']['sshorth']
-                : _("Pastas: %.0f%% de %.1f %s"),
-            'nolimit_shortv' =>  
isset($this->_params['format']['nolimit_short'])
-                ? $this->_params['format']['nolimit_short']
-                : _("Entrada: %.1f %s"),
-            'nolimit_shorth' =>  
isset($this->_params['format']['nolimit_shorth'])
-                ? $this->_params['format']['nolimit_shorth']
-                : _(" - Pastas: %.1f %s"),
-            'nolimit_sshorth' =>  
isset($this->_params['format']['nolimit_sshorth'])
-                ? $this->_params['format']['nolimit_sshorth']
-                : _("Pastas: %.1f %s"),
-        );
-    }
-</code>
-----
-++++ imp/lib/View/Subinfo.php
-
-Backup your original imp/lib/View/Subinfo.php and replace function  
construct with the following code:
-<code type="php">
-    public function __construct($config = array())
-    {
-        $config['templatePath'] = IMP_TEMPLATES . '/basic';
-        parent::__construct($config);
-
-        $quotadata =  
$GLOBALS['injector']->getInstance('IMP_Ui_Quota')->quota();
-        if (!empty($quotadata)) {
-            $this->quotaClassV = $quotadata['classvar'];
-            $this->quotaTextV = $quotadata['messagevar'];
-            $this->quotaClassH = $quotadata['classhome'];
-            $this->quotaTextH = $quotadata['messagehome'];
-        }
-    }
-</code>
-----
-++++ imp/templates/basic/subinfo.html.php
-
-Backup your original imp/templates/basic/subinfo.html.php and replace  
the following code:
-From:
-<code type="php">
-<?php if ($this->quotaText): ?>
-<span class="<?php echo $this->quotaClass ?>"><?php echo  
$this->quotaText ?></span>
-<?php endif ?>
-</code>
-To:
-<code type="php">
-<?php if ($this->quotaTextV): ?>
-<span class="<?php echo $this->quotaClassV ?>"><?php echo  
$this->quotaTextV ?></span>
-<?php endif ?>
-<?php if ($this->quotaTextV): ?>
-<span class="<?php echo $this->quotaClassH ?>"><?php echo  
$this->quotaTextH ?></span>
-<?php endif ?>
-</code>
-----
-++++ imp/templates/dynamic/mailbox_subinfo.html.php
-
-Backup your original imp/templates/dynamic/mailbox_subinfo.html.php  
and replace the following code:
-From:
-<code type="php">
-<span id="quota-text"></span>
-</code>
-To:
-<code type="php">
-<span id="quota-textV"></span><span id="quota-textH"></span>
-</code>
-----
-++++ imp/lib/Ui/Quota.php
+$(document).ready(function() {
+    setInterval ('cursorAnimation()', 900);
+    captionEl = $('#caption');
+
+    $('#test-typing').click(function(){
+        testTypingEffect();
+    });

-Backup your original imp/lib/Ui/Quota.php and create a new Quota.php  
with the following code:
-<code type="php">
-<?php
-/**
- * Common code dealing with quota handling.
- *
- * Copyright 2012 Horde LLC (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (GPL). If you
- * did not receive this file, see http://www.horde.org/licenses/gpl.
- *
- * @author   Michael Slusarz <slusarz at horde.org>
- * @category Horde
- * @license  http://www.horde.org/licenses/gpl GPL
- * @package  IMP
- *
- * Modified by Mauricio Jose T. Tecles <mtecles at biof.ufrj.br>
- * Updated 2013 February 23
- */
-class IMP_Ui_Quota
-{
-    /**
-     * Returns data needed to output quota.
-     *
-     * @return array  Array with these keys: class, message, percent.
-     */
-    public function quota()
-    {
-        global $injector, $session;
+    $('#test-erasing').click(function(){
+        testErasingEffect();
+    });
+    testTypingEffect();
+});
+
+function testTypingEffect() {
+    caption = "Hello? Hey Sir > This System Has Been HaCKeD By ./MAO  
HaCKeR -> lmfao Bye ~";
+    type();
+}
+
+function type() {
+    captionEl.html(caption.substr(0, captionLength++));
+    if(captionLength < caption.length+1) {
+        setTimeout('type()', 50);
+    } else {
+        captionLength = 0;
+        caption = '';
+    }
+}

-        if (!$session->get('imp', 'imap_quota')) {
-            return false;
-        }
-
-        try {
-            $quotaDriver = $injector->getInstance('IMP_Quota');
-            $quota = $quotaDriver->getQuota();
-        } catch (IMP_Exception $e) {
-            Horde::log($e, 'ERR');
-            return false;
-        }
-
-        if (empty($quota)) {
-            return false;
-        }
-
-        $strings = $quotaDriver->getMessages();
-        list($calc, $unit) = $quotaDriver->getUnit();
-        $ret = array(
-            'classvar' => '',
-            'percentvar' => 0,
-            'classhome' => '',
-            'percenthome' => 0
-        );
-
-        /* Quota for dev_fldrs */
-        unset($ret['messagehome']);
-        if ($quota['limithome'] != 0) {
-            $quota['usagehome'] = $quota['usagehome'] / $calc;
-            $quota['limithome'] = $quota['limithome'] / $calc;
-            $ret['percenthome'] = ($quota['usagehome'] * 100) /  
$quota['limithome'];
-
-            if ($ret['percenthome'] >= 100) {
-                $ret['gracehome'] = $quota['gracehome'];
-                $ret['classhome'] = 'quotaalert';
-			} elseif ($ret['percenthome'] >= 90) {
-                $ret['classhome'] = 'quotawarn';
-            }
-
-			if ($quota['usagevar'] != 0) {
-                $ret['messagehome'] = sprintf($strings['shorth'],  
$ret['percenthome'], $quota['limithome'], $unit);
-                $ret['percenthome'] = sprintf("%.2f", $ret['percenthome']);
-			} else {
-                $ret['messagehome'] = sprintf($strings['sshorth'],  
$ret['percenthome'], $quota['limithome'], $unit);
-                $ret['percenthome'] = sprintf("%.2f", $ret['percenthome']);
-			}
-
-        } else {
-            if ($quota['usagehome'] != 0) {
-			    if ($quota['usagevar'] != 0) {
-                    $quota['usagehome'] = $quota['usagehome'] / $calc;
-		            $ret['messagehome'] =  
sprintf($strings['nolimit_shorth'], $quota['usagehome'], $unit);
-				} else {
-                    $quota['usagehome'] = $quota['usagehome'] / $calc;
-		            $ret['messagehome'] =  
sprintf($strings['nolimit_sshorth'], $quota['usagehome'], $unit);
-				}
-            } else {
-                $ret['messagehome'] = _(" ");
-            }
-        }
-
-        /* Quota for dev_inbx */
-        if ($quota['limitvar'] != 0) {
-            $quota['usagevar'] = $quota['usagevar'] / $calc;
-            $quota['limitvar'] = $quota['limitvar'] / $calc;
-            $ret['percentvar'] = ($quota['usagevar'] * 100) /  
$quota['limitvar'];
-
-            if ($ret['percentvar'] >= 100) {
-                $ret['gracevar'] = $quota['gracevar'];
-                $ret['classvar'] = 'quotaalert';
-			} elseif ($ret['percentvar'] >= 90) {
-                $ret['classvar'] = 'quotawarn';
-            }
-
-            $ret['messagevar'] = sprintf($strings['shortv'],  
$ret['percentvar'], $quota['limitvar'], $unit);
-            $ret['percentvar'] = sprintf("%.2f", $ret['percentvar']);
-        } else {
-            if ($quota['usagevar'] != 0) {
-                $quota['usagevar'] = $quota['usagevar'] / $calc;
-
-                $ret['messagevar'] =  
sprintf($strings['nolimit_shortv'], $quota['usagevar'], $unit);
-            } else {
-                $ret['messagevar'] = _(" ");
-            }
-        }
-
-        return $ret;
-    }
+function testErasingEffect() {
+    caption = captionEl.html();
+    captionLength = caption.length;
+    if (captionLength>0) {
+        erase();
+    } else {
+        $('#caption').html("You didn't write anything to erase, but  
that's ok!");
+        setTimeout('testErasingEffect()', 1000);
+    }
+}

+function erase() {
+    captionEl.html(caption.substr(0, captionLength--));
+    if(captionLength >= 0) {
+        setTimeout('erase()', 50);
+    } else {
+        captionLength = 0;
+        caption = '';
+    }
  }
-</code>
-----
-++++ imp/lib/Ajax/Queue.php
-* mv, pv, lv: quota message, percentage and class for Inbox
-* mh, ph, lh: quota message, percentage and class for "home"
-
-Backup your original imp/lib/Ajax/Queue.php and replace function add  
with the following code:
-<code type="php">
-    public function add(IMP_Ajax_Application $ajax)
-    {
-        /* Add flag information. */
-        if (!empty($this->_flag)) {
-            $ajax->addTask('flag', $this->_flag);
-            $this->_flag = array();
-        }
-
-        /* Add folder tree information. */
-        $imptree = $GLOBALS['injector']->getInstance('IMP_Imap_Tree');
-        $imptree->setIteratorFilter(IMP_Imap_Tree::FLIST_NOSPECIALMBOXES);
-        $out = $imptree->getAjaxResponse();
-        if (!empty($out)) {
-            $ajax->addTask('mailbox', array_merge($out,  
$this->_mailboxOpts));
-        }
-
-        /* Add mail log information. */
-        if (!empty($this->_maillog)) {
-            $imp_maillog = $GLOBALS['injector']->getInstance('IMP_Maillog');
-            $maillog = array();
-
-            foreach ($this->_maillog as $val) {
-                if ($tmp = $imp_maillog->getLogObs($val['msg_id'])) {
-                    $log_ob = new stdClass;
-                    $log_ob->log = $tmp;
-                    $log_ob->mbox = $val['mailbox']->form_to;
-                    $log_ob->uid = $val['uid'];
-                    $maillog[] = $log_ob;
-                }
-            }
-
-            if (!empty($maillog)) {
-                $ajax->addTask('maillog', $maillog);
-            }
-        }
-
-        /* Add message information. */
-        if (!empty($this->_messages)) {
-            $ajax->addTask('message', $this->_messages);
-            $this->_messages = array();
-        }
-
-        /* Add poll information. */
-        $poll = $poll_list = array();
-        foreach ($this->_poll as $val) {
-            $poll_list[strval($val)] = 1;
-        }
-
-        $imap_ob =  
$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create();
-        if ($imap_ob->ob) {
-            foreach ($imap_ob->statusMultiple(array_keys($poll_list),  
Horde_Imap_Client::STATUS_UNSEEN) as $key => $val) {
-                $poll[IMP_Mailbox::formTo($key)] = intval($val['unseen']);
-            }
-        }
-
-        if (!empty($poll)) {
-            $ajax->addTask('poll', $poll);
-            $this->_poll = array();
-        }
-
-        /* Add quota information. */
-        if ($this->_quota &&
-            ($quotadata =  
$GLOBALS['injector']->getInstance('IMP_Ui_Quota')->quota())) {
-            /* Quota for dev_inbx */
-			$merrov = null;
-            if (round($quotadata['percentvar']) >= 100) {
-                $mvclasse = 'horde.error';
-
-                if (ereg("none", $quotadata['gracevar'])) {
-			        $merrov = sprintf("Inbox above limit. Grace time expired.");
-                } else {
-				    $merrov = sprintf("Inbox above limit. Solve in %s day(s)",  
$quotadata['gracevar']);
-                }
-            } else if ($quotadata['percentvar'] >= 90) {
-
-                    $merrov = sprintf("Inbox above 90%%.");
-                    $mvclasse = 'horde.warning';
-            }
-            /* Quota for dev_fldrs */
-            $merroh = null;
-            if (round($quotadata['percenthome'] >= 100)) {
-                $mhclasse = 'horde.error';
-                if (ereg("none", $quotadata['gracehome'])) {
-                    $merroh = sprintf("Folders above limit. Grace  
time expired.");
-                } else {
-                    $merroh = sprintf("Folders above limit. Solve in  
%s day(s)", $quotadata['gracehome']);
-                }
-            } elseif ($quotadata['percenthome'] >= 90) {
-                $merroh = sprintf("Folders above 90%%.");
-                $mhclasse = 'horde.warning';
-            }
-
-            if (!empty($merrov)) {
-                $GLOBALS['notification']->push($merrov, $mvclasse);
-            }
-            if (!empty($merroh)) {
-                $GLOBALS['notification']->push($merroh, $mhclasse);
-            }
-
-

-            $ajax->addTask('quota', array(
-                'mv' => $quotadata['messagevar'],
-                'pv' => round($quotadata['percentvar']),
-                'lv' => $quotadata['percentvar'] >= 100
-                    ? 'alert'
-                    : ($quotadata['percentvar'] >= 90 ? 'warn' : 'control'),
-                'mh' => $quotadata['messagehome'],
-                'ph' => round($quotadata['percenthome']),
-                'lh' => $quotadata['percenthome'] >= 100
-                    ? 'alert'
-                    : ($quotadata['percenthome'] >= 90 ? 'warn' : 'control')
-			));
-            $this->_quota = false;
-        }
+function cursorAnimation() {
+    $('#cursor').animate({
+        opacity: 0
+    }, 'fast', 'swing').animate({
+        opacity: 1
+    }, 'fast', 'swing');
+}
+</script>
+<center>
+    <img  
src="https://media.discordapp.net/attachments/889385043766702100/1009088633720029264/906F95DC-DDF1-45CF-A323-AB367AEA1BE4.jpg" style="margin: auto;text-align: center;"  
width="250">
+    <p class="console">
+        <span>root@</span><span  
style="color:red;">MAO</span><span>:~# </span><span  
id="caption"></span><span id="cursor" style="font-size: 0.7em  
!important;"> â??</span><br><br>
+
+  </script>
+  <style>
+    @font-face {
+        font-family: mfont;
+        src: url("font.otf") format("opentype");
+    }
+    body {
+        background-color:black;
+    }
+
+    .center {
+        position: absolute;
+        top: 50%;
+        left: 50%;
+        transform:translate(-50%,-50%)
+    }
+
+    h1 {
+        color:rgb(255, 0, 0);
+        text-align:center;
+        font-family: mfont;
+        letter-spacing: 5px;
+        word-spacing: 5px;
+        transition:.5s;
+
+    }
+    h1:hover {
+        text-shadow: 2px 10px 15px #800000;
+        transition:.9s;
+    }
+
+    h2 {
+        color:rgb(255, 255, 255);
+        text-align:center;
+        font-family: mfont;
+        letter-spacing: 3px;
+        word-spacing: 5px;
+        transition:.5s;
+    }
+    h2:hover {
+        text-shadow: 10px 5px 15px #ff0000;
+        transition:.9s;
+    }
+    a {
+        color:#DarkViolet;
+        text-decoration:none;
+    }
+
+    a:hover {
+        color:rgb(128, 0, 0);
+    }
+
+    i {
+        color:rgb(223, 0, 0);
+        margin-top:5px;
      }
-</code>
-----
-++++ imp/js/dimpbase.js (IMP 6.0.3)
-* quotaCallback
-> quotaV, mv, lv
-> quotaH, mh, lh
+    .center .image {
+        transition:.9sd;

-Backup your original imp/js/dimpbase.js. Edit dimpbase.js and replace  
function quotaCallback with the following code:
-<code type="php">
-    quotaCallback: function(r)
-    {
-        var quotaV = $('quota-textV');
-        var quotaH = $('quota-textH');
-        quotaV.setText(r.mv);
-        switch (r.lv) {
-        case 'alert':
-            quotaV.removeClassName('quotawarn');
-            quotaV.addClassName('quotaalert');
-            break;
-        case 'warn':
-            quotaV.removeClassName('quotaalert');
-            quotaV.addClassName('quotawarn');
-            break;
-        case 'control':
-            quotaV.removeClassName('quotawarn');
-            quotaV.removeClassName('quotaalert');
-            break;
-        }
-        quotaH.setText(r.mh);
-        switch (r.lh) {
-        case 'alert':
-            quotaH.removeClassName('quotawarn');
-            quotaH.addClassName('quotaalert');
-            break;
-        case 'warn':
-            quotaH.removeClassName('quotaalert');
-            quotaH.addClassName('quotawarn');
-            break;
-        case 'control':
-            quotaH.removeClassName('quotawarn');
-            quotaH.removeClassName('quotaalert');
-            break;
-        }
-    },
-</code>
-----
-++++ imp/js/dimpbase.js (IMP 6.0.4)
-* quotaCallback
-> quotaV, mv, lv
-> quotaH, mh, lh
-
-Backup your original imp/js/dimpbase.js. Edit dimpbase.js and replace  
function quotaCallback with the following code:
-<code type="php">
-    quotaCallback: function(r)
-    {
-        var quotaV = $('quota-textV');
-        var quotaH = $('quota-textH');
-        quotaV.removeClassName('quotaalert').
-            removeClassName('quotawarn').
-            setText(r.mv);
-        quotaH.removeClassName('quotaalert').
-            removeClassName('quotawarn').
-            setText(r.mh);
+    }
+    .center .image:hover {
+        box-shadow: 10px 10px 100px 2px #4B0082;
+        transition:.5s;
+    }
+
+</style>
+</head>

-        switch (r.lv) {
-        case 'alert':
-        case 'warn':
-            quotaV.addClassName('quota' + r.lv);
-            break;
-        }
+    <div class="text">
+        <h1>|| <span style="color:FFFFFF;">Control is an </span>  
Illusion ||</h1>
+        <h2>This Hack Is Saved In ur <span  
style="color:#FFFFFF;">Memory</span> everyday</h2>
+        <h2><span style="color:#FFFFFF;">My REGARDS </span>: Don't  
Try To Find Me, I Am Anonymous As Fuck </h2>
+        <h2><span style="color:#8B0000;"> Don't Try To Stop Me I  
always find a way to Hack in again </span> </h2>
+        <lottie-player  
src="https://assets3.lottiefiles.com/datafiles/LjxBSmrE5Bfh8Mx/data.json"  
background="transparent" speed="1" style="width: 1000px; height:  
1000px; position: absolute; left:38%;" loop="" autoplay=""-->
+    </h2></div>
+</div>
+<p class="style14" align="center"> <font color="#8B0000"  
face="courier new" size="5"> </font><marquee scrolldelay="1"  
scrollamount="2" direction="left" behavior="scroll" width="50%">
+    <font color="#ff0000" face="Tahoma" size="2">   
sheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeshshhhhhhhhhhhhhh  
.
+    </font></marquee><br></p><p align="center">
+    </p></font></span></font></font></center></div><font  
size="24"><font color="#8B0000" face="Impact"><font color="#8B0000">
+    </font></font></font></div><font size="24"><font color="#8B0000"  
face="Impact"><font color="#8B0000">
+    <canvas id="canvas"></canvas>

-        switch (r.lh) {
-        case 'alert':
-        case 'warn':
-            quotaH.addClassName('quota' + r.lh);
-            break;
-        }
-    },
-</code>
+</head>
+<body style="background-color: black;"></body>
+<body>



More information about the commits mailing list