• File: notify-users.php
  • File size: 5.23 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * VFM - veno file manager: template/notify-users.php
 *
 * List users with access to current folder
 * and an e-mail addres associated to select and notify uploads
 *
 * PHP version >= 5.3
 *
 * @category  PHP
 * @package   VenoFileManager
 * @author    Nicola Franchini <support@veno.it>
 * @copyright 2013 Nicola Franchini
 * @license   Exclusively sold on CodeCanyon
 * @link      http://filemanager.veno.it/
 */
if (!defined('VFM_APP')) {
    return;
}
if ($location->editAllowed() && $gateKeeper->isAllowed('upload_enable')) {
    $usercount = 0;
    $notificables = array();
    if ($setUp->getConfig('upload_notification_enable') == true && $gateKeeper->getUserInfo('email') !== null) {
        foreach ($_USERS as $user) {
            $showuser = false;
            if (isset($user['email']) && strlen($user['email']) >= 5
                && $user['name'] !== $gateKeeper->getUserInfo('name')
            ) {
                if (isset($user['dir']) && strlen($user['dir']) >= 1) {
                    $userpatharray = array();
                    $userpatharray = json_decode($user['dir']);
                    $startdir = $setUp->getConfig('starting_dir');

                    foreach ($userpatharray as $value) {
                        $userpath = $startdir.$value."/";
                        $pos = strpos($location->getDir(true, false, false, 0), $userpath);
                        if ($pos !== false) {
                            $showuser = true;
                            break;
                        }
                    }
                } else {
                    $showuser = true;
                }
                if ($showuser === true) {
                    $notificable = array();
                    $notificable['email'] = $user['email'];
                    $notificable['name'] = $user['name'];

                    // show email only to SuperAdmins
                    $notificable['showmail'] = ($gateKeeper->isSuperAdmin() ? "<small>(".$notificable['email'].")</small>" : "");

                    $sanitized_key = strtolower($user['name']);
                    $sanitized_key = preg_replace('/[^a-z0-9_\-]/', '', $sanitized_key);

                    $notificables[ $sanitized_key ] = $notificable;
                    
                    // array_push($notificables, $notificable);
                    $usercount++;
                }
            }
        }
    }
    if ($usercount > 0) {
        // Sort users by name.
        ksort($notificables, SORT_NATURAL);

        ?>
            <?php
                // select all by default

                // <script type="text/javascript">
                //     $(document).ready(function (e) {
                //         $('.selectme').prop('checked', true);
                //         checkNotiflist();
                //     });
                // </script>
            ?>
            <div class="col-12">
            <button type="button" class="btn btn-link" data-bs-toggle="modal" data-bs-target="#userslistmodal">
                <i class="bi bi-circle check-notif"></i> <?php echo $setUp->getString("upload_notifications"); ?> 
            </button>
            </div>
        <?php
    } ?>
    <div class="modal fade" id="userslistmodal" tabindex="-1">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <p class="modal-title"><?php echo $setUp->getString("notify_users"); ?></p>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <a class="selectallusers" href="#"><i class="bi bi-check-all"></i> <?php echo $setUp->getString("select_all"); ?></a>
                    <form class="form" id="userslist">
                        <input type="hidden" name="thislang" value="<?php echo $setUp->lang; ?>">
                        <input type="hidden" name="path" value="<?php echo urlencode($location->getDir(true, false, false, 0)); ?>">
                        <div class="mb-3">
        <?php
        foreach ($notificables as $key => $notifuser) { ?>
                        <div class="form-check">
                            <input class="selectme form-check-input" type="checkbox" name="senduser[]" value="<?php echo $notifuser['email']; ?>" id="senduser-<?php echo $key; ?>">
                            <label class="form-check-label" for="senduser-<?php echo $key; ?>">
                                <?php echo '<span class="badge rounded-pill bg-primary">'.$notifuser['name'].'</span> '.$notifuser['showmail']; ?>
                            </label>
                        </div>
            <?php
        } ?>
                        </div>
                        <h5><?php echo $setUp->getString("message"); ?></h5>
                        <textarea class="form-control" name="uploader_message"></textarea>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#userslistmodal">
                    <?php echo $setUp->getString("close"); ?> 
                    </button>
                </div>
            </div>
        </div>
    </div>
<?php
}