Пример #1
0
 /**
  * sends headers, reads out an image and then exits
  *
  * @param int $id - id of group to get thumbnail for
  * @access public
  */
 public function realImg($id)
 {
     if (!($group = $this->createEntity('Group')->findById($id)) || !$group->Picture) {
         PPHP::PExit();
     }
     $dir = new PDataDir('groups');
     if (!$dir->fileExists($group->Picture) || $dir->file_Size($group->Picture) == 0) {
         PPHP::PExit();
     }
     $img = new MOD_images_Image($dir->dirName() . '/' . $group->Picture);
     header('Content-type: ' . $img->getMimetype());
     $dir->readFile($group->Picture);
     PPHP::PExit();
 }
Пример #2
0
 public function generateStatsImages()
 {
     $statsDir = new PDataDir('statimages');
     $statsdir = $statsDir->dirName() . "/";
     $statsfile = "laststats.txt";
     if ($statsDir->fileExists($statsfile)) {
         $stats = fopen($statsdir . $statsfile, "r");
         $dateLine = fgets($stats);
         if ($dateLine == date('Y-m-d')) {
             return;
         }
     }
     $countryrank = $this->getMembersPerCountry();
     $loginrank = $this->getLastLoginRank();
     $loginrankgrouped = $this->getLastLoginRankGrouped();
     $statsall = $this->getStatsLogAll();
     $statslast = $this->getStatsLog2Month();
     $languages = $this->getLanguages();
     $preferredLanguages = $this->getPreferredLanguages();
     // get number of members per country
     $i = 0;
     foreach ($countryrank as $key => $val) {
         $country[$i] = $key;
         $countrycnt[$i] = $val;
         $i++;
     }
     // get last login grouped by time
     $i = 0;
     foreach ($loginrankgrouped as $key => $val) {
         $lastlogingrouped[$i] = $key;
         $lastlogingroupedcnt[$i] = $val;
         $i++;
     }
     // get login rank
     $i = 0;
     foreach ($loginrank as $key => $val) {
         $lastlogin[$i] = "\"" . $key . "\"";
         $lastlogincnt[$i] = "[" . $key . "," . $val . "]";
         $i++;
     }
     // get all values from stats table
     $i = 0;
     $labelsAllTime = $membersAllTime = $newMembersAllTime = $newMembersPercentAllTime = $membersLoggedInAllTime = $membersLoggedInPercentAllTime = $memberWithPositiveCommentsAllTime = $messageSentAllTime = $messageReadAllTime = array();
     foreach ($statsall as $val) {
         $membersAllTime[$i] = $val->NbActiveMembers;
         $yearweek = strtotime(substr($val->week, 0, 4) . "-W" . substr($val->week, 4, 2) . "-1");
         // echo $yearweek . ": " . date( "Y-m-d", $yearweek) . "<br />";
         $labelsAllTime[] = date("Y-m-d", $yearweek);
         if ($i == 0) {
             $newMembersAllTime[$i] = 0;
         } else {
             $newMembersAllTime[$i] = $membersAllTime[$i] - $membersAllTime[$i - 1];
         }
         if ($i == 0) {
             $newMembersPercentAllTime[$i] = 0;
         } else {
             if ($membersAllTime[$i] == 0) {
                 $newMembersPercentAllTime[$i] = 0;
             } else {
                 $newMembersPercentAllTime[$i] = $newMembersAllTime[$i] / $membersAllTime[$i] * 100;
             }
         }
         $messageSentAllTime[$i] = $val->NbMessageSent;
         $membersWithPositiveCommentsAllTime[$i] = $val->NbMemberWithOneTrust;
         $membersLoggedInAllTime[$i] = $val->NbMemberWhoLoggedToday;
         if ($membersAllTime[$i] == 0) {
             $membersLoggedInPercentAllTime[$i] = 0;
         } else {
             $membersLoggedInPercentAllTime[$i] = $membersLoggedInAllTime[$i] / $membersAllTime[$i] * 100;
         }
         $i++;
     }
     // get all values from stats table (last 2 months)
     $i = 0;
     $labelsLast2Month = $membersLast2Month = $newMembersLast2Month = $membersPercentLast2Month = $membersLoggedInLast2Month = $membersLoggedInPercentLast2Month = $memberWithPositiveCommentsLast2Month = $messageSentLast2Month = $messageReadLast2Month = array();
     foreach ($statslast as $val) {
         $membersLast2Month[$i] = $val->NbActiveMembers;
         if ($i == 0) {
             $newMembersLast2Month[0] = 0;
         } else {
             $newMembersLast2Month[$i] = $membersLast2Month[$i] - $membersLast2Month[$i - 1];
         }
         $labelsLast2Month[] = date("Y-m-d", strtotime("-" . (60 - $i) . "days"));
         if ($i == 0) {
             $newMembersPercentLast2Month[$i] = 0;
         } else {
             if ($membersLast2Month[$i - 1] == 0) {
                 $newMembersPercentLast2Month[$i] = 0;
             } else {
                 $newMembersPercentLast2Month[$i] = $newMembersLast2Month[$i] / $membersLast2Month[$i - 1] * 100;
             }
         }
         $messageSentLast2Month[$i] = $val->NbMessageSent;
         $membersWithPositiveCommentsLast2Month[$i] = $val->NbMemberWithOneTrust;
         $membersLoggedInLast2Month[$i] = $val->NbMemberWhoLoggedToday;
         if ($membersLast2Month[$i] == 0) {
             $membersLoggedInPercentLast2Month[$i] = 0;
         } else {
             $membersLoggedInPercentLast2Month[$i] = $membersLoggedInLast2Month[$i] / $membersLast2Month[$i] * 100;
         }
         $i++;
     }
     $this->drawCharts($statsdir . 'allmembers', 'Members', $membersAllTime, $labelsAllTime, $membersLast2Month, $labelsLast2Month);
     $this->drawCharts($statsdir . 'newmembers', 'Members', $newMembersAllTime, $labelsAllTime, $newMembersLast2Month, $labelsLast2Month);
     $this->drawCharts($statsdir . 'percentmembers', '% members', $newMembersPercentAllTime, $labelsAllTime, $newMembersPercentLast2Month, $labelsLast2Month);
     $this->drawCharts($statsdir . 'login', 'Members', $membersLoggedInAllTime, $labelsAllTime, $membersLoggedInLast2Month, $labelsLast2Month);
     $this->drawCharts($statsdir . 'percentlogin', '% members', $membersLoggedInPercentAllTime, $labelsAllTime, $membersLoggedInPercentLast2Month, $labelsLast2Month);
     $this->drawCharts($statsdir . 'trust', 'Members', $membersWithPositiveCommentsAllTime, $labelsAllTime, $membersWithPositiveCommentsLast2Month, $labelsLast2Month);
     $this->drawCharts($statsdir . 'messages', 'Messages', $messageSentAllTime, $labelsAllTime, $messageSentLast2Month, $labelsLast2Month);
     $this->drawPieChart($statsdir . 'loginpie', $lastlogingroupedcnt, $lastlogingrouped);
     $this->drawPieChart($statsdir . 'countrypie', $countrycnt, $country);
     $this->drawBarChart($statsdir . 'languagepie', 'Members', $languages, array_keys($languages));
     $this->drawPieChart($statsdir . 'preferredlanguagepie', $preferredLanguages, array_keys($preferredLanguages));
     $stats = fopen($statsdir . $statsfile, "w");
     fwrite($stats, date('Y-m-d'));
     fclose($stats);
 }
Пример #3
0
 public function thumbImg($id)
 {
     if (!($d = $this->_model->imageData($id))) {
         PPHP::PExit();
     }
     $tmpDir = new PDataDir('gallery/user' . $d->user_id_foreign);
     if (isset($_GET['t'])) {
         $thumbFile = 'thumb' . (int) $_GET['t'] . $d->file;
     } else {
         $thumbFile = 'thumb' . $d->file;
     }
     if (!$tmpDir->fileExists($thumbFile) || $tmpDir->file_Size($thumbFile) == 0) {
         if ($img = new MOD_images_Image($tmpDir->dirName() . '/' . $d->file)) {
             if (!$this->_model->createThumbnails($tmpDir, $img) || isset($_GET['t'])) {
                 $thumbFile = $d->file;
             }
         }
     }
     if (!$tmpDir->fileExists($thumbFile)) {
         $tmpDir = new PDataDir('gallery');
         $thumbFile = 'nopic.gif';
         $d->mimetype = 'image/gif';
     }
     header('Content-type: ' . $d->mimetype);
     $tmpDir->readFile($thumbFile);
     PPHP::PExit();
 }