public function Top_Department()
    {
        $bl = new BLogger();
        $beginDate = addslashes($_GET['begindate']);
        if ($beginDate == "") {
            $month = date("n");
            $day = 1;
            $year = date("Y");
            $timeAwal = mktime(0, 0, 0, $month, $day, $year);
            $timeAkhir = mktime(0, 0, 0, $month + 1, $day, $year);
            $mon = $month;
            $y = $year;
            $timeAwalText = date("Y") . "-" . date("m") . "-01 00:00:00";
            $ts = mktime(0, 0, 0, date("n") + 1, 1, date("Y"));
            $timeAkhirText = date("Y-m-d H:i:s", $ts);
        } else {
            $timeAwalText = $beginDate . " 00:00:00";
            $bgindatestr = strtotime($beginDate);
            $mon = date("n", $bgindatestr);
            $y = date("Y", $bgindatestr);
            $ts = mktime(0, 0, 0, $mon + 1, 1, $y);
            $timeAkhirText = date("Y-m-d H:i:s", $ts);
            $year = $y;
        }
        /*echo $timeAwal;
          echo "<br>";
          echo $timeAkhir;
          */
        ?>
        <h1>Top Department</h1>    
         <?php 
        $text = "(b_log_time BETWEEN '{$timeAwalText}' AND '{$timeAkhirText}')";
        $textAs = "b_timestamp >= {$timeAwal} AND b_timestamp < {$timeAkhir}";
        // echo "<br>";
        // echo $text;
        $arrLogs = $bl->getWhere("{$text} ORDER BY b_timestamp ASC");
        //pr($arrLogs);
        foreach ($arrLogs as $h) {
            if ($h->log_user_org == "" || $h->log_user_org == 0) {
                continue;
            }
            $newArr["org_" . $h->log_user_org][] = $h;
        }
        foreach ($newArr as $url => $n) {
            $newArrs[$url] = count($n);
        }
        asort($newArrs);
        $jadi = array_reverse($newArrs);
        // pr($newArr);
        $t = time();
        //pr($jadi);
        ?>
<div class="table-responsive">
    <form class="form-inline">
  <div class="form-group">
    <label for="monselection_<?php 
        echo $t;
        ?>
">Select Month</label>
    <select class="form-control" id="monselection_<?php 
        echo $t;
        ?>
"><?php 
        $beginyear = date("Y") - 5;
        $endyear = date("Y");
        $beginyear = 2015;
        $mons = array(1 => "Jan", 2 => "Feb", 3 => "Mar", 4 => "Apr", 5 => "May", 6 => "Jun", 7 => "Jul", 8 => "Aug", 9 => "Sep", 10 => "Oct", 11 => "Nov", 12 => "Dec");
        for ($x = $beginyear; $x <= $endyear; $x++) {
            for ($m = 1; $m < 13; $m++) {
                if ($m == $mon && $x == $year) {
                    $select = "selected";
                    echo "in";
                } else {
                    $select = "";
                }
                if ($x == date("Y")) {
                    if ($m > date("n")) {
                        continue;
                    }
                }
                ?>
                <option <?php 
                echo $select;
                ?>
 value="<?php 
                echo $x;
                ?>
-<?php 
                echo $m;
                ?>
-01"><?php 
                echo $x;
                ?>
 <?php 
                echo $mons[$m];
                ?>
 </option>   
                 <?php 
            }
        }
        ?>
    </select> 
  </div>
 <button class="btn btn-default" onclick="window.open('<?php 
        echo _SPPATH . _PHOTOURL . "logs/TopDepartment_" . $year . "_" . $mon;
        ?>
.xls', '_blank');event.preventDefault();">Download</button>
</form>
    <script>
        $('#monselection_<?php 
        echo $t;
        ?>
').change(function(){
            var slc = $('#monselection_<?php 
        echo $t;
        ?>
').val();
            openLw('Top_Department','<?php 
        echo _SPPATH;
        ?>
BLoggerWeb/Top_Department?begindate='+slc,'fade'); 
        });
        </script>
    <div style="padding: 10px;"></div>
    <table class="table table-bordered">
        <thead>
            <tr>
                <th>Rank</th>
                
                <th>Department</th>
                <th>URL</th>
                <th>No.Visits</th>
            </tr>
        </thead>
        <?php 
        $num = 0;
        $arrExcel = array();
        $arrExcel2 = array();
        $arrExcel[] = "Rank;Department;No.Visits";
        foreach ($jadi as $url => $n) {
            $alog = $newArr[$url];
            $num++;
            $dp = new RoleOrganization();
            $id = explode("_", $url);
            //pr($id);
            $dp->getByID($id[1]);
            $arrExcel[] = "{$num};{$dp->organization_name};{$n}";
            ?>
        <tr>
            <td><?php 
            echo $num;
            ?>
</td>
            <td><span style="cursor:pointer; text-decoration: underline;" onclick="$('.detail_<?php 
            echo $url;
            ?>
').toggle();"><?php 
            echo $dp->organization_name;
            ?>
</span></td>    
            <td></td>
            <td><?php 
            echo $n;
            ?>
</td>
        </tr>
        <?php 
            $obje = array();
            $obje["Rank"] = $num;
            $obje["Department"] = $dp->organization_name;
            $obje["URL"] = "";
            $obje["No Visits"] = $n;
            $arrExcel2[] = $obje;
            $key = $url;
            $newArr_dalam = array();
            foreach ($alog as $h) {
                $newArr_dalam[$h->b_log_url][] = $h;
            }
            $newArrs_dalam = array();
            foreach ($newArr_dalam as $url => $n) {
                $newArrs_dalam[$url] = count($n);
            }
            asort($newArrs_dalam);
            $jadi_dalam = array_reverse($newArrs_dalam);
            ?>
        <?php 
            $num_dalam = 0;
            foreach ($jadi_dalam as $url_dalam => $n_dalam) {
                $num_dalam++;
                ?>
        <tr  class="detail_<?php 
                echo $key;
                ?>
" style="display:none;">
            <td></td>
            <td></td>
            <td><?php 
                echo $url_dalam;
                ?>
 <a href="<?php 
                echo $url_dalam;
                ?>
" target="_blank">link</a></td>           
            <td><?php 
                echo $n_dalam;
                ?>
</td>
        </tr>
        <?php 
                $obje2 = array();
                $obje2["Rank"] = " ";
                $obje2["Department"] = " ";
                $obje2["URL"] = $url_dalam;
                $obje2["No Visits"] = $n_dalam;
                $arrExcel2[] = $obje2;
            }
            ?>
        
        <?php 
        }
        ?>
    </table>
</div>    
         <?php 
        /*
                $fname = "TopDepartment_".$year."_".$mon. ".csv";
                $file = fopen(_PHOTOPATH . "logs/" . $fname, "w+");
        
                foreach ($arrExcel as $line) {
                        fputcsv($file, explode(';', $line));
                }
        
                fclose($file);*/
        $fname = _PHOTOPATH . "logs/" . "TopDepartment_" . $year . "_" . $mon . ".xls";
        ExcelExporter::saveIt($arrExcel2, $fname);
    }
            }
        </script>
        <?php 
