Ejemplo n.º 1
0
/**
 * synchronize number of posts credited to user
 *
 * @param int    $uid  uid of user row
 * @param string $type type of processing, 'user' for one user, 'all users' for all
 *
 * @return void
 */
function synchronize($uid, $type)
{
    $xoops = Xoops::getInstance();
    $db = $xoops->db();
    switch ($type) {
        case 'user':
            $total_posts = 0;
            /* @var $plugin SystemPluginInterface */
            $plugins = \Xoops\Module\Plugin::getPlugins();
            foreach ($plugins as $plugin) {
                if ($res = $plugin->userPosts($uid)) {
                    $total_posts += $res;
                }
            }
            $query = $db->createXoopsQueryBuilder()->updatePrefix('system_user')->set('posts', ':posts')->where('uid = :uid')->setParameter(':posts', $total_posts)->setParameter(':uid', $uid);
            $result = $query->execute();
            //if (!$result) {
            //    $xoops->redirect("admin.php?fct=users", 1, XoopsLocale::E_USER_NOT_UPDATED);
            //}
            break;
        case 'all users':
            $sql = $db->createXoopsQueryBuilder()->select('uid')->fromPrefix('system_user', 'u');
            $result = $sql->execute();
            if (!$result) {
                $xoops->redirect("admin.php?fct=users", 1, XoopsLocale::E_USER_ID_NOT_FETCHED);
            }
            $rows = $result->fetchAll();
            foreach ($rows as $row) {
                synchronize($row['uid'], "user");
            }
            break;
    }
}
Ejemplo n.º 2
0
/**
 * Blocks functions
 *
 * @copyright   XOOPS Project (http://xoops.org)
 * @license     GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @author      Kazumi Ono (AKA onokazu)
 * @package     system
 * @version     $Id$
 */
