From: Paul Poulain <[email protected]>
Tag cloud fixes :
* ordering cloud by tag name, not by weight
* improve behaviour : either display everyone cloud or my cloud only. When
clicquing on "Tag cloud" on the top, will display by default everyone cloud.
when clicquing on "My tag" (left tab when logged in), the page will display
only my tags and my tags only
---
C4/Tags.pm | 5 +-
koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc | 2 +-
koha-tmpl/opac-tmpl/prog/en/modules/opac-tags.tmpl | 61 +++++++++++---------
opac/opac-tags.pl | 12 ++--
4 files changed, 45 insertions(+), 35 deletions(-)
diff --git a/C4/Tags.pm b/C4/Tags.pm
index 5f2ff69..ecd9758 100644
--- a/C4/Tags.pm
+++ b/C4/Tags.pm
@@ -261,7 +261,7 @@ sub get_tags (;$) { # i.e., from tags_index
sub get_approval_rows (;$) { # i.e., from tags_approval
my $hash = shift || {};
- my @ok_fields = qw(term approved date_approved approved_by weight_total
limit sort);
+ my @ok_fields = qw(term approved date_approved approved_by weight_total
limit sort borrowernumber);
my $wheres;
my $limit = "";
my $order = "";
@@ -279,7 +279,7 @@ sub get_approval_rows (;$) { # i.e., from
tags_approval
if ($key eq 'limit') {
my $val = $hash->{$key};
unless ($val =~ /^(\d+,)?\d+$/) {
- carp "Non-nuerical limit value '$val' ignored!";
+ carp "Non-numerical limit value '$val'
ignored!";
next;
}
$limit = " LIMIT $val\n";
@@ -288,6 +288,7 @@ sub get_approval_rows (;$) { # i.e., from
tags_approval
unless (
$by =~ /^([-+])?(term)/ or
$by =~ /^([-+])?(biblionumber)/ or
+ $by =~ /^([-+])?(borrowernumber)/ or
$by =~ /^([-+])?(weight_total)/ or
$by =~ /^([-+])?(approved(_by)?)/ or
$by =~ /^([-+])?(date_approved)/
diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
index 8e8ee6a..8131917 100644
--- a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
+++ b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
@@ -5,7 +5,7 @@
<!-- TMPL_IF NAME="accountview" --><li class="active"><!-- TMPL_ELSE
--><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-account.pl">my
fines</a></li>
<!-- TMPL_IF NAME="userupdateview" --><li class="active"><!-- TMPL_ELSE
--><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-userupdate.pl">my personal
details</a></li>
<!-- TMPL_IF NAME="TagsEnabled" -->
- <!-- TMPL_IF NAME="tagsview" --><li class="active"><!-- TMPL_ELSE
--><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-tags.pl">my tags</a></li>
+ <!-- TMPL_IF NAME="tagsview" --><li class="active"><!-- TMPL_ELSE
--><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-tags.pl?mine=1">my
tags</a></li>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="OpacPasswordChange" -->
<!-- TMPL_IF NAME="passwdview" --><li class="active"><!-- TMPL_ELSE
--><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-passwd.pl">change my
password</a></li>
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-tags.tmpl
b/koha-tmpl/opac-tmpl/prog/en/modules/opac-tags.tmpl
index b6985b1..ecd09cb 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-tags.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-tags.tmpl
@@ -83,35 +83,19 @@
<div class="dialog message"><!-- TMPL_VAR NAME="deleted_count"
--><!-- TMPL_IF EXPR="deleted_count ==1" --> tag<!-- TMPL_ELSE -->tags<!--
/TMPL_IF --> successfully deleted.</div>
<!-- /TMPL_IF -->
<!-- /TMPL_IF -->
-
- <!-- TMPL_UNLESS NAME="hidemytags" -->
- <!-- TMPL_IF NAME="MY_TAGS" -->
- <form method="post" action="opac-tags.pl">
- <h2>My Tags</h2>
- <table id="mytagst">
- <thead><tr><th>Term</th><th>Title</th><th>Date
Added</th><th>Delete</th>
- </tr></thead>
- <tbody><!-- TMPL_LOOP NAME="MY_TAGS" -->
- <tr><td><a href="/cgi-bin/koha/opac-search.pl?tag=<!-- TMPL_VAR
NAME="term" ESCAPE="URL" -->&q=<!-- TMPL_VAR NAME="term" ESCAPE="URL" -->">
- <!-- TMPL_VAR NAME="term" ESCAPE="HTML" --></a>
- </td>
- <td><a
href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR
NAME="biblionumber" -->">
- <!-- TMPL_VAR NAME="bib_summary" ESCAPE="HTML"
--></a></td>
- <td><!-- TMPL_VAR NAME="date_created_display" --></td>
- <td><input type="submit" name="del<!-- TMPL_VAR
NAME="tag_id" -->" value="Delete" /></td>
- </tr>
- <!-- /TMPL_LOOP --></tbody>
- </table>
- </form>
- <!-- /TMPL_IF -->
- <!-- /TMPL_UNLESS -->
-
- <h1>All Tags</h1>
+ <!-- TMPL_IF name="mine" -->
+ <h1>My cloud</h1>
+ <!-- TMPL_ELSE -->
+ <h1>Everyone cloud</h1>
+ <!-- /TMPL_IF -->
<form method="get" action="opac-tags.pl">
- <fieldset>Show up to <input name="limit" style="text-align:
right;" maxlength="4" size="4" value="<!-- TMPL_VAR NAME="limit" DEFAULT="100"
-->" />
- tags from other users.
- <input type="hidden" name="hidemytags" value="1" />
+ <fieldset>Show up to <input name="limit" style="text-align:
right;" maxlength="4" size="4" value="<!-- TMPL_VAR NAME="limit" DEFAULT="100"
-->" /> tags.
+ <!-- TMPL_IF name="mine" -->
+ (<input type="checkbox" name="mine" value="1"
checked="1"/>Mine only)
+ <!-- TMPL_ELSE -->
+ (<input type="checkbox" name="mine" value="1" />Mine only)
+ <!-- /TMPL_IF -->
<input type="submit" value="OK" /> <!-- TMPL_UNLESS
NAME="MY_TAGS" --><a href="/cgi-bin/koha/opac-user.pl">Log in</a> to see your
own saved tags.<!-- /TMPL_UNLESS --></fieldset>
</form>
@@ -126,6 +110,29 @@
<!-- /TMPL_LOOP -->
</div>
<!-- /TMPL_IF -->
+
+ <!-- TMPL_IF NAME="mine" -->
+ <!-- TMPL_IF NAME="MY_TAGS" -->
+ <form method="post" action="opac-tags.pl">
+ <h1>My Tags</h1>
+ <table id="mytagst">
+ <thead><tr><th>Term</th><th>Title</th><th>Date
Added</th><th>Delete</th>
+ </tr></thead>
+ <tbody><!-- TMPL_LOOP NAME="MY_TAGS" -->
+ <tr><td><a href="/cgi-bin/koha/opac-search.pl?tag=<!-- TMPL_VAR
NAME="term" ESCAPE="URL" -->&q=<!-- TMPL_VAR NAME="term" ESCAPE="URL" -->">
+ <!-- TMPL_VAR NAME="term" ESCAPE="HTML" --></a>
+ </td>
+ <td><a href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!--
TMPL_VAR NAME="biblionumber" -->">
+ <!-- TMPL_VAR NAME="bib_summary" ESCAPE="HTML" --></a></td>
+ <td><!-- TMPL_VAR NAME="date_created_display" --></td>
+ <td><input type="submit" name="del<!-- TMPL_VAR NAME="tag_id"
-->" value="Delete" /></td>
+ </tr>
+ <!-- /TMPL_LOOP --></tbody>
+ </table>
+ </form>
+ <!-- /TMPL_IF -->
+ <!-- /TMPL_IF -->
+
</div>
</div>
</div>
diff --git a/opac/opac-tags.pl b/opac/opac-tags.pl
index 296fa07..dc229fd 100755
--- a/opac/opac-tags.pl
+++ b/opac/opac-tags.pl
@@ -219,7 +219,7 @@ if ($is_ajax) {
my $results = [];
my $my_tags = [];
-if ($loggedinuser and not $query->param('hidemytags')) {
+if ($loggedinuser) {
$my_tags = get_tag_rows({borrowernumber=>$loggedinuser});
foreach (@$my_tags) {
my $biblio = GetBiblioData($_->{biblionumber});
@@ -244,12 +244,14 @@ if ($add_op) {
deleted_count => $dels,
);
} else {
- my ($arg,$limit);
+ my ($arg,$limit,$mine);
my $hardmax = 100; # you might disagree what this value should be,
but there definitely should be a max
$limit = $query->param('limit') || $hardmax;
+ $mine = $query->param('mine') || 0; # set if the patron want to see only
his own tags.
($limit =~ /^\d+$/ and $limit <= $hardmax) or $limit = $hardmax;
$template->param(limit => $limit);
my $arghash = {approved=>1, limit=>$limit, 'sort'=>'-weight_total'};
+ $arghash->{'borrowernumber'} = $loggedinuser if $mine;
# ($openadds) or $arghash->{approved} = 1;
if ($arg = $query->param('tag')) {
$arghash->{term} = $arg;
@@ -259,7 +261,7 @@ if ($add_op) {
$results = get_approval_rows($arghash);
my $count = scalar @$results;
- $template->param(TAGLOOP_COUNT => $count);
+ $template->param(TAGLOOP_COUNT => $count, mine => $mine);
# Here we make a halfhearted attempt to separate the tags into "strata"
based on weight_total
# FIXME: code4lib probably has a better algorithm, iirc
# FIXME: when we get a better algorithm, move to C4
@@ -286,9 +288,9 @@ if ($add_op) {
$previous = $current;
}
}
-$query->param('hidemytags') and $template->param(hidemytags => 1);
(scalar @errors ) and $template->param(ERRORS => \...@errors);
-(scalar @$results) and $template->param(TAGLOOP => $results);
+my @orderedresult = sort { $a->{'term'} cmp $b->{'term'} } @$results;
+(scalar @$results) and $template->param(TAGLOOP => \...@orderedresult );
(scalar @$my_tags) and $template->param(MY_TAGS => $my_tags);
output_html_with_http_headers $query, $cookie, $template->output;
--
1.6.0.4
_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches