Beispiel #1
0
 /**
  * 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;
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 /**
  * 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;
 }
Beispiel #4
0
 /**
  * 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;
 }
Beispiel #5
0
 /**
  *
  * @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();
 }
Beispiel #6
0
 /**
  * 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;
 }
Beispiel #7
0
 /**
  * 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;
 }
Beispiel #8
0
 /**
  * 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);
 }
Beispiel #9
0
 /**
  * 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'));
 }
Beispiel #10
0
 /**
  * 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();
 }
Beispiel #11
0
 /**
  * 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();
 }
Beispiel #12
0
 /**
  *
  * @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') . ' &darr;', 'insert_time');
     $orderType->AddOption(_t('GLOBAL_DATE') . ' &uarr;', '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('&nbsp;', '');
     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();
 }
Beispiel #13
0
 /**
  * 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();
 }