function b_system_user_show()
{
    $xoops = Xoops::getInstance();
    if (!$xoops->isUser()) {
        return false;
    }
    $block = array();
    $block['modules'] = array();
    $plugins = \Xoops\Module\Plugin::getPlugins('system');
    $i = 0;
    /* @var $plugin SystemPluginInterface */
    foreach ($plugins as $dirname => $plugin) {
        $menu = $plugin->userMenus();
        if (is_array($menu) && !empty($menu)) {
            $block['modules'][$i]['name'] = $menu['name'];
            $block['modules'][$i]['link'] = $xoops->url('modules/' . $dirname . '/' . $menu['link']);
            $block['modules'][$i]['image'] = $menu['image'];
            $block['modules'][$i]['icon'] = 'icon-tags';
            $block['modules'][$i]['dirname'] = $dirname;
            //todo, remove this hardcoded call
            if ($xoops->isModule() && $xoops->module->getVar('dirname') == $dirname && ($plugin = \Xoops\Module\Plugin::getPlugin($dirname, 'menus'))) {
                if (method_exists($plugin, 'subMenus')) {
                    $sublinks = $plugin->subMenus();
                    foreach ($sublinks as $sublink) {
                        $block['modules'][$i]['sublinks'][] = array('name' => $sublink['name'], 'url' => \XoopsBaseConfig::get('url') . '/modules/' . $dirname . '/' . $sublink['url']);
                    }
                }
            }
            ++$i;
        }
    }
    // View Account
    array_unshift($block['modules'], array('name' => XoopsLocale::VIEW_ACCOUNT, 'link' => $xoops->url('userinfo.php?uid=' . $xoops->user->getVar('uid')), 'icon' => 'icon-user'));
    // Edit Account
    array_unshift($block['modules'], array('name' => XoopsLocale::EDIT_ACCOUNT, 'link' => $xoops->url('edituser.php'), 'icon' => 'icon-user'));
    // Administration Menu
    if ($xoops->isAdmin()) {
        array_unshift($block['modules'], array('name' => SystemLocale::ADMINISTRATION_MENU, 'link' => $xoops->url('admin.php'), 'rel' => 'external', 'icon' => 'icon-wrench'));
    }
    // Inbox
    $criteria = new CriteriaCompo(new Criteria('read_msg', 0));
    $criteria->add(new Criteria('to_userid', $xoops->user->getVar('uid')));
    $pm_handler = $xoops->getHandlerPrivateMessage();
    $xoops->preload()->triggerEvent('system.blocks.system_blocks.usershow', array(&$pm_handler));
    $name = XoopsLocale::INBOX;
    $class = '';
    if ($pm_count = $pm_handler->getCount($criteria)) {
        $name = XoopsLocale::INBOX . ' <strong>' . $pm_count . '</strong>';
        $class = 'highlight';
    }
    array_push($block['modules'], array('name' => $name, 'link' => $xoops->url('viewpmsg.php'), 'icon' => 'icon-envelope', 'class' => $class));
    // Logout
    array_push($block['modules'], array('name' => XoopsLocale::A_LOGOUT, 'link' => $xoops->url('user.php?op=logout'), 'icon' => 'icon-off'));
    $block['active_url'] = \Xoops\Core\HttpRequest::getInstance()->getUrl();
    return $block;
}
Ejemplo n.º 3
0
function xoops_module_pre_uninstall_notifications(&$module)
{
    $xoops = Xoops::getInstance();
    XoopsLoad::loadFile($xoops->path('modules/notifications/class/helper.php'));
    $helper = Notifications::getInstance();
    $plugins = \Xoops\Module\Plugin::getPlugins('notifications');
    foreach (array_keys($plugins) as $dirname) {
        $helper->deleteModuleRelations($xoops->getModuleByDirname($dirname));
    }
    return true;
}
Ejemplo n.º 4
0
 /**
  * expects an array of array containing:
  * name,      Name of the submenu
  * url,       Url of the submenu relative to the module
  * ex: return array(0 => array(
  *      'name' => _MI_PUBLISHER_SUB_SMNAME3;
  *      'url' => "search.php";
  *    ));
  *
  * @return array
  */
 public function subMenus()
 {
     $ret = array();
     $xoops = \Xoops::getInstance();
     if ($plugins = \Xoops\Module\Plugin::getPlugins('userconfigs')) {
         foreach (array_keys($plugins) as $dirname) {
             $mHelper = $xoops->getModuleHelper($dirname);
             $ret[$dirname]['name'] = $mHelper->getModule()->getVar('name');
             $ret[$dirname]['url'] = 'index.php?op=showmod&mid=' . $mHelper->getModule()->getVar('mid');
         }
     }
     return $ret;
 }
Ejemplo n.º 5
0
/**
 * Blocks functions
 *
 * @copyright   XOOPS Project (http://xoops.org)
 * @license     GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @author      Kazumi Ono (AKA onokazu)
 * @package     system
 * @version     $Id$
 */
