viewgit/inc/functions.php:22 Function utf8_encode() is deprecated [8192]
<?php /** * SeekQuarry/Yioop -- * Open Source Pure PHP Search Engine, Crawler, and Indexer * * Copyright (C) 2009 - 2022 Chris Pollett chris@pollett.org * * LICENSE: * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. * * END LICENSE * * @author Chris Pollett chris@pollett.org * @license https://www.gnu.org/licenses/ GPL3 * @link https://www.seekquarry.com/ * @copyright 2009 - 2022 * @filesource */ namespace seekquarry\yioop\views\elements; use seekquarry\yioop as B; use seekquarry\yioop\configs as C; use seekquarry\yioop\library as L; /** * Element used to draw the navigation bar on group feed and wiki pages. * * @author Chris Pollett */ class GroupbarElement extends Element { /** * Used to draw the navigation bar on the group feed and wiki page portion * of the yioop website * * @param array $data contains antiCSRF token, as well as data on * used to initialize title for group or wiki page */ public function render($data) { if (isset($data["HEAD"]['page_type']) && $data["HEAD"]['page_type'] == 'presentation' && $data['MODE'] == 'read' ) { return; } $logo = C\LOGO_MEDIUM; if ($_SERVER["MOBILE"]) { $logo = C\LOGO_SMALL; } $logged_in = !empty($data["ADMIN"]); $is_browse = (!$logged_in || isset($data['SUBSCRIBE_LINK']) || !empty($data["NOT_MEMBER"])); $is_wiki = isset($data['ELEMENT']) && $data['ELEMENT'] == 'wiki'; $token_string = ($logged_in) ? C\CSRF_TOKEN . "=" . $data[C\CSRF_TOKEN] : ""; $alt_base_query = B\feedsUrl("", "", true, $data['CONTROLLER']) . $token_string; $base_query = ($is_wiki) ? htmlentities(B\wikiUrl("", true, $data['CONTROLLER'], $data["GROUP"]["GROUP_ID"])) : $alt_base_query; $admin_url = htmlentities(B\controllerUrl('admin', true)); ?><div class="none" >[<a href="#center-container"><?= tl('groupbar_element_skip_nav') ?>]</a></div><div id='nav-bar' class="nav-bar"> <div class='inner-bar'><?php $this->view->helper("hamburger")->render($logged_in); if (!empty($data['ACTIVITY_METHOD']) && $data['ACTIVITY_METHOD'] == 'wiki') { $this->renderWikiNavButtons($data); } ?> <h1><a href="<?=C\SHORT_BASE_URL ?><?php if ($logged_in) { e("?$token_string"); } ?>"><img src="<?= C\SHORT_BASE_URL . $logo ?>" alt="<?= $this->view->logo_alt_text ?? "" ?>" /></a><span> - <?php if (!empty($data['ACTIVITY_METHOD']) && $data['ACTIVITY_METHOD'] == 'wiki') { $group_url = $this->getGroupUrl($data['GROUP']['GROUP_NAME'], $token_string, $is_browse); $wiki_page_list_url = rtrim(htmlentities(B\wikiUrl( "pages", true, $data['CONTROLLER'], $data["GROUP"]["GROUP_ID"])) . $token_string, "?"); $this->view->helper("iconlink")->renderButton( $admin_url . $token_string . "&a=manageAccounts", "account_home"); $page_name = str_replace("_", " ", $data['PAGE_NAME']?? ""); if ($page_name == "Main") { $page_name = tl('groupbar_element_wiki'); } $is_page_list = false; if ($data['MODE'] == 'pages') { $page_name = tl('groupbar_element_page_list'); $is_page_list = true; } ?><a class="bar-item" href="<?=$group_url ?>"><?= urldecode($data['GROUP']['GROUP_NAME']) ?></a>:<?php if ($data['PAGE_NAME'] != "Main" && in_array( $data['MODE'], ['read', 'edit', 'source'])) { $wiki_main_url = htmlentities(B\wikiUrl( "Main", true, $data['CONTROLLER'], $data["GROUP"]["GROUP_ID"])) . $token_string; ?><a class="bar-item" href="<?=$wiki_main_url ?>"><?= tl('groupbar_element_wiki')?></a>:<?php } if ($data['MODE'] == 'read') { ?><div class="bar-item"><?=urldecode($page_name)?></div><?php } else if ($data['MODE'] == 'pages') { ?><div class="wide-bar-item"><?= urldecode($page_name)?></div><?php } else { $wiki_base_url = htmlentities(B\wikiUrl( $data['PAGE_NAME'], true, $data['CONTROLLER'], $data["GROUP"]["GROUP_ID"])) . $token_string; ?><a class="bar-item" href='<?=$wiki_base_url ?>' target='preview'><?=urldecode($page_name); ?></a><?php if ($data['MODE'] == 'history') { ?>:<?=tl('groupbar_element_history');?><?php } } } else if (($data['SUBTITLE'] ?? "") == C\PERSONAL_GROUP_PREFIX) {?> <span><?= $this->view->helper("iconlink")->renderButton( $admin_url . $token_string . "&a=manageAccounts", "account_home");?> <?= tl('groupbar_element_messages') ?></span><?php } else { $this->view->helper("iconlink")->renderButton( $admin_url . $token_string . "&a=manageAccounts", "account_home"); e(" "); if (!empty($data['JUST_THREAD']) && !empty($data['WIKI_PAGE_NAME'])) { $group_name = $data['GROUP_NAME'] ?? $data['PAGES'][0][L\CrawlConstants::SOURCE_NAME] ?? ""; $group_url = $this->getGroupUrl($group_name, $token_string, $is_browse); $group_id = $data["GROUP_ID"] ?? $data['PAGES'][0]["GROUP_ID"] ?? ""; $wiki_base_url = htmlentities(B\wikiUrl( $data['WIKI_PAGE_NAME'], true, $data['CONTROLLER'], $group_id)) . $token_string;?> <a class="bar-item" href='<?=$group_url ?>' ><?=$group_name ?></a>:<a class="bar-item" href='<?=$wiki_base_url ?>' ><?= $data['WIKI_PAGE_NAME'] ?></a>:<div class="bar-item"><?= tl('groupbar_element_talk');?></div><?php } else if (!empty($data['JUST_GROUP_ID'])) { $group_url = $this->getGroupUrl($data['SUBTITLE'], $token_string, $is_browse); ?> <a class="wide-bar-item" href='<?=$group_url ?>' ><?= urldecode($data['SUBTITLE']); ?></a>:<div class="bar-item"><?= tl('groupbar_element_talk');?></div><?php } else if (!empty($data['JUST_USER_ID'])) { if (empty($data['PAGES'][0]["USER_NAME"])) { e(tl("groupbar_element_no_path_info")); } else {?> <div class="wide-bar-item" ><?= tl("groupbar_element_userfeed", urldecode($data['PAGES'][0]["USER_NAME"]))?></div><?php } } else if (!empty($data['JUST_THREAD'])) { if (!empty($data['GROUP_NAME'])) { $group_url = $this->getGroupUrl($data['GROUP_NAME'], $token_string, $is_browse); ?><a class="bar-item" href='<?=$group_url?>'><?= urldecode($data['GROUP_NAME']) ?></a>:<a class="bar-item" href='<?=htmlentities( B\feedsUrl("group", $data["GROUP_ID"], true, 'group')) . $token_string?>' ><?= tl("groupbar_element_talk") ?></a>:<div class="bar-item"><?= urldecode($data['SUBTITLE'])?></div><?php } else { e(urldecode($data['SUBTITLE'])); } } else if (!empty($data['VIEW_MODE']) && $data['VIEW_MODE'] == "ungrouped") { e(tl('groupbar_element_discussions')); } else { e(tl('groupbar_element_my_groups')); } }?></span> </h1> </div> </div> <?php } /** * */ public function getGroupUrl($group_name, $token_string, $is_browse) { if ($is_browse) { $group_url = htmlentities(B\controllerUrl('admin', true)) . "$token_string&a=manageGroups&context=group". "&group_filter=%3D$group_name&browse=true"; } else { $group_url = htmlentities(B\controllerUrl('group', true)) . "$token_string&group_filter=%3D$group_name"; } return $group_url; } /** * */ public function renderWikiNavButtons($data) { $read_mode = $data['MODE'] == 'read'; $logged_in = !empty($data["ADMIN"]); $token_string = ($logged_in) ? C\CSRF_TOKEN . "=" . $data[C\CSRF_TOKEN] : ""; $can_edit = $logged_in && !empty($data["CAN_EDIT"]); $wiki_base_url = htmlentities(B\wikiUrl( $data['PAGE_NAME'], true, $data['CONTROLLER'], $data["GROUP"]["GROUP_ID"])) . $token_string; $discuss_url = (!empty($data['DISCUSS_THREAD'])) ? htmlentities(B\feedsUrl("thread", $data['DISCUSS_THREAD'], true, "group")) . $token_string : ""; e("<div class='float-opposite medium-margin'>"); if (!$read_mode) { $read_url = $wiki_base_url . "&arg=read"; if (!empty($data['SUB_PATH'])) { $read_url .= "&sf=".urlencode($data['SUB_PATH']); } $this->view->helper("iconlink")->renderButton( $read_url, "view_read"); } else if ($can_edit) { $edit_url = $wiki_base_url . "&arg=edit"; if (!empty($data['SUB_PATH'])) { $edit_url .= "&sf=".urlencode($data['SUB_PATH']); } $this->view->helper("iconlink")->renderButton( $edit_url, "edit"); } else { $source_url = $wiki_base_url . "&arg=source"; if (!empty($data['SUB_PATH'])) { $source_url .= "&sf=".urlencode($data['SUB_PATH']); } $this->view->helper("iconlink")->renderButton( $source_url, "view_source"); } if (!empty($discuss_url)) { e("<div id='discuss-button'>"); $this->view->helper("iconlink")->renderButton( $discuss_url, "discuss_page"); e("</div>"); } e("</div>"); } }