aboutsummaryrefslogtreecommitdiff
path: root/bridges/LegifranceJOBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/LegifranceJOBridge.php')
-rw-r--r--bridges/LegifranceJOBridge.php126
1 files changed, 65 insertions, 61 deletions
diff --git a/bridges/LegifranceJOBridge.php b/bridges/LegifranceJOBridge.php
index cfbfad46..2d86c2ce 100644
--- a/bridges/LegifranceJOBridge.php
+++ b/bridges/LegifranceJOBridge.php
@@ -1,73 +1,77 @@
<?php
-class LegifranceJOBridge extends BridgeAbstract {
- const MAINTAINER = 'Pierre Mazière';
- const NAME = 'Journal Officiel de la République Française';
- // This uri returns a snippet of js. Should probably be https://www.legifrance.gouv.fr/jorf/jo/
- const URI = 'https://www.legifrance.gouv.fr/affichJO.do';
- const DESCRIPTION = 'Returns the laws and decrees officially registered daily in France';
+class LegifranceJOBridge extends BridgeAbstract
+{
+ const MAINTAINER = 'Pierre Mazière';
+ const NAME = 'Journal Officiel de la République Française';
+ // This uri returns a snippet of js. Should probably be https://www.legifrance.gouv.fr/jorf/jo/
+ const URI = 'https://www.legifrance.gouv.fr/affichJO.do';
+ const DESCRIPTION = 'Returns the laws and decrees officially registered daily in France';
- const PARAMETERS = array();
+ const PARAMETERS = [];
- private $author;
- private $timestamp;
- private $uri;
+ private $author;
+ private $timestamp;
+ private $uri;
- private function extractItem($section, $subsection = null, $origin = null){
- $item = array();
- $item['author'] = $this->author;
- $item['timestamp'] = $this->timestamp;
- $item['uri'] = $this->uri . '#' . count($this->items);
- $item['title'] = $section->plaintext;
+ private function extractItem($section, $subsection = null, $origin = null)
+ {
+ $item = [];
+ $item['author'] = $this->author;
+ $item['timestamp'] = $this->timestamp;
+ $item['uri'] = $this->uri . '#' . count($this->items);
+ $item['title'] = $section->plaintext;
- if(!is_null($origin)) {
- $item['title'] = '[ ' . $item['title'] . ' / ' . $subsection->plaintext . ' ] ' . $origin->plaintext;
- $data = $origin;
- } elseif(!is_null($subsection)) {
- $item['title'] = '[ ' . $item['title'] . ' ] ' . $subsection->plaintext;
- $data = $subsection;
- } else {
- $data = $section;
- }
+ if (!is_null($origin)) {
+ $item['title'] = '[ ' . $item['title'] . ' / ' . $subsection->plaintext . ' ] ' . $origin->plaintext;
+ $data = $origin;
+ } elseif (!is_null($subsection)) {
+ $item['title'] = '[ ' . $item['title'] . ' ] ' . $subsection->plaintext;
+ $data = $subsection;
+ } else {
+ $data = $section;
+ }
- $item['content'] = '';
- foreach($data->nextSibling()->find('a') as $content) {
- $text = $content->plaintext;
- $href = $content->nextSibling()->getAttribute('resource');
- $item['content'] .= '<p><a href="' . $href . '">' . $text . '</a></p>';
- }
- return $item;
- }
+ $item['content'] = '';
+ foreach ($data->nextSibling()->find('a') as $content) {
+ $text = $content->plaintext;
+ $href = $content->nextSibling()->getAttribute('resource');
+ $item['content'] .= '<p><a href="' . $href . '">' . $text . '</a></p>';
+ }
+ return $item;
+ }
- public function getIcon() {
- return 'https://www.legifrance.gouv.fr/img/favicon.ico';
- }
+ public function getIcon()
+ {
+ return 'https://www.legifrance.gouv.fr/img/favicon.ico';
+ }
- public function collectData(){
- $html = getSimpleHTMLDOM(self::URI)
- or $this->returnServer('Unable to download ' . self::URI);
+ public function collectData()
+ {
+ $html = getSimpleHTMLDOM(self::URI)
+ or $this->returnServer('Unable to download ' . self::URI);
- $this->author = trim($html->find('h2.titleJO', 0)->plaintext);
- $uri = $html->find('h2.titleELI', 0)->plaintext;
- $this->uri = trim(substr($uri, strpos($uri, 'https')));
- $this->timestamp = strtotime(substr($this->uri, strpos($this->uri, 'eli/jo/') + strlen('eli/jo/'), -5));
+ $this->author = trim($html->find('h2.titleJO', 0)->plaintext);
+ $uri = $html->find('h2.titleELI', 0)->plaintext;
+ $this->uri = trim(substr($uri, strpos($uri, 'https')));
+ $this->timestamp = strtotime(substr($this->uri, strpos($this->uri, 'eli/jo/') + strlen('eli/jo/'), -5));
- foreach($html->find('h3') as $section) {
- $subsections = $section->nextSibling()->find('h4');
- foreach($subsections as $subsection) {
- $origins = $subsection->nextSibling()->find('h5');
- foreach($origins as $origin) {
- $this->items[] = $this->extractItem($section, $subsection, $origin);
- }
- if(!empty($origins)) {
- continue;
- }
- $this->items[] = $this->extractItem($section, $subsection);
- }
- if(!empty($subsections)) {
- continue;
- }
- $this->items[] = $this->extractItem($section);
- }
- }
+ foreach ($html->find('h3') as $section) {
+ $subsections = $section->nextSibling()->find('h4');
+ foreach ($subsections as $subsection) {
+ $origins = $subsection->nextSibling()->find('h5');
+ foreach ($origins as $origin) {
+ $this->items[] = $this->extractItem($section, $subsection, $origin);
+ }
+ if (!empty($origins)) {
+ continue;
+ }
+ $this->items[] = $this->extractItem($section, $subsection);
+ }
+ if (!empty($subsections)) {
+ continue;
+ }
+ $this->items[] = $this->extractItem($section);
+ }
+ }
}