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\helpers; use seekquarry\yioop as B; use seekquarry\yioop\configs as C; /** * This is a helper class is used to draw * icon buttons and links * * @author Chris Pollett */ class GrouplistHelper extends Helper { /** * * @param array $groups * @param string $token * @param object $icon_helper * @param string $controller * @param string $context * @param bool $is_exact_group_query */ public function render($groups, $token, $icon_helper, $controller, $context = "groups", $is_exact_group_query = false) { $is_mobile = !empty($_SERVER['MOBILE']); $user_id = intval($_SESSION['USER_ID']) ?? C\PUBLIC_USER_ID; $is_root = $user_id === C\ROOT_ID; $admin_url = htmlentities(B\controllerUrl('admin', true)); $pre_manage_group_url = $admin_url . "context=$context&" . "$token&a=manageGroups&arg=editgroup&group_id=" ; $pre_info_group_url = $admin_url . "context=$context&" . "$token&a=manageGroups&arg=infogroup&group_id=" ; $group_url = "{$admin_url}a=manageGroups&$token&". "context=$context&"; $delete_url = $group_url . "arg=deletegroup&"; $unsubscribe_url = $group_url . "arg=unsubscribe&"; $add_url = $group_url . "arg=addgroup&"; $join_url = $group_url . "arg=joingroup&"; foreach ($groups as $group) { $group_name = $group['GROUP_NAME'] ?? ""; $is_owner = !empty($group['OWNER_ID']) && intval($group['OWNER_ID']) === $user_id; $manage_group = $icon_helper->renderButton( $pre_info_group_url . $group['GROUP_ID'], 'information', true, "media-buttons-container small-margin", "media-anchor-button small-font", true); if ($is_owner || $is_root ) { $statistics_url = $group_url . "arg=statistics&" . 'group_id='. $group['GROUP_ID'].'&user_id=' . $user_id; if ($is_owner) { $manage_group = $icon_helper->renderButton( $pre_manage_group_url . $group['GROUP_ID'], 'edit', true, "media-buttons-container small-margin", "media-anchor-button small-font", true); } $statistics_link = $icon_helper->renderButton( $statistics_url, 'statistics', true, "media-buttons-container" , "media-anchor-button small-font", true); } else { $statistics_link = ""; } $main_wiki_url = htmlentities(B\wikiUrl("", true, $controller, $group['GROUP_ID'])) . $token; $pages_wiki_url = htmlentities(B\wikiUrl("pages", true, $controller, $group['GROUP_ID'])) . $token; $mobile_br = ($is_mobile) ? "<br />": ""; $desk_b = ($is_mobile) ? "": "<b>"; $desk_bend = ($is_mobile) ? "": "</b>"; if ($context === "join_groups" && in_array($group['REGISTER_TYPE'], [C\INVITE_ONLY_JOIN, C\REQUEST_JOIN]) && $user_id != C\ROOT_ID && !$is_exact_group_query) { continue; } ?> <div class="access-result"><?php $is_private = ($context === "join_groups") && ($group['REGISTER_TYPE'] >= C\LOW_JOIN_FEE || in_array($group['REGISTER_TYPE'], [C\INVITE_ONLY_JOIN, C\REQUEST_JOIN])); if ($is_owner) { $icon_helper->renderLink( $delete_url . "group_id={$group['GROUP_ID']}", "delete", false, "float-opposite medium-font"); } else if ($context === "join_groups") { $register_type = $group['REGISTER_TYPE']; if ($register_type >= C\LOW_JOIN_FEE) { $icon_helper->renderLink([ $add_url . "name={$group['GROUP_NAME']}&". "user_id=" . $user_id, $register_type], "join_group_fee", false, "float-opposite medium-font"); } else if ($group['MEMBER_STATUS'] == C\INVITED_STATUS) { $icon_helper->renderLink( $join_url . "name={$group['GROUP_NAME']}&". "user_id=" . $user_id, "join_invited_group", false, "float-opposite medium-font"); } else if (in_array($register_type, [C\REQUEST_JOIN, C\PUBLIC_BROWSE_REQUEST_JOIN])) { $icon_helper->renderLink( $add_url . "name={$group['GROUP_NAME']}&". "user_id=" . $user_id, "ask_join_group", false, "float-opposite medium-font"); } else if ($register_type != C\INVITE_ONLY_JOIN || $user_id == C\ROOT_ID) { $icon_helper->renderLink( $add_url . "name={$group['GROUP_NAME']}&". "user_id=" . $user_id, "join_group", false, "float-opposite medium-font"); } } else { if ($group['MEMBER_STATUS'] == C\ACTIVE_STATUS) { $icon_helper->renderLink( $unsubscribe_url . "group_id={$group['GROUP_ID']}&". "user_id=" . $user_id, "leave_group", false, "float-opposite medium-font"); } else { $icon_helper->renderLink( $unsubscribe_url . "group_id={$group['GROUP_ID']}&". "user_id=" . $user_id, "pending", false, "float-opposite medium-font"); } } ?> <div><b class="group-title-item"><?= $group_name ?></b><?php if (!$is_private) { $icon_helper->renderButton( htmlentities(B\wikiUrl("Main", true, "group", $group['GROUP_ID'])) . $token, 'wiki', false, "media-buttons-container small-margin" , "media-anchor-button small-font", true); $icon_helper->renderButton( htmlentities(B\feedsUrl("group", $group['GROUP_ID'], true, $controller)) . $token, 'group_feed', false, "media-buttons-container small-margin" , "media-anchor-button small-font", true); $icon_helper->renderButton(htmlentities(B\wikiUrl( "pages", true, "group", $group['GROUP_ID'])) . $token, 'pages', false, "media-buttons-container small-margin" , "media-anchor-button small-font", true); } ?><?php echo $manage_group; if (!$is_private) { ?><?=$mobile_br ?><?=$desk_b?>(<?= tl('grouplist_helper_group_stats', $group['NUM_POSTS'], $group['NUM_THREADS']) . $statistics_link ?>)<?= $desk_bend?><?php }?> </div><?php if (!$is_private) {?> <div class="slight-pad" > <b><?= tl('groupfeed_element_last_post')?></b><?php if ($group['THREAD_ID'] >= 0 || $group['NUM_THREADS'] > 0) {?> <a href="<?= B\feedsUrl("thread", $group['THREAD_ID'], true, $controller) . $token ?>" ><?= $group['ITEM_TITLE'] ?></a><?php } else { e($group['ITEM_TITLE']); } ?> </div><?php } ?> </div><?php } } }