function b_system_waiting_show()
{
    $block = array();
    $plugins = \Xoops\Module\Plugin::getPlugins('system');
    /* @var $plugin SystemPluginInterface */
    foreach ($plugins as $plugin) {
        if (is_array($res = $plugin->waiting())) {
            if (isset($res['count']) && isset($res['name']) && isset($res['link'])) {
                $block['waiting'][] = $res;
            }
        }
    }
    return $block;
}
Ejemplo n.º 6
0
 public function getSearchFrom($andor, $queries, $mids, $mid)
 {
     $xoops = Xoops::getInstance();
     $search = Search::getInstance();
     // create form
     parent::__construct(_MD_SEARCH, 'search', 'index.php', 'get');
     // create form elements
     $this->addElement(new Xoops\Form\Text(_MD_SEARCH_KEYWORDS, 'query', 30, 255, htmlspecialchars(stripslashes($this->queryArrayToString($queries)), ENT_QUOTES)), true);
     $type_select = new Xoops\Form\Select(_MD_SEARCH_TYPE, 'andor', $andor);
     $type_select->addOptionArray(array('AND' => _MD_SEARCH_ALL, 'OR' => _MD_SEARCH_ANY));
     $this->addElement($type_select);
     if (!empty($mids)) {
         $mods_checkbox = new Xoops\Form\Checkbox(_MD_SEARCH_SEARCHIN, 'mids[]', $mids);
     } else {
         $mods_checkbox = new Xoops\Form\Checkbox(_MD_SEARCH_SEARCHIN, 'mids[]', $mid);
     }
     if (empty($modules)) {
         $gperm_handler = $xoops->getHandlerGroupperm();
         $available_modules = $gperm_handler->getItemIds('module_read', $xoops->getUserGroups());
         $available_plugins = \Xoops\Module\Plugin::getPlugins('search');
         //todo, would be nice to have the module ids availabe also
         $criteria = new CriteriaCompo();
         $criteria->add(new Criteria('dirname', "('" . implode("','", array_keys($available_plugins)) . "')", 'IN'));
         if (isset($available_modules) && !empty($available_modules)) {
             $criteria->add(new Criteria('mid', '(' . implode(',', $available_modules) . ')', 'IN'));
         }
         $module_handler = $xoops->getHandlerModule();
         $mods_checkbox->addOptionArray($module_handler->getNameList($criteria));
     } else {
         /* @var $module XoopsModule */
         $module_array = array();
         foreach ($modules as $mid => $module) {
             $module_array[$mid] = $module->getVar('name');
         }
         $mods_checkbox->addOptionArray($module_array);
     }
     $this->addElement($mods_checkbox);
     if ($search->getConfig('keyword_min') > 0) {
         $this->addElement(new Xoops\Form\Label(_MD_SEARCH_SEARCHRULE, sprintf(_MD_SEARCH_KEYIGNORE, $search->getConfig('keyword_min'))));
     }
     $this->addElement(new Xoops\Form\Hidden('action', 'results'));
     $this->addElement(new Xoops\Form\Token('id'));
     $this->addElement(new Xoops\Form\Button('', 'submit', _MD_SEARCH, 'submit'));
     return $this;
 }
Ejemplo n.º 7
0
 /**
  * @param XoopsModule|null $mod
  */
 public function getModulesForm($mod = null)
 {
     $xoops = Xoops::getInstance();
     $mid = 0;
     if ($mod instanceof XoopsModule) {
         $mid = $mod->getVar('mid');
     }
     /* @var $plugin UserconfigsPluginInterface */
     if ($plugins = \Xoops\Module\Plugin::getPlugins('userconfigs')) {
         parent::__construct('', 'pref_form', 'index.php', 'post', true, 'inline');
         $ele = new Xoops\Form\Select(_MD_USERCONFIGS_CHOOSE_MODULE, 'mid', $mid);
         foreach (array_keys($plugins) as $dirname) {
             $mHelper = $xoops->getModuleHelper($dirname);
             $ele->addOption($mHelper->getModule()->getVar('mid'), $mHelper->getModule()->getVar('name'));
         }
         $this->addElement($ele);
         $this->addElement(new Xoops\Form\Hidden('op', 'showmod'));
         $this->addElement(new Xoops\Form\Button('', 'button', XoopsLocale::A_SUBMIT, 'submit'));
     }
 }
