1<?php
2
3###############################################################################
4# Gregarius - A PHP based RSS aggregator.
5# Copyright (C) 2003 - 2006 Marco Bonetti
6#
7###############################################################################
8# This program is free software and open source software; you can redistribute
9# it and/or modify it under the terms of the GNU General Public License as
10# published by the Free Software Foundation; either version 2 of the License,
11# or (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful, but WITHOUT
14# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
16# more details.
17#
18# You should have received a copy of the GNU General Public License along
19# with this program; if not, write to the Free Software Foundation, Inc.,
20# 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  or visit
21# http://www.gnu.org/licenses/gpl.html
22#
23###############################################################################
24# E-mail:      mbonetti at gmail dot com
25# Web page:    http://gregarius.net/
26#
27###############################################################################
28
29function rss_search_title() {
30	if (isset($GLOBALS['rss'] -> searchFormTitle)) {
31		return $GLOBALS['rss'] -> searchFormTitle;
32	}
33	return "";
34}
35
36function rss_search_query() {
37	return (isset($GLOBALS['rss'] -> mainObject[0] -> query) ?
38		$GLOBALS['rss'] -> mainObject[0] -> query : "");
39}
40
41function rss_search_or_checked() {
42	return ((array_key_exists(QUERY_MATCH_MODE,$_REQUEST) &&
43	 $_REQUEST[QUERY_MATCH_MODE] == QUERY_MATCH_OR)?" checked=\"checked\"":"");
44}
45
46function rss_search_and_checked() {
47	return ((array_key_exists(QUERY_MATCH_MODE,$_REQUEST) &&
48	 $_REQUEST[QUERY_MATCH_MODE] == QUERY_MATCH_AND ||
49	 !array_key_exists(QUERY_MATCH_MODE,$_REQUEST))?" checked=\"checked\"":"");
50}
51
52function rss_search_exact_checked() {
53	return ((array_key_exists(QUERY_MATCH_MODE,$_REQUEST) &&
54	 $_REQUEST[QUERY_MATCH_MODE] == QUERY_MATCH_EXACT)?" checked=\"checked\"":"");
55}
56
57function rss_search_order_date_checked() {
58	return ((array_key_exists(QUERY_ORDER_BY,$_REQUEST) &&
59	$_REQUEST[QUERY_ORDER_BY] == QUERY_ORDER_BY_DATE ||
60	!array_key_exists(QUERY_ORDER_BY,$_REQUEST)?" checked=\"checked\"":""));
61}
62
63function rss_search_order_channel_checked() {
64	return ((array_key_exists(QUERY_ORDER_BY,$_REQUEST) &&
65	 $_REQUEST[QUERY_ORDER_BY] == QUERY_ORDER_BY_CHANNEL)?" checked=\"checked\"":"");
66}
67
68function rss_search_within() {
69	return ((array_key_exists(QUERY_MATCH_TYPE, $_REQUEST) &&
70		$_REQUEST[QUERY_MATCH_TYPE] == QUERY_MATCH_WITHIN)?" checked=\"checked\"":"");
71}
72
73function rss_search_state_read_checked() {
74	return ((array_key_exists(QUERY_MATCH_STATE, $_REQUEST) &&
75		$_REQUEST[QUERY_MATCH_STATE] == QUERY_MATCH_READ) ?" checked=\"checked\"":"");
76}
77
78function rss_search_state_unread_checked() {
79	return ((array_key_exists(QUERY_MATCH_STATE, $_REQUEST) &&
80		$_REQUEST[QUERY_MATCH_STATE] == QUERY_MATCH_UNREAD) ?" checked=\"checked\"":"");
81}
82
83function rss_search_state_both_checked() {
84	return ((array_key_exists(QUERY_MATCH_STATE, $_REQUEST) &&
85		$_REQUEST[QUERY_MATCH_STATE] == QUERY_MATCH_BOTH) ||
86		!array_key_exists(QUERY_MATCH_STATE, $_REQUEST) ?" checked=\"checked\"":"");
87}
88
89function rss_search_results_per_page_combo($id) {
90	return "<select name=\"$id\" id=\"$id\">\n"
91    ."\t\t\t<option value=\"5\""
92    .((array_key_exists(QUERY_RESULTS,$_REQUEST) && $_REQUEST[QUERY_RESULTS] == 5?" selected=\"selected\"":""))
93	.">5</option>\n"
94
95    ."\t\t\t<option value=\"15\""
96    .((
97	 (array_key_exists(QUERY_RESULTS,$_REQUEST) && $_REQUEST[QUERY_RESULTS] == 15)
98	 || !array_key_exists(QUERY_RESULTS,$_REQUEST)
99	 )?" selected=\"selected\"":"")
100	.">15</option>\n"
101
102    ."\t\t\t<option value=\"50\""
103    .((array_key_exists(QUERY_RESULTS,$_REQUEST) && $_REQUEST[QUERY_RESULTS] == 50?" selected=\"selected\"":""))
104	.">50</option>\n"
105
106    ."\t\t\t<option value=\"".INFINE_RESULTS."\""
107    .((array_key_exists(QUERY_RESULTS,$_REQUEST) && $_REQUEST[QUERY_RESULTS] == INFINE_RESULTS?" selected=\"selected\"":""))
108	.">".__('All')."</option>\n"
109    ."\t\t</select>";
110}
111
112
113function rss_search_channels_combo($id) {
114	$ret = "\t\t<select name=\"$id\" id=\"$id\">\n"
115      ."\t\t\t<option value=\"". ALL_CHANNELS_ID ."\""
116      .((!array_key_exists(QUERY_CHANNEL,$_REQUEST) || $_REQUEST[QUERY_CHANNEL] == ALL_CHANNELS_ID)?" selected=\"selected\"":"")
117	  .">" . __('All')  . "</option>\n";
118
119	$sql = "select "
120		     ." c.id, c.title, f.name, f.id  "
121		     ." from " . getTable("channels") ." c "
122         ." inner join " . getTable("folders"). " f "
123		     ."   on f.id = c.parent ";
124
125	if (hidePrivate()) {
126		$sql .=" and not(c.mode & " . RSS_MODE_PRIVATE_STATE .") ";
127	}
128
129
130	$sql .=" and not(c.mode & " . RSS_MODE_DELETED_STATE .") ";
131
132	$sql .= " order by "
133	     .((getConfig('rss.config.absoluteordering'))?"f.position asc, c.position asc":"f.name asc, c.title asc");
134
135    $res = rss_query($sql);
136    $prev_parent = -1;
137	while (list ($id_, $title_, $parent_, $parent_id_) = rss_fetch_row($res)) {
138		if ($prev_parent != $parent_id_) {
139			if ($prev_parent > -1) {
140				$ret .="\t\t\t</optgroup>\n";
141			}
142			if ($parent_ == "") {
143				$parent_ = __('Root');
144			}
145			$ret .= "\t\t\t<optgroup label=\"$parent_ /\">\n";
146			$prev_parent = $parent_id_;
147		}
148
149		if (strlen($title_) > 25) {
150			$title_ = substr($title_, 0, 22)."...";
151		}
152		$ret .= "\t\t\t\t<option value=\"$id_\"".
153			((array_key_exists(QUERY_CHANNEL, $_REQUEST) && $_REQUEST[QUERY_CHANNEL] == $id_) ?
154			" selected=\"selected\"" : "").">$title_</option>\n";
155	}
156
157    if ($prev_parent != 0) {
158        $ret .= "\t\t\t</optgroup>\n";
159    }
160
161    $ret .= "\t\t</select>\n";
162
163	return $ret;
164}
165
166
167?>
168