summaryrefslogtreecommitdiff
path: root/app/views/helpers/export/articles.phtml
blob: 2ad4a3abf58ff911e68eabadded4e6f43cfe696f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
	$username = Minz_Session::param('currentUser', '_');

	$options = 0;
	if (version_compare(PHP_VERSION, '5.4.0') >= 0) {
		$options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
	}

	$articles = array(
		'id' => 'user/' . str_replace('/', '', $username) . '/state/org.freshrss/' . $this->type,
		'title' => $this->list_title,
		'author' => $username,
		'items' => array(),
	);

	echo rtrim(json_encode($articles, $options), " ]}\n\r\t");
	$first = true;

	foreach ($this->entriesRaw as $entryRaw) {
		$entry = FreshRSS_EntryDAO::daoToEntry($entryRaw);
		if (!isset($this->feed)) {
			$feed = FreshRSS_CategoryDAO::findFeed($this->categories, $entry->feed ());
		} else {
			$feed = $this->feed;
		}

		$article = array(
			'id' => $entry->guid(),
			'categories' => array_values($entry->tags()),
			'title' => $entry->title(),
			'author' => $entry->author(),
			'published' => $entry->date(true),
			'updated' => $entry->date(true),
			'alternate' => array(array(
				'href' => $entry->link(),
				'type' => 'text/html',
			)),
			'content' => array(
				'content' => $entry->content(),
			),
			'origin' => array(
				'streamId' => $feed->id(),
				'title' => $feed->name(),
				'htmlUrl' => $feed->website(),
				'feedUrl' => $feed->url(),
			)
		);

		if ($first) {
			$first = false;
		} else {
			echo ",\n";
		}
		echo json_encode($article, $options);
	}

	echo "\n]}\n";