Skip to content

Commit

Permalink
Adding query to extensions and search query additional tracking
Browse files Browse the repository at this point in the history
  • Loading branch information
bbaudry committed Nov 10, 2020
1 parent 12e3d50 commit 1e621db
Showing 1 changed file with 9 additions and 34 deletions.
43 changes: 9 additions & 34 deletions xapi.php
Original file line number Diff line number Diff line change
Expand Up @@ -203,52 +203,36 @@ private function prepareQueries($uri_query, RemoteLRS &$lrs = null) {
$q = [];
$url_query_tab = strpos($uri_query, "&") ? explode("&", $uri_query) : [$uri_query]; // are ther multiple queries
$trackAsExtension = $this->config->get('plugins.' . $this->pname . '.track_queries_as_extension');
// $this->grav['debugger']->addMessage('prepareQueries.$trackAsExtension '.$trackAsExtension);
// $this->grav['debugger']->addMessage($url_query_tab);
$track_serach_as_statement = $this->config->get('plugins.' . $this->pname . '.search_queries.track_as_search_statement');

$tmp = [];
foreach ($url_query_tab as $v) {
$tmp = explode("=", $v);
if (count($tmp) > 1) {
// $this->grav['debugger']->addMessage('prepareQueries.query '.$tmp[0]." => " .$tmp[1]);
if ($this->config->get('plugins.' . $this->pname . '.search_queries.track_as_search_statement') && $tmp[0] == $this->config->get('plugins.' . $this->pname . '.search_queries.key')) {
////https://w3id.org/xapi/dod-isd/verbs/found
$ext["https://" . $this->grav['uri']->host() . $tmp[0]] = $tmp[1];
$stmt = $this->prepareStatement('https://w3id.org/xapi/dod-isd/verbs/found', new Extensions(["https://" . $this->grav['uri']->host() . "/" . $tmp[0] => $tmp[1]]));
$searchQueryKey = $this->config->get('plugins.' . $this->pname . '.search_queries.key');
$searchQueryVerb = $this->config->get('plugins.' . $this->pname . '.search_queries.verb');
if ( $track_serach_as_statement && $tmp[0] == $searchQueryKey) {
$stmt = $this->prepareStatement($searchQueryVerb, new Extensions(["https://" . $this->grav['uri']->host() . "/" . $tmp[0] => $tmp[1]]));
// SEND STATEMENT
$r = $lrs->saveStatement($stmt);
// $this->grav['debugger']->addMessage($r);
//uncomment for debugging
/* * */
// $this->grav['debugger']->getCaller();
// $this->grav['debugger']->addMessage('trackFromServer success');
// $this->grav['debugger']->addMessage($r->content);
// $this->grav['debugger']->addMessage($r->httpResponse);
/**/

if (!$r->success) {
//uncomment for debugging
/* * */
$this->grav['debugger']->addMessage('trackFromServer failed');
$this->grav['debugger']->addMessage($r->httpResponse);
$this->grav['debugger']->addMessage($r->content);
$this->grav['debugger']->addMessage($stmt);


/* */
}
} else if ($trackAsExtension) {
$q["https://" . $this->grav['uri']->host() . "/" . $tmp[0]] = $tmp[1];
}
}
}
// $this->grav['debugger']->addMessage($q);
return $q;
}

private function trackFromServer(RemoteLRS &$lrs = null) {
//track_as_extension: true
$uri_query = $this->grav['uri']->query();
//
$queries = [];

if ($uri_query != "") {
Expand All @@ -257,10 +241,7 @@ private function trackFromServer(RemoteLRS &$lrs = null) {


if (count($queries) > 0) {
// $this->grav['debugger']->addMessage('should add extension ');
// $this->grav['debugger']->addMessage($queries);
$statement = $this->prepareStatement('', new Extensions($queries));
// $statement = $this->prepareStatement();
} else {
$statement = $this->prepareStatement();
}
Expand Down Expand Up @@ -336,9 +317,7 @@ private function prepareAgent(User $gravUser) {
*/
private function prepareActivity() {
$object = new \TinCan\Activity();

// $query = $this->grav['uri']->query() == '' ? '' : "?" . $this->grav['uri']->query();
// $activity_id = "https://" . $this->grav['uri']->host() . $this->grav['uri']->path() . $query;
//Activities are stored without the language and the queries
$activity_id = "https://" . $this->grav['uri']->host() . $this->grav['uri']->path();
$object->setId($activity_id);
$object->setDefinition($this->prepareActivitytDefintionFromPage($this->page));
Expand Down Expand Up @@ -442,12 +421,11 @@ private function filter() {
// DO not track modulars (does not affect pages made of collections)
if ($this->page->modular())
return false;
$this->grav['debugger']->addMessage('grav xapi filter');
// $this->grav['debugger']->addMessage('grav xapi filter');

// do not track routes and uri queries
// Do not track a certain page based on its template
$this->grav['debugger']->addMessage($this->config->get('plugins.' . $this->pname . '.filter.template'));
$this->grav['debugger']->addMessage($this->page->template());

if ($this->config->get('plugins.' . $this->pname . '.filter.template') && in_array($this->page->template(), $this->config->get('plugins.' . $this->pname . '.filter.template')))
return false;
//$this->grav['debugger']->addMessage('Template not filtererd : ' . $this->page->template());
Expand All @@ -465,7 +443,6 @@ private function filter() {
return false;
}
}
$this->grav['debugger']->addMessage('uri.routes not filtererd : ' . $uri->route());
// queries
if ($this->config->get('plugins.' . $this->pname . '.filter.uri.query')) {
$filtered_queries = $this->config->get('plugins.' . $this->pname . '.filter.uri.query');
Expand All @@ -474,7 +451,6 @@ private function filter() {
return false;
} else if ($uri->query($v['key']) === $v['value'])
return false;
//$this->grav['debugger']->addMessage('uri.query not filtererd : '.$uri->query($v['key']));
}
}
}
Expand All @@ -483,7 +459,6 @@ private function filter() {
if ($this->config->get('plugins.' . $this->pname . '.filter.users') && in_array($this->user->login, $this->config->get('plugins.' . $this->pname . '.filter.users'))) {
return false;
}
$this->grav['debugger']->addMessage('users not filtererd : ' . $this->user->login);
// Do not track users if they belong to a certain group
if ($this->config->get('plugins.' . $this->pname . '.filter.groups')) {
if (isset($this->user->groups)) {
Expand Down

0 comments on commit 1e621db

Please sign in to comment.