Ejemplo n.º 8
0
$system = System::getInstance();
if (!$xoops->isUser() || !$xoops->isModule() || !$xoops->user->isAdmin($xoops->module->mid())) {
    exit(XoopsLocale::E_NO_ACCESS_PERMISSION);
}
$xoops->logger()->quiet();
//$xoops->disableErrorReporting();
if (isset($_REQUEST["op"])) {
    $op = $_REQUEST["op"];
} else {
    @($op = "default");
}
switch ($op) {
    // Display post
    case 'display_post':
        include_once $xoops->path('modules/system/include/functions.php');
        $uid = $system->cleanVars($_REQUEST, 'uid', 'int');
        $total_posts = 0;
        /* @var $plugin SystemPluginInterface */
        $plugins = \Xoops\Module\Plugin::getPlugins();
        foreach ($plugins as $plugin) {
            if ($res = $plugin->userPosts($uid)) {
                $total_posts += $res;
            }
        }
        $qb = $xoops->db()->createXoopsQueryBuilder();
        $eb = $qb->expr();
        $sql = $qb->updatePrefix('users')->set('posts', ':posts')->where('uid = :uid')->setParameter(':posts', $total_posts)->setParameter(':uid', $uid);
        $row_count = $sql->execute();
        echo $row_count;
        break;
}
Ejemplo n.º 9
0
} else {
    if ($action === "showall") {
        if ($query == "" || empty($mid)) {
            $xoops->redirect("index.php", 1, _MD_SEARCH_PLZENTER);
        }
    } else {
        if ($action === "showallbyuser") {
            if (empty($mid) || empty($uid)) {
                $xoops->redirect("index.php", 1, _MD_SEARCH_PLZENTER);
            }
        }
    }
}
$gperm_handler = $xoops->getHandlerGroupPermission();
$available_modules = $gperm_handler->getItemIds('module_read', $xoops->getUserGroups());
$available_plugins = \Xoops\Module\Plugin::getPlugins('search');
if ($action === 'search') {
    $xoops->header();
    /* @var $formHandler SearchSearchForm */
    $formHandler = $search->getForm(null, 'search');
    $form = $formHandler->getSearchFrom($andor, $queries, $mids, $mid);
    $form->display();
    $xoops->footer();
}
if ($andor !== "OR" && $andor !== "exact" && $andor !== "AND") {
    $andor = "AND";
}
$ignored_queries = array();
// holds kewords that are shorter than allowed minmum length
$queries_pattern = array();
$myts = \Xoops\Core\Text\Sanitizer::getInstance();
Ejemplo n.º 10
0
$op = $system->cleanVars($_REQUEST, 'op', 'default', 'string');
// Call Header
$xoops->header('admin:comments/comments.tpl');
$admin_page = new \Xoops\Module\Admin();
$admin_page->renderNavigation('main.php');
$limit_array = array(20, 50, 100);
$status_array = array(COMMENTS_PENDING => _MD_COMMENTS_PENDING, COMMENTS_ACTIVE => _MD_COMMENTS_ACTIVE, COMMENTS_HIDDEN => _MD_COMMENTS_HIDDEN);
$status_array2 = array(COMMENTS_PENDING => '<span style="text-decoration: none; font-weight: bold; color: #008000;">' . _MD_COMMENTS_PENDING . '</span>', COMMENTS_ACTIVE => '<span style="text-decoration: none; font-weight: bold; color: #ff0000;">' . _MD_COMMENTS_ACTIVE . '</span>', COMMENTS_HIDDEN => '<span style="text-decoration: none; font-weight: bold; color: #0000ff;">' . _MD_COMMENTS_HIDDEN . '</span>');
$start = 0;
$status_array[0] = _AM_COMMENTS_FORM_ALL_STATUS;
$comments = array();
$status = !isset($_REQUEST['status']) || !in_array((int) $_REQUEST['status'], array_keys($status_array)) ? 0 : (int) $_REQUEST['status'];
$module = !isset($_REQUEST['module']) ? 0 : (int) $_REQUEST['module'];
$modules_array = array();
$module_handler = $xoops->getHandlerModule();
$available_plugins = \Xoops\Module\Plugin::getPlugins('comments');
if (!empty($available_plugins)) {
    $criteria = new Criteria('dirname', "('" . implode("','", array_keys($available_plugins)) . "')", 'IN');
    $module_array = $module_handler->getNameList($criteria);
}
$module_array[0] = _AM_COMMENTS_FORM_ALL_MODS;
$comment_handler = $helper->getHandlerComment();
switch ($op) {
    case 'comments_jump':
        $id = $system->cleanVars($_GET, 'item_id', 0, 'int');
        if ($id > 0) {
            $comment = $comment_handler->get($id);
            if (is_object($comment)) {
                /* @var $plugin CommentsPluginInterface */
                $module = $xoops->getModuleById($comment->getVar('modid'));
                $plugin = Xoops\Module\Plugin::getPlugin($module->getVar('dirname'), 'comments');
Ejemplo n.º 11
0
/**
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         Comments
 * @author          trabis <*****@*****.**>
 * @author          Kazumi Ono (AKA onokazu) http://www.myweb.ne.jp/, http://jp.xoops.org/
 * @version         $Id$
 */
function b_comments_show($options)
{
    $xoops = Xoops::getInstance();
    $helper = $xoops->getModuleHelper('comments');
    $block = array();
    $available_modules = \Xoops\Module\Plugin::getPlugins('comments');
    if (empty($available_modules)) {
        return $block;
    }
    $comment_handler = $helper->getHandlerComment();
    $criteria = new CriteriaCompo(new Criteria('status', Comments::STATUS_ACTIVE));
    $criteria->setLimit((int) $options[0]);
    $criteria->setSort('created');
    $criteria->setOrder('DESC');
    // Check modules permissions
    $moduleperm_handler = $xoops->getHandlerGroupPermission();
    $gperm_groupid = $xoops->getUserGroups();
    $criteria1 = new CriteriaCompo(new Criteria('gperm_name', 'module_read', '='));
    $criteria1->add(new Criteria('gperm_groupid', '(' . implode(',', $gperm_groupid) . ')', 'IN'));
    $perms = $moduleperm_handler->getObjects($criteria1, true);
    $modIds = array();
    foreach ($perms as $item) {
        $modIds[] = $item->getVar('gperm_itemid');
    }
    if (count($modIds) > 0) {
        $modIds = array_unique($modIds);
        $criteria->add(new Criteria('modid', '(' . implode(',', $modIds) . ')', 'IN'));
    } else {
        return $block;
    }
    $comments = $comment_handler->getObjects($criteria, true);
    $member_handler = $xoops->getHandlerMember();
    $module_handler = $xoops->getHandlerModule();
    $modules = $module_handler->getObjectsArray(new Criteria('dirname', "('" . implode("','", array_keys($available_modules)) . "')", 'IN'), true);
    $comment_config = array();
    foreach (array_keys($comments) as $i) {
        $mid = $comments[$i]->getVar('modid');
        $com['module'] = '<a href="' . \XoopsBaseConfig::get('url') . '/modules/' . $modules[$mid]->getVar('dirname') . '/">' . $modules[$mid]->getVar('name') . '</a>';
        if (!isset($comment_config[$mid])) {
            $comment_config[$mid] = \Xoops\Module\Plugin::getPlugin($modules[$mid]->getVar('dirname'), 'comments');
        }
        $com['id'] = $i;
        $com['title'] = '<a href="' . \XoopsBaseConfig::get('url') . '/modules/' . $modules[$mid]->getVar('dirname') . '/' . $comment_config[$mid]->pageName() . '?' . $comment_config[$mid]->itemName() . '=' . $comments[$i]->getVar('itemid') . '&amp;com_id=' . $i . '&amp;com_rootid=' . $comments[$i]->getVar('rootid') . '&amp;' . htmlspecialchars($comments[$i]->getVar('exparams')) . '#comment' . $i . '">' . $comments[$i]->getVar('title') . '</a>';
        $com['icon'] = htmlspecialchars($comments[$i]->getVar('icon'), ENT_QUOTES);
        $com['icon'] = $com['icon'] != '' ? $com['icon'] : 'icon1.gif';
        $com['time'] = XoopsLocale::formatTimestamp($comments[$i]->getVar('created'), 'm');
        if ($comments[$i]->getVar('uid') > 0) {
            $poster = $member_handler->getUser($comments[$i]->getVar('uid'));
            if (is_object($poster)) {
                $com['poster'] = '<a href="' . \XoopsBaseConfig::get('url') . '/userinfo.php?uid=' . $comments[$i]->getVar('uid') . '">' . $poster->getVar('uname') . '</a>';
            } else {
                $com['poster'] = $xoops->getConfig('anonymous');
            }
        } else {
            $com['poster'] = $xoops->getConfig('anonymous');
        }
        $block['comments'][] = $com;
        unset($com);
    }
    return $block;
}