diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index 5aa6ea072..429c13b87 100755
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -511,42 +511,55 @@ class Poche
Tools::redirect();
break;
case 'add_tag' :
- $tags = explode(',', $_POST['value']);
- $entry_id = $_POST['entry_id'];
- $entry = $this->store->retrieveOneById($entry_id, $this->user->getId());
- if (!$entry) {
- $this->messages->add('e', _('Article not found!'));
- Tools::logm('error : article not found');
- Tools::redirect();
+ if (isset($_GET['search'])) {
+ //when we want to apply a tag to a search
+ $search = true;
+ $tags = array($_GET['search']);
+ $allentry_ids = $this->store->search($tags[0], $this->user->getId());
+ $entry_ids = array();
+ foreach ($allentry_ids as $eachentry) {
+ $entry_ids[] = $eachentry[0];
+ }
+ } else { //add a tag to a single article
+ $tags = explode(',', $_POST['value']);
+ $entry_ids = array($_POST['entry_id']);
}
- //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);
- 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';
+ foreach($entry_ids as $entry_id) {
+ $entry = $this->store->retrieveOneById($entry_id, $this->user->getId());
+ if (!$entry) {
+ $this->messages->add('e', _('Article not found!'));
+ 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);
+ 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'];
}
- $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);
+ # we assign the tag to the article
+ $this->store->setTagToEntry($tag_id, $entry_id);
+ }
}
}
+ $this->messages->add('s', _('the tag has been applied successfully'));
Tools::redirect();
break;
case 'remove_tag' :
diff --git a/themes/baggy/home.twig b/themes/baggy/home.twig
index 5dd913077..92a3c8664 100755
--- a/themes/baggy/home.twig
+++ b/themes/baggy/home.twig
@@ -57,6 +57,7 @@
{% endfor %}
{% if view == 'home' %}{% if nb_results > 1 %}{{ "Mark all the entries as read" }}{% endif %}{% endif %}
+ {% if search_term is defined %}{% trans "Apply the tag" %} {{ search_term }} {% trans "to this search" %}{% endif %}
{% endif %}
{{ block('pager') }}
{% endblock %}