var $db;
var $tmpl;
var $tags;
- var $avail_photos;
+ var $avail_tags;
var $photos;
+ var $avail_photos;
var $current_photo;
var $current_tags;
private function get_tags()
{
+ $this->avail_tags = Array();
+ $count = 0;
+
$result = $this->db->db_query("
SELECT id,name
FROM tags
$tag_name = $row['name'];
$this->tags[$tag_id] = $tag_name;
+ $this->avail_tags[$count] = $tag_id;
+
+ $count++;
}
+
} // get_tags()
private function get_photos()
} // prepare_single_photo()
+ public function getAvailableTags()
+ {
+ foreach($this->avail_tags as $tag)
+ {
+ if(isset($_SESSION['selected_tags']) && in_array($tag, $_SESSION['selected_tags']))
+ continue;
+
+ // return all available (= not selected) tags
+ print "<a href=\"javascript:Tags('add', ". $tag .");\">". $this->tags[$tag] ."</a> ";
+
+ }
+
+ } // getAvailableTags()
+
+ public function getSelectedTags()
+ {
+ foreach($this->avail_tags as $tag)
+ {
+ // return all selected tags
+ if(isset($_SESSION['selected_tags']) && in_array($tag, $_SESSION['selected_tags'])) {
+ print "<a href=\"javascript:Tags('del', ". $tag .");\">". $this->tags[$tag] ."</a> ";
+ }
+
+ }
+
+ print "<a href=\"javascript:Tags('reset', 0);\">Reset Tags</a>";
+
+ } // getSelectedTags()
+
+ public function addTag($tag)
+ {
+ if(!isset($_SESSION['selected_tags']))
+ $_SESSION['selected_tags'] = Array();
+
+ array_push($_SESSION['selected_tags'], $tag);
+
+ } // addTag()
+
+ public function delTag($tag)
+ {
+ if(isset($_SESSION['selected_tags'])) {
+ $key = array_search($tag, $_SESSION['selected_tags']);
+ unset($_SESSION['selected_tags'][$key]);
+ }
+
+ } // delTag()
+
+ public function resetTags()
+ {
+ unset($_SESSION['selected_tags']);
+
+ } // resetTags()
+
}
?>
content = document.getElementById("content");
content.innerHTML = HTML_AJAX.grab('rpc.php?action=showphoto&id=' + id);
}
+
+function Tags(mode, id)
+{
+ if(mode == "add") {
+ // add the tag to users session
+ HTML_AJAX.grab('rpc.php?action=addtag&id=' + id);
+ }
+ else if(mode == "del") {
+ // del the tag from users session
+ HTML_AJAX.grab('rpc.php?action=deltag&id=' + id);
+ }
+ else if(mode == "reset") {
+ HTML_AJAX.grab('rpc.php?action=resettags');
+ }
+
+ refreshAvailableTags();
+ refreshSelectedTags();
+
+}
+
+function refreshAvailableTags()
+{
+ // update available tags
+ content = document.getElementById("available_tags");
+ content.innerHTML = HTML_AJAX.grab('rpc.php?action=show_available_tags');
+}
+
+function refreshSelectedTags()
+{
+ // update selected tags
+ content = document.getElementById("selected_tags");
+ content.innerHTML = HTML_AJAX.grab('rpc.php?action=show_selected_tags');
+}
$fspot->tmpl->show("body.tpl");
break;
+
+ case 'show_available_tags':
+
+ $fspot->getAvailableTags();
+ break;
+
+ case 'show_selected_tags':
+
+ $fspot->getSelectedTags();
+ break;
+
+ case 'addtag':
+
+ $fspot->addTag($_GET['id']);
+ break;
+
+ case 'deltag':
+
+ $fspot->delTag($_GET['id']);
+ break;
+
+ case 'resettags':
+
+ $fspot->resetTags();
+ break;
+
}
} // process_ajax_request();
{include file="header.tpl"}
- <body>
+ <body onload="refreshAvailableTags(); refreshSelectedTags();">
<div id="logo">noch keins da</div>
<div id="tags">
{include file="tags.tpl"}
-<div id='tag'>
The following tags are available:<br />
-{foreach from=$tags item=tag }
- <a href="?{$tag}">{$tag}</a>
-{/foreach}
+<div id='available_tags'>
+</div>
+ The following tags have been selected: <br />
+<div id='selected_tags'>
</div>