diff options
-rwxr-xr-x | inc/poche/Database.class.php | 23 | ||||
-rwxr-xr-x | inc/poche/Poche.class.php | 8 | ||||
-rwxr-xr-x | inc/poche/Tools.class.php | 14 | ||||
-rw-r--r--[-rwxr-xr-x] | install/poche.sqlite | bin | 393216 -> 393216 bytes | |||
-rwxr-xr-x | themes/baggy/home.twig | 9 |
5 files changed, 26 insertions, 28 deletions
diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php index dddb2512..a222ed39 100755 --- a/inc/poche/Database.class.php +++ b/inc/poche/Database.class.php | |||
@@ -398,6 +398,21 @@ class Database { | |||
398 | return $query; | 398 | return $query; |
399 | } | 399 | } |
400 | 400 | ||
401 | |||
402 | private function _getDomain($url) | ||
403 | { | ||
404 | return parse_url($url, PHP_URL_HOST); | ||
405 | } | ||
406 | |||
407 | private function _getReadingTime($text) { | ||
408 | $word = str_word_count(strip_tags($text)); | ||
409 | $minutes = floor($word / 200); | ||
410 | $seconds = floor($word % 200 / (200 / 60)); | ||
411 | $time = array('minutes' => $minutes, 'seconds' => $seconds); | ||
412 | |||
413 | return $minutes; | ||
414 | } | ||
415 | |||
401 | /** | 416 | /** |
402 | * | 417 | * |
403 | * @param string $url | 418 | * @param string $url |
@@ -407,8 +422,12 @@ class Database { | |||
407 | * @return integer $id of inserted record | 422 | * @return integer $id of inserted record |
408 | */ | 423 | */ |
409 | public function add($url, $title, $content, $user_id, $isFavorite=0, $isRead=0) { | 424 | public function add($url, $title, $content, $user_id, $isFavorite=0, $isRead=0) { |
410 | $sql_action = 'INSERT INTO entries ( url, title, content, user_id, is_fav, is_read ) VALUES (?, ?, ?, ?, ?, ?)'; | 425 | $readingTime = $this->_getReadingTime($content); |
411 | $params_action = array($url, $title, $content, $user_id, $isFavorite, $isRead); | 426 | $domainName = $this->_getDomain($url); |
427 | $date = date('Y-m-d H:i:s'); | ||
428 | |||
429 | $sql_action = 'INSERT INTO entries ( url, title, content, user_id, is_fav, is_read, date, reading_time, domain_name ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'; | ||
430 | $params_action = array($url, $title, $content, $user_id, $isFavorite, $isRead, $date, $readingTime, $domainName); | ||
412 | if ( !$this->executeQuery($sql_action, $params_action) ) { | 431 | if ( !$this->executeQuery($sql_action, $params_action) ) { |
413 | $id = null; | 432 | $id = null; |
414 | } | 433 | } |
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 09a9f5ff..e8c32024 100755 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php | |||
@@ -232,14 +232,6 @@ class Poche | |||
232 | 232 | ||
233 | $this->tpl = new Twig_Environment($loaderChain, $twigParams); | 233 | $this->tpl = new Twig_Environment($loaderChain, $twigParams); |
234 | $this->tpl->addExtension(new Twig_Extensions_Extension_I18n()); | 234 | $this->tpl->addExtension(new Twig_Extensions_Extension_I18n()); |
235 | |||
236 | # filter to display domain name of an url | ||
237 | $filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain'); | ||
238 | $this->tpl->addFilter($filter); | ||
239 | |||
240 | # filter for reading time | ||
241 | $filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime'); | ||
242 | $this->tpl->addFilter($filter); | ||
243 | } | 235 | } |
244 | 236 | ||
245 | public function createNewUser() { | 237 | public function createNewUser() { |
diff --git a/inc/poche/Tools.class.php b/inc/poche/Tools.class.php index 1ef875c9..13f48903 100755 --- a/inc/poche/Tools.class.php +++ b/inc/poche/Tools.class.php | |||
@@ -214,20 +214,6 @@ class Tools | |||
214 | return ((isset ($_REQUEST["$var"])) ? htmlentities($_REQUEST["$var"]) : $default); | 214 | return ((isset ($_REQUEST["$var"])) ? htmlentities($_REQUEST["$var"]) : $default); |
215 | } | 215 | } |
216 | 216 | ||
217 | public static function getDomain($url) | ||
218 | { | ||
219 | return parse_url($url, PHP_URL_HOST); | ||
220 | } | ||
221 | |||
222 | public static function getReadingTime($text) { | ||
223 | $word = str_word_count(strip_tags($text)); | ||
224 | $minutes = floor($word / 200); | ||
225 | $seconds = floor($word % 200 / (200 / 60)); | ||
226 | $time = array('minutes' => $minutes, 'seconds' => $seconds); | ||
227 | |||
228 | return $minutes; | ||
229 | } | ||
230 | |||
231 | public static function getDocLanguage($userlanguage) { | 217 | public static function getDocLanguage($userlanguage) { |
232 | $lang = explode('.', $userlanguage); | 218 | $lang = explode('.', $userlanguage); |
233 | return str_replace('_', '-', $lang[0]); | 219 | return str_replace('_', '-', $lang[0]); |
diff --git a/install/poche.sqlite b/install/poche.sqlite index f2b79b68..4c0f8139 100755..100644 --- a/install/poche.sqlite +++ b/install/poche.sqlite | |||
Binary files differ | |||
diff --git a/themes/baggy/home.twig b/themes/baggy/home.twig index 3942d3bf..b819d801 100755 --- a/themes/baggy/home.twig +++ b/themes/baggy/home.twig | |||
@@ -40,16 +40,17 @@ | |||
40 | {% for entry in entries %} | 40 | {% for entry in entries %} |
41 | <div id="entry-{{ entry.id|e }}" class="entrie"{% if listmode %} style="width:100%; margin-left:0;"{% endif %}> | 41 | <div id="entry-{{ entry.id|e }}" class="entrie"{% if listmode %} style="width:100%; margin-left:0;"{% endif %}> |
42 | <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> | 42 | <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> |
43 | {% if entry.content| getReadingTime > 0 %} | 43 | <div>{{ entry.date }}</div> |
44 | <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min</span></div> | 44 | {% if entry.reading_time > 0 %} |
45 | <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.reading_time }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} {{ entry.reading_time }} min</span></div> | ||
45 | {% else %} | 46 | {% else %} |
46 | <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} <small class="inferieur"><</small> 1 min</span></div> | 47 | <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.reading_time }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} <small class="inferieur"><</small> 1 min</span></div> |
47 | {% endif %} | 48 | {% endif %} |
48 | <ul class="tools links"> | 49 | <ul class="tools links"> |
49 | <li><a title="{% trans "Toggle mark as read" %}" class="tool icon-check icon {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "Toggle mark as read" %}</span></a></li> | 50 | <li><a title="{% trans "Toggle mark as read" %}" class="tool icon-check icon {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "Toggle mark as read" %}</span></a></li> |
50 | <li><a title="{% trans "toggle favorite" %}" class="tool icon-star icon {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li> | 51 | <li><a title="{% trans "toggle favorite" %}" class="tool icon-star icon {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li> |
51 | <li><a title="{% trans "delete" %}" class="tool delete icon-trash icon" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li> | 52 | <li><a title="{% trans "delete" %}" class="tool delete icon-trash icon" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li> |
52 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.url | e | getDomain }}</span></a></li> | 53 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domain_name }}</span></a></li> |
53 | </ul> | 54 | </ul> |
54 | <p>{{ entry.content|striptags|slice(0, 300) }}...</p> | 55 | <p>{{ entry.content|striptags|slice(0, 300) }}...</p> |
55 | </div> | 56 | </div> |