public function testLightenWithDefaultAdjustment() { $expected = array("336699" => "4080bf", "913399" => "b540bf"); foreach ($expected as $original => $darker) { $color = new Color($original); $this->assertEquals($darker, $color->lighten(), "Incorrect lighter color returned."); } }
function rrd_gen_graph() { $rrdgraph = $this->rrd_options(); $sources = $this->rrd_get_sources(); $raw = null; if ($this->scale) { $raw = '_raw'; } $i = 0; foreach ($this->tinstances as $tinstance) { foreach ($this->data_sources as $ds) { $rrdgraph[] = sprintf('DEF:min_%s%s=%s:%s:MIN', crc32hex($sources[$i]), $raw, $this->parse_filename($this->files[$tinstance]), $ds); $rrdgraph[] = sprintf('DEF:avg_%s%s=%s:%s:AVERAGE', crc32hex($sources[$i]), $raw, $this->parse_filename($this->files[$tinstance]), $ds); $rrdgraph[] = sprintf('DEF:max_%s%s=%s:%s:MAX', crc32hex($sources[$i]), $raw, $this->parse_filename($this->files[$tinstance]), $ds); $i++; } } if ($this->scale) { $i = 0; foreach ($this->tinstances as $tinstance) { foreach ($this->data_sources as $ds) { $rrdgraph[] = sprintf('CDEF:min_%s=min_%1$s_raw,%s,*', crc32hex($sources[$i]), $this->scale); $rrdgraph[] = sprintf('CDEF:avg_%s=avg_%1$s_raw,%s,*', crc32hex($sources[$i]), $this->scale); $rrdgraph[] = sprintf('CDEF:max_%s=max_%1$s_raw,%s,*', crc32hex($sources[$i]), $this->scale); $i++; } } } for ($i = count($sources) - 1; $i >= 0; $i--) { if ($i == count($sources) - 1) { $rrdgraph[] = sprintf('CDEF:area_%s=avg_%1$s', crc32hex($sources[$i])); } else { $rrdgraph[] = sprintf('CDEF:area_%s=area_%s,avg_%1$s,ADDNAN', crc32hex($sources[$i]), crc32hex($sources[$i + 1])); } } $c = 0; foreach ($sources as $source) { $color = is_array($this->colors) ? isset($this->colors[$source]) ? $this->colors[$source] : $this->colors[$c++] : $this->colors; $php_color = new Color($color); $rrdgraph[] = sprintf('AREA:max_%s#%s', crc32hex($source), $php_color->darken(20)); $rrdgraph[] = sprintf('LINE1:area_%s#%s', crc32hex($source), $php_color->lighten()); $rrdgraph[] = sprintf('AREA:min_%s#%s', crc32hex($source), $php_color->darken(10)); } $c = 0; foreach ($sources as $source) { $legend = empty($this->legend[$source]) ? $source : $this->legend[$source]; # $color = is_array($this->colors) ? (isset($this->colors[$source])?$this->colors[$source]:$this->colors[$c++]) : $this->colors; # $rrdgraph[] = sprintf('LINE1:area_%s#%s:%s', crc32hex($source), $this->validate_color($color), $this->rrd_escape($legend)); $rrdgraph[] = sprintf('GPRINT:min_%s:MIN:%s Min,', crc32hex($source), $this->rrd_format); $rrdgraph[] = sprintf('GPRINT:avg_%s:AVERAGE:%s Avg,', crc32hex($source), $this->rrd_format); $rrdgraph[] = sprintf('GPRINT:max_%s:MAX:%s Max,', crc32hex($source), $this->rrd_format); $rrdgraph[] = sprintf('GPRINT:avg_%s:LAST:%s Last\\l', crc32hex($source), $this->rrd_format); } return $rrdgraph; }
function mytheme_customize_css() { $main = get_theme_mod('main_color'); if (empty($main)) { $main = '#00a99d'; } $main2 = new Color("{$main}"); $licht = '#' . $main2->mix('ffffff', 10); $donker = '#' . $main2->darken(); $grijs = get_theme_mod('grijs'); if (empty($grijs)) { $grijs = '#e6e6e6'; } $grijs2 = new Color("{$grijs}"); $lichtgrijs = '#' . $grijs2->lighten(5); $donkergrijs = '#' . $grijs2->darken(10); if ($grijs == "#ffffff") { $hovergrijs = "#e6e6e6"; } else { $hovergrijs = $grijs; } $font = get_theme_mod('akvo_font'); if (empty($font)) { $font = 'Open Sans'; } $font_head = get_theme_mod('akvo_font_head'); if (empty($font_head)) { $font_head = 'Open Sans'; } $font_nav = get_theme_mod('akvo_font_nav'); if (empty($font_nav)) { $font_nav = 'Open Sans'; } $background = get_theme_mod('background'); if (empty($background)) { $background = '#ffffff'; } $info_bar_blog = get_theme_mod('info_bar_blog'); if (empty($info_bar_blog)) { $info_bar_blog = '#a3d165'; } $info_bar_news = get_theme_mod('info_bar_news'); if (empty($info_bar_news)) { $info_bar_news = '#f9ba41'; } $info_bar_video = get_theme_mod('info_bar_video'); if (empty($info_bar_video)) { $info_bar_video = '#f47b50'; } $info_bar_update = get_theme_mod('info_bar_update'); if (empty($info_bar_update)) { $info_bar_update = '#54bce8'; } $info_bar_flow = get_theme_mod('info_bar_flow'); if (empty($info_bar_flow)) { $info_bar_flow = '#54bce8'; } $info_bar_page = get_theme_mod('info_bar_page'); if (empty($info_bar_page)) { $info_bar_page = '#6d3a7d'; } $info_bar_media = get_theme_mod('info_bar_media'); if (empty($info_bar_media)) { $info_bar_media = '#9d897b'; } $info_bar_project = get_theme_mod('info_bar_project'); if (empty($info_bar_project)) { $info_bar_project = '#7381fa'; } $info_bar_map = get_theme_mod('info_bar_map'); if (empty($info_bar_map)) { $info_bar_map = '#ad1c3c'; } $info_bar_testimonial = get_theme_mod('info_bar_testimonial'); if (empty($info_bar_testimonial)) { $info_bar_testimonial = '#007ba8'; } ?> <style type="text/css"> html {background:<?php echo $donker; ?> ; } body { font-family: '<?php echo $font; ?> '; background: <?php echo $background; ?> ;} h1,h2,h3,h4,h5,h6 { font-family: '<?php echo $font_head; ?> '; } nav { font-family: '<?php echo $font_nav; ?> '; } .carousel .text, footer .twitter, nav ul.navbar-nav li.current-menu-item a { background: <?php echo $licht; ?> ; } nav .lang .fa-circle, nav ul.navbar-nav li i { color: <?php echo $licht; ?> ; } .btn-default, .filters #uwpqsf_id #uwpqsf_btn input, .carousel .carousel-indicators li.active, footer .custom { background: <?php echo $main; ?> ; } nav ul.navbar-nav li .fa-circle, a { color: <?php echo $main; ?> ; } a:hover {color:<?php echo $donker; ?> ;} .btn-default:focus, .btn-default:hover, .filters #uwpqsf_id #uwpqsf_btn input:focus, .filters #uwpqsf_id #uwpqsf_btn input:hover, footer .fixed, .comment-form footer .custom input[type=submit], .filters #uwpqsf_id #uwpqsf_btn footer .custom input, footer .custom .btn, footer .custom .comment-form input[type=submit], footer .custom .filters #uwpqsf_id #uwpqsf_btn input { background: <?php echo $donker; ?> ; } .box-wrap, .article .bg, article .bg, .filters, .breadcrumbs, .search-wrap { background: <?php echo $lichtgrijs; ?> ;} .box-wrap .infobar.blog, .box-wrap .infobar.type-blog { background: <?php echo $info_bar_blog; ?> ; } .box-wrap .infobar.post, .box-wrap .infobar.type-post { background: <?php echo $info_bar_news; ?> ; } .box-wrap .infobar.video, .box-wrap .infobar.type-video { background: <?php echo $info_bar_video; ?> ; } .box-wrap .infobar.update, .box-wrap .infobar.type-update { background: <?php echo $info_bar_update; ?> ; } .box-wrap .infobar.page, .box-wrap .infobar.type-page { background: <?php echo $info_bar_page; ?> ; } .box-wrap .infobar.media, .box-wrap .infobar.type-media { background: <?php echo $info_bar_media; ?> ; } .box-wrap .infobar.map, .box-wrap .infobar.type-map { background: <?php echo $info_bar_map; ?> ; } .box-wrap .infobar.project, .box-wrap .infobar.type-project { background: <?php echo $info_bar_project; ?> ; } .box-wrap .infobar.testimonial, .box-wrap .infobar.type-testimonial { background: <?php echo $info_bar_testimonial; ?> ; } .box-wrap .infobar.flow, .box-wrap .infobar.type-flow { background: <?php echo $info_bar_flow; ?> ; } nav ul.navbar-nav li {background: <?php echo $grijs; ?> ;} nav ul.navbar-nav .dropdown-menu li a {background: <?php echo $grijs; ?> ; } .clickable:hover .text {background: <?php echo $main; ?> ;} .box-wrap:hover {background: <?php echo $hovergrijs; ?> ;} .search-wrap .input-group-btn .btn {color:<?php echo $donkergrijs; ?> ;} nav ul.navbar-nav .dropdown-menu li { background: <?php echo $licht; ?> ;} .nav>li>a:focus, .nav>li>a:hover {background:<?php echo $licht; ?> ; } blockquote {border-color: $donkergrijs;} @media (min-width: 768px) { nav {background: <?php echo $lichtgrijs; ?> ;} nav ul.navbar-nav li a:hover, nav ul.navbar-nav li:hover a { background: <?php echo $licht; ?> ;} nav ul.navbar-nav .dropdown-menu li a:hover {background: <?php echo $main; ?> ; } } </style> <?php }
/** * Index page. * * @return void */ public function home() { if (Configure::read('Analytics.enabled') === true) { $httpAdapter = new CurlHttpAdapter(); $client = new Client(Configure::read('Analytics.client_id'), Configure::read('Analytics.private_key'), $httpAdapter); $service = new Service($client); $statistics = Cache::remember('statistics', function () use($service) { $statistics = new Query(Configure::read('Analytics.profile_id')); $statistics->setStartDate(new \DateTime(Configure::read('Analytics.start_date')))->setEndDate(new \DateTime())->setMetrics(array('ga:visits', 'ga:visitors', 'ga:pageviews', 'ga:pageviewsPerVisit', 'ga:avgtimeOnSite', 'ga:visitBounceRate', 'ga:percentNewVisits')); return $service->query($statistics); }, 'analytics'); $browsers = Cache::remember('browsers', function () use($service) { $browsers = new Query(Configure::read('Analytics.profile_id')); $browsers->setStartDate(new \DateTime(Configure::read('Analytics.start_date')))->setEndDate(new \DateTime())->setDimensions(array('ga:browser'))->setMetrics(array('ga:pageviews'))->setSorts(array('ga:pageviews'))->setFilters(array('ga:browser==Chrome,ga:browser==Firefox,ga:browser==Internet Explorer,ga:browser==Safari,ga:browser==Opera')); return $service->query($browsers); }, 'analytics'); $continents = Cache::remember('continents', function () use($service) { $continentsRows = new Query(Configure::read('Analytics.profile_id')); $continentsRows->setStartDate(new \DateTime(Configure::read('Analytics.start_date')))->setEndDate(new \DateTime())->setDimensions(array('ga:continent'))->setMetrics(array('ga:visitors'))->setSorts(array('ga:visitors'))->setFilters(array('ga:continent==Africa,ga:continent==Americas,ga:continent==Asia,ga:continent==Europe,ga:continent==Oceania')); $continentsRows = $service->query($continentsRows); $color = new Color("1abc9c"); $light = 1; $continents = []; foreach (array_reverse($continentsRows->getRows()) as $continentRow) { $continent = []; $continent['label'] = $continentRow[0]; $continent['data'] = $continentRow[1]; $continent['color'] = '#' . $color->lighten($light); array_push($continents, $continent); $light += 10; } return $continents; }, 'analytics'); $graphVisitors = Cache::remember('graphVisitors', function () use($service) { $graphVisitors = new Query(Configure::read('Analytics.profile_id')); $graphVisitors->setStartDate(new \DateTime('-7 days'))->setEndDate(new \DateTime())->setDimensions(array('ga:date'))->setMetrics(array('ga:visits', 'ga:pageviews'))->setSorts(array('ga:date')); return $service->query($graphVisitors); }, 'analytics'); $this->set(compact('statistics', 'browsers', 'continents', 'graphVisitors')); } $this->loadModel('Users'); //UsersGraph $usersGraphCount = $this->Users->find('all')->select(['date' => 'DATE_FORMAT(created,\'%d-%m-%Y\')', 'count' => 'COUNT(id)'])->group('DATE(created)')->order(['date' => 'desc'])->where(['UNIX_TIMESTAMP(DATE(created)) >' => (new \DateTime('-8 days'))->getTimestamp()])->toArray(); $usersGraph = array(); //Fill the new array with the date of the 8 past days and give them the value 0. for ($i = 0; $i < 8; $i++) { $date = new \DateTime("{$i} days ago"); $usersGraph[$date->format('d-m-Y')] = 0; } //Foreach value that we got in the database, parse the array by the key date, //and if the key exist, attribute the new value. foreach ($usersGraphCount as $user) { $usersGraph[$user->date] = intval($user->count); } $usersGraph = array_reverse($usersGraph); $usersCount = Number::format($this->Users->find()->count()); $this->loadModel('BlogArticles'); $articlesCount = Number::format($this->BlogArticles->find()->count()); $this->loadModel('BlogArticlesComments'); $commentsCount = Number::format($this->BlogArticlesComments->find()->count()); $this->loadModel('BlogCategories'); $categoriesCount = Number::format($this->BlogCategories->find()->count()); $this->set(compact('usersCount', 'articlesCount', 'commentsCount', 'categoriesCount', 'usersGraph')); }
/** * Set and get pie chart * * @param Collection $data * @return Collection */ public function getPieChart($data) { foreach ($data as $key => $value) { $i = 0; $dataset[$key] = collect(); foreach ($data->get($key) as $k => $v) { $color = new Color(config('chartjs.colors.' . $i)); $dataset[$key]->push(['value' => $v, 'color' => '#' . $color->lighten(20), 'highlight' => '#' . $color->lighten(25), 'label' => $k]); $i++; } } return $dataset; }