/** * Adds a group of users(by their IDs) to a certain group * * @access public * @param int $guid Group's ID * @param array $users Array with user id * @return mixed True on success or Jaws_Error on failure */ function AddUsersToGroup($guid, $users) { $userModel = new Jaws_User(); $group = $userModel->GetGroup((int) $guid); if (!$group) { return new Jaws_Error(_t('USERS_GROUPS_GROUP_NOT_EXIST')); } $postedUsers = array(); foreach ($users as $k => $v) { $postedUsers[$v] = $v; } $list = $userModel->GetUsers(); foreach ($list as $user) { if ($userModel->UserIsInGroup($user['id'], $guid)) { if (!isset($postedUsers[$user['id']])) { if (!$GLOBALS['app']->Session->IsSuperAdmin() && $user['superadmin']) { continue; } $userModel->DeleteUserFromGroup($user['id'], $guid); } } else { if (isset($postedUsers[$user['id']])) { $userModel->AddUserToGroup($user['id'], $guid); } } } return true; }
/** * Fetches list of system users * * @access public * @return array Array of users or an empty array */ function GetUsers() { $gid = (int) jaws()->request->fetch('gid'); if ($gid === 0) { $gid = false; } $uModel = new Jaws_User(); $users = $uModel->GetUsers($gid, null, 1); if (Jaws_Error::IsError($users)) { return array(); } return $users; }
/** * Get AboutUser action params(superadmin users list) * * @access public * @return array list of AboutUser action params(superadmin users list) */ function AboutUserLayoutParams() { $result = array(); $usrModel = new Jaws_User(); $users = $usrModel->GetUsers(false, true); if (!Jaws_Error::IsError($users)) { $pusers = array(); foreach ($users as $user) { $pusers[$user['username']] = $user['nickname']; } $result[] = array('title' => _t('USERS_USERS'), 'value' => $pusers); } return $result; }
/** * Prepares list of users for datagrid * * @access public * @param int $group User default group * @param bool $superadmin Is created user superadmin or not * @param int $status Status of created user * @param string $term Search term * @param string $orderBy Order by(id, username, nickname, email) * @param int $offset Offset of data array * @return array Grid data */ function GetUsers($group, $superadmin, $status, $term, $orderBy, $offset = null) { $uModel = new Jaws_User(); $users = $uModel->GetUsers($group, $superadmin, $status, $term, $orderBy, 10, $offset); if (Jaws_Error::IsError($users)) { return array(); } $retData = array(); foreach ($users as $user) { $usrData = array(); $usrData['nickname'] = $user['nickname']; $usrData['username'] = $user['username']; $actions = ''; if ($this->gadget->GetPermission('ManageUsers')) { $link =& Piwi::CreateWidget('Link', _t('GLOBAL_EDIT'), "javascript: editUser(this, '" . $user['id'] . "');", STOCK_EDIT); $actions .= $link->Get() . ' '; } if ($this->gadget->GetPermission('ManageUserACLs')) { $link =& Piwi::CreateWidget('Link', _t('USERS_ACLS'), "javascript: editACL(this, '" . $user['id'] . "', 'UserACL');", 'gadgets/Users/Resources/images/acls.png'); $actions .= $link->Get() . ' '; } if ($this->gadget->GetPermission('ManageGroups')) { $link =& Piwi::CreateWidget('Link', _t('USERS_USERS_GROUPS'), "javascript: editUserGroups(this, '" . $user['id'] . "');", 'gadgets/Users/Resources/images/groups_mini.png'); $actions .= $link->Get() . ' '; } if ($this->gadget->GetPermission('ManageUsers')) { $link =& Piwi::CreateWidget('Link', _t('USERS_PERSONAL'), "javascript: editPersonal(this, '" . $user['id'] . "');", 'gadgets/Users/Resources/images/user_mini.png'); $actions .= $link->Get() . ' '; } if ($this->gadget->GetPermission('ManageUsers')) { $link =& Piwi::CreateWidget('Link', _t('USERS_CONTACTS'), "javascript: editContacts(this, '" . $user['id'] . "');", 'gadgets/Users/Resources/images/mail.png'); $actions .= $link->Get() . ' '; } if ($this->gadget->GetPermission('ManageUsers')) { $link =& Piwi::CreateWidget('Link', _t('USERS_ACCOUNT_DELETE'), "javascript: deleteUser(this, '" . $user['id'] . "');", STOCK_DELETE); $actions .= $link->Get() . ' '; } $usrData['actions'] = $actions; $retData[] = $usrData; } return $retData; }
/** * * @access public * @return string HTML content with menu and menu items */ function Logs() { $this->AjaxMe('script.js'); $tpl = $this->gadget->template->loadAdmin('Logs.html'); $tpl->SetBlock('Logs'); //Menu bar $tpl->SetVariable('menubar', $this->MenuBar('Logs')); // From Date Filter $fromDate =& Piwi::CreateWidget('DatePicker', 'from_date', ''); $fromDate->showTimePicker(true); $fromDate->setLanguageCode($this->gadget->registry->fetch('admin_language', 'Settings')); $fromDate->setCalType($this->gadget->registry->fetch('calendar', 'Settings')); $fromDate->setDateFormat('%Y-%m-%d %H:%M:%S'); $fromDate->AddEvent(ON_CHANGE, "javascript:searchLogs();"); $tpl->SetVariable('filter_from_date', $fromDate->Get()); $tpl->SetVariable('lbl_filter_from_date', _t('LOGS_FROM_DATE')); // To Date Filter $toDate =& Piwi::CreateWidget('DatePicker', 'to_date', ''); $toDate->showTimePicker(true); $toDate->setLanguageCode($this->gadget->registry->fetch('admin_language', 'Settings')); $toDate->setCalType($this->gadget->registry->fetch('calendar', 'Settings')); $toDate->setDateFormat('%Y-%m-%d %H:%M:%S'); $toDate->AddEvent(ON_CHANGE, "javascript:searchLogs();"); $tpl->SetVariable('filter_to_date', $toDate->Get()); $tpl->SetVariable('lbl_filter_to_date', _t('LOGS_TO_DATE')); // Gadgets Filter $gadgetsCombo =& Piwi::CreateWidget('Combo', 'filter_gadget'); $gadgetsCombo->AddOption(_t('LOGS_ALL_GADGETS'), "", false); $cmpModel = Jaws_Gadget::getInstance('Components')->model->load('Gadgets'); $gadgetList = $cmpModel->GetGadgetsList(); foreach ($gadgetList as $gadget) { $gadgetsCombo->AddOption($gadget['title'], $gadget['name']); } $gadgetsCombo->AddEvent(ON_CHANGE, "javascript:searchLogs();"); $gadgetsCombo->SetDefault(-1); $tpl->SetVariable('filter_gadget', $gadgetsCombo->Get()); $tpl->SetVariable('lbl_filter_gadget', _t('GLOBAL_GADGETS')); // Users Filter $usersCombo =& Piwi::CreateWidget('Combo', 'filter_user'); $usersCombo->AddOption(_t('GLOBAL_ALL_USERS'), "", false); $userModel = new Jaws_User(); $users = $userModel->GetUsers(); if (!Jaws_Error::IsError($users)) { foreach ($users as $user) { $usersCombo->AddOption($user['username'] . ' - ' . $user['nickname'], $user['id']); } } $usersCombo->AddEvent(ON_CHANGE, "javascript:searchLogs();"); $usersCombo->SetDefault(-1); $tpl->SetVariable('filter_user', $usersCombo->Get()); $tpl->SetVariable('lbl_filter_user', _t('LOGS_USERS')); // Priority $priorityCombo =& Piwi::CreateWidget('Combo', 'filter_priority'); $priorityCombo->AddOption(_t('GLOBAL_ALL'), 0, false); $priorityCombo->AddOption(_t('LOGS_PRIORITY_5'), JAWS_WARNING, false); $priorityCombo->AddOption(_t('LOGS_PRIORITY_6'), JAWS_NOTICE, false); $priorityCombo->AddOption(_t('LOGS_PRIORITY_7'), JAWS_INFO, false); $priorityCombo->AddEvent(ON_CHANGE, "javascript:searchLogs();"); $priorityCombo->SetDefault(0); $tpl->SetVariable('filter_priority', $priorityCombo->Get()); $tpl->SetVariable('lbl_filter_priority', _t('LOGS_PRIORITY')); // Status $allStatus = array(200, 301, 302, 401, 403, 404, 410, 500, 503); $statusCombo =& Piwi::CreateWidget('Combo', 'filter_status'); $statusCombo->AddOption(_t('GLOBAL_ALL'), 0, false); foreach ($allStatus as $status) { $statusCombo->AddOption(_t('GLOBAL_HTTP_ERROR_TITLE_' . $status), $status, false); } $statusCombo->AddEvent(ON_CHANGE, "javascript:searchLogs();"); $statusCombo->SetDefault(0); $tpl->SetVariable('filter_status', $statusCombo->Get()); $tpl->SetVariable('lbl_filter_status', _t('LOGS_LOG_STATUS')); //DataGrid $tpl->SetVariable('datagrid', $this->LogsDataGrid()); //LogUI $tpl->SetVariable('log_ui', $this->LogUI()); // Actions $actions =& Piwi::CreateWidget('Combo', 'logs_actions'); $actions->SetID('logs_actions_combo'); $actions->SetTitle(_t('GLOBAL_ACTIONS')); $actions->AddOption(' ', ''); if ($this->gadget->GetPermission('DeleteLogs')) { $actions->AddOption(_t('GLOBAL_DELETE'), 'delete'); $actions->AddOption(_t('LOGS_DELETE_ALL'), 'deleteAll'); $actions->AddOption(_t('LOGS_DELETE_FILTERED'), 'deleteFiltered'); } if ($this->gadget->GetPermission('ExportLogs')) { $actions->AddOption(_t('LOGS_EXPORT_ALL'), 'export'); $actions->AddOption(_t('LOGS_EXPORT_FILTERED'), 'exportFiltered'); } $tpl->SetVariable('actions_combo', $actions->Get()); $btnExecute =& Piwi::CreateWidget('Button', 'executeLogsAction', '', STOCK_YES); $btnExecute->AddEvent(ON_CLICK, "javascript:logsDGAction(\$('#logs_actions_combo'));"); $tpl->SetVariable('btn_execute', $btnExecute->Get()); $btnCancel =& Piwi::CreateWidget('Button', 'btn_cancel', _t('GLOBAL_CANCEL'), STOCK_CANCEL); $btnCancel->AddEvent(ON_CLICK, 'stopAction();'); $btnCancel->SetStyle('display:none;'); $tpl->SetVariable('btn_cancel', $btnCancel->Get()); $tpl->SetVariable('confirmLogsDelete', _t('LOGS_CONFIRM_DELETE')); $tpl->SetVariable('legend_title', _t('LOGS_LOG_DETAILS')); $tpl->ParseBlock('Logs'); return $tpl->Get(); }
/** * Search users * * @access public * @return void */ function GetUsers() { $term = jaws()->request->fetch('term', 'post'); $userModel = new Jaws_User(); $users = $userModel->GetUsers(false, null, null, $term, 'nickname', 5); return $users; }
/** * Sends the Email * * @access public * @param string $target JSON decoded array ([to, cc, bcc] or [user, group]) * @param string $subject Subject of the Email * @param string $message Message body of the Email * @param string $attachment Attachment * @return string XHTML template content */ function SendEmail($target, $subject, $message, $attachment) { $this->gadget->CheckPermission('AccessToMailer'); $mail = Jaws_Mail::getInstance(); $mail->SetFrom(); $mail->SetSubject(Jaws_XSS::defilter($subject)); // To, Cc, Bcc if (isset($target['to'])) { if (!empty($target['to'])) { $recipients = explode(',', $target['to']); foreach ($recipients as $recpt) { $mail->AddRecipient($recpt, 'To'); } } if (!empty($target['cc'])) { $recipients = explode(',', $target['cc']); foreach ($recipients as $recpt) { $mail->AddRecipient($recpt, 'Cc'); } } if (!empty($target['bcc'])) { $recipients = explode(',', $target['bcc']); foreach ($recipients as $recpt) { $mail->AddRecipient($recpt, 'Bcc'); } } } else { $userModel = new Jaws_User(); if ($target['user'] != 0) { $user = $userModel->GetUser((int) $target['user']); if (!Jaws_Error::IsError($user)) { $mail->AddRecipient($user['nickname'] . ' <' . $user['email'] . '>', 'To'); } } else { if ($target['group'] == 0) { $target['group'] = false; } $users = $userModel->GetUsers($target['group'], null, true); foreach ($users as $user) { $mail->AddRecipient($user['nickname'] . ' <' . $user['email'] . '>', 'Bcc'); } } } $message = $this->PrepareMessage($message); $format = $this->gadget->registry->fetch('email_format'); $mail->SetBody($message, $format); if (!empty($attachment)) { $attachment = Jaws_Utils::upload_tmp_dir() . '/' . $attachment; if (file_exists($attachment)) { $mail->SetBody($attachment, 'file'); Jaws_Utils::Delete($attachment); } } $result = $mail->send(); if (Jaws_Error::IsError($result)) { $GLOBALS['app']->Session->PushLastResponse(_t('CONTACT_ERROR_EMAIL_NOT_SENT'), RESPONSE_ERROR); return false; } $GLOBALS['app']->Session->PushLastResponse(_t('CONTACT_NOTICE_EMAIL_SENT'), RESPONSE_NOTICE); return true; }
/** * Gets users of the specified group * * @access public * @internal param int $group ID of the group * @return array array of users or false on error */ function GetUsers() { @(list($group) = jaws()->request->fetchAll('post')); $userModel = new Jaws_User(); return $userModel->GetUsers($group, null, true); }
/** * Update a user's group * * @access public * @return void */ function UpdateGroup() { $this->gadget->CheckPermission('ManageUserGroups'); $post = jaws()->request->fetch(array('gid', 'name', 'title', 'description', 'enabled'), 'post'); $selected_members = jaws()->request->fetch('members:array', 'post'); $user = $GLOBALS['app']->Session->GetAttribute('user'); $post['enabled'] = (bool) $post['enabled']; $jUser = new Jaws_User(); $res = $jUser->UpdateGroup($post['gid'], $post, $user); $current_members_info = $jUser->GetUsers($post['gid']); $current_members = array(); foreach ($current_members_info as $member_info) { $current_members[] = $member_info['id']; } $new_member = array_diff($selected_members, $current_members); if (!Jaws_Error::isError($res) && count($new_member) > 0) { // TODO: improve performance foreach ($new_member as $member) { $res = $jUser->AddUserToGroup($member, $post['gid'], $user); } } $removed_member = array_diff($current_members, $selected_members); if (!Jaws_Error::isError($res) && count($removed_member) > 0) { // TODO: improve performance foreach ($removed_member as $member) { $res = $jUser->DeleteUserFromGroup($member, $post['gid'], $user); } } if (Jaws_Error::isError($res)) { $GLOBALS['app']->Session->PushResponse($res->getMessage(), 'Users.Groups', RESPONSE_ERROR); } elseif ($res == true) { $GLOBALS['app']->Session->PushResponse(_t('USERS_GROUPS_UPDATED', $post['title']), 'Users.Groups', RESPONSE_NOTICE); } Jaws_Header::Location($this->gadget->urlMap('Groups')); }
/** * Builds the group-users form * * @access public * @return string XHTML form */ function GroupUsersUI() { $tpl = $this->gadget->template->loadAdmin('GroupUsers.html'); $tpl->SetBlock('group_users'); $model = new Jaws_User(); $group_users =& Piwi::CreateWidget('CheckButtons', 'group_users'); $group_users->setColumns(1); $superadmin = $GLOBALS['app']->Session->IsSuperAdmin() ? null : false; $users = $model->GetUsers(false, $superadmin); foreach ($users as $user) { $group_users->AddOption($user['nickname'] . ' (' . $user['username'] . ')', $user['id'], 'user_' . $user['id']); } $tpl->SetVariable('lbl_group_users', _t('USERS_GROUPS_MARK_USERS')); $tpl->SetVariable('group_users', $group_users->Get()); $tpl->ParseBlock('group_users'); return $tpl->Get(); }
/** * Displays form for edit AddressBook item. * * @access public * @return string HTML content with menu and menu items */ function EditAddress() { if (!$GLOBALS['app']->Session->Logged()) { return Jaws_HTTPError::Get(403); } $id = (int) jaws()->request->fetch('id'); if ($id == 0) { return false; } $model = $this->gadget->model->load('AddressBook'); $info = $model->GetAddressInfo($id); if (Jaws_Error::IsError($info)) { return $info->getMessage(); // TODO: Show intelligible message } if (!isset($info)) { return Jaws_HTTPError::Get(404); } // Check this ID for Me, And Can I Edit Or View This?! if ($info['user'] != $GLOBALS['app']->Session->GetAttribute('user')) { return Jaws_HTTPError::Get(403); } $this->AjaxMe('site_script.js'); $this->SetTitle(_t('ADDRESSBOOK_ITEMS_EDIT_TITLE')); $tpl = $this->gadget->template->load('EditAddress.html'); $tpl->SetBlock("address"); $tpl->SetVariable('top_title', _t('ADDRESSBOOK_ITEMS_EDIT_TITLE')); if ($response = $GLOBALS['app']->Session->PopSimpleResponse('AddressBook')) { $tpl->SetVariable('msg', $response); } $tpl->SetVariable('id', $info['id']); $tpl->SetVariable('action', 'UpdateAddress'); $tpl->SetVariable('lbl_user_link', _t('ADDRESSBOOK_ITEMS_USER_LINK')); $tpl->SetVariable('lbl_firstname', _t('ADDRESSBOOK_ITEMS_FIRSTNAME')); $tpl->SetVariable('lbl_lastname', _t('ADDRESSBOOK_ITEMS_LASTNAME')); $tpl->SetVariable('lbl_title', _t('ADDRESSBOOK_ITEMS_TITLE')); $tpl->SetVariable('lbl_nickname', _t('ADDRESSBOOK_ITEMS_NICKNAME')); $tpl->SetVariable('lbl_url', _t('ADDRESSBOOK_ITEMS_URL')); $tpl->SetVariable('lbl_notes', _t('ADDRESSBOOK_ITEMS_NOTES')); $tpl->SetVariable('lbl_public', _t('ADDRESSBOOK_ITEMS_PUBLIC')); $tpl->SetVariable('tel_title', _t('ADDRESSBOOK_TEL_TITLE')); $tpl->SetVariable('email_title', _t('ADDRESSBOOK_EMAIL_TITLE')); $tpl->SetVariable('adr_title', _t('ADDRESSBOOK_ADR_TITLE')); $tpl->SetVariable('group_title', _t('ADDRESSBOOK_GROUP_TITLE')); $tpl->SetVariable('other_details', _t('ADDRESSBOOK_OTHER_DETAILS')); $tpl->SetVariable('nameEmptyWarning', _t('ADDRESSBOOK_EMPTY_NAME_WARNING')); $tpl->SetVariable('lbl_save', _t('GLOBAL_SAVE')); $tpl->SetVariable('public_title', _t('ADDRESSBOOK_ITEMS_PUBLIC')); $tpl->SetVariable('url_title', _t('ADDRESSBOOK_ITEMS_URL')); $tpl->SetVariable('toggle_max', STOCK_ADD); $tpl->SetVariable('toggle_min', STOCK_REMOVE); $tpl->SetVariable('title', $info['title']); $tpl->SetVariable('nickname', $info['nickname']); $tpl->SetVariable('url', $info['url']); $tpl->SetVariable('notes', $info['notes']); $tpl->SetVariable('upload_icon', STOCK_ADD); $tpl->SetVariable('delete_icon', STOCK_DELETE); $tpl->SetVariable('baseSiteUrl', $GLOBALS['app']->getSiteURL()); $tpl->SetVariable('loadImageUrl', $this->gadget->urlMap('LoadImage', array('file' => ''))); if ($info['public']) { $tpl->SetBlock('address/selected'); $tpl->ParseBlock('address/selected'); } $tpl->SetVariable('menubar', $this->MenuBar('')); $uModel = new Jaws_User(); $users = $uModel->GetUsers(); $tpl->SetBlock('address/user_item'); $tpl->SetVariable('user_id', 0); $tpl->SetVariable('user_name', ''); $tpl->ParseBlock('address/user_item'); foreach ($users as $user) { $tpl->SetBlock('address/user_item'); $tpl->SetVariable('user_id', $user['id']); $tpl->SetVariable('user_name', $user['nickname']); $tpl->SetVariable('selected', $user['id'] == $info['user_link'] ? 'selected="selected"' : ''); $tpl->ParseBlock('address/user_item'); } $tpl->SetVariable('icon_load', STOCK_REFRESH); $addressItems = $model->GetAddressList($info['user'], 0); $tpl->SetVariable('lbl_related', _t('ADDRESSBOOK_LABEL_RALATED')); foreach ($addressItems as $addressItem) { if ($addressItem['id'] != $info['id']) { $tpl->SetBlock('address/relation_item'); $tpl->SetVariable('address_id', $addressItem['id']); $tpl->SetVariable('fn', str_replace(';', ' ', $addressItem['name'])); $tpl->SetVariable('selected', $addressItem['id'] == $info['related'] ? 'selected="selected"' : ''); $tpl->ParseBlock('address/relation_item'); } } $names = explode(';', $info['name']); foreach ($names as $key => $name) { $tpl->SetVariable('name' . $key, $name); } if (empty($info['image'])) { $current_image = $GLOBALS['app']->getSiteURL('/gadgets/AddressBook/Resources/images/photo128px.png'); } else { $current_image = $GLOBALS['app']->getDataURL() . "addressbook/image/" . $info['image']; $current_image .= !empty($info['updatetime']) ? "?" . $info['updatetime'] . "" : ''; } $tpl->SetVariable('image_src', $current_image); // upload/delete image $tpl->SetVariable('lbl_upload_image', _t('ADDRESSBOOK_PERSON_IMAGE_UPLOAD')); $tpl->SetVariable('lbl_delete_image', _t('ADDRESSBOOK_PERSON_IMAGE_DELETE')); // Tel $iIndex = 1; $this->GetItemsCombo($tpl, 'tel', $info['tel_home'], $iIndex, $this->_TelTypes); $this->GetItemsCombo($tpl, 'tel', $info['tel_work'], $iIndex, $this->_TelTypes); $this->GetItemsCombo($tpl, 'tel', $info['tel_other'], $iIndex, $this->_TelTypes); if ($iIndex == 1) { $this->GetItemsCombo($tpl, 'tel', ':', $iIndex, $this->_TelTypes); } // Email $iIndex = 1; $this->GetItemsCombo($tpl, 'email', $info['email_home'], $iIndex, $this->_EmailTypes); $this->GetItemsCombo($tpl, 'email', $info['email_work'], $iIndex, $this->_EmailTypes); $this->GetItemsCombo($tpl, 'email', $info['email_other'], $iIndex, $this->_EmailTypes); if ($iIndex == 1) { $this->GetItemsCombo($tpl, 'email', ':', $iIndex, $this->_EmailTypes); } // Address $iIndex = 1; $this->GetItemsCombo($tpl, 'adr', $info['adr_home'], $iIndex, $this->_AdrTypes, '\\n'); $this->GetItemsCombo($tpl, 'adr', $info['adr_work'], $iIndex, $this->_AdrTypes, '\\n'); $this->GetItemsCombo($tpl, 'adr', $info['adr_other'], $iIndex, $this->_AdrTypes, '\\n'); if ($iIndex == 1) { $this->GetItemsCombo($tpl, 'adr', ':', $iIndex, $this->_AdrTypes); } // URL $iIndex = 1; if (trim($info['url']) != '') { $urls = explode('\\n', $info['url']); $this->GetItemsInput($tpl, 'url', $urls, $iIndex); } if ($iIndex == 1) { $this->GetItemsInput($tpl, 'url', array(''), $iIndex); } $tpl->SetVariable('lastID', $iIndex); $user = (int) $GLOBALS['app']->Session->GetAttribute('user'); $gModel = $this->gadget->model->load('Groups'); $groupList = $gModel->GetGroups($user); $agModel = $this->gadget->model->load('AddressBookGroup'); $agData = $agModel->GetGroupIDs($info['id'], $user); $groupAux = array(); foreach ($agData as $group) { $groupAux[] = $group; } foreach ($groupList as $gInfo) { $tpl->SetBlock('address/group'); if (in_array($gInfo['id'], $groupAux)) { $tpl->SetBlock('address/group/selected_group'); $tpl->ParseBlock('address/group/selected_group'); } $tpl->SetVariable('lbl_group', $gInfo['name']); $tpl->SetVariable('gid', $gInfo['id']); $tpl->ParseBlock('address/group'); } $tpl->SetVariable('cancel_lbl', _t('GLOBAL_CANCEL')); $link = $this->gadget->urlMap('AddressBook'); $tpl->SetVariable('cancel_url', $link); $tpl->ParseBlock('address'); return $tpl->Get(); }
/** * * @access public * @return string HTML content with menu and menu items */ function Subscription() { $this->AjaxMe('script.js'); $tpl = $this->gadget->template->loadAdmin('Subscription.html'); $tpl->SetBlock('Subscription'); $model = $this->gadget->model->load('Subscription'); //Menu bar $tpl->SetVariable('menubar', $this->MenuBar('Subscription')); // Users Filter $usersCombo =& Piwi::CreateWidget('Combo', 'filter_user'); $usersCombo->AddOption(_t('GLOBAL_ALL_USERS'), "", false); $userModel = new Jaws_User(); $users = $userModel->GetUsers(); if (!Jaws_Error::IsError($users)) { foreach ($users as $user) { $usersCombo->AddOption($user['username'] . ' - ' . $user['nickname'], $user['id']); } } $usersCombo->AddEvent(ON_CHANGE, "javascript:searchSubscription();"); $usersCombo->SetDefault(-1); $tpl->SetVariable('filter_user', $usersCombo->Get()); $tpl->SetVariable('lbl_filter_user', _t('LOGS_USERS')); // Email $email =& Piwi::CreateWidget('Entry', 'filter_email'); $email->AddEvent(ON_CHANGE, "javascript:searchSubscription();"); $tpl->SetVariable('filter_email', $email->Get()); $tpl->SetVariable('lbl_filter_email', _t('GLOBAL_EMAIL')); // Gadgets Filter $gadgets = $model->GetSubscriptionGadgets(); $gadgetsCombo =& Piwi::CreateWidget('Combo', 'filter_gadget'); $gadgetsCombo->AddOption(_t('GLOBAL_ALL'), "", false); foreach ($gadgets as $name => $title) { $gadgetsCombo->AddOption($title, $name); } $gadgetsCombo->AddEvent(ON_CHANGE, "javascript:searchSubscription();"); $gadgetsCombo->SetDefault(-1); $tpl->SetVariable('filter_gadget', $gadgetsCombo->Get()); $tpl->SetVariable('lbl_filter_gadget', _t('GLOBAL_GADGETS')); // Order $orderType =& Piwi::CreateWidget('Combo', 'order_type'); $orderType->AddOption(_t('GLOBAL_DATE') . ' ↓', 'insert_time'); $orderType->AddOption(_t('GLOBAL_DATE') . ' ↑', 'insert_time desc'); $orderType->AddEvent(ON_CHANGE, "javascript:searchSubscription();"); $orderType->SetDefault(-1); $tpl->SetVariable('order_type', $orderType->Get()); $tpl->SetVariable('lbl_order_type', _t('SUBSCRIPTION_ORDER_TYPE')); //DataGrid $tpl->SetVariable('datagrid', $this->SubscriptionDataGrid()); // Actions $actions =& Piwi::CreateWidget('Combo', 'subscriptions_actions'); $actions->SetID('subscriptions_actions_combo'); $actions->SetTitle(_t('GLOBAL_ACTIONS')); $actions->AddOption(' ', ''); if ($this->gadget->GetPermission('DeleteSubscription')) { $actions->AddOption(_t('GLOBAL_DELETE'), 'delete'); } $tpl->SetVariable('actions_combo', $actions->Get()); $btnExecute =& Piwi::CreateWidget('Button', 'executeSubscriptionAction', '', STOCK_YES); $btnExecute->AddEvent(ON_CLICK, "javascript:subscriptionDGAction(\$('#subscriptions_actions_combo'));"); $tpl->SetVariable('btn_execute', $btnExecute->Get()); $btnCancel =& Piwi::CreateWidget('Button', 'btn_cancel', _t('GLOBAL_CANCEL'), STOCK_CANCEL); $btnCancel->AddEvent(ON_CLICK, 'stopAction();'); $btnCancel->SetStyle('display:none;'); $tpl->SetVariable('btn_cancel', $btnCancel->Get()); $tpl->SetVariable('confirmSubscriptionDelete', _t('GLOBAL_CONFIRM_DELETE')); $tpl->ParseBlock('Subscription'); return $tpl->Get(); }
/** * Display latest registered users * * @access public * @return string XHTML template content */ function LatestRegistered() { // Load the template $tpl = $this->gadget->template->load('Statistics.html'); $tpl->SetBlock('LatestRegistered'); $tpl->SetVariable('title', _t('USERS_ACTIONS_LATESTREGISTERED')); // latest registered users limit $limit = (int) $this->gadget->registry->fetch('latest_limit'); $limit = empty($limit) ? 10 : $limit; $usrModel = new Jaws_User(); $users = $usrModel->GetUsers(false, null, 1, '', 'id desc', $limit); foreach ($users as $user) { $tpl->SetBlock('LatestRegistered/user'); $tpl->SetVariable('username', $user['username']); $tpl->SetVariable('nickname', $user['nickname']); $tpl->SetVariable('url_user', $this->gadget->urlMap('Profile', array('user' => $user['username']))); $tpl->ParseBlock('LatestRegistered/user'); } $tpl->ParseBlock('LatestRegistered'); return $tpl->Get(); }