Revision 27
Added by stefan over 19 years ago
class.frontend.php | ||
---|---|---|
53 | 53 |
var $website_title,$website_description,$website_keywords,$website_header,$website_footer; |
54 | 54 |
|
55 | 55 |
// ugly database stuff |
56 |
var $extra_sql,$extra_where_sql;
|
|
56 |
var $extra_where_sql; |
|
57 | 57 |
|
58 | 58 |
function frontend() { |
59 | 59 |
$this->wb(); |
... | ... | |
216 | 216 |
define('TEMPLATE_DIR', WB_URL.'/templates/'.TEMPLATE); |
217 | 217 |
|
218 | 218 |
// Check if user is allow to view this page |
219 |
if(FRONTEND_LOGIN AND VISIBILITY == 'private' OR FRONTEND_LOGIN AND VISIBILITY == 'registered') { |
|
220 |
// Double-check front-end login is enabled |
|
221 |
if(FRONTEND_LOGIN != true) { |
|
222 |
// Users shouldnt be allowed to view private pages |
|
223 |
header("Location: ".WB_URL.PAGES_DIRECTORY."/index".PAGE_EXTENSION); |
|
224 |
} |
|
219 |
if(VISIBILITY == 'private' OR VISIBILITY == 'registered') { |
|
225 | 220 |
// Check if the user is authenticated |
226 | 221 |
if($this->is_authenticated() == false) { |
227 | 222 |
// User needs to login first |
... | ... | |
231 | 226 |
if($this->show_page($this->page) == false) { |
232 | 227 |
$this->page_access_denied=true; |
233 | 228 |
} |
234 |
// Set extra private sql code |
|
235 |
$this->extra_sql = ",viewing_groups,viewing_users"; |
|
236 |
$this->extra_where_sql = "visibility != 'none' AND visibility != 'hidden' AND visibility != 'deleted'"; |
|
237 |
} elseif(!FRONTEND_LOGIN AND VISIBILITY == 'private' OR !FRONTEND_LOGIN AND VISIBILITY == 'registered') { |
|
229 |
} elseif(VISIBILITY == 'deleted' OR VISIBILITY == 'none') { |
|
238 | 230 |
// User isnt allowed on this page so tell them |
239 | 231 |
$this->page_access_denied=true; |
240 |
} elseif(VISIBILITY == 'deleted') { |
|
241 |
// User isnt allowed on this page so tell them |
|
242 |
$this->page_access_denied=true; |
|
243 | 232 |
} |
244 |
if(!isset($this->extra_sql)) { |
|
245 |
// Set extra private sql code |
|
246 |
if(FRONTEND_LOGIN == 'enabled') { |
|
247 |
if($this->is_authenticated()) { |
|
248 |
$this->extra_sql = ''; |
|
249 |
$this->extra_where_sql = "visibility != 'none' AND visibility != 'hidden' AND visibility != 'deleted'"; |
|
250 |
} else { |
|
251 |
$this->extra_sql = ''; |
|
252 |
$this->extra_where_sql = "visibility != 'none' AND visibility != 'hidden' AND visibility != 'deleted' AND visibility != 'private'"; |
|
253 |
} |
|
254 |
} else { |
|
255 |
$this->extra_sql = ''; |
|
256 |
$this->extra_where_sql = "visibility != 'none' AND visibility != 'hidden' AND visibility != 'deleted' AND visibility != 'private' AND visibility != 'registered'"; |
|
233 |
// never show no-vis, hidden or deleted pages |
|
234 |
$this->extra_where_sql = "visibility != 'none' AND visibility != 'hidden' AND visibility != 'deleted'"; |
|
235 |
// Set extra private sql code |
|
236 |
if($this->is_authenticated()==false) { |
|
237 |
// if user is not authenticated, don't show private pages either |
|
238 |
$this->extra_where_sql .= " AND visibility != 'private'"; |
|
239 |
// and 'registered' without frontend login doesn't make much sense! |
|
240 |
if (FRONTEND_LOGIN==false) { |
|
241 |
$this->extra_where_sql .= " AND visibility != 'registered'"; |
|
257 | 242 |
} |
258 | 243 |
} |
259 | 244 |
$this->extra_where_sql .= $this->sql_where_language; |
... | ... | |
381 | 366 |
$menu_number = '1'; |
382 | 367 |
} |
383 | 368 |
// Query pages |
384 |
$query_menu = $database->query("SELECT page_id,menu_title,page_title,link,target,level,visibility$this->extra_sql FROM ".
|
|
369 |
$query_menu = $database->query("SELECT page_id,menu_title,page_title,link,target,level,visibility FROM ". |
|
385 | 370 |
TABLE_PREFIX."pages WHERE parent = '$this->menu_parent' AND $menu_number AND $this->extra_where_sql ORDER BY position ASC"); |
386 | 371 |
// Check if there are any pages to show |
387 | 372 |
if($query_menu->numRows() > 0) { |
Also available in: Unified diff
Reworked visibility and menu code (frontend login problem)