X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fpoche%2FPoche.class.php;h=74a185bd6c2099537968752efc8d5b32003b45c5;hb=a33a3d2afb6a861e194599973e31e5e448617296;hp=134925060fde8c05eaf77962152dd164270ccf0c;hpb=042486c511d07226715c2e0d7cd9823f591d8d10;p=github%2Fwallabag%2Fwallabag.git diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 13492506..74a185bd 100755 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php @@ -32,10 +32,10 @@ class Poche 'fr_FR.utf8' => 'Français', 'it_IT.utf8' => 'Italiano', 'pl_PL.utf8' => 'Polski', + 'pt_BR.utf8' => 'Português (Brasil)', 'ru_RU.utf8' => 'Pусский', 'sl_SI.utf8' => 'Slovenščina', 'uk_UA.utf8' => 'Українська', - 'pt_BR.utf8' => 'Brasileiro', ); public function __construct() { @@ -61,8 +61,6 @@ class Poche private function init() { Tools::initPhp(); - Session::$sessionName = 'poche'; - Session::init(); if (isset($_SESSION['poche_user']) && $_SESSION['poche_user'] != array()) { $this->user = $_SESSION['poche_user']; @@ -388,6 +386,7 @@ class Poche } //search for possible duplicate if not in import mode + $duplicate = NULL; if (!$import) { $duplicate = $this->store->retrieveOneByURL($url->getUrl(), $this->user->getId()); } @@ -488,25 +487,33 @@ class Poche Tools::logm('error : article not found'); Tools::redirect(); } + //get all already set tags to preven duplicates + $already_set_tags = array(); + $entry_tags = $this->store->retrieveTagsByEntry($entry_id); + foreach ($entry_tags as $tag) { + $already_set_tags[] = $tag['value']; + } foreach($tags as $key => $tag_value) { $value = trim($tag_value); - $tag = $this->store->retrieveTagByValue($value); - - if (is_null($tag)) { - # we create the tag - $tag = $this->store->createTag($value); - $sequence = ''; - if (STORAGE == 'postgres') { - $sequence = 'tags_id_seq'; - } - $tag_id = $this->store->getLastId($sequence); + if ($value && !in_array($value, $already_set_tags)) { + $tag = $this->store->retrieveTagByValue($value); + + if (is_null($tag)) { + # we create the tag + $tag = $this->store->createTag($value); + $sequence = ''; + if (STORAGE == 'postgres') { + $sequence = 'tags_id_seq'; + } + $tag_id = $this->store->getLastId($sequence); + } + else { + $tag_id = $tag['id']; + } + + # we assign the tag to the article + $this->store->setTagToEntry($tag_id, $entry_id); } - else { - $tag_id = $tag['id']; - } - - # we assign the tag to the article - $this->store->setTagToEntry($tag_id, $entry_id); } if(!$import) { Tools::redirect(); @@ -579,13 +586,31 @@ class Poche break; case 'tags': $token = $this->user->getConfigValue('token'); - $tags = $this->store->retrieveAllTags($this->user->getId()); + //if term is set - search tags for this term + $term = Tools::checkVar('term'); + $tags = $this->store->retrieveAllTags($this->user->getId(), $term); + if (Tools::isAjaxRequest()) { + $result = array(); + foreach ($tags as $tag) { + $result[] = $tag['value']; + } + echo json_encode($result); + exit; + } $tpl_vars = array( 'token' => $token, 'user_id' => $this->user->getId(), 'tags' => $tags, ); break; + + case 'search': + if (isset($_POST['search'])){ + $search = $_POST['search']; + $tpl_vars['entries'] = $this->store->search($search); + $tpl_vars['nb_results'] = count($tpl_vars['entries']); + } + break; case 'view': $entry = $this->store->retrieveOneById($id, $this->user->getId()); if ($entry != NULL) { @@ -755,8 +780,7 @@ class Poche $this->emptyCache(); Tools::redirect('?view=config'); - } - + } /** * get credentials from differents sources * it redirects the user to the $referer link @@ -856,6 +880,8 @@ class Poche # the second
    is for read links $read = 1; } + + $unlink = unlink($targetFile); $this->messages->add('s', _('import from instapaper completed. You have to execute the cron to fetch content.')); Tools::logm('import from instapaper completed'); Tools::redirect(); @@ -900,6 +926,8 @@ class Poche # the second