/*
 <script src="<?= _SPPATH; ?>plugins/jQuery_File_Upload/js/vendor/jquery.ui.widget.js"></script>
 <script src="<?= _SPPATH; ?>plugins/jQuery_File_Upload/js/jquery.iframe-transport.js"></script>
 <script src="<?= _SPPATH; ?>plugins/jQuery_File_Upload/js/jquery.fileupload.js"></script>
*/
?>
        <script>
            (function (i, s, o, g, r, a, m) {
                i['GoogleAnalyticsObject'] = r;
                i[r] = i[r] || function () {
                    (i[r].q = i[r].q || []).push(arguments)
                }, i[r].l = 1 * new Date();
                a = s.createElement(o),
                        m = s.getElementsByTagName(o)[0];
                a.async = 1;
                a.src = g;
                m.parentNode.insertBefore(a, m)
            })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');

            ga('create', 'UA-57533726-1', 'auto');
            ga('send', 'pageview');

        </script>
        <?php 
BLogger::addLog();
?>
    </body>
</html>
 public static function getUserOnlineLastXMinutes($min = 10)
 {
     $newtime = time() - $min * 60;
     $bl = new BLogger();
     $arrp = $bl->getWhere("b_timestamp > {$newtime} ORDER BY b_timestamp DESC");
     $arrSudah = array();
     $dipakai = array();
     foreach ($arrp as $log) {
         if (!in_array($log->b_log_userid, $arrSudah)) {
             $arrSudah[] = $log->b_log_userid;
             $dipakai[] = $log;
         }
     }
     $return['nr'] = count($dipakai);
     $return['unique'] = $dipakai;
     $return['all'] = $arrp;
     return $return;
 }
    public function show()
    {
        $url = $_GET['gurl'];
        $id = addslashes($_GET['id']);
        if ($id < 0) {
            die("no ID");
        }
        //Log
        BLogger::addLog("file_id = {$id}", "open_file");
        //echo $url;echo "<br>";
        //echo $id;
        $auth = 1;
        $if = new InputFileModel();
        if ($url == "dm") {
            $if = new DocumentsPortal();
            //cek parent id ada 2 "company policy"
            /*
            			$d = new DMWeb();
            			$arrCHild2 = $d->findChildren(2);
            			$arrCHild = explode(",", $arrCHild2);
            * 
            */
            //pr($arrCHild);
            //Perbaikan 27 Feb 2015
            // Cek parents terluarnya apakah dia saveable
            $if->getByID($id);
            //grand grand parents- init folder - folder awal
            $InitparentsFolder = $if->findInitParent();
            //folder simpannya
            $terletakDiFolder = new DocumentsPortalFolder();
            $terletakDiFolder->getByID($if->file_folder_id);
            //pr($InitparentsFolder);
            //cek KMType nya
            //untuk cek channel
            /*
             * LOAD page con, cek apakah bisa ini sub atau main con
             */
            $a = NewsChannel::myChannels();
            //pr($a);
            /*foreach($a as $chn){
                  $str = " page_channel_id = '$chn' ";
                  $imp[] = $str;
              }
              $wherechannel = implode("OR", $imp);
              $wherechannel = "(".$wherechannel.")";
              */
            $kmtype = new KMType();
            $arrKMTYPE = $kmtype->getWhere("km_folder_id = '{$InitparentsFolder->folder_id}'");
            //kalau punya channel id nya
            if (in_array($arrKMTYPE[0]->webapps_channel_id, $a)) {
                //boleh masuk
            } else {
                if ($_SESSION['DocumentPortal_view_only'] < 1) {
                } else {
                    //nggak boleh lihat
                    $auth = 0;
                }
                //die('Not Authorized To View this Documents');
            }
        }
        if ($auth) {
            $if->getByID($id);
            /*
             * cek folder if apakah ada di child
             */
            //if ($if->file_folder_id == 2 || in_array($if->file_folder_id, $arrCHild)) {
            if (!$InitparentsFolder->folder_saveable) {
                $if->bolehsave = "reg";
                //nosave
            } else {
                $if->bolehsave = "als";
                //save
            }
            //pr($if);
            $path = _SPPATH . $if->upload_url;
            $fil = $if->file_filename;
            $inp = new \Leap\View\InputFile();
            if (in_array($if->file_ext, $inp->arrImgExt)) {
                $this->showImage($if);
            } elseif (in_array($if->file_ext, $inp->arrVideoExt)) {
                $this->showVideo($if);
            } elseif ($if->file_ext == "pdf") {
                $this->showPDF($if);
            } else {
                $this->showDefault($if);
            }
        } else {
            ?>
<h2><?php 
            echo Lang::t('Not Authorized to view this documents');
            ?>
</h2>    
                    <?php 
        }
        //else auth
    }
 public function moveFileAction()
 {
     $fid = isset($_GET['fid']) ? addslashes($_GET['fid']) : die('no FID');
     // file id
     $to = isset($_GET['to']) ? addslashes($_GET['to']) : die('no To ID');
     $df = new DocumentsPortal();
     $df->getByID($fid);
     $df->file_folder_id = $to;
     $df->load = 1;
     $df->save();
     //log
     BLogger::addLog("file_id = {$fid} folder_id = {$to} ", "move_file");
 }
 public function uploadfiles()
 {
     $data = array();
     $c = isset($_GET['c']) ? addslashes($_GET['c']) : die('no c');
     $wc = isset($_GET['wc']) ? addslashes($_GET['wc']) : die('no wc');
     $t = isset($_GET['t']) ? addslashes($_GET['t']) : die('no t');
     $upload_location = _PHOTOPATH . "imports/";
     $upload_location = _PHOTOPATH;
     $fname = $wc . "__" . $c;
     $obj = new $c();
     //cek access right
     if (!$obj->crud_setting['import']) {
         die('not allowed');
     }
     if (isset($_GET['files'])) {
         $error_size = 0;
         $error = false;
         $files = array();
         $uploaddir = $upload_location;
         foreach ($_FILES as $file) {
             //$f->file_url = basename($file['name']);
             $ext = end(explode(".", $file['name']));
             //$f->file_ext = $ext;
             $ffile_filename = $fname . "." . $ext;
             //$f->file_date = leap_mysqldate();
             // if pdf
             //cek size
             $size_awal = $file['size'];
             $data_location = $uploaddir . $ffile_filename;
             $excels = array();
             unlink($data_location);
             if (move_uploaded_file($file['tmp_name'], $data_location)) {
                 $files[] = $uploaddir . $file['name'];
                 $ffile_size = filesize($data_location);
                 //size akhir
                 $size_akhir = $ffile_size;
                 //cek apakah tengah2 gagal
                 if ($size_awal != $size_akhir) {
                     //hapus file corrupt
                     unlink($data_location);
                     //delete file corrupt di db
                     //$f->delete($fid);
                     $error = true;
                     $error_size = 1;
                 } else {
                     if ($ext == "xls") {
                         // masukan ke data..
                         //disini extract excelnya
                         // ExcelFile($filename, $encoding);
                         $xls = new Spreadsheet_Excel_Reader();
                         // Set output Encoding.
                         $xls->setOutputEncoding('CP1251');
                         $xls->read($data_location);
                         //ambil main ID
                         $id_colom = Lang::t($obj->main_id);
                         $id_posisi = 0;
                         $posisi = array();
                         for ($i = 1; $i <= $xls->sheets[0]['numRows']; $i++) {
                             for ($j = 1; $j <= $xls->sheets[0]['numCols']; $j++) {
                                 //$excels[$i][] = "\"".$xls->sheets[0]['cells'][$i][$j]."\",";
                                 //bagian ID databasenya..mari kita extract pakai Lang
                                 if ($i == 1) {
                                     if ($xls->sheets[0]['cells'][$i][$j] == $id_colom) {
                                         $id_posisi = $j;
                                     }
                                     //simpan semua posisi ke array
                                     foreach ($obj->crud_import_allowed as $ids) {
                                         $lang = Lang::t($ids);
                                         if ($xls->sheets[0]['cells'][$i][$j] == $lang) {
                                             $posisi[$ids] = $j;
                                         }
                                     }
                                 } else {
                                     break;
                                 }
                                 //ada tidak ada ID
                                 //karena sekarang semua posisi sudah tahu
                                 //if($id_posisi==0)break;
                             }
                             //$excels[$i][] = "\n";
                             if ($id_posisi == 0) {
                                 break;
                             }
                             if ($i > 1) {
                                 //saving process
                                 $id_active = $xls->sheets[0]['cells'][$i][$id_posisi];
                                 $obj->getById($id_active);
                                 foreach ($obj->crud_import_allowed as $ids) {
                                     $attr_pos = $posisi[$ids];
                                     $obj->{$ids} = $xls->sheets[0]['cells'][$i][$attr_pos];
                                 }
                                 $obj->load = 1;
                                 $excels[$id_active] = $obj->save();
                             }
                         }
                     }
                     //$f->load = 1;
                     //$f->save();
                     //log
                     BLogger::addLog("classname = {$c}, webname = " . $wc, "import_data");
                 }
                 //else cek size
             } else {
                 $error = true;
                 //$f->delete($fid);
             }
         }
         $data = $error ? array('error' => 'There was an error uploading your files') : array('files' => $files, 'excels' => $excels);
     } else {
         $data = array('success' => 'Form was submitted', 'formData' => $_POST);
     }
     if ($error_size) {
         $data['err_size'] = 1;
     }
     //$data['fil'] = $_FILES;
     echo json_encode($data);
 }