kopia lustrzana https://github.com/magicbug/Cloudlog
commit
2c44517370
|
@ -19,6 +19,8 @@ class Dayswithqso extends CI_Controller {
|
|||
|
||||
$data['result'] = $this->dayswithqso_model->getDaysWithQso();
|
||||
$data['streaks'] = $this->dayswithqso_model->getLongestStreak();
|
||||
$data['currentstreak'] = $this->dayswithqso_model->getCurrentStreak();
|
||||
$data['almostcurrentstreak'] = $this->dayswithqso_model->getAlmostCurrentStreak();
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('dayswithqso/index');
|
||||
|
|
|
@ -24,6 +24,82 @@ class Dayswithqso_model extends CI_Model
|
|||
return $query->result();
|
||||
}
|
||||
|
||||
/*
|
||||
* Function returns current streak
|
||||
*/
|
||||
function getCurrentStreak() {
|
||||
$dates = $this->getDates();
|
||||
$dates = array_reverse($dates);
|
||||
$streak = 1;
|
||||
$firstrun = true;
|
||||
|
||||
$dateprev = date_create(date('Y-m-d'));
|
||||
|
||||
foreach($dates as $date) { // Loop through the result set
|
||||
$datecurr = date_create($date->date);
|
||||
$diff = $dateprev->diff($datecurr)->format("%a"); // Getting date difference between current date and previous date in array
|
||||
|
||||
if ($diff == 0) {
|
||||
$streaks['highstreak'] = $streak;
|
||||
$streaks['endstreak'] = $datecurr->format('Y-m-d');
|
||||
$streaks['beginstreak'] = $datecurr->format('Y-m-d');
|
||||
$firstrun = false;
|
||||
}
|
||||
else if ($diff == 1 and !$firstrun) { // If diff = 1, means that we are on a streak
|
||||
$streaks['highstreak'] = ++$streak;
|
||||
$streaks['beginstreak'] = $datecurr->sub(new DateInterval('P'.($streak-1).'D'))->format('Y-m-d');
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
$dateprev = date_create($date->date);
|
||||
}
|
||||
|
||||
if (isset($streaks) && is_array($streaks)) {
|
||||
return $streaks;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Function returns streak that ended yesterday, but can be continued if a qso is made today
|
||||
*/
|
||||
function getAlmostCurrentStreak() {
|
||||
$dates = $this->getDates();
|
||||
$dates = array_reverse($dates);
|
||||
$streak = 1;
|
||||
$firstrun = true;
|
||||
|
||||
$dateprev = date_create(date('Y-m-d'));
|
||||
|
||||
foreach($dates as $date) { // Loop through the result set
|
||||
$datecurr = date_create($date->date);
|
||||
$diff = $dateprev->diff($datecurr)->format("%a"); // Getting date difference between current date and previous date in array
|
||||
|
||||
if ($diff == 1 && $firstrun == true) {
|
||||
$streaks['highstreak'] = $streak++;
|
||||
$streaks['endstreak'] = $datecurr->format('Y-m-d');
|
||||
$streaks['beginstreak'] = $datecurr->format('Y-m-d');
|
||||
$firstrun = false;
|
||||
}
|
||||
else if ($diff == 1 && $firstrun == false) {
|
||||
$streaks['highstreak'] = $streak++;
|
||||
$streaks['beginstreak'] = $datecurr->format('Y-m-d');
|
||||
} else {
|
||||
//$streaks['highstreak'] = $streak;
|
||||
//$streaks['beginstreak'] = $datecurr->format('Y-m-d');
|
||||
break;
|
||||
}
|
||||
$dateprev = date_create($date->date);
|
||||
}
|
||||
|
||||
if (isset($streaks) && is_array($streaks)) {
|
||||
return $streaks;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Function returns the 10 longest streaks of QSOs based on all QSO dates in the log on active station profile
|
||||
*/
|
||||
|
|
|
@ -70,4 +70,52 @@
|
|||
echo '<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>No streak found!</div>';
|
||||
}
|
||||
?>
|
||||
|
||||
<h2>Current streak with QSOs in the log</h2>
|
||||
<?php
|
||||
if (is_array($currentstreak)) {
|
||||
echo '<div id="streaks" class="table-responsive"><table class="qsotable table table-bordered table-hover table-striped table-condensed">';
|
||||
|
||||
echo '<tr>';
|
||||
echo '<th style=\'text-align: center\'>Current Streak (Continues days with QSOs)</th>';
|
||||
echo '<th style=\'text-align: center\'>Begin date</th>';
|
||||
echo '<th style=\'text-align: center\'>End date</th>';
|
||||
echo '</tr>';
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td style=\'text-align: center\'>' . $currentstreak['highstreak'] . '</td>';
|
||||
$beginstreak_newdate = strtotime($currentstreak['beginstreak']);
|
||||
echo '<td style=\'text-align: center\'>' . date($custom_date_format, $beginstreak_newdate) . '</td>';
|
||||
$endstreak_newdate = strtotime($currentstreak['endstreak']);
|
||||
echo '<td style=\'text-align: center\'>' . date($custom_date_format, $endstreak_newdate) . '</td>';
|
||||
echo '</tr>';
|
||||
|
||||
echo '</table></div>';
|
||||
}
|
||||
elseif (is_array($almostcurrentstreak)) {
|
||||
?>
|
||||
<p>If you make a QSO today, you can continue to extend your streak, else your current streak will be broken!</p>
|
||||
<?php
|
||||
echo '<div id="streaks" class="table-responsive"><table class="qsotable table table-bordered table-hover table-striped table-condensed">';
|
||||
|
||||
echo '<tr>';
|
||||
echo '<th style=\'text-align: center\'>Current Streak (Continues days with QSOs)</th>';
|
||||
echo '<th style=\'text-align: center\'>Begin date</th>';
|
||||
echo '<th style=\'text-align: center\'>End date</th>';
|
||||
echo '</tr>';
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td style=\'text-align: center\'>' . $almostcurrentstreak['highstreak'] . '</td>';
|
||||
$beginstreak_newdate = strtotime($almostcurrentstreak['beginstreak']);
|
||||
echo '<td style=\'text-align: center\'>' . date($custom_date_format, $beginstreak_newdate) . '</td>';
|
||||
$endstreak_newdate = strtotime($almostcurrentstreak['endstreak']);
|
||||
echo '<td style=\'text-align: center\'>' . date($custom_date_format, $endstreak_newdate) . '</td>';
|
||||
echo '</tr>';
|
||||
|
||||
echo '</table></div>';
|
||||
}
|
||||
else {
|
||||
echo '<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>No current streak found!</div>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
|
Ładowanie…
Reference in New Issue