/** * Build the required return array for a single or multiple statements. * * @param array $statements Statements to return * @param array $params Parameters used to filter statements * * @return response * **/ public function returnArray($statements = array(), $params = array(), $debug = array()) { $array = array('X-Experience-API-Version' => \Config::get('xapi.using_version')); //replace replace &46; in keys with . //see http://docs.learninglocker.net/docs/statements#quirks for more info if (!empty($statements)) { foreach ($statements as &$s) { $s = \app\locker\helpers\Helpers::replaceHtmlEntity($s['statement']); } } $array['statements'] = $statements; //return total available statements $array['total'] = $this->statement->count($this->lrs->_id, $this->params); //set more link. 100 is our default limit. This should be a value that admins can //set, not hardcoded. if (isset($this->params['offset'])) { if (isset($this->params['limit'])) { $offset = $this->params['offset'] + $this->params['limit']; } else { $offset = $this->params['offset'] + 100; } } else { if (isset($this->params['limit'])) { $offset = $this->params['limit']; } else { $offset = 100; } } //set the more url if ($array['total'] > $offset) { //$url = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"; $url = "{$_SERVER['REQUEST_URI']}"; if (isset($this->params['offset'])) { if (strpos($url, '?offset=' . $this->params['offset']) !== false) { $url = str_replace('?offset=' . $this->params['offset'], '?offset=' . $offset, $url); } elseif (strpos($url, '&offset=' . $this->params['offset']) !== false) { $url = str_replace('&offset=' . $this->params['offset'], '&offset=' . $offset, $url); } else { $url = $url . '&offset=' . $offset; } } else { if (sizeof($this->params) > 0) { $url = $url . '&offset=' . $offset; } else { $url = $url . '?offset=' . $offset; } } $array['more'] = $url; } else { $array['more'] = ''; } $response = \Response::make($array, 200); //set consistent through data $current_date = \DateTime::createFromFormat('U.u', microtime(true)); $current_date->setTimezone(new \DateTimeZone(\Config::get('app.timezone'))); $current_date = $current_date->format('Y-m-d\\TH:i:s.uP'); $response->headers->set('X-Experience-API-Consistent-Through', $current_date); return $response; }
$stored = new Carbon\Carbon($statement['stored']); ?> <div class="row"> <div class="col-xs-12 col-sm-12 col-lg-12"> <div class="statement-row clearfix"> <span onclick="$('.state-{{ $statement['id'] }}').toggle();"><i class="icon icon-cog lightgrey pull-left"></i></span> <span class="pull-left statement-avatar"> <img src="{{ $avatar }}" alt='avatar' class="img-circle" /> </span> {{ $name }} <i>{{ $verb }}</i> <a href="{{ $object_id }}">{{{ $object }}}</a> <small>| {{ $stored->diffForHumans() }} ({{ $stored->toDayDateTimeString() }})</small> <div class="full-statement state-{{ $statement['id'] }}" style="display:none;"> <?php $statement = \app\locker\helpers\Helpers::replaceHtmlEntity($json); ?> <pre>{{{ json_encode($statement,JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) }}}</pre> </div> </div> </div> </div>