author | ymh <ymh.work@gmail.com> |
Thu, 24 Nov 2016 14:39:50 +0100 | |
changeset 445 | b1e5ad6b2a29 |
parent 405 | f239c8c5bb94 |
child 489 | 18613f052d56 |
permissions | -rw-r--r-- |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
<?php |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
|
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
namespace CorpusParole\Repositories; |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
|
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
use Config; |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
use Log; |
168
17f10b56c079
improve document model and propagate changes. This include the change of document fixtures to better reflect what the api is effectively returning
ymh <ymh.work@gmail.com>
parents:
125
diff
changeset
|
7 |
use CorpusParole\Models\DocumentResult; |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
use CorpusParole\Models\Document; |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
9 |
use CorpusParole\Libraries\CorpusParoleException; |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
10 |
use CorpusParole\Libraries\Utils; |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
11 |
use CorpusParole\Libraries\Sparql\SparqlClient; |
329
0a2c2ad49d75
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler
ymh <ymh.work@gmail.com>
parents:
326
diff
changeset
|
12 |
use CorpusParole\Libraries\Filters\CorpusFilterManager; |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
13 |
|
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
14 |
|
125 | 15 |
use CorpusParole\Services\LexvoResolverInterface; |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
16 |
|
19
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
17 |
use EasyRdf\Graph; |
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
18 |
|
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
19 |
use Illuminate\Pagination\LengthAwarePaginator; |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
20 |
use Illuminate\Pagination\Paginator; |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
22 |
use Es; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
23 |
|
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
/** |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
* Implement the DocumentRepository using EasyRdf |
19
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
26 |
* TODO: certainly split the transaction management (+add, +delete +transaction ) to an external class -> for this extend the sparql client. |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
*/ |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
class RdfDocumentRepository implements DocumentRepository { |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
|
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
30 |
const BASE_DOC_QUERY |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
31 |
= "SELECT". |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
32 |
" ?uri". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
33 |
" ?doc". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
34 |
" ?title". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
35 |
" ?issued". |
445
b1e5ad6b2a29
Display created date instead of issued
ymh <ymh.work@gmail.com>
parents:
405
diff
changeset
|
36 |
" ?created". |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
37 |
" ?modified". |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
38 |
" (group_concat(distinct ?language;separator=\", \") as ?lang) ". |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
39 |
" (group_concat(distinct ?publisher;separator=\", \") as ?publishers) ". |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
40 |
" WHERE {". |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
41 |
" GRAPH ?uri { ?doc a <http://www.europeana.eu/schemas/edm/ProvidedCHO>.". |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
42 |
" ?doc <http://purl.org/dc/elements/1.1/title> ?title.". |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
43 |
" OPTIONAL {?doc <http://purl.org/dc/elements/1.1/language> ?language.} ". |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
44 |
" OPTIONAL {?doc <http://purl.org/dc/terms/issued> ?issued.} ". |
445
b1e5ad6b2a29
Display created date instead of issued
ymh <ymh.work@gmail.com>
parents:
405
diff
changeset
|
45 |
" OPTIONAL {?doc <http://purl.org/dc/terms/created> ?created.} ". |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
46 |
" OPTIONAL {?doc <http://purl.org/dc/terms/modified> ?modified.} ". |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
47 |
" OPTIONAL {?doc <http://purl.org/dc/elements/1.1/publisher> ?publisher.}". |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
48 |
" }. ". |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
49 |
" %s". |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
50 |
" } ". |
445
b1e5ad6b2a29
Display created date instead of issued
ymh <ymh.work@gmail.com>
parents:
405
diff
changeset
|
51 |
" GROUP BY ?uri ?doc ?title ?issued ?created ?modified "; |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
52 |
|
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
53 |
const ADDITIONAL_DOC_QUERIES = [ |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
54 |
"SELECT". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
55 |
" ?uri". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
56 |
" ?doc". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
57 |
" (sample(distinct ?ext) as ?extent) ". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
58 |
"WHERE {". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
59 |
" GRAPH ?uri {". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
60 |
" ?s a <http://www.europeana.eu/schemas/edm/WebResource>. ". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
61 |
" ?uri <http://www.europeana.eu/schemas/edm/isShownBy> ?s. ". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
62 |
" ?uri <http://www.europeana.eu/schemas/edm/aggregatedCHO> ?doc. ". |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
63 |
" OPTIONAL {?s <http://purl.org/dc/terms/extent> ?ext.}". |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
64 |
" }. ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
65 |
" %s". |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
66 |
"} ". |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
67 |
"GROUP BY ?uri ?doc", |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
68 |
|
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
69 |
"SELECT". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
70 |
" ?uri". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
71 |
" ?doc". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
72 |
" (sample(distinct str(?s)) as ?transcript_url) ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
73 |
"WHERE {". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
74 |
" GRAPH ?uri {". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
75 |
" ?s a <http://www.europeana.eu/schemas/edm/WebResource>. ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
76 |
" ?uri <http://www.europeana.eu/schemas/edm/aggregatedCHO> ?doc. ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
77 |
" OPTIONAL {?s <http://purl.org/dc/elements/1.1/format> ?f.} ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
78 |
" }. ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
79 |
" FILTER(str(?f) IN ( \"application/xml\", \"application/pdf\" )). ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
80 |
" %s". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
81 |
"} ". |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
82 |
"GROUP BY ?uri ?doc" |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
83 |
]; |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
84 |
|
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
85 |
private $sparqlClient; |
125 | 86 |
private $lexvoResolver; |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
87 |
|
125 | 88 |
public function __construct(SparqlClient $sparqlClient, LexvoResolverInterface $lexvoResolver) { |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
89 |
$this->sparqlClient = $sparqlClient; |
125 | 90 |
$this->lexvoResolver = $lexvoResolver; |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
91 |
} |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
92 |
|
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
93 |
public function getSparqlClient() { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
94 |
return $this->sparqlClient; |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
95 |
} |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
96 |
|
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
97 |
private function getResGraph($doc) { |
276
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
98 |
|
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
99 |
if(empty((array)$doc)) { |
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
100 |
return null; |
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
101 |
} |
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
102 |
|
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
103 |
$newGraph = new Graph($doc->uri->getUri()); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
104 |
$newGraph->add($doc->uri, "rdf:type", $newGraph->resource("http://www.openarchives.org/ore/terms/Aggregation")); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
105 |
$newGraph->add($doc->uri, "http://www.europeana.eu/schemas/edm/aggregatedCHO", $doc->doc); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
106 |
$newGraph->add($doc->doc, "rdf:type", $newGraph->resource("http://www.europeana.eu/schemas/edm/ProvidedCHO")); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
107 |
if(isset($doc->title)) { |
19
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
108 |
$newGraph->add($doc->doc, "http://purl.org/dc/elements/1.1/title", $doc->title); |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
109 |
} |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
110 |
if(isset($doc->lang)) { |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
111 |
foreach(explode(", ", $doc->lang) as $langStr) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
112 |
$langStr = trim($langStr); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
113 |
if(filter_var($langStr, FILTER_VALIDATE_URL)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
114 |
$newGraph->addResource($doc->doc, "http://purl.org/dc/elements/1.1/language", $langStr); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
115 |
} else { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
116 |
$newGraph->addLiteral($doc->doc, "http://purl.org/dc/elements/1.1/language", $langStr); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
117 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
118 |
} |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
119 |
} |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
120 |
if(isset($doc->issued)) { |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
121 |
$newGraph->add($doc->doc, "http://purl.org/dc/terms/issued", $doc->issued); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
122 |
} |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
123 |
if(isset($doc->modified)) { |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
124 |
$newGraph->add($doc->doc, "http://purl.org/dc/terms/modified", $doc->modified); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
125 |
} |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
126 |
if(isset($doc->publishers)) { |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
127 |
$newGraph->add($doc->doc, "http://purl.org/dc/elements/1.1/publisher", $doc->publishers); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
128 |
} |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
129 |
if(isset($doc->extent)) { |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
130 |
$newGraph->add($doc->doc, "http://purl.org/dc/terms/extent", $doc->extent); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
131 |
} |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
132 |
if(isset($doc->transcript_url)) { |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
133 |
$newGraph->add($doc->doc, config('corpusparole.corpus_ontology_url').'transcript', $doc->transcript_url); |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
134 |
} |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
135 |
return $newGraph; |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
136 |
} |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
137 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
138 |
private function queryES($filters=null, $offset=null, $limit=null, $sort=null) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
139 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
140 |
if(empty($sort)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
141 |
$sort = ["_doc"]; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
142 |
} elseif (is_string($sort)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
143 |
$sort = [$sort]; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
144 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
145 |
if(is_null($filters)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
146 |
$filters = []; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
147 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
148 |
|
378
5b47eab083f3
implement filters on stats controller, put all filter logic in CorpusFilterManager
ymh <ymh.work@gmail.com>
parents:
376
diff
changeset
|
149 |
$filterManager = new CorpusFilterManager(); |
5b47eab083f3
implement filters on stats controller, put all filter logic in CorpusFilterManager
ymh <ymh.work@gmail.com>
parents:
376
diff
changeset
|
150 |
$qFilterParts = $filterManager->buildESFilters($filters); |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
151 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
152 |
$query = [ |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
153 |
'index' => config('corpusparole.elasticsearch_index'), |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
154 |
'body' => [ |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
155 |
"size" => empty($limit)?0:$limit, |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
156 |
"from" => $offset, |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
157 |
"sort" => $sort |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
158 |
] |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
159 |
]; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
160 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
161 |
if(count($qFilterParts)>0) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
162 |
$query['body']['query'] = ['constant_score' => [ |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
163 |
'filter' => [ |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
164 |
'bool' => [ |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
165 |
'must' => $qFilterParts |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
166 |
] |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
167 |
] |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
168 |
] ]; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
169 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
170 |
|
378
5b47eab083f3
implement filters on stats controller, put all filter logic in CorpusFilterManager
ymh <ymh.work@gmail.com>
parents:
376
diff
changeset
|
171 |
Log::debug("QUERY :"); |
5b47eab083f3
implement filters on stats controller, put all filter logic in CorpusFilterManager
ymh <ymh.work@gmail.com>
parents:
376
diff
changeset
|
172 |
Log::debug(json_encode($query, JSON_PRETTY_PRINT)); |
5b47eab083f3
implement filters on stats controller, put all filter logic in CorpusFilterManager
ymh <ymh.work@gmail.com>
parents:
376
diff
changeset
|
173 |
Log::debug("FILTERS :"); |
5b47eab083f3
implement filters on stats controller, put all filter logic in CorpusFilterManager
ymh <ymh.work@gmail.com>
parents:
376
diff
changeset
|
174 |
Log::debug(json_encode($filters, JSON_PRETTY_PRINT)); |
5b47eab083f3
implement filters on stats controller, put all filter logic in CorpusFilterManager
ymh <ymh.work@gmail.com>
parents:
376
diff
changeset
|
175 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
176 |
$esRes = Es::search($query); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
177 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
178 |
return ['total' => $esRes['hits']['total'], 'documents' => array_map(function($r) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
179 |
return $r['_id']; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
180 |
}, $esRes['hits']['hits'])]; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
181 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
182 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
183 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
184 |
/** |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
185 |
* Query docs. |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
186 |
* if $filter is empty or null and $sort is '_graph', the documents list is fetched from the triple store, otherwise, They are fetched from ElasticSearch |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
187 |
*/ |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
188 |
private function queryDocs($filters=null, $offset=null, $limit=null, $sort=null) { |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
189 |
|
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
190 |
$resDocs = []; |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
191 |
|
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
192 |
$limitsClauses = []; |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
193 |
$sortClauseStr = ""; |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
194 |
$limitsClausesStr = ""; |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
195 |
$filterUris = ""; |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
196 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
197 |
if(empty($filters) && $sort === "_graph") { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
198 |
if(!is_null($offset)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
199 |
array_push($limitsClauses, "OFFSET $offset"); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
200 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
201 |
if(!is_null($limit)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
202 |
array_push($limitsClauses, "LIMIT $limit"); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
203 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
204 |
if(!empty($limitsClauses)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
205 |
$limitsClausesStr = "\n" . join(" ", $limitsClauses); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
206 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
207 |
$sortClauseStr = "\n ORDER BY ?uri"; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
208 |
$total = $this->getCount(); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
209 |
} else { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
210 |
$esRes = $this->queryES($filters, $offset, $limit); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
211 |
// WARNING: we count on the fact that php keep keys order |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
212 |
$total = intval($esRes['total']); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
213 |
foreach($esRes['documents'] as $esDocId) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
214 |
$uri = config('corpusparole.corpus_doc_id_base_uri_prefix').$esDocId; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
215 |
$resDocs[$uri] = null; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
216 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
217 |
if(count($resDocs) > 0) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
218 |
$filterUris = "FILTER(?uri in (<".join(">, <" , array_keys($resDocs)).">)) "; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
219 |
} else { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
220 |
return ['meta' => [ 'total'=> $total ], 'documents' => []]; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
221 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
222 |
|
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
223 |
} |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
224 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
225 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
226 |
$sparqlQuery = sprintf(self::BASE_DOC_QUERY.$sortClauseStr.$limitsClausesStr, $filterUris); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
227 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
228 |
$docs = $this->sparqlClient->query($sparqlQuery); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
229 |
|
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
230 |
foreach($docs as $doc) { |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
231 |
$graph = $this->getResGraph($doc); |
276
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
232 |
if(is_null($graph)) { |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
233 |
Log::debug("NULL GRAPH - odd"); |
276
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
234 |
continue; |
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
235 |
} |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
236 |
$uri = $doc->uri->getUri(); |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
237 |
$resDocs[$uri] = $graph; |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
238 |
} |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
239 |
|
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
240 |
if(count($resDocs) == 0) { |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
241 |
return ['meta' => [ 'total'=> $total ], 'documents' => []]; |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
242 |
} |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
243 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
244 |
if(empty($filterUris)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
245 |
$filterUris = "FILTER(?uri in (<".join(">, <" , array_keys($resDocs)).">)) "; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
246 |
} |
275
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
247 |
|
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
248 |
foreach(self::ADDITIONAL_DOC_QUERIES as $query) { |
a4d8618c2f1b
add transcript_url property on document list results
ymh <ymh.work@gmail.com>
parents:
261
diff
changeset
|
249 |
$docs = $this->sparqlClient->query(sprintf($query, $filterUris)); |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
250 |
foreach($docs as $doc) { |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
251 |
$graph = $this->getResGraph($doc); |
276
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
252 |
if(is_null($graph)) { |
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
253 |
continue; |
ef32bf573d9c
correct error in test with empty document returned by query
ymh <ymh.work@gmail.com>
parents:
275
diff
changeset
|
254 |
} |
261
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
255 |
|
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
256 |
$uri = $doc->uri->getUri(); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
257 |
if(array_key_exists($uri, $resDocs)) { |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
258 |
$resDocs[$uri] = Utils::mergeGraphs($resDocs[$uri], $graph); |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
259 |
} else { |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
260 |
$resDocs[$uri] = $graph; |
02e2396bcbbc
Migrate to ember 2.7 + correct jquery null context error + declare shim for popcorn (instead of silencing the JSHint error)
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
261 |
} |
28 | 262 |
} |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
263 |
} |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
264 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
265 |
$documentsResults = array_map(function($g) { return new DocumentResult($g->getUri(), $g); }, array_values($resDocs)); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
266 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
267 |
return ['meta' => [ 'total'=> $total ], 'documents' => $documentsResults]; |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
268 |
} |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
269 |
|
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
270 |
public function all() { |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
271 |
return $this->queryDocs(null, null, null, "_graph")['documents']; |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
272 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
273 |
|
306
3fccf43160a7
Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents:
277
diff
changeset
|
274 |
public function get($id, $short=false) { |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
275 |
|
122 | 276 |
if(strpos($id, config('corpusparole.corpus_id_scheme')) === 0) { |
277 |
$id = substr($id, strlen(config('corpusparole.corpus_id_scheme'))); |
|
278 |
} |
|
19
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
279 |
$docUri = Config::get('corpusparole.corpus_doc_id_base_uri').$id; |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
280 |
|
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
281 |
// We want the CBD (Concise Bounded Description, cf. http://www.w3.org/Submission/CBD/) |
405
f239c8c5bb94
migrate to rdf4j (2.1.1) from sesame (4.1.1)
ymh <ymh.work@gmail.com>
parents:
378
diff
changeset
|
282 |
// WARNING: This seems to work in rdf4j for our dataset. |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
283 |
$doc = $this->sparqlClient->query( |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
284 |
"CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <$docUri> { ?s ?p ?o } }" |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
285 |
); |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
286 |
//TODO: return null if not found |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
287 |
if($doc->isEmpty()) { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
288 |
return null; |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
289 |
} |
169
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
168
diff
changeset
|
290 |
//print($doc->dump()); |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
291 |
|
28 | 292 |
// clone the graph to force the URI |
168
17f10b56c079
improve document model and propagate changes. This include the change of document fixtures to better reflect what the api is effectively returning
ymh <ymh.work@gmail.com>
parents:
125
diff
changeset
|
293 |
$DocumentKlass = $short?DocumentResult::class:Document::class; |
17f10b56c079
improve document model and propagate changes. This include the change of document fixtures to better reflect what the api is effectively returning
ymh <ymh.work@gmail.com>
parents:
125
diff
changeset
|
294 |
return new $DocumentKlass($docUri, new Graph($docUri, $doc->toRdfPhp())); |
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
295 |
|
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
296 |
} |
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
297 |
|
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
298 |
/** |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
299 |
* save document. |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
300 |
* @return boolean true if a transaction was started, false otherwise |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
301 |
* @throws CorpusParoleException if one of the operation could not be performed |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
302 |
*/ |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
303 |
public function save(Document $doc) { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
304 |
|
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
305 |
$transactionStarted = $this->sparqlClient->startTransaction(); |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
306 |
|
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
307 |
try { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
308 |
foreach($doc->getDeltaList() as $delta) { |
277
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
276
diff
changeset
|
309 |
$this->sparqlClient->deleteWhere($delta->getDeleteWhere(), $delta->getUri()); |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
310 |
$this->sparqlClient->delete($delta->getDeletedGraph()); |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
311 |
$this->sparqlClient->add($delta->getAddedGraph()); |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
312 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
313 |
if($transactionStarted) { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
314 |
$transactionStarted = false; |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
315 |
return $this->sparqlClient->commit(); |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
316 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
317 |
else { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
318 |
return false; |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
319 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
320 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
321 |
catch(CorpusParoleException $e) { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
322 |
if($transactionStarted) { |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
323 |
$this->sparqlClient->rollback(); |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
324 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
325 |
throw $e; |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
326 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
327 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
328 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
329 |
public function getCount($filters=null) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
330 |
$count = 0; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
331 |
if(empty($filters)) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
332 |
$res = $this->sparqlClient->query("SELECT (COUNT (DISTINCT ?g) as ?count) WHERE { GRAPH ?g { ?s a <http://www.europeana.eu/schemas/edm/ProvidedCHO> } }"); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
333 |
assert(!is_null($res) && count($res)==1); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
334 |
$count = intval($res[0]->count->getValue()); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
335 |
} else { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
336 |
$esRes = $this->queryES($filters, 0, 0); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
337 |
$count = intval($esRes['hits']['total']); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
338 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
339 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
340 |
return $count; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
341 |
|
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
342 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
343 |
|
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
344 |
//SELECT ?g WHERE { GRAPH ?g { ?s ?p ?o } } |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
345 |
|
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
346 |
/** |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
347 |
* Paginate all document as a paginator. |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
348 |
* |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
349 |
* @param int $perPage |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
350 |
* @param string $pageName |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
351 |
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
352 |
*/ |
22
a50cbd7d702f
small change in pagination and add missing .env template
ymh <ymh.work@gmail.com>
parents:
20
diff
changeset
|
353 |
public function paginateAll($perPage = 15, $pageName = 'page', $page = null) |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
354 |
{ |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
355 |
return $this->paginate(null, $perPage, $pageName, null); |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
356 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
357 |
|
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
358 |
/** |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
359 |
* Paginate filtered document as a paginator. |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
360 |
* |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
361 |
* @param array $filters |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
362 |
* @param int $perPage |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
363 |
* @param string $pageName |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
364 |
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
365 |
*/ |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
366 |
public function paginate($filters = null, $perPage = 15, $pageName = 'page', $page = null, $sort=null) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
367 |
|
19
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
368 |
assert(is_numeric($perPage)); |
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
369 |
|
22
a50cbd7d702f
small change in pagination and add missing .env template
ymh <ymh.work@gmail.com>
parents:
20
diff
changeset
|
370 |
if(is_null($page)) { |
a50cbd7d702f
small change in pagination and add missing .env template
ymh <ymh.work@gmail.com>
parents:
20
diff
changeset
|
371 |
$page = Paginator::resolveCurrentPage($pageName); |
a50cbd7d702f
small change in pagination and add missing .env template
ymh <ymh.work@gmail.com>
parents:
20
diff
changeset
|
372 |
} |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
373 |
|
20
a9b98b16b053
add contributor list + edition pane
ymh <ymh.work@gmail.com>
parents:
19
diff
changeset
|
374 |
assert(is_null($page) || is_numeric($page)); |
19
eadaf0b8f02e
Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents:
4
diff
changeset
|
375 |
|
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
376 |
$offset = max(0,($page - 1) * $perPage); |
20
a9b98b16b053
add contributor list + edition pane
ymh <ymh.work@gmail.com>
parents:
19
diff
changeset
|
377 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
378 |
$results = $this->queryDocs($filters, $offset, $perPage, $sort); |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
379 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
380 |
return new LengthAwarePaginator($results['documents'], $results['meta']['total'], $perPage, $page, [ |
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
381 |
'path' => Paginator::resolveCurrentPath(), |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
382 |
'pageName' => $pageName, |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
383 |
]); |
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
384 |
|
4
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
385 |
} |
f55970e41793
first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents:
3
diff
changeset
|
386 |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
387 |
|
125 | 388 |
/** |
389 |
* Resolve lexvo id for all documents in the list |
|
390 |
* this allow to optimise the call of lexvo repository |
|
391 |
* @param $docList Array: a list (Array) of document to resolve |
|
392 |
*/ |
|
393 |
public function resolveLexvo(Array $docList) { |
|
394 |
||
395 |
$languageIds = []; |
|
396 |
#get the list pf language needing resolving |
|
397 |
foreach ($docList as $doc) { |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
398 |
if(!empty($doc->getLanguagesValue()) && is_null($doc->getLanguagesResolved())) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
399 |
foreach($doc->getLanguagesValue() as $lang) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
400 |
$languageIds[$lang]=true; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
401 |
} |
125 | 402 |
} |
403 |
} |
|
404 |
||
405 |
# call LexvoResolver |
|
406 |
$langNames = $this->lexvoResolver->getNames(array_keys($languageIds)); |
|
407 |
||
408 |
foreach ($docList as $doc) { |
|
326
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
409 |
if(!empty($doc->getLanguagesValue()) && is_null($doc->getLanguagesResolved())) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
410 |
$langResolved = []; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
411 |
foreach($doc->getLanguagesValue() as $lang) { |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
412 |
$langResolved[] = $langNames[$lang]; |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
413 |
} |
226d5b17a119
- First implementation of filter for languages.
ymh <ymh.work@gmail.com>
parents:
306
diff
changeset
|
414 |
$doc->setLanguageResolved($langResolved); |
125 | 415 |
} |
416 |
} |
|
417 |
||
418 |
return $docList; |
|
419 |
} |
|
2
00e2916104fe
Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
420 |
} |