rework assigning articles to tags
This commit is contained in:
parent
e98b372bcd
commit
307d187c6c
4 changed files with 67 additions and 112 deletions
122
functions.php
122
functions.php
|
@ -4533,54 +4533,15 @@
|
|||
print "<div clear='both'>" . $line["title"] . "$entry_author</div>";
|
||||
}
|
||||
|
||||
$tags = get_article_tags($link, $id);
|
||||
|
||||
$tags_str = "";
|
||||
$tags_nolinks_str = "";
|
||||
$f_tags_str = "";
|
||||
|
||||
$num_tags = 0;
|
||||
|
||||
if ($_SESSION["theme"] == "3pane") {
|
||||
$tag_limit = 3;
|
||||
} else {
|
||||
$tag_limit = 6;
|
||||
}
|
||||
|
||||
foreach ($tags as $tag) {
|
||||
$num_tags++;
|
||||
$tag_escaped = str_replace("'", "\\'", $tag);
|
||||
|
||||
$tag_str = "<a href=\"javascript:viewfeed('$tag_escaped')\">$tag</a>, ";
|
||||
|
||||
if ($num_tags == $tag_limit) {
|
||||
$tags_str .= "…";
|
||||
$tags_nolinks_str .= "…";
|
||||
|
||||
} else if ($num_tags < $tag_limit) {
|
||||
$tags_str .= $tag_str;
|
||||
$tags_nolinks_str .= "$tag, ";
|
||||
}
|
||||
$f_tags_str .= $tag_str;
|
||||
}
|
||||
|
||||
$tags_str = preg_replace("/, $/", "", $tags_str);
|
||||
$tags_nolinks_str = preg_replace("/, $/", "", $tags_nolinks_str);
|
||||
$f_tags_str = preg_replace("/, $/", "", $f_tags_str);
|
||||
|
||||
$all_tags_div = "<span class='cdmAllTagsCtr'>…<div class='cdmAllTags'>All Tags: $f_tags_str</div></span>";
|
||||
$tags_str = preg_replace("/\.\.\.$/", "$all_tags_div", $tags_str);
|
||||
$tags_str = format_tags_string(get_article_tags($link, $id), $id);
|
||||
|
||||
if (!$entry_comments) $entry_comments = " "; # placeholder
|
||||
|
||||
if (!$tags_str) $tags_str = '<span class="tagList">'.__('no tags').'</span>';
|
||||
if (!$tags_nolinks_str) $tags_nolinks_str = '<span class="tagList">'.__('no tags').'</span>';
|
||||
|
||||
print "<div style='float : right'>
|
||||
<img src='images/tag.png' class='tagsPic' alt='Tags' title='Tags'>";
|
||||
|
||||
if (!$zoom_mode) {
|
||||
print "$tags_str
|
||||
print "<span id=\"ATSTR-$id\">$tags_str</span>
|
||||
<a title=\"".__('Edit tags for this article')."\"
|
||||
href=\"javascript:editArticleTags($id, $feed_id)\">(+)</a>";
|
||||
|
||||
|
@ -4597,8 +4558,6 @@
|
|||
style=\"cursor : pointer\" style=\"cursor : pointer\"
|
||||
onclick=\"zoomToArticle($id)\"
|
||||
alt='Zoom' title='".__('Show article summary in new window')."'>";
|
||||
} else {
|
||||
print "$tags_nolinks_str";
|
||||
}
|
||||
print "</div>";
|
||||
print "<div clear='both'>$entry_comments</div>";
|
||||
|
@ -4609,8 +4568,6 @@
|
|||
|
||||
print "<div class=\"postContent\">";
|
||||
|
||||
#print "<div id=\"allEntryTags\">".__('Tags:')." $f_tags_str</div>";
|
||||
|
||||
$article_content = sanitize_rss($link, $line["content"]);
|
||||
|
||||
if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) {
|
||||
|
@ -5253,38 +5210,15 @@
|
|||
alt='Zoom'
|
||||
title='".__('Show article summary in new window')."'></span>";
|
||||
|
||||
$tags = get_article_tags($link, $id);
|
||||
|
||||
$tags_str = "";
|
||||
$full_tags_str = "";
|
||||
$num_tags = 0;
|
||||
|
||||
foreach ($tags as $tag) {
|
||||
$num_tags++;
|
||||
$full_tags_str .= "<a href=\"javascript:viewfeed('$tag')\">$tag</a>, ";
|
||||
if ($num_tags < 5) {
|
||||
$tags_str .= "<a href=\"javascript:viewfeed('$tag')\">$tag</a>, ";
|
||||
} else if ($num_tags == 5) {
|
||||
$tags_str .= "…";
|
||||
}
|
||||
}
|
||||
|
||||
$tags_str = preg_replace("/, $/", "", $tags_str);
|
||||
$full_tags_str = preg_replace("/, $/", "", $full_tags_str);
|
||||
|
||||
$all_tags_div = "<span class='cdmAllTagsCtr'>…<div class='cdmAllTags'>All Tags: $full_tags_str</div></span>";
|
||||
|
||||
$tags_str = preg_replace("/\.\.\.$/", "$all_tags_div", $tags_str);
|
||||
|
||||
|
||||
if ($tags_str == "") $tags_str = "no tags";
|
||||
$tags_str = format_tags_string(get_article_tags($link, $id), $id);
|
||||
|
||||
// print "<img src='images/tag.png' class='markedPic'>";
|
||||
|
||||
print "<span class='s1'>
|
||||
<img class='tagsPic' src='images/tag.png' alt='Tags'
|
||||
title='Tags'> $tags_str <a title=\"Edit tags for this article\"
|
||||
href=\"javascript:editArticleTags($id, $feed_id, true)\">(+)</a>";
|
||||
<img class='tagsPic' src='images/tag.png' alt='Tags' title='Tags'>
|
||||
<span id=\"ATSTR-$id\">$tags_str</span>
|
||||
<a title=\"".__('Edit tags for this article')."\"
|
||||
href=\"javascript:editArticleTags($id, $feed_id, true)\">(+)</a>";
|
||||
|
||||
print "</span>";
|
||||
|
||||
|
@ -6011,4 +5945,46 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
function format_tags_string($tags, $id) {
|
||||
|
||||
$tags_str = "";
|
||||
$tags_nolinks_str = "";
|
||||
|
||||
$num_tags = 0;
|
||||
|
||||
if ($_SESSION["theme"] == "3pane") {
|
||||
$tag_limit = 3;
|
||||
} else {
|
||||
$tag_limit = 6;
|
||||
}
|
||||
|
||||
$formatted_tags = array();
|
||||
|
||||
foreach ($tags as $tag) {
|
||||
$num_tags++;
|
||||
$tag_escaped = str_replace("'", "\\'", $tag);
|
||||
|
||||
$tag_str = "<a href=\"javascript:viewfeed('$tag_escaped')\">$tag</a>";
|
||||
|
||||
array_push($formatted_tags, $tag_str);
|
||||
|
||||
if ($num_tags == $tag_limit) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$tags_str = implode(", ", $formatted_tags);
|
||||
|
||||
if ($num_tags < count($tags)) {
|
||||
$tags_str .= ", …";
|
||||
}
|
||||
|
||||
if ($num_tags == 0) {
|
||||
$tags_str = __("no tags");
|
||||
}
|
||||
|
||||
return $tags_str;
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -296,7 +296,7 @@
|
|||
continue;
|
||||
}
|
||||
|
||||
print "<!-- $id : $int_id : $tag -->";
|
||||
// print "<!-- $id : $int_id : $tag -->";
|
||||
|
||||
if ($tag != '') {
|
||||
db_query($link, "INSERT INTO ttrss_tags
|
||||
|
@ -307,8 +307,10 @@
|
|||
|
||||
db_query($link, "COMMIT");
|
||||
|
||||
$tags_str = format_tags_string(get_article_tags($link, $id), $id);
|
||||
|
||||
print "<rpc-reply>
|
||||
<message>$id</message>
|
||||
<tags-str id=\"$id\"><![CDATA[$tags_str]]></tags-str>
|
||||
</rpc-reply>";
|
||||
|
||||
return;
|
||||
|
|
|
@ -909,10 +909,6 @@ div.postHeader div.postDateRTL {
|
|||
float : right;
|
||||
}
|
||||
|
||||
div.postReply span.tagList {
|
||||
color : gray;
|
||||
}
|
||||
|
||||
div.postHeader div {
|
||||
padding-bottom : 3px;
|
||||
font-size : 12px;
|
||||
|
|
47
viewfeed.js
47
viewfeed.js
|
@ -2,13 +2,6 @@ var active_post_id = false;
|
|||
var last_article_view = false;
|
||||
var active_real_feed_id = false;
|
||||
|
||||
var _tag_active_post_id = false;
|
||||
var _tag_active_feed_id = false;
|
||||
var _tag_active_cdm = false;
|
||||
|
||||
// FIXME: kludge, to restore scrollTop after tag editor terminates
|
||||
var _tag_cdm_scroll = false;
|
||||
|
||||
// FIXME: kludges, needs proper implementation
|
||||
var _reload_feedlist_after_view = false;
|
||||
|
||||
|
@ -233,15 +226,6 @@ function headlines_callback2(transport, feed_cur_page) {
|
|||
debug("not in CDM mode or watchdog disabled");
|
||||
}
|
||||
|
||||
if (_tag_cdm_scroll) {
|
||||
try {
|
||||
document.getElementById("headlinesInnerContainer").scrollTop = _tag_cdm_scroll;
|
||||
_tag_cdm_scroll = false;
|
||||
debug("resetting headlinesInner scrollTop");
|
||||
|
||||
} catch (e) { }
|
||||
}
|
||||
|
||||
_feed_cur_page = feed_cur_page;
|
||||
_infscroll_request_sent = 0;
|
||||
|
||||
|
@ -1228,15 +1212,6 @@ function catchupSelection() {
|
|||
}
|
||||
|
||||
function editArticleTags(id, feed_id, cdm_enabled) {
|
||||
_tag_active_post_id = id;
|
||||
_tag_active_feed_id = feed_id;
|
||||
_tag_active_cdm = cdm_enabled;
|
||||
|
||||
cache_invalidate(id);
|
||||
|
||||
try {
|
||||
_tag_cdm_scroll = document.getElementById("headlinesInnerContainer").scrollTop;
|
||||
} catch (e) { }
|
||||
displayDlg('editArticleTags', id);
|
||||
}
|
||||
|
||||
|
@ -1252,18 +1227,24 @@ function tag_saved_callback(transport) {
|
|||
_reload_feedlist_after_view = true;
|
||||
}
|
||||
|
||||
if (!_tag_active_cdm) {
|
||||
if (active_post_id == _tag_active_post_id) {
|
||||
debug("reloading current article");
|
||||
view(_tag_active_post_id, _tag_active_feed_id);
|
||||
|
||||
if (transport.responseXML) {
|
||||
var tags_str = transport.responseXML.getElementsByTagName("tags-str")[0];
|
||||
|
||||
if (tags_str) {
|
||||
var id = tags_str.getAttribute("id");
|
||||
|
||||
if (id) {
|
||||
var tags = document.getElementById("ATSTR-" + id);
|
||||
if (tags) {
|
||||
tags.innerHTML = tags_str.firstChild.nodeValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
debug("reloading current feed");
|
||||
viewCurrentFeed();
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
exception_error("catchup_callback", e);
|
||||
exception_error("tag_saved_callback", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue