/** * @return array */ public function getCategories() { $rows = \KunenaForumCategoryHelper::getChildren( 0, 10, array( 'action' => 'admin', 'unpublished' => true ) ); $options = array(); foreach ( $rows as $row ) { $options[] = \moscomprofilerHTML::makeOption( (string) $row->id, str_repeat( '- ', $row->level + 1 ) . ' ' . $row->name ); } return $options; }
/** * * * @param FieldTable $field * @param UserTable $user * @param string $output 'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit' * @param string $reason 'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'list' for user-lists * @param boolean $displayFieldIcons * @return string HTML: <tag type="$type" value="$value" xxxx="xxx" yy="y" /> */ function _htmlEditForm(&$field, &$user, $output, $reason, $displayFieldIcons = true) { global $_CB_framework; $fieldName = $field->get('name'); $value = $user->get($fieldName); $required = $this->_isRequired($field, $user, $reason); $uploadSizeLimitMax = $field->params->get('fieldValidateAudio_sizeMax', 1024); $uploadSizeLimitMin = $field->params->get('fieldValidateAudio_sizeMin', 0); $uploadExtensionLimit = $this->allowedExtensions(); $restrictions = array(); if ($uploadExtensionLimit) { $restrictions[] = CBTxt::Th('AUDIO_FILE_UPLOAD_LIMITS_EXT', 'Your audio file must be of [ext] type.', array('[ext]' => implode(', ', $uploadExtensionLimit))); } if ($uploadSizeLimitMin) { $restrictions[] = CBTxt::Th('AUDIO_FILE_UPLOAD_LIMITS_MIN', 'Your audio file should exceed [size].', array('[size]' => $this->formattedFileSize($uploadSizeLimitMin * 1024))); } if ($uploadSizeLimitMax) { $restrictions[] = CBTxt::Th('AUDIO_FILE_UPLOAD_LIMITS_MAX', 'Your audio file should not exceed [size].', array('[size]' => $this->formattedFileSize($uploadSizeLimitMax * 1024))); } $existingFile = $user->get('id') ? $value != null ? true : false : false; $choices = array(); if ($reason == 'register' || $reason == 'edit' && $user->id == 0) { if ($required == 0) { $choices[] = moscomprofilerHTML::makeOption('', CBTxt::T('No audio file')); } } else { if ($existingFile || $required == 0) { $choices[] = moscomprofilerHTML::makeOption('', CBTxt::T('No change of audio file')); } } $selected = null; if ($required == 1 && !$existingFile) { $selected = 'upload'; } if ($field->params->get('audio_allow_links', 1)) { $choices[] = moscomprofilerHTML::makeOption('link', $existingFile ? CBTxt::T('Link to new audio file') : CBTxt::T('Link to audio file')); } $choices[] = moscomprofilerHTML::makeOption('upload', $existingFile ? CBTxt::T('Upload new audio file') : CBTxt::T('Upload audio file')); if ($existingFile && $required == 0) { $choices[] = moscomprofilerHTML::makeOption('delete', CBTxt::T('Remove audio file')); } $return = null; if ($reason != 'register' && $user->id != 0 && $existingFile) { $return .= '<div class="form-group cb_form_line clearfix">' . $this->getEmbed($field, $user, $value, $reason) . '</div>'; } if (count($choices) > 1) { static $functOut = false; $additional = ' class="form-control"'; if ($_CB_framework->getUi() == 1 && $reason == 'edit' && $field->get('readonly')) { $additional .= ' disabled="disabled"'; } $translatedTitle = $this->getFieldTitle($field, $user, 'html', $reason); $htmlDescription = $this->getFieldDescription($field, $user, 'htmledit', $reason); $trimmedDescription = trim(strip_tags($htmlDescription)); $tooltip = $trimmedDescription ? cbTooltip($_CB_framework->getUi(), $htmlDescription, $translatedTitle, null, null, null, null, $additional) : $additional; $return .= '<div class="form-group cb_form_line clearfix">' . moscomprofilerHTML::selectList($choices, $fieldName . '__choice', $tooltip, 'value', 'text', $selected, $required, true, null, false) . $this->_fieldIconsHtml($field, $user, 'htmledit', $reason, 'select', '', null, '', array(), $displayFieldIcons, $required) . '</div>'; if (!$functOut) { $js = "function cbslideAudioFile( choice, name ) {" . "if ( ( choice == '' ) || ( choice == 'delete' ) ) {" . "\$( '#cbaudiofile_upload_' + name + ',#cbaudiofile_link_' + name ).slideUp( 'slow' );" . "\$( '#cbaudiofile_upload_' + name + ' input,#cbaudiofile_link_' + name + ' input' ).prop( 'readonly', true );" . "} else if ( choice == 'upload' ) {" . "\$( '#cbaudiofile_link_' + name ).slideUp( 'slow' );" . "\$( '#cbaudiofile_upload_' + name ).slideDown( 'slow' );" . "\$( '#cbaudiofile_link_' + name + ' input' ).prop( 'readonly', true );" . "\$( '#cbaudiofile_upload_' + name + ' input' ).prop( 'readonly', false );" . "} else if ( choice == 'link' ) {" . "\$( '#cbaudiofile_upload_' + name ).slideUp( 'slow' );" . "\$( '#cbaudiofile_link_' + name ).slideDown( 'slow' );" . "\$( '#cbaudiofile_upload_' + name + ' input' ).prop( 'readonly', true );" . "\$( '#cbaudiofile_link_' + name + ' input' ).prop( 'readonly', false );" . "}" . "}"; $_CB_framework->outputCbJQuery($js); $functOut = true; } $js = "\$( '#cbaudiofile_upload_" . addslashes($fieldName) . ",#cbaudiofile_link_" . addslashes($fieldName) . "' ).hide();" . "\$( '#cbaudiofile_upload_" . addslashes($fieldName) . " input,#cbaudiofile_link_" . addslashes($fieldName) . " input' ).prop( 'readonly', true );" . "\$( '#" . addslashes($fieldName) . "__choice' ).on( 'click change', function() {" . "cbslideAudioFile( \$( this ).val(), '" . addslashes($fieldName) . "' );" . "}).change();"; $_CB_framework->outputCbJQuery($js); } else { $return .= '<input type="hidden" name="' . htmlspecialchars($fieldName) . '__choice" value="' . htmlspecialchars($choices[0]->value) . '" />'; } $validationAttributes = array(); $validationAttributes[] = cbValidator::getRuleHtmlAttributes('extension', implode(',', $uploadExtensionLimit)); if ($uploadSizeLimitMin || $uploadSizeLimitMax) { $validationAttributes[] = cbValidator::getRuleHtmlAttributes('filesize', array($uploadSizeLimitMin, $uploadSizeLimitMax, 'KB')); } $return .= '<div id="cbaudiofile_upload_' . htmlspecialchars($fieldName) . '" class="form-group cb_form_line clearfix">' . ($restrictions ? '<div class="help-block">' . implode(' ', $restrictions) . '</div>' : null) . '<div>' . CBTxt::T('Select audio file') . ' <input type="file" name="' . htmlspecialchars($fieldName) . '__file" value="" class="form-control' . ($required == 1 ? ' required' : null) . '"' . implode(' ', $validationAttributes) . ' />' . (count($choices) <= 0 ? $this->_fieldIconsHtml($field, $user, 'htmledit', $reason, 'select', '', null, '', array(), $displayFieldIcons, $required) : null) . '</div>' . '<div class="help-block">'; if ($field->params->get('audio_terms', 0)) { $termsOutput = $field->params->get('terms_output', 'url'); $termsType = CBTxt::T($field->params->get('terms_type', null)); $termsDisplay = $field->params->get('terms_display', 'modal'); $termsURL = $field->params->get('terms_url', null); $termsText = $field->params->get('terms_text', null); $termsWidth = (int) $field->params->get('terms_width', 400); $termsHeight = (int) $field->params->get('terms_height', 200); if (!$termsType) { $termsType = CBTxt::T('TERMS_AND_CONDITIONS', 'Terms and Conditions'); } if (!$termsWidth) { $termsWidth = 400; } if (!$termsHeight) { $termsHeight = 200; } if ($termsOutput == 'url' && $termsURL || $termsOutput == 'text' && $termsText) { if ($termsDisplay == 'iframe') { if (is_numeric($termsHeight)) { $termsHeight .= 'px'; } if (is_numeric($termsWidth)) { $termsWidth .= 'px'; } if ($termsOutput == 'url') { $return .= '<div class="embed-responsive cbTermsFrameContainer" style="padding-bottom: ' . htmlspecialchars($termsHeight) . ';">' . '<iframe class="embed-responsive-item cbTermsFrameURL" style="width: ' . htmlspecialchars($termsWidth) . ';" src="' . htmlspecialchars($termsURL) . '"></iframe>' . '</div>'; } else { $return .= '<div class="cbTermsFrameText" style="height:' . htmlspecialchars($termsHeight) . ';width:' . htmlspecialchars($termsWidth) . ';overflow:auto;">' . $termsText . '</div>'; } $return .= CBTxt::Th('BY_UPLOADING_YOU_CERTIFY_THAT_YOU_HAVE_THE_RIGHT_TO_DISTRIBUTE_THIS_AUDIO_FILE_TERMS', 'By uploading, you certify that you have the right to distribute this audio file and that it does not violate the above [type].', array('[type]' => $termsType)); } else { $attributes = ' class="cbTermsLink"'; if ($termsOutput == 'text' && $termsDisplay == 'window') { $termsDisplay = 'modal'; } if ($termsDisplay == 'modal') { // Tooltip height percentage would be based off window height (including scrolling); lets change it to be based off the viewport height: $termsHeight = substr($termsHeight, -1) == '%' ? (int) substr($termsHeight, 0, -1) . 'vh' : $termsHeight; if ($termsOutput == 'url') { $tooltip = '<iframe class="cbTermsModalURL" height="100%" width="100%" src="' . htmlspecialchars($termsURL) . '"></iframe>'; } else { $tooltip = '<div class="cbTermsModalText" style="height:100%;width:100%;overflow:auto;">' . $termsText . '</div>'; } $url = 'javascript:void(0);'; $attributes .= ' ' . cbTooltip($_CB_framework->getUi(), $tooltip, $termsType, array($termsWidth, $termsHeight), null, null, null, 'data-hascbtooltip="true" data-cbtooltip-modal="true"'); } else { $url = htmlspecialchars($termsURL); $attributes .= ' target="_blank"'; } $return .= CBTxt::Th('BY_UPLOADING_YOU_CERTIFY_THAT_YOU_HAVE_THE_RIGHT_TO_DISTRIBUTE_THIS_AUDIO_FILE_URL_TERMS', 'By uploading, you certify that you have the right to distribute this audio file and that it does not violate the <a href="[url]"[attributes]>[type]</a>', array('[url]' => $url, '[attributes]' => $attributes, '[type]' => $termsType)); } } else { $return .= CBTxt::Th('BY_UPLOADING_YOU_CERTIFY_THAT_YOU_HAVE_THE_RIGHT_TO_DISTRIBUTE_THIS_AUDIO_FILE', 'By uploading, you certify that you have the right to distribute this audio file.'); } } else { $return .= CBTxt::Th('BY_UPLOADING_YOU_CERTIFY_THAT_YOU_HAVE_THE_RIGHT_TO_DISTRIBUTE_THIS_AUDIO_FILE', 'By uploading, you certify that you have the right to distribute this audio file.'); } $return .= '</div>' . '</div>' . '<div id="cbaudiofile_link_' . htmlspecialchars($fieldName) . '" class="form-group cb_form_line clearfix">' . '<p>'; if ($field->params->get('audio_allow_links', 1)) { $linkField = new FieldTable($field->getDbo()); foreach (array_keys(get_object_vars($linkField)) as $k) { $linkField->set($k, $field->get($k)); } $linkField->set('type', 'text'); $linkField->set('description', null); $user->set($fieldName, strpos($value, '/') !== false || strpos($value, '\\') !== false ? $value : null); $return .= parent::getField($linkField, $user, $output, $reason, 0); $user->set($fieldName, $value); unset($linkField); } $return .= '</p>' . '</div>'; return $return; }
function loadFieldList($name, $value, $control_name) { global $_CB_database; $_CB_database->setQuery("SELECT `name`, `title` FROM #__comprofiler_fields WHERE `published`=1 ORDER BY `title` ASC"); $fieldList = $_CB_database->loadObjectList(); $fieldRegList = array(); $fieldRegList[] = moscomprofilerHTML::makeOption('', ''); if ($fieldList !== false) { foreach ($fieldList as $fld) { $fieldRegList[] = moscomprofilerHTML::makeOption($fld->name, $fld->title); } } $valAsObj = isset($value) ? array_map(create_function('$v', '$o=new stdClass(); $o->value=$v; return $o;'), explode("|*|", $value)) : null; return moscomprofilerHTML::selectList($fieldRegList, $control_name . '[' . $name . '][]', '', 'value', 'text', $valAsObj, true); }
/** * Intercepts CB User Manager list Viewer to add filters * * @param int $listId * @param UserTable $rows * @param cbPageNav $pageNav * @param string $search * @param string[] $lists * @param string $option * @param string $select_tag_attribs * @return array */ public function onAfterBackendUsersList($listId, &$rows, &$pageNav, &$search, &$lists, $option, $select_tag_attribs) { if (!cbpaidApp::authoriseAction('cbsubs.usersubscriptionview')) { return array(); } $this->outputRegTemplate(); // 1. Filters: // 1.a. prepare dropdown selector filter with the list of published plans: $plansMgr = cbpaidPlansMgr::getInstance(); $plans = $plansMgr->loadPublishedPlans(CBuser::getMyUserDataInstance(), true, 'any', null); $plansList = array(); $plansList[] = moscomprofilerHTML::makeOption(0, CBPTXT::T('- Select Subscription Plan - ')); foreach ($plans as $k => $plan) { $plansList[] = moscomprofilerHTML::makeOption($k, $plan->get('alias')); } if (count($plans) > 0) { $plansList[] = moscomprofilerHTML::makeOption(-1, CBPTXT::T('ANY PLAN ACTIVE')); $plansList[] = moscomprofilerHTML::makeOption(-2, CBPTXT::T('NO PLAN ACTIVE')); } $lists['cbpaidplan'] = moscomprofilerHTML::selectList($plansList, 'filter_cbpaidplan', $select_tag_attribs, 'value', 'text', $this->filter_cbpaidplan, 2); // 1.b. prepare additional selector filter for status of subscriptions: if ($this->filter_cbpaidplan && $this->filter_cbpaidplan != -2) { // any plan or specific plan: // no plan: nothing for now to do $statesList = array(); $statesList[] = moscomprofilerHTML::makeOption('A', CBPTXT::T('Active')); $statesList[] = moscomprofilerHTML::makeOption('X', CBPTXT::T('Expired')); $statesList[] = moscomprofilerHTML::makeOption('C', CBPTXT::T('Cancelled')); $statesList[] = moscomprofilerHTML::makeOption('U', CBPTXT::T('Upgraded')); $lists['cbpaidsubstate'] = moscomprofilerHTML::selectList($statesList, 'filter_cbpaidsubstate', $select_tag_attribs, 'value', 'text', $this->filter_cbpaidsubstate, 1); $datesList = array(); $datesList[] = moscomprofilerHTML::makeOption('', CBPTXT::T('- Select expiry date -')); if ($this->filter_cbpaidsubstate == 'A') { $datesList[] = moscomprofilerHTML::makeOption('1 DAY', sprintf(CBPTXT::T('Expiring within %s hours'), 24)); foreach (array(2, 3, 4, 5, 6, 7) as $v) { $datesList[] = moscomprofilerHTML::makeOption($v . ' DAY', sprintf(CBPTXT::T('Expiring within %s days'), $v)); } foreach (array(2, 3, 4) as $v) { $datesList[] = moscomprofilerHTML::makeOption($v . ' WEEK', sprintf(CBPTXT::T('Expiring within %s weeks'), $v)); } $datesList[] = moscomprofilerHTML::makeOption('1 MONTH', CBPTXT::T('Expiring within in 1 month')); foreach (array(2, 3, 4, 6, 9, 12) as $v) { $datesList[] = moscomprofilerHTML::makeOption($v . ' MONTH', sprintf(CBPTXT::T('Expiring within %s months'), $v)); } } else { $datesList[] = moscomprofilerHTML::makeOption('-1 DAY', sprintf(CBPTXT::T('Expired last %s hours'), 24)); foreach (array(2, 3, 4, 5, 6, 7) as $v) { $datesList[] = moscomprofilerHTML::makeOption('-' . $v . ' DAY', sprintf(CBPTXT::T('Expired last %s days'), $v)); } foreach (array(2, 3, 4) as $v) { $datesList[] = moscomprofilerHTML::makeOption('-' . $v . ' WEEK', sprintf(CBPTXT::T('Expired last %s weeks'), $v)); } $datesList[] = moscomprofilerHTML::makeOption('-1 MONTH', CBPTXT::T('Expired last month')); foreach (array(2, 3, 4, 6, 9, 12) as $v) { $datesList[] = moscomprofilerHTML::makeOption('-' . $v . ' MONTH', sprintf(CBPTXT::T('Expired last %s months'), $v)); } } $lists['cbpaidsubexpdate'] = moscomprofilerHTML::selectList($datesList, 'filter_cbpaidsubexpdate', $select_tag_attribs, 'value', 'text', $this->filter_cbpaidsubexpdate, 1); } // 2. add subscriptions colum to backend users-lists: $pluginColumns = array(); foreach ($rows as $row) { $paidUserExtension = cbpaidUserExtension::getInstance((int) $row->id); $subscriptions = $paidUserExtension->getUserSubscriptions('A', true); $displayPlans = array(); foreach ($subscriptions as $sub) { $plan = $sub->getPlan(); if ($plan) { $cssclass = $plan->get('cssclass'); $aliasHtml = htmlspecialchars($plan->get('alias')); } else { $cssclass = null; $aliasHtml = CBPTXT::Ph("PLAN OF SUBSCRIPTION ID [SUB_ID] IS DELETED", array('[SUB_ID]' => $sub->id)); } $displayPlans[] = '<span' . ($cssclass ? ' class="' . htmlspecialchars($cssclass) . '"' : '') . '>' . $aliasHtml . '</span>'; } $pluginColumns[$row->id] = implode(', ', $displayPlans); } return array(CBPTXT::T('Subscriptions') => $pluginColumns); }
/** * Renders a <select> drop-down with currency * * @param string $selectedCurrency * @param string $currencyInputName * @return string */ private function drawCurrencySelect( $selectedCurrency, $currencyInputName ) { $allCurrencies = $this->getAllCurrencies(); if ( ! in_array( $selectedCurrency, $allCurrencies ) ) { array_unshift( $allCurrencies, $selectedCurrency ); } $values = array(); foreach ( $allCurrencies as $currency ) { $values[] = moscomprofilerHTML::makeOption( $currency, CBPTXT::T( $currency ) ); } return moscomprofilerHTML::selectList( $values, $currencyInputName, 'class="cpayCurrency cpayOrderCurrency"', 'value', 'text', $selectedCurrency, 2 ); }
public function getAutoEdit( $id, $user, $plugin, $message = null ) { global $_CB_framework; cbgjClass::getTemplate( 'cbgroupjiveauto_edit' ); $row = cbgjAutoData::getAutos( null, array( 'id', '=', (int) $id ), null, null, false ); $params = $row->getParams(); $js = "function conditionalCalculate() {" . "$( '#conditional table' ).each( function() {" . "if ( $( this ).find( 'tbody tr' ).length > 1 ) {" . "$( this ).find( '.moveConditional,.removeConditional' ).removeClass( 'gjautoHide' );" . "$( this ).find( 'tbody' ).sortable( 'enable' );" . "} else {" . "$( this ).find( '.moveConditional,.removeConditional' ).addClass( 'gjautoHide' );" . "$( this ).find( 'tbody' ).sortable( 'disable' );" . "}" . "$( this ).find( 'tbody tr' ).each( function( index ) {" . "$( this ).find( '.conditionalField input' ).attr( 'id', 'fields__field' + index ).attr( 'name', 'fields[field' + index + ']' );" . "$( this ).find( '.conditionalOperator select' ).attr( 'id', 'operators__operator' + index ).attr( 'name', 'operators[operator' + index + ']' );" . "$( this ).find( '.conditionalValue input' ).attr( 'id', 'values__value' + index ).attr( 'name', 'values[value' + index + ']' );" . "});" . "});" . "};" . "$( '.addConditional' ).live( 'click', function() {" . "var conditional = $( this ).parents( 'tr' ).first().clone();" . "conditional.find( '.conditionalField input,.conditionalOperator select,.conditionalValue input' ).val( '' ).removeClass( 'gjautoHide' );" . "conditional.appendTo( '#conditional table tbody' );" . "conditionalCalculate();" . "});" . "$( '.removeConditional' ).live( 'click', function() {" . "if ( $( '#conditional table tbody tr' ).length > 1 ) {" . "$( this ).parents( 'tr' ).first().remove();" . "}" . "conditionalCalculate();" . "});" . "$( '.conditionalOperator select' ).live( 'change', function() {" . "if ( ( $( this ).val() == 6 ) || ( $( this ).val() == 7 ) ) {" . "$( this ).closest( 'tr' ).find( '.conditionalValue input' ).addClass( 'gjautoHide' );" . "} else {" . "$( this ).closest( 'tr' ).find( '.conditionalValue input' ).removeClass( 'gjautoHide' );" . "}" . "});" . "$( '#conditional table tbody' ).sortable( { items: 'tr', containment: 'parent', animated: true, stop: conditionalCalculate, tolerance: 'pointer', handle: '.moveConditional', opacity: 0.5 } );" . "conditionalCalculate();" . "function validate() {" . "if ( $( '#trigger' ).val() ) {" . "$( '#object,#access__' ).closest( 'tr' ).removeClass( 'gjautoHide' );" . "if ( $( '#object' ).val() == 1 ) {" . "$( '#variable' ).removeClass( 'gjautoHide' );" . "$( '#variable_user' ).addClass( 'gjautoHide' );" . "} else if ( $( '#object' ).val() == 3 ) {" . "$( '#variable' ).addClass( 'gjautoHide' );" . "$( '#variable_user' ).removeClass( 'gjautoHide' );" . "} else {" . "$( '#variable,#variable_user' ).addClass( 'gjautoHide' );" . "}" . "if ( $( '#access__' ).val() ) {" . "$( '#access__' ).closest( 'tr' ).nextAll( 'tr' ).removeClass( 'gjautoHide' );" . "$( '#params__auto' ).closest( 'tr' ).nextAll( 'tr' ).addClass( 'gjautoHide' );" . "if ( $( '#params__auto' ).val() == 1 ) {" . "$( '#list_groups' ).removeClass( 'gjautoHide' );" . "$( '#params__status' ).closest( 'tr' ).removeClass( 'gjautoHide' );" . "} else if ( $( '#params__auto' ).val() == 2 ) {" . "$( '#list_category' ).removeClass( 'gjautoHide' );" . "if ( $( '#params__category' ).val() ) {" . "$( '#list_category' ).closest( 'tr' ).nextAll( 'tr' ).removeClass( 'gjautoHide' );" . "if ( $( '#params__category' ).val() != -1 ) {" . "$( '#params__types__,#params__cat_parent,#params__cat_name,#params__cat_description,#params__cat_owner,#params__cat_unique' ).closest( 'tr' ).addClass( 'gjautoHide' );" . "}" . "if ( $( '#params__grp_unique' ).val() == 1 ) {" . "$( '#params__grp_autojoin' ).closest( 'tr' ).addClass( 'gjautoHide' );" . "}" . "} else {" . "$( '#list_category' ).closest( 'tr' ).nextAll( 'tr' ).addClass( 'gjautoHide' );" . "}" . "} else if ( $( '#params__auto' ).val() == 3 ) {" . "$( '#list_category' ).closest( 'tr' ).nextAll( 'tr' ).removeClass( 'gjautoHide' );" . "$( '#params__grp_parent,#params__grp_name,#params__grp_description,#params__grp_owner,#params__grp_unique,#params__grp_autojoin,#params__type' ).closest( 'tr' ).addClass( 'gjautoHide' );" . "} else if ( $( '#params__auto' ).val() == 4 ) {" . "$( '#list_groups' ).removeClass( 'gjautoHide' );" . "}" . "} else {" . "$( '#access__' ).closest( 'tr' ).nextAll( 'tr' ).addClass( 'gjautoHide' );" . "}" . "} else {" . "$( '#trigger' ).closest( 'tr' ).nextAll( 'tr' ).addClass( 'gjautoHide' );" . "}" . "};" . "$( '#triggers' ).change( function() {" . "if ( $( '#trigger' ).val() ) {" . "value = $( '#trigger' ).val() + ',' + $( this ).val();" . "} else {" . "value = $( this ).val();" . "}" . "if ( value ) {" . "$( '#trigger' ).attr( 'value', value ).focus();" . "$( this ).attr( 'value', '' );" . "}" . "});" . "$( '#adminForm :input' ).bind( 'change keyup focus', function() {" . "validate();" . "});" . "validate();"; $_CB_framework->outputCbJQuery( $js, 'ui-all' ); $input = array(); $input['published'] = moscomprofilerHTML::yesnoSelectList( 'published', null, (int) cbgjClass::getCleanParam( true, 'published', $row->get( 'published', 0 ) ) ); $input['title'] = '<input type="text" id="title" name="title" value="' . htmlspecialchars( cbgjClass::getCleanParam( true, 'title', $row->get( 'title' ) ) ) . '" class="inputbox" size="40" />'; $input['description'] = '<textarea id="description" name="description" class="inputbox" cols="40" rows="3">' . htmlspecialchars( cbgjClass::getCleanParam( true, 'description', $row->get( 'description' ) ) ) . '</textarea>'; $listTriggers = array(); $listTriggers[] = moscomprofilerHTML::makeOption( '', CBTxt::T( '- Add Trigger -' ) ); $listTriggers[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'Frontend' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeLoginFormDisplay', CBTxt::T( 'Before Login Form Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeFirstLogin', CBTxt::T( 'Before User First Login' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeLogin', CBTxt::T( 'Before User Login' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onLoginAuthentication', CBTxt::T( 'Login Authentication' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onDuringLogin', CBTxt::T( 'During Login' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onDoLoginNow', CBTxt::T( 'Do Login Now' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterLogin', CBTxt::T( 'After User Login' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeLogout', CBTxt::T( 'Before User Logout' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onDoLogoutNow', CBTxt::T( 'Do Logout Now' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterLogout', CBTxt::T( 'After User Logout' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserAvatarUpdate', CBTxt::T( 'Before Avatar Update' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserAvatarUpdate', CBTxt::T( 'After Avatar Update' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserProfileEditDisplay', CBTxt::T( 'After Profile Edit Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserUpdate', CBTxt::T( 'Before Profile Update' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserUpdate', CBTxt::T( 'After Profile Update' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserProfileRequest', CBTxt::T( 'Before Profile Request' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserProfileDisplay', CBTxt::T( 'Before Profile Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserProfileDisplay', CBTxt::T( 'After Profile Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeRegisterFormDisplay', CBTxt::T( 'Before Registration Form Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeRegisterForm', CBTxt::T( 'Before Registration Form' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onStartSaveUserRegistration', CBTxt::T( 'Start Save Registration' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserRegistration', CBTxt::T( 'Before Registration' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserRegistration', CBTxt::T( 'After Registration' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserRegistrationMailsSent', CBTxt::T( 'After Registration Mail Sent' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeAddConnection', CBTxt::T( 'Before Add Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterAddConnection', CBTxt::T( 'After Add Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeRemoveConnection', CBTxt::T( 'Before Remove Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterRemoveConnection', CBTxt::T( 'After Remove Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeDenyConnection', CBTxt::T( 'Before Deny Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterDenyConnection', CBTxt::T( 'After Deny Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeAcceptConnection', CBTxt::T( 'Before Accept Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterAcceptConnection', CBTxt::T( 'After Accept Connection' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onLostPassForm', CBTxt::T( 'Lost Password Form' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onStartNewPassword', CBTxt::T( 'Start New Password' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeNewPassword', CBTxt::T( 'Before New Password' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onNewPassword', CBTxt::T( 'New Password' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUsernameReminder', CBTxt::T( 'Before Username Reminder' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUsernameReminder', CBTxt::T( 'After Username Reminder' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeEmailUserForm', CBTxt::T( 'Before Email Form' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterEmailUserForm', CBTxt::T( 'After Email Form' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeEmailUser', CBTxt::T( 'Before Email User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeDisplayUsersList', CBTxt::T( 'Before Userlist Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'Backend' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUpdateUser', CBTxt::T( 'Before Profile Update' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUpdateUser', CBTxt::T( 'After Profile Update' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeNewUser', CBTxt::T( 'Before Registration' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterNewUser', CBTxt::T( 'After Registration' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeDeleteUser', CBTxt::T( 'Before Delete User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterDeleteUser', CBTxt::T( 'After Delete User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserBlocking', CBTxt::T( 'Before Blocking User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeSyncUser', CBTxt::T( 'Before Sync User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterSyncUser', CBTxt::T( 'After Sync User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserActive', CBTxt::T( 'Before User Active' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterCheckCbDb', CBTxt::T( 'After Check CB Database' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterCheckCbFieldsDb', CBTxt::T( 'After Check Fields Database' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeFixDb', CBTxt::T( 'Before Fix Database' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterFixDb', CBTxt::T( 'After Fix Database' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeFixFieldsDb', CBTxt::T( 'Before Fix Fields Database' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeBackendUsersListBuildQuery', CBTxt::T( 'Before Userlist Build Query' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterBackendUsersList', CBTxt::T( 'Before Userlist' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeBackendUsersEmailForm', CBTxt::T( 'Before Userlist Email Form' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeBackendUsersEmailStart', CBTxt::T( 'Before Userlist Email Start' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeBackendUserEmail', CBTxt::T( 'Before Userlist Email' ) ); $listTriggers[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'Frontend & Backend' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserProfileEditDisplay', CBTxt::T( 'Before Profile Edit Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserConfirm', CBTxt::T( 'Before User Confirm' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserConfirm', CBTxt::T( 'After User Confirm' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUserApproval', CBTxt::T( 'Before User Approval' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUserApproval', CBTxt::T( 'After User Approval' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onPrepareMenus', CBTxt::T( 'Prepare Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterFieldsFetch', CBTxt::T( 'After Fields Fetch' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterTabsFetch', CBTxt::T( 'After Tabs Fetch' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterPrepareViewTabs', CBTxt::T( 'After Prepare Tabs View' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeEditATab', CBTxt::T( 'Before Tab Edit' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterEditATab', CBTxt::T( 'After Tab Edit' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onStartUsersList', CBTxt::T( 'Start Userlist' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterUsersListFieldsSql', CBTxt::T( 'After Userlist Fields SQL' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUsersListBuildQuery', CBTxt::T( 'Before Userlist Build Query' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onBeforeUsersListQuery', CBTxt::T( 'Before Userlist Query' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onInputFieldHtmlRender', CBTxt::T( 'Field HTML Render' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onFieldIcons', CBTxt::T( 'Field Icons' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onLogChange', CBTxt::T( 'Log Change' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterAuthorizeAction', CBTxt::T( 'After Authorize Action' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onAfterAuthorizeView', CBTxt::T( 'After Authorize View' ) ); $listTriggers[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'CB GroupJive' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onPluginBE', CBTxt::T( 'Integration Backend' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeTools', CBTxt::T( 'Before Tools' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterTools', CBTxt::T( 'After Tools' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeNotification', CBTxt::T( 'Before Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterNotification', CBTxt::T( 'After Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeTemplate', CBTxt::T( 'Before Template' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterTemplate', CBTxt::T( 'After Template' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateCategory', CBTxt::T( 'Before Update Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCreateCategory', CBTxt::T( 'Before Create Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateCategory', CBTxt::T( 'After Update Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCreateCategory', CBTxt::T( 'After Create Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeDeleteCategory', CBTxt::T( 'Before Delete Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterDeleteCategory', CBTxt::T( 'After Delete Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateCategoryOrder', CBTxt::T( 'Before Update Category Order' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateCategoryOrder', CBTxt::T( 'After Update Category Order' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateCategoryState', CBTxt::T( 'Before Update Category State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateCategoryState', CBTxt::T( 'After Update Category State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateCategoryParams', CBTxt::T( 'Before Update Category Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateCategoryParams', CBTxt::T( 'After Update Category Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeSetCategoryParams', CBTxt::T( 'Before Set Category Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterSetCategoryParams', CBTxt::T( 'After Set Category Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateGroup', CBTxt::T( 'Before Update Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCreateGroup', CBTxt::T( 'Before Create Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateGroup', CBTxt::T( 'After Update Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCreateGroup', CBTxt::T( 'After Create Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeDeleteGroup', CBTxt::T( 'Before Delete Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterDeleteGroup', CBTxt::T( 'After Delete Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateGroupOrder', CBTxt::T( 'Before Update Group Order' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateGroupOrder', CBTxt::T( 'After Update Group Order' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateGroupState', CBTxt::T( 'Before Update Group State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateGroupState', CBTxt::T( 'After Update Group State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateGroupParams', CBTxt::T( 'Before Update Group Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateGroupParams', CBTxt::T( 'After Update Group Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeSetGroupParams', CBTxt::T( 'Before Set Group Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterSetGroupParams', CBTxt::T( 'After Set Group Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateUser', CBTxt::T( 'Before Update User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCreateUser', CBTxt::T( 'Before Create User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateUser', CBTxt::T( 'After Update User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCreateUser', CBTxt::T( 'After Create User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeDeleteUser', CBTxt::T( 'Before Delete User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterDeleteUser', CBTxt::T( 'After Delete User' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateUserStatus', CBTxt::T( 'Before Update User Status' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateUserStatus', CBTxt::T( 'After Update User Status' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateUserParams', CBTxt::T( 'Before Update User Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateUserParams', CBTxt::T( 'After Update User Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeSetUserParams', CBTxt::T( 'Before Set User Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterSetUserParams', CBTxt::T( 'After Set User Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateInvite', CBTxt::T( 'Before Update Invite' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCreateInvite', CBTxt::T( 'Before Create Invite' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateInvite', CBTxt::T( 'After Update Invite' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCreateInvite', CBTxt::T( 'After Create Invite' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeDeleteInvite', CBTxt::T( 'Before Delete Invite' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterDeleteInvite', CBTxt::T( 'After Delete Invite' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateNotification', CBTxt::T( 'Before Update Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCreateNotification', CBTxt::T( 'Before Create Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateNotification', CBTxt::T( 'After Update Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCreateNotification', CBTxt::T( 'After Create Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeDeleteNotification', CBTxt::T( 'Before Delete Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterDeleteNotification', CBTxt::T( 'After Delete Notification' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeUpdateNotificationParams', CBTxt::T( 'Before Update Notification Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterUpdateNotificationParams', CBTxt::T( 'After Update Notification Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeSetNotificationParams', CBTxt::T( 'Before Set Notification Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterSetNotificationParams', CBTxt::T( 'After Set Notification Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onPluginFE', CBTxt::T( 'Integration Frontend' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeMessageOverview', CBTxt::T( 'Before Message Overview' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterMessageOverview', CBTxt::T( 'After Message Overview' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeMessageCategory', CBTxt::T( 'Before Message Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterMessageCategory', CBTxt::T( 'After Message Category' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeJoinGroup', CBTxt::T( 'Before Join Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterJoinGroup', CBTxt::T( 'After Join Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeLeaveGroup', CBTxt::T( 'Before Leave Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterLeaveGroup', CBTxt::T( 'After Leave Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeMessageGroup', CBTxt::T( 'Before Message Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterMessageGroup', CBTxt::T( 'After Message Group' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onPluginBEToolbar', CBTxt::T( 'Integration Backend Toolbar' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateAuto', CBTxt::T( 'Before Update Auto' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeCreateAuto', CBTxt::T( 'Before Create Auto' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateAuto', CBTxt::T( 'After Update Auto' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterCreateAuto', CBTxt::T( 'After Create Auto' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeDeleteAuto', CBTxt::T( 'Before Delete Auto' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterDeleteAuto', CBTxt::T( 'After Delete Auto' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateAutoOrder', CBTxt::T( 'Before Update Auto Order' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateAutoOrder', CBTxt::T( 'After Update Auto Order' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateAutoParams', CBTxt::T( 'Before Update Auto Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateAutoParams', CBTxt::T( 'After Update Auto Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateAutoState', CBTxt::T( 'Before Update Auto State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateAutoState', CBTxt::T( 'After Update Auto State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeSetAutoFields', CBTxt::T( 'Before Set Auto Fields' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterSetAutoFields', CBTxt::T( 'After Set Auto Fields' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeSetAutoOperators', CBTxt::T( 'Before Set Auto Operators' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterSetAutoOperators', CBTxt::T( 'After Set Auto Operators' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeSetAutoValues', CBTxt::T( 'Before Set Auto Values' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterSetAutoValues', CBTxt::T( 'After Set Auto Values' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeSetAutoParams', CBTxt::T( 'Before Set Auto Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterSetAutoParams', CBTxt::T( 'After Set Auto Params' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateEvent', CBTxt::T( 'Before Update Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeCreateEvent', CBTxt::T( 'Before Create Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateEvent', CBTxt::T( 'After Update Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterCreateEvent', CBTxt::T( 'After Create Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeDeleteEvent', CBTxt::T( 'Before Delete Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterDeleteEvent', CBTxt::T( 'After Delete Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateEventState', CBTxt::T( 'Before Update Event State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateEventState', CBTxt::T( 'After Update Event State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateEventAttendance', CBTxt::T( 'Before Update Event Attendance' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateEventAttendance', CBTxt::T( 'After Update Event Attendance' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateFile', CBTxt::T( 'Before Update File' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeCreateFile', CBTxt::T( 'Before Create File' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateFile', CBTxt::T( 'After Update File' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterCreateFile', CBTxt::T( 'After Create File' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeDeleteFile', CBTxt::T( 'Before Delete File' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterDeleteFile', CBTxt::T( 'After Delete File' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateFileState', CBTxt::T( 'Before Update File State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateFileState', CBTxt::T( 'After Update File State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdatePhoto', CBTxt::T( 'Before Update Photo' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeCreatePhoto', CBTxt::T( 'Before Create Photo' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdatePhoto', CBTxt::T( 'After Update Photo' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterCreatePhoto', CBTxt::T( 'After Create Photo' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeDeletePhoto', CBTxt::T( 'Before Delete Photo' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterDeletePhoto', CBTxt::T( 'After Delete Photo' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdatePhotoState', CBTxt::T( 'Before Update Photo State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdatePhotoState', CBTxt::T( 'After Update Photo State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateVideo', CBTxt::T( 'Before Update Video' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeCreateVideo', CBTxt::T( 'Before Create Video' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateVideo', CBTxt::T( 'After Update Video' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterCreateVideo', CBTxt::T( 'After Create Video' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeDeleteVideo', CBTxt::T( 'Before Delete Video' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterDeleteVideo', CBTxt::T( 'After Delete Video' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateVideoState', CBTxt::T( 'Before Update Video State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateVideoState', CBTxt::T( 'After Update Video State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateWall', CBTxt::T( 'Before Update Wall' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeCreateWall', CBTxt::T( 'Before Create Wall' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateWall', CBTxt::T( 'After Update Wall' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterCreateWall', CBTxt::T( 'After Create Wall' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeDeleteWall', CBTxt::T( 'Before Delete Wall' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterDeleteWall', CBTxt::T( 'After Delete Wall' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onBeforeUpdateWallState', CBTxt::T( 'Before Update Wall State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gjint_onAfterUpdateWallState', CBTxt::T( 'After Update Wall State' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onMenuBE', CBTxt::T( 'Backend Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onCategoryEdit', CBTxt::T( 'Category Edit' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onGroupEdit', CBTxt::T( 'Group Edit' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onConfigIntegrations', CBTxt::T( 'Config Integrations' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onMenusIntegrationsGeneral', CBTxt::T( 'Menus Integrations General' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onMenusIntegrationsCategories', CBTxt::T( 'Menus Integrations Categories' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onMenusIntegrationsGroups', CBTxt::T( 'Menus Integrations Groups' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onMenusIntegrationsSave', CBTxt::T( 'Menus Integrations Save' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAuthorization', CBTxt::T( 'Authorization' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onCaptchaRender', CBTxt::T( 'Captcha Render' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onCaptchaValidate', CBTxt::T( 'Captcha Validate' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onToolbarBE', CBTxt::T( 'Backend Toolbar' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeOverviewCategoryMenu', CBTxt::T( 'Before Overview Category Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterOverviewCategoryMenu', CBTxt::T( 'After Overview Category Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeOverviewCategoryInfo', CBTxt::T( 'Before Overview Category Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterOverviewCategoryInfo', CBTxt::T( 'After Overview Category Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCategoryGroupMenu', CBTxt::T( 'Before Category Group Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCategoryGroupMenu', CBTxt::T( 'After Category Group Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCategoryGroupInfo', CBTxt::T( 'Before Category Group Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCategoryGroupInfo', CBTxt::T( 'After Category Group Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCategoryTab', CBTxt::T( 'Before Category Tab' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCategoryTab', CBTxt::T( 'After Category Tab' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCategoryInfo', CBTxt::T( 'Before Category Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCategoryInfo', CBTxt::T( 'After Category Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeCategoryMenu', CBTxt::T( 'Before Category Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterCategoryMenu', CBTxt::T( 'After Category Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeGroupInviteInfo', CBTxt::T( 'Before Group Invite Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeGroupInviteMenu', CBTxt::T( 'Before Group Invite Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterGroupInviteMenu', CBTxt::T( 'After Group Invite Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterGroupInviteInfo', CBTxt::T( 'After Group Invite Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeGroupTab', CBTxt::T( 'Before Group Tab' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterGroupTab', CBTxt::T( 'After Group Tab' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeGroupInfo', CBTxt::T( 'Before Group Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterGroupInfo', CBTxt::T( 'After Group Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeGroupMenu', CBTxt::T( 'Before Group Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterGroupMenu', CBTxt::T( 'After Group Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeGroupUserMenu', CBTxt::T( 'Before Group User Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterGroupUserMenu', CBTxt::T( 'After Group User Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeGroupUserInfo', CBTxt::T( 'Before Group User Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterGroupUserInfo', CBTxt::T( 'After Group User Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onGeneralNotifications', CBTxt::T( 'General Notifications' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onCategoryNotifications', CBTxt::T( 'Category Notifications' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onGroupNotifications', CBTxt::T( 'Group Notifications' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeOverviewInfo', CBTxt::T( 'Before Overview Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterOverviewInfo', CBTxt::T( 'After Overview Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeOverviewMenu', CBTxt::T( 'Before Overview Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterOverviewMenu', CBTxt::T( 'After Overview Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforePanelInfo', CBTxt::T( 'Before Panel Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterPanelInfo', CBTxt::T( 'After Panel Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforePanelMenu', CBTxt::T( 'Before Panel Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterPanelMenu', CBTxt::T( 'After Panel Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileTab', CBTxt::T( 'Before Profile Tab' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileTab', CBTxt::T( 'After Profile Tab' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileOverviewCategoryMenu', CBTxt::T( 'Before Profile Overview Category Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileOverviewCategoryMenu', CBTxt::T( 'After Profile Overview Category Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileOverviewCategoryInfo', CBTxt::T( 'Before Profile Overview Category Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileOverviewCategoryInfo', CBTxt::T( 'After Profile Overview Category Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileCategoryGroupMenu', CBTxt::T( 'Before Profile Category Group Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileCategoryGroupMenu', CBTxt::T( 'After Profile Category Group Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileCategoryGroupInfo', CBTxt::T( 'Before Profile Category Group Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileCategoryGroupInfo', CBTxt::T( 'After Profile Category Group Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileGroupInvitedMenu', CBTxt::T( 'Before Profile Group Invited Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileGroupInvitedMenu', CBTxt::T( 'After Profile Group Invited Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileGroupInvitedInfo', CBTxt::T( 'Before Profile Group Invited Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileGroupInvitedInfo', CBTxt::T( 'After Profile Group Invited Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileGroupInviteInfo', CBTxt::T( 'Before Profile Group Invite Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onBeforeProfileGroupInviteMenu', CBTxt::T( 'Before Profile Group Invite Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileGroupInviteMenu', CBTxt::T( 'After Profile Group Invite Menu' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'gj_onAfterProfileGroupInviteInfo', CBTxt::T( 'After Profile Group Invite Info' ) ); $listTriggers[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'CB Paid Subscriptions' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterPlanRenewalSelected', CBTxt::T( 'After Plan Renewal Selected' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayEditBasketIntegration', CBTxt::T( 'Edit Basket Integration' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCbSubsAfterPaymentBasket', CBTxt::T( 'After Payment Basket' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeDrawSomething', CBTxt::T( 'Before Draw Something' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterDrawSomething', CBTxt::T( 'After Draw Something' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeDrawPlan', CBTxt::T( 'Before Draw Plan' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterDrawPlan', CBTxt::T( 'After Draw Plan' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterPlanSelected', CBTxt::T( 'After Plan Selected' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterPaymentStatusChange', CBTxt::T( 'After Payment Status Change' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterPaymentStatusUpdateEvent', CBTxt::T( 'After Payment Status Update Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeBackendPlanDisplay', CBTxt::T( 'Before Backend Plan Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeDisplayProductPeriodPrice', CBTxt::T( 'Before Display Product Period Price' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterDisplayProductPeriodPrice', CBTxt::T( 'After Display Product Period Price' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeComputeTotalizersPaymentBasketUpdated', CBTxt::T( 'Before Compute Totalizers Payment Basket Updated' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeStorePaymentBasketUpdated', CBTxt::T( 'Before Store Payment Basket Updated' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterPaymentBasketUpdated', CBTxt::T( 'After Payment Basket Updated' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayPaymentItemEvent', CBTxt::T( 'Payment Item Event' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeGetProductPrice', CBTxt::T( 'Before Get Product Price' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterGetProductPrice', CBTxt::T( 'After Get Product Price' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeDisplaySubscriptionPeriodPrice', CBTxt::T( 'Before Display Subscription Period Price' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterDisplaySubscriptionPeriodPrice', CBTxt::T( 'After Display Subscription Period Price' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayUserStateChange', CBTxt::T( 'User State Change' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeMailerEmailMessageSent', CBTxt::T( 'Before Mailer Email Message Sent' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeMailerPrivateMessageSent', CBTxt::T( 'Before Mailer Private Message Sent' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayAfterMailerMessageSent', CBTxt::T( 'After Mailer Message Sent' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'onCPayBeforeDrawSubscription', CBTxt::T( 'Before Draw Subscription' ) ); $listTriggers[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'CB Activity' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onBeforeMessageDisplay', CBTxt::T( 'Before Message Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onAfterMessageDisplay', CBTxt::T( 'After Message Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onBeforeItemDisplay', CBTxt::T( 'Before Item Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onAfterItemDisplay', CBTxt::T( 'After Item Display' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onBeforeUpdateActivity', CBTxt::T( 'Before Update Activity' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onBeforeCreateActivity', CBTxt::T( 'Before Create Activity' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onAfterUpdateActivity', CBTxt::T( 'After Update Activity' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onAfterCreateActivity', CBTxt::T( 'After Create Activity' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onBeforeDeleteActivity', CBTxt::T( 'Before Delete Activity' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onAfterDeleteActivity', CBTxt::T( 'After Delete Activity' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onBeforeAccess', CBTxt::T( 'Before Access' ) ); $listTriggers[] = moscomprofilerHTML::makeOption( 'activity_onAfterAccess', CBTxt::T( 'After Access' ) ); $input['triggers'] = moscomprofilerHTML::selectList( $listTriggers, 'triggers', null, 'value', 'text', null, 1, false, false ); $input['trigger'] = '<input type="text" id="trigger" name="trigger" value="' . htmlspecialchars( str_replace( ' ', '', cbgjClass::getCleanParam( true, 'trigger', $row->get( 'trigger' ) ) ) ) . '" class="inputbox" size="40" />'; $listObject = array(); $listObject[] = moscomprofilerHTML::makeOption( '0', CBTxt::T( 'Automatic' ) ); $listObject[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'Manually' ) ); $listObject[] = moscomprofilerHTML::makeOption( '2', CBTxt::T( 'User' ) ); $listObject[] = moscomprofilerHTML::makeOption( '3', CBTxt::T( 'Specific' ) ); $input['object'] = moscomprofilerHTML::selectList( $listObject, 'object', null, 'value', 'text', (int) cbgjClass::getCleanParam( true, 'object', $row->get( 'object', 0 ) ), 1, false, false ); $listVariable = array(); $listVariable[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'Variable 1' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '2', CBTxt::T( 'Variable 2' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '3', CBTxt::T( 'Variable 3' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '4', CBTxt::T( 'Variable 4' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '5', CBTxt::T( 'Variable 5' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '6', CBTxt::T( 'Variable 6' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '7', CBTxt::T( 'Variable 7' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '8', CBTxt::T( 'Variable 8' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '9', CBTxt::T( 'Variable 9' ) ); $listVariable[] = moscomprofilerHTML::makeOption( '10', CBTxt::T( 'Variable 10' ) ); $input['variable'] = moscomprofilerHTML::selectList( $listVariable, 'variable', null, 'value', 'text', (int) cbgjClass::getCleanParam( true, 'variable', $row->get( 'variable', 0 ) ), 1, false, false ); $input['variable_user'] = '******' . htmlspecialchars( cbgjClass::getCleanParam( true, 'variable', $row->get( 'variable' ) ) ) . '" class="inputbox" size="5" />'; $listAccess = array(); $listAccess[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'Custom ACL' ) ); $listAccess[] = moscomprofilerHTML::makeOption( '-1', CBTxt::T( 'Everybody' ) ); $listAccess[] = moscomprofilerHTML::makeOption( '-2', CBTxt::T( 'All Non-Registered Users' ) ); $listAccess[] = moscomprofilerHTML::makeOption( '-3', CBTxt::T( 'All Registered Users' ) ); $listAccess[] = moscomprofilerHTML::makeOption( '-4', CBTxt::T( 'All Non-Moderators' ) ); $listAccess[] = moscomprofilerHTML::makeOption( '-5', CBTxt::T( 'All Moderators' ) ); $listAccess[] = moscomprofilerHTML::makeOptGroup( CBTxt::T( 'CMS ACL' ) ); $listAccess = array_merge( $listAccess, $_CB_framework->acl->get_group_children_tree( null, 'USERS', false ) ); $input['access'] = moscomprofilerHTML::selectList( $listAccess, 'access[]', 'size="6" multiple="multiple"', 'value', 'text', explode( '|*|', cbgjClass::getCleanParam( true, 'access', $row->get( 'access' ) ) ), 1, false, false ); $listOperator = array(); $listOperator[] = moscomprofilerHTML::makeOption( '', CBTxt::T( '- Select Operator -' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '0', CBTxt::T( 'Equal To' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'Not Equal To' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '2', CBTxt::T( 'Greater Than' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '3', CBTxt::T( 'Less Than' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '4', CBTxt::T( 'Greater Than or Equal To' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '5', CBTxt::T( 'Less Than or Equal To' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '6', CBTxt::T( 'Empty' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '7', CBTxt::T( 'Not Empty' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '8', CBTxt::T( 'Does Contain' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '9', CBTxt::T( 'Does Not Contain' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '10', CBTxt::T( 'Is REGEX' ) ); $listOperator[] = moscomprofilerHTML::makeOption( '11', CBTxt::T( 'Is Not REGEX' ) ); $conditionals = count( explode( "\n", $row->get( 'field' ) ) ); for ( $i = 0, $n = ( $conditionals ? $conditionals : 1 ); $i < $n; $i++ ) { $operator = cbgjClass::getCleanParam( true, "operator$i", null, null, $row->get( 'operator' ) ); $input["field$i"] = '<input type="text" id="fields__field' . $i . '" name="fields[field' . $i . ']" value="' . htmlspecialchars( cbgjClass::getHTMLCleanParam( true, "field$i", null, null, $row->get( 'field' ) ) ) . '" class="inputbox" size="25" />'; $input["operator$i"] = moscomprofilerHTML::selectList( $listOperator, "operators[operator$i]", null, 'value', 'text', $operator, 1, false, false ); $input["value$i"] = '<input type="text" id="values__' . $i . '" name="values[value' . $i . ']" value="' . htmlspecialchars( cbgjClass::getHTMLCleanParam( true, "value$i", null, null, $row->get( 'value' ) ) ) . '" class="inputbox' . ( in_array( $operator, array( 6, 7 ) ) ? ' gjautoHide' : null ) . '" size="25" />'; } $input['conditionals'] = ( $conditionals ? $conditionals : 1 ); $listAuto = array(); $listAuto[] = moscomprofilerHTML::makeOption( '', CBTxt::T( '- Select Auto -' ) ); $listAuto[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'Join Groups' ) ); $listAuto[] = moscomprofilerHTML::makeOption( '4', CBTxt::T( 'Leave Groups' ) ); $listAuto[] = moscomprofilerHTML::makeOption( '2', CBTxt::T( 'New Group' ) ); $listAuto[] = moscomprofilerHTML::makeOption( '3', CBTxt::T( 'New Category' ) ); $input['auto'] = moscomprofilerHTML::selectList( $listAuto, 'params[auto]', null, 'value', 'text', $params->get( 'auto' ), 1, false, false ); $listGroups = array(); $categories = cbgjData::getCategories(); if ( $categories ) foreach ( $categories as $cat ) { $groups = cbgjData::listArray( cbgjData::getGroups( null, array( 'category', '=', $cat->get( 'id' ) ) ) ); if ( $groups ) { $listGroups[] = moscomprofilerHTML::makeOptGroup( $cat->get( 'name' ) ); foreach ( $groups as $grp ) { $listGroups[] = moscomprofilerHTML::makeOption( $grp->value, $grp->text ); } } } if ( $listGroups ) { $input['groups'] = moscomprofilerHTML::selectList( $listGroups, 'params[groups][]', 'size="6" multiple="multiple"', 'value', 'text', explode( '|*|', $params->get( 'groups', '1|*|2|*|3' ) ), 1, false, false ); array_unshift( $listGroups, moscomprofilerHTML::makeOption( '0', CBTxt::T( 'No Parent' ) ) ); $input['grp_parent'] = moscomprofilerHTML::selectList( $listGroups, 'params[grp_parent]', null, 'value', 'text', $params->get( 'grp_parent', 0 ), 1, false, false ); } else { $input['groups'] = CBTxt::T( 'No groups exist!' ); $input['grp_parent'] = CBTxt::T( 'No groups exist!' ); } $listStatus = array(); $listStatus[] = moscomprofilerHTML::makeOption( '-1', CBTxt::T( 'Banned' ) ); $listStatus[] = moscomprofilerHTML::makeOption( '0', CBTxt::T( 'Inactive' ) ); $listStatus[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'Active' ) ); $listStatus[] = moscomprofilerHTML::makeOption( '2', CBTxt::T( 'Moderator' ) ); $listStatus[] = moscomprofilerHTML::makeOption( '3', CBTxt::T( 'Admin' ) ); $listStatus[] = moscomprofilerHTML::makeOption( '4', CBTxt::T( 'Owner' ) ); $input['status'] = moscomprofilerHTML::selectList( $listStatus, 'params[status]', null, 'value', 'text', $params->get( 'status', 1 ), 1, false, false ); if ( $categories ) { $categories = cbgjData::listArray( $categories ); $categoriesParents = $categories; array_unshift( $categories, moscomprofilerHTML::makeOption( '-1', CBTxt::T( 'New Category' ) ) ); array_unshift( $categories, moscomprofilerHTML::makeOption( '', CBTxt::T( '- Select Category -' ) ) ); $input['category'] = moscomprofilerHTML::selectList( $categories, 'params[category]', null, 'value', 'text', $params->get( 'category' ), 1, false, false ); array_unshift( $categoriesParents, moscomprofilerHTML::makeOption( '0', CBTxt::T( 'No Parent' ) ) ); $input['cat_parent'] = moscomprofilerHTML::selectList( $categoriesParents, 'params[cat_parent]', null, 'value', 'text', $params->get( 'cat_parent', 0 ), 1, false, false ); } else { $input['category'] = CBTxt::T( 'No categories exist!' ); $input['cat_parent'] = CBTxt::T( 'No categories exist!' ); } $input['cat_name'] = '<input type="text" id="params__cat_name" name="params[cat_name]" value="' . htmlspecialchars( $params->get( 'cat_name' ) ) . '" class="inputbox" size="40" />'; $input['cat_description'] = '<textarea id="params__cat_description" name="params[cat_description]" class="inputbox" cols="40" rows="5">' . htmlspecialchars( $params->get( 'cat_description' ) ) . '</textarea>'; $input['cat_owner'] = '<input type="text" id="params__cat_owner" name="params[cat_owner]" value="' . htmlspecialchars( $params->get( 'cat_owner' ) ) . '" class="inputbox" size="10" />'; $input['cat_unique'] = moscomprofilerHTML::yesnoSelectList( 'params[cat_unique]', null, $params->get( 'cat_unique', 1 ), CBTxt::T( 'Enable' ), CBTxt::T( 'Disable' ) ); $listTypes = array(); $listTypes[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'Open' ) ); $listTypes[] = moscomprofilerHTML::makeOption( '2', CBTxt::T( 'Approval' ) ); $listTypes[] = moscomprofilerHTML::makeOption( '3', CBTxt::T( 'Invite' ) ); $input['types'] = moscomprofilerHTML::selectList( $listTypes, 'params[types][]', 'size="4" multiple="multiple"', 'value', 'text', explode( '|*|', $params->get( 'types', '1|*|2|*|3' ) ), 1, false, false ); $input['grp_name'] = '<input type="text" id="params__grp_name" name="params[grp_name]" value="' . htmlspecialchars( $params->get( 'grp_name' ) ) . '" class="inputbox" size="40" />'; $input['grp_description'] = '<textarea id="params__grp_description" name="params[grp_description]" class="inputbox" cols="40" rows="5">' . htmlspecialchars( $params->get( 'grp_description' ) ) . '</textarea>'; $input['grp_owner'] = '<input type="text" id="params__grp_owner" name="params[grp_owner]" value="' . htmlspecialchars( $params->get( 'grp_owner' ) ) . '" class="inputbox" size="10" />'; $input['grp_unique'] = moscomprofilerHTML::yesnoSelectList( 'params[grp_unique]', null, $params->get( 'grp_unique', 1 ), CBTxt::T( 'Enable' ), CBTxt::T( 'Disable' ) ); $input['grp_autojoin'] = moscomprofilerHTML::yesnoSelectList( 'params[grp_autojoin]', null, $params->get( 'grp_autojoin', 1 ), CBTxt::T( 'Enable' ), CBTxt::T( 'Disable' ) ); $input['type'] = moscomprofilerHTML::selectList( $listTypes, 'params[type]', null, 'value', 'text', $params->get( 'type', 1 ), 1, false, false ); $input['exclude'] = '<input type="text" id="exclude" name="exclude" value="' . htmlspecialchars( $params->get( 'exclude' ) ) . '" class="inputbox" size="20" />'; cbgjClass::displayMessage( $message ); if ( class_exists( 'HTML_cbgroupjiveautoEdit' ) ) { HTML_cbgroupjiveautoEdit::showAutoEdit( $row, $input, $user, $plugin ); } else { $this->showAutoEdit( $row, $input, $user, $plugin ); } }
/** * Outputs search format including $html being html with input fields * * @param moscomprofilerFields $field * @param moscomprofilerUser $user * @param string $html * @param string $type 'text', 'choice', 'isisnot', 'none' * @param int $list_compare_types IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search * @param string $class Extra-class (e.g. for jQuery) * @return string */ function _fieldSearchModeHtml(&$field, &$user, $html, $type, $list_compare_types, $class = '') { switch ($list_compare_types) { case 1: // Advanced: all possibilities: $col = $field->name . '__srmch'; $selected = $user->get($col); switch ($type) { case 'text': $choices = array('is' => _UE_MATCH_IS_EXACTLY, 'phrase' => _UE_MATCH_PHRASE, 'all' => _UE_MATCH_ALL, 'any' => _UE_MATCH_ANY, '-' => _UE_MATCH_EXCLUSIONS . ':', 'isnot' => _UE_MATCH_IS_EXACTLY_NOT, 'phrasenot' => _UE_MATCH_PHRASE_NOT, 'allnot' => _UE_MATCH_ALL_NOT, 'anynot' => _UE_MATCH_ANY_NOT); break; case 'singlechoice': $choices = array('is' => _UE_MATCH_IS, 'anyis' => _UE_MATCH_IS_ONE_OF, '-' => _UE_MATCH_EXCLUSIONS . ':', 'isnot' => _UE_MATCH_IS_NOT, 'anyisnot' => _UE_MATCH_IS_NOT_ONE_OF); break; case 'multiplechoice': $choices = array('is' => _UE_MATCH_ARE_EXACTLY, 'all' => _UE_MATCH_INCLUDE_ALL_OF, 'any' => _UE_MATCH_INCLUDE_ANY_OF, '-' => _UE_MATCH_EXCLUSIONS . ':', 'isnot' => _UE_MATCH_ARE_EXACTLY_NOT, 'allnot' => _UE_MATCH_INCLUDE_ALL_OF_NOT, 'anynot' => _UE_MATCH_INCLUDE_ANY_OF_NOT); break; case 'isisnot': $choices = array('is' => _UE_MATCH_IS, '-' => _UE_MATCH_EXCLUSIONS . ':', 'isnot' => _UE_MATCH_IS_NOT); break; case 'none': default: $choices = null; break; } if ($choices !== null) { $drop = array(); $drop[] = moscomprofilerHTML::makeOption('', _UE_NO_PREFERENCE); $group = false; foreach ($choices as $k => $v) { if ($k == '-') { $drop[] = moscomprofilerHTML::makeOptGroup($v); $group = true; } else { $drop[] = moscomprofilerHTML::makeOption($k, $v); } } if ($group) { $drop[] = moscomprofilerHTML::makeOptGroup(null); } $additional = ' class="inputbox"'; $list = moscomprofilerHTML::selectList($drop, $field->name . '__srmch', $additional, 'value', 'text', $selected, 1); } else { $list = null; } $return = '<div class="cbSearchContainer cbSearchAdvanced">' . ($list ? '<div class="cbSearchKind">' . $list . '</div>' : '') . '<div class="cbSearchCriteria' . ($class ? ' ' . $class : '') . '">' . $html . '</div>' . '</div>'; break; case 2: // Simple "contains" and ranges: // Simple "contains" and ranges: case 0: default: // Simple: Only 'is' and ranges: $return = '<div class="cbSearchContainer cbSearchSimple">' . '<div class="cbSearchCriteria' . ($class ? ' ' . $class : '') . '">' . $html . '</div>' . '</div>'; break; } return $return; }
function loadNewslettersList($name, $value, $control_name) { $newslettersList = $this->getNewslettersList(); $newslettersRegList = array(); if ($newslettersList !== false) { foreach ($newslettersList as $nl) { $newslettersRegList[] = moscomprofilerHTML::makeOption($nl->id, $nl->list_name); } } $valAsObj = isset($value) ? array_map(create_function('$v', '$o=new stdClass(); $o->value=$v; return $o;'), explode("|*|", $value)) : null; return moscomprofilerHTML::selectList($newslettersRegList, $control_name . '[' . $name . '][]', 'size="4" multiple="multiple"', 'value', 'text', $valAsObj, true); }
function drawUsersList( $uid, $listid, $searchFormValuesRAW ) { global $_CB_database, $_CB_framework, $ueConfig, $Itemid, $_PLUGINS; $search = null; $searchGET = cbGetParam( $searchFormValuesRAW, 'search' ); $limitstart = (int) cbGetParam( $searchFormValuesRAW, 'limitstart', 0 ); $searchmode = (int) cbGetParam( $searchFormValuesRAW, 'searchmode', 0 ); $randomParam = (int) cbGetParam( $searchFormValuesRAW, 'rand', 0 ); // old search on formated name: /* if ( $searchPOST || count( $_POST ) ) { // simple spoof check security cbSpoofCheck( 'usersList' ); if ( cbGetParam( $searchFormValuesRAW, "action" ) == "search" ) { $search = $searchPOST; } } else if ( isset( $searchFormValuesRAW['limitstart'] ) ) { $search = stripslashes( $searchGET ); } */ // get my user and gets the list of user lists he is allowed to see (ACL): $myCbUser =& CBuser::getInstance( $uid ); if ( $myCbUser === null ) { $myCbUser =& CBuser::getInstance( null ); } $myUser =& $myCbUser->getUserData(); /* $myUser = new moscomprofilerUser( $_CB_database ); if ( $uid ) { $myUser->load( (int) $uid ); } */ $useraccessgroupSQL = " AND useraccessgroupid IN (".implode(',',getChildGIDS(userGID($uid))).")"; $_CB_database->setQuery( "SELECT listid, title FROM #__comprofiler_lists WHERE published=1" . $useraccessgroupSQL . " ORDER BY ordering" ); $plists = $_CB_database->loadObjectList(); $lists = array(); $publishedlists = array(); for ( $i=0, $n=count( $plists ); $i < $n; $i++ ) { $plist =& $plists[$i]; $listTitleNoHtml = strip_tags( cbReplaceVars( getLangDefinition( $plist->title ), $myUser, false, false ) ); $publishedlists[] = moscomprofilerHTML::makeOption( $plist->listid, $listTitleNoHtml ); } // select either list selected or default list to which he has access (ACL): if ( $listid == 0 ) { $_CB_database->setQuery( "SELECT listid FROM #__comprofiler_lists " . "\n WHERE `default`=1 AND published=1" . $useraccessgroupSQL ); $listid = (int) $_CB_database->loadresult(); if ( $listid == 0 && ( count( $plists ) > 0 ) ) { $listid = (int) $plists[0]->listid; } } if ( ! ( $listid > 0 ) ) { echo _UE_NOLISTFOUND; return; } // generates the drop-down list of lists: if ( count( $plists ) > 1 ) { $lists['plists'] = moscomprofilerHTML::selectList( $publishedlists, 'listid', 'class="inputbox" size="1" onchange="this.form.submit();"', 'value', 'text', $listid, 1 ); } // loads the list record: $row = new moscomprofilerLists( $_CB_database ); if ( ( ! $row->load( (int) $listid ) ) || ( $row->published != 1 ) ) { echo _UE_LIST_DOES_NOT_EXIST; return; } if ( ! allowAccess( $row->useraccessgroupid,'RECURSE', userGID($uid) ) ) { echo _UE_NOT_AUTHORIZED; return; } $params = new cbParamsBase( $row->params ); $hotlink_protection = $params->get( 'hotlink_protection', 0 ); if ( $hotlink_protection == 1 ) { if ( ( $searchGET !== null ) || $limitstart ) { cbSpoofCheck( 'usersList', 'GET' ); } } $limit = (int) $params->get( 'list_limit' ); if ( $limit == 0 ) { $limit = (int) $ueConfig['num_per_page']; } $showPaging = $params->get( 'list_paging', 1 ); if ( $showPaging != 1 ) { $limitstart = 0; } $isModerator = isModerator( $_CB_framework->myId() ); $_PLUGINS->loadPluginGroup( 'user' ); // $plugSearchFieldsArray = $_PLUGINS->trigger( 'onStartUsersList', array( &$listid, &$row, &$search, &$limitstart, &$limit ) ); $_PLUGINS->trigger( 'onStartUsersList', array( &$listid, &$row, &$search, &$limitstart, &$limit ) ); // handles the users allowed to be listed in the list by ACL: $allusergids = array(); $usergids = explode( ',', $row->usergroupids ); /* This was a bug tending to list admins when "public backend" was checked, and all frontend users when "public backend was checked. Now just ignore them: foreach( $usergids AS $usergid ) { $allusergids[] = $usergid; if ($usergid==29 || $usergid==30) { $groupchildren = array(); $groupchildren = $_CB_framework->acl->get_group_children( $usergid, 'ARO','RECURSE' ); $allusergids = array_merge($allusergids,$groupchildren); } } */ $allusergids = array_diff( $usergids, array( 29, 30 ) ); $usergids = implode( ",", $allusergids ); // build SQL Select query: $random = 0; if( $row->sortfields != '' ) { $matches = null; if ( preg_match( '/^RAND\(\)\s(ASC|DESC)$/', $row->sortfields, $matches ) ) { // random sorting needs to have same seed on pages > 1 to not have probability to show same users: if ( $limitstart ) { $random = (int) $randomParam; } if ( ! $random ) { $random = rand( 0, 32767 ); } $row->sortfields = 'RAND(' . (int) $random . ') ' . $matches[1]; } $orderby = "\n ORDER BY " . $row->sortfields; } $filterby = ''; if ( $row->filterfields != '' ) { $filterRules = utf8RawUrlDecode( substr( $row->filterfields, 1 ) ); if ( $_CB_framework->myId() ) { $user = new moscomprofilerUser( $_CB_database ); if ( $user->load( (int) $_CB_framework->myId() ) ) { $filterRules = cbReplaceVars( $filterRules, $user, array( $_CB_database, 'getEscaped' ), false, array() ); } } $filterby = " AND ". $filterRules; } // Prepare part after SELECT .... " and before "FROM" : $tableReferences = array( '#__comprofiler' => 'ue', '#__users' => 'u' ); // Fetch all fields: $tabs = $myCbUser->_getCbTabs(); // new cbTabs( 0, 1 ); //TBD: later: this private method should not be called here, but the whole users-list should go into there and be called here. $allFields = $tabs->_getTabFieldsDb( null, $myUser, 'list' ); // $_CB_database->setQuery( "SELECT * FROM #__comprofiler_fields WHERE published = 1" ); // $allFields = $_CB_database->loadObjectList( 'fieldid', 'moscomprofilerFields', array( &$_CB_database ) ); //Make columns array. This array will later be constructed from the tabs table: $columns = array(); for ( $i = 1; $i < 50; ++$i ) { $enabledVar = "col".$i."enabled"; if ( ! isset( $row->$enabledVar ) ) { break; } $titleVar = "col".$i."title"; $fieldsVar = "col".$i."fields"; $captionsVar = "col".$i."captions"; if ( $row->$enabledVar == 1 ) { $col = new stdClass(); $col->fields = ( $row->$fieldsVar ? explode( '|*|', $row->$fieldsVar ) : array() ); $col->title = $row->$titleVar; $col->titleRendered = $myCbUser->replaceUserVars( $col->title ); $col->captions = $row->$captionsVar; // $col->sort = 1; //All columns can be sorted $columns[$i] = $col; } } // build fields and tables accesses, also check for searchable fields: $searchableFields = array(); $fieldsSQL = cbUsersList::getFieldsSQL( $columns, $allFields, $tableReferences, $searchableFields, $params ); $_PLUGINS->trigger( 'onAfterUsersListFieldsSql', array( &$columns, &$allFields, &$tableReferences ) ); $tablesSQL = array(); $joinsSQL = array(); $tablesWhereSQL = array( 'block' => 'u.block = 0', 'approved' => 'ue.approved = 1', 'confirmed' => 'ue.confirmed = 1' ); if ( checkJversion() == 2 ) { $joinsSQL[] = 'JOIN #__user_usergroup_map g ON g.`user_id` = u.`id`'; } if ( ! $isModerator ) { $tablesWhereSQL['banned'] = 'ue.banned = 0'; } if ( $usergids ) { if ( checkJversion() == 2 ) { $tablesWhereSQL['gid'] = 'g.group_id IN (' . $usergids . ')'; } else { $tablesWhereSQL['gid'] = 'u.gid IN (' . $usergids . ')'; } } foreach ( $tableReferences as $table => $name ) { $tablesSQL[] = $table . ' ' . $name; if ( $name != 'u' ) { $tablesWhereSQL[] = "u.`id` = " . $name . ".`id`"; } } // handles search criterias: $list_compare_types = $params->get( 'list_compare_types', 0 ); $searchVals = new stdClass(); $searchesFromFields = $tabs->applySearchableContents( $searchableFields, $searchVals, $searchFormValuesRAW, $list_compare_types ); $whereFields = $searchesFromFields->reduceSqlFormula( $tableReferences, $joinsSQL, TRUE ); if ( $whereFields ) { $tablesWhereSQL[] = '(' . $whereFields . ')'; /* if ( $search === null ) { $search = ''; } */ } $_PLUGINS->trigger( 'onBeforeUsersListBuildQuery', array( &$tablesSQL, &$joinsSQL, &$tablesWhereSQL ) ); $queryFrom = "FROM " . implode( ', ', $tablesSQL ) . ( count( $joinsSQL ) ? "\n " . implode( "\n ", $joinsSQL ) : '' ) . "\n WHERE " . implode( "\n AND ", $tablesWhereSQL ); // handles old formatted names search: /* if ( $search != '' ) { $searchSQL = cbEscapeSQLsearch( strtolower( $_CB_database->getEscaped( $search ) ) ); $queryFrom .= " AND ("; $searchFields = array(); if ( $ueConfig['name_format']!='3' ) { $searchFields[] = "u.name LIKE '%%s%'"; } if ( $ueConfig['name_format']!='1' ) { $searchFields[] = "u.username LIKE '%%s%'"; } if ( is_array( $plugSearchFieldsArray ) ) { foreach ( $plugSearchFieldsArray as $v ) { if ( is_array( $v ) ) { $searchFields = array_merge( $searchFields, $v ); } } } $queryFrom .= str_replace( '%s', $searchSQL, implode( " OR ", $searchFields ) ); $queryFrom .= ")"; } */ $queryFrom .= " " . $filterby; $_PLUGINS->trigger( 'onBeforeUsersListQuery', array( &$queryFrom, 1, $listid ) ); // $uid = 1 $errorMsg = null; // counts number of users and loads the listed fields of the users if not in search-form-only mode: if ( $searchmode == 0 ) { if ( checkJversion() == 2 ) { $_CB_database->setQuery( "SELECT COUNT(DISTINCT u.id) " . $queryFrom ); } else { $_CB_database->setQuery( "SELECT COUNT(*) " . $queryFrom ); } $total = $_CB_database->loadResult(); if ( ( $limit > $total ) || ( $limitstart >= $total ) ) { $limitstart = 0; } // $query = "SELECT u.id, ue.banned, '' AS 'NA' " . ( $fieldsSQL ? ", " . $fieldsSQL . " " : '' ) . $queryFrom . " " . $orderby if ( checkJversion() == 2 ) { $query = "SELECT DISTINCT ue.*, u.*, '' AS 'NA' " . ( $fieldsSQL ? ", " . $fieldsSQL . " " : '' ) . $queryFrom . " " . $orderby; } else { $query = "SELECT ue.*, u.*, '' AS 'NA' " . ( $fieldsSQL ? ", " . $fieldsSQL . " " : '' ) . $queryFrom . " " . $orderby; } $_CB_database->setQuery( $query, (int) $limitstart, (int) $limit ); $users = $_CB_database->loadObjectList( null, 'moscomprofilerUser', array( &$_CB_database ) ); if ( ! $_CB_database->getErrorNum() ) { // creates the CBUsers in cache corresponding to the $users: foreach ( array_keys( $users ) as $k) { CBuser::setUserGetCBUserInstance( $users[$k] ); } } else { $users = array(); $errorMsg = _UE_ERROR_IN_QUERY_TURN_SITE_DEBUG_ON_TO_VIEW; } if ( count( get_object_vars( $searchVals ) ) > 0 ) { $search = ''; } else { $search = null; } } else { $total = null; $users = array(); if ( $search === null ) { $search = ''; } } // Compute itemId of users in users-list: if ( $Itemid ) { $option_itemid = (int) $Itemid; } else { $option_itemid = getCBprofileItemid( 0 ); } HTML_comprofiler::usersList( $row, $users, $columns, $allFields, $lists, $listid, $search, $searchmode, $option_itemid, $limitstart, $limit, $total, $myUser, $searchableFields, $searchVals, $tabs, $list_compare_types, $showPaging, $hotlink_protection, $errorMsg, $random ); }
static function yesnoSelectList($tag_name, $tag_attribs, $selected, $yes = _UE_YES, $no = _UE_NO) { $arr = array(moscomprofilerHTML::makeOption('0', $no), moscomprofilerHTML::makeOption('1', $yes)); return moscomprofilerHTML::selectList($arr, $tag_name, $tag_attribs, 'value', 'text', $selected, 2, true, false); }
/** * @return string The html for the limit # input box */ function getLimitBox($showLimitBox = true) { if ($showLimitBox) { if (!in_array((int) $this->limit, $this->_limits)) { $this->_limits[] = (int) $this->limit; cbArrayToInts($this->_limits); sort($this->_limits); } $limits = array(); foreach ($this->_limits as $i) { $limits[] = moscomprofilerHTML::makeOption("{$i}"); } // build the html select list $html = moscomprofilerHTML::selectList($limits, $this->_fieldName('limit'), 'class="inputbox" size="1" onchange="' . $this->js_limitstart(0) . '"', 'value', 'text', $this->limit, 2); } else { $html = "\n<input type=\"hidden\" name=\"" . $this->_fieldName('limit') . '" value="' . (int) $this->limit . '" />'; } $html .= "\n<input type=\"hidden\" name=\"" . $this->_fieldName('limitstart') . '" value="' . (int) $this->limitstart . '" />'; return $html; }
function viewPlugins($option) { global $_CB_database, $_CB_framework; $limit = (int) $_CB_framework->getCfg('list_limit'); if ($limit == 0) { $limit = 10; } $limit = $_CB_framework->getUserStateFromRequest("viewlistlimit", 'limit', $limit); $lastCBlist = $_CB_framework->getUserState("view{$option}lastCBlist", null); if ($lastCBlist == 'showplugins') { $limitstart = $_CB_framework->getUserStateFromRequest("view{$option}limitstart", 'limitstart', 0); $lastSearch = $_CB_framework->getUserState("search{$option}", null); $search = $_CB_framework->getUserStateFromRequest("search{$option}", 'search', ''); if ($lastSearch != $search) { $limitstart = 0; $_CB_framework->setUserState("view{$option}limitstart", $limitstart); } $search = trim(strtolower($search)); $filter_type = $_CB_framework->getUserStateFromRequest("filter_type{$option}", 'filter_type', "0"); } else { clearSearchBox(); $search = ""; $limitstart = 0; $_CB_framework->setUserState("view{$option}limitstart", $limitstart); $_CB_framework->setUserState("view{$option}lastCBlist", "showplugins"); $filter_type = "0"; $_CB_framework->setUserState("filter_type{$option}", $filter_type); } $where = array(); // used by filter if ($filter_type) { $where[] = "m.type = '{$filter_type}'"; } if ($search) { $search = cbEscapeSQLsearch(trim(strtolower(cbGetEscaped($search)))); $where[] = "LOWER( m.name ) LIKE '%{$search}%'"; } if (!$_CB_framework->acl->amIaSuperAdmin()) { $viewAccessLevels = CBuser::getMyInstance()->getAuthorisedViewLevelsIds(true); $viewAccessLevelsCleaned = implode(',', cbArrayToInts($viewAccessLevels)); $where[] = 'm.access IN (' . $viewAccessLevelsCleaned . ')'; } // get the total number of records $query = "SELECT COUNT(*) FROM #__comprofiler_plugin AS m " . (count($where) ? "\n WHERE " . implode(' AND ', $where) : ''); $_CB_database->setQuery($query); $total = $_CB_database->loadResult(); if ($total <= $limitstart) { $limitstart = 0; } cbimport('cb.pagination'); $pageNav = new cbPageNav($total, $limitstart, $limit); if (checkJversion() == 2) { $title = 'title'; } else { $title = 'name'; } $query = "SELECT m.*, u.name AS editor, g.{$title} AS groupname" . "\n FROM #__comprofiler_plugin AS m" . "\n LEFT JOIN #__users AS u ON u.id = m.checked_out"; if (checkJversion() == 2) { $query .= "\n LEFT JOIN #__viewlevels AS g ON g.id = m.access + IF(m.access <= 2, 1, 0)"; // fix J1.6's wrong access levels, same as g.id = IF( m.access = 0, 1, IF( m.access = 1, 2, IF( m.access = 2, 3, m.access ) ) ) } else { $query .= "\n LEFT JOIN #__groups AS g ON g.id = m.access"; } $query .= (count($where) ? "\n WHERE " . implode(' AND ', $where) : '') . "\n GROUP BY m.id" . "\n ORDER BY m.type ASC, m.ordering ASC, m.name ASC"; $_CB_database->setQuery($query, (int) $pageNav->limitstart, (int) $pageNav->limit); $rows = $_CB_database->loadObjectList(); if ($_CB_database->getErrorNum()) { echo $_CB_database->stderr(); return false; } // get list of Positions for dropdown filter $query = "SELECT type AS value, type AS text" . "\n FROM #__comprofiler_plugin" . "\n GROUP BY type" . "\n ORDER BY type"; $types[] = moscomprofilerHTML::makeOption('0', !defined('_SEL_TYPE') ? '- ' . CBTxt::T('Select Type') . ' -' : _SEL_TYPE); // Mambo 4.5.1 Compatibility $_CB_database->setQuery($query); $types = array_merge($types, $_CB_database->loadObjectList()); $lists['type'] = moscomprofilerHTML::selectList($types, 'filter_type', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'value', 'text', $filter_type, 2); $canAdmin = CBuser::getMyInstance()->authoriseAction('core.admin'); $canEdit = CBuser::getMyInstance()->authoriseAction('core.edit'); $canEditState = CBuser::getMyInstance()->authoriseAction('core.edit.state'); HTML_comprofiler::showPlugins($rows, $pageNav, $option, $lists, $search, $canAdmin, $canEdit, $canEditState); return true; }
/** * @return array */ public function topics() { $options = array(); if ( $this->installed() ) { $rows = KunenaForumTopicHelper::getLatestTopics(); if ( $rows[1] ) foreach ( $rows[1] as $row ) { $options[] = moscomprofilerHTML::makeOption( (string) $row->id, $row->subject ); } } return $options; }
/** * @return array */ public function plans() { $plansList = array(); if ( $this->installed() ) { $plansMgr = cbpaidPlansMgr::getInstance(); $plans = $plansMgr->loadPublishedPlans( null, true, 'any', null ); if ( $plans ) { $plansList = array(); foreach ( $plans as $k => $plan ) { $plansList[] = moscomprofilerHTML::makeOption( (string) $k, $plan->get( 'alias' ) ); } } } return $plansList; }
/** * Returns a USERPARAMS field in specified format * * @param moscomprofilerFields $field * @param moscomprofilerUser $user * @param string $output 'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit' * @param string $formatting 'table', 'td', 'span', 'div', 'none' * @param string $reason 'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'list' for user-lists * @param int $list_compare_types IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search * @return mixed */ function getFieldRow(&$field, &$user, $output, $formatting, $reason, $list_compare_types) { global $_CB_framework, $_CB_database, $ueConfig; $results = null; if (class_exists('JFactory')) { // Joomla 1.5 : $lang = JFactory::getLanguage(); $lang->load('com_users'); } $pseudoFields = array(); //Implementing Joomla's new user parameters such as editor $ui = $_CB_framework->getUi(); $userParams = $this->_getUserParams($ui, $user); if (is_array($userParams) && count($userParams) > 0 && ($ui == 2 || (isset($ueConfig['frontend_userparams']) ? $ueConfig['frontend_userparams'] == 1 : in_array($_CB_framework->getCfg("frontend_userparams"), array('1', null))))) { //Loop through each parameter and prepare rendering appropriately. foreach ($userParams as $k => $userParam) { $paramField = new moscomprofilerFields($_CB_database); $paramField->title = $userParam[0]; $paramField->_html = $userParam[1]; $paramField->description = isset($userParam[2]) && class_exists("JText") ? JText::_($userParam[2]) : null; $paramField->name = isset($userParam[3]) && class_exists("JText") ? JText::_($userParam[3]) : null; // very probably wrong! $paramField->fieldid = 'userparam_' . $k; $paramField->displaytitle = substr($userParam[0], 0, 6) == '<label' ? -1 : 1; // don't redisplay <label for> markup if ($paramField->displaytitle == -1) { if (substr($paramField->title, -9, 1) != ':' && substr($paramField->title, -8) == '</label>') { $paramField->title = substr($paramField->title, 0, -8) . ':</label>'; } } $paramField->type = 'param'; // this is for cb_ftparam class to be correct. $pseudoFields[] = $paramField; } } if ($_CB_framework->getUi() == 2) { if (checkJversion() < 2) { $myGids = CBuser::getMyInstance()->getUserData()->gids; $cms_mod = $_CB_framework->acl->mapGroupNamesToValues('Administrator'); $cms_admin = $_CB_framework->acl->mapGroupNamesToValues('Superadministrator'); } $i_am_super_admin = $_CB_framework->acl->amIaSuperAdmin(); //1.6+ only: $user_is_super_admin = $_CB_framework->acl->checkActionForGroups( $this->gids, 'core.admin', null ); if (checkJversion() == 2) { $cms_admin_title = 'Super Users'; } else { $cms_admin_title = 'Super Administrator'; } $canBlockUser = CBuser::getMyInstance()->authoriseAction('core.edit.state', 'com_users'); $canEmailEvents = $user->id == 0 && (checkJversion() >= 2 ? $canBlockUser : count(array_intersect($myGids, array($cms_mod, $cms_admin)))) || CBuser::getInstance($user->id)->authoriseAction('core.edit.state', 'com_users') || array_intersect($user->gids, getParentGIDS($ueConfig['imageApproverGid'])); // allow also CB isModerator $lists = array(); if ($canBlockUser) { // ensure user can't add group higher than themselves $gtree = $_CB_framework->acl->get_groups_below_me(); if (checkJversion() == 2) { if (!$i_am_super_admin && $user->id && CBuser::getInstance($user->id)->authoriseAction('core.manage', 'com_users') && (CBuser::getInstance($user->id)->authoriseAction('core.edit', 'com_users') || CBuser::getInstance($user->id)->authoriseAction('core.edit.state', 'com_users'))) { $disabled = ' disabled="disabled"'; } else { $disabled = ''; } $strgids = array_map('strval', $user->gids); $lists['gid'] = moscomprofilerHTML::selectList($gtree, 'gid[]', 'class="inputbox" size="11" multiple="multiple"' . $disabled, 'value', 'text', $strgids, 2, false); } else { if (!$i_am_super_admin && (in_array($cms_admin, $user->gids) && in_array($cms_admin, $myGids) || $user->id == $_CB_framework->myId() && in_array($cms_admin, $myGids))) { $lists['gid'] = "<input type=\"hidden\" name=\"gid\" value=\"{$user->gid}\" /><strong>{$cms_admin_title}</strong>"; } else { if (!$i_am_super_admin && (in_array($cms_mod, $myGids) && !in_array($cms_admin, $myGids) && in_array($cms_mod, $user->gids))) { $lists['gid'] = "<input type=\"hidden\" name=\"gid\" value=\"{$user->gid}\" /><strong>Administrator</strong>"; } else { $lists['gid'] = moscomprofilerHTML::selectList($gtree, 'gid', 'class="inputbox" size="11"', 'value', 'text', $user->gid, 2, false); } } } // build the html select list $lists['block'] = moscomprofilerHTML::yesnoSelectList('block', 'class="inputbox" size="1"', $user->block); $list_approved = array(); $list_approved[] = moscomprofilerHTML::makeOption('0', CBTxt::T('Unapproved')); $list_approved[] = moscomprofilerHTML::makeOption('1', CBTxt::T('Approved')); $list_approved[] = moscomprofilerHTML::makeOption('2', CBTxt::T('Disapproved')); $lists['approved'] = moscomprofilerHTML::selectList($list_approved, 'approved', 'class="inputbox" size="1"', 'value', 'text', $user->approved, 2, false); $lists['confirmed'] = moscomprofilerHTML::yesnoSelectList('confirmed', 'class="inputbox" size="1"', $user->confirmed); // build the html select list $lists['sendEmail'] = moscomprofilerHTML::yesnoSelectList('sendEmail', 'class="inputbox" size="1"', $user->sendEmail); $paramField = new moscomprofilerFields($_CB_database); $paramField->title = CBTxt::T('Group'); $paramField->_html = $lists['gid']; $paramField->description = ''; $paramField->name = 'gid'; $pseudoFields[] = $paramField; $paramField = new moscomprofilerFields($_CB_database); $paramField->title = CBTxt::T('Block User'); $paramField->_html = $lists['block']; $paramField->description = ''; $paramField->name = 'block'; $pseudoFields[] = $paramField; $paramField = new moscomprofilerFields($_CB_database); $paramField->title = CBTxt::T('Approve User'); $paramField->_html = $lists['approved']; $paramField->description = ''; $paramField->name = 'approved'; $pseudoFields[] = $paramField; $paramField = new moscomprofilerFields($_CB_database); $paramField->title = CBTxt::T('Confirm User'); $paramField->_html = $lists['confirmed']; $paramField->description = ''; $paramField->name = 'confirmed'; $pseudoFields[] = $paramField; $paramField = new moscomprofilerFields($_CB_database); $paramField->title = CBTxt::T('Receive Moderator Emails'); if ($canEmailEvents || $user->sendEmail) { $paramField->_html = $lists['sendEmail']; } else { $paramField->_html = CBTxt::T('No (User\'s group-level doesn\'t allow this)') . '<input type="hidden" name="sendEmail" value="0" />'; } $paramField->description = ''; $paramField->name = 'sendEmail'; $pseudoFields[] = $paramField; } if ($user->id) { $paramField = new moscomprofilerFields($_CB_database); $paramField->title = CBTxt::T('Register Date'); $paramField->_html = cbFormatDate($user->registerDate); $paramField->description = ''; $paramField->name = 'registerDate'; $pseudoFields[] = $paramField; $paramField = new moscomprofilerFields($_CB_database); $paramField->title = CBTxt::T('Last Visit Date'); $paramField->_html = cbFormatDate($user->lastvisitDate); $paramField->description = ''; $paramField->name = 'lastvisitDate'; $pseudoFields[] = $paramField; } } switch ($output) { case 'htmledit': foreach ($pseudoFields as $paramField) { $paramField->required = $this->_isRequired($field, $user, $reason); $paramField->profile = $field->profile; $results .= parent::getFieldRow($paramField, $user, $output, $formatting, $reason, $list_compare_types); } unset($pseudoFields); return $results; break; default: return null; break; } }
/** * Returns an options array of available groups * * @param bool $raw * @param array $excludeCategories * @param array $excludeGroups * @return array|\stdClass[] */ static public function getGroupOptions( $raw = false, $excludeCategories = array(), $excludeGroups = array() ) { global $_CB_database; if ( Application::Cms()->getClientId() ) { $raw = false; $excludeCategories = array(); $excludeGroups = array(); } static $cache = array(); $userId = Application::MyUser()->getUserId(); if ( ! isset( $cache[$userId] ) ) { $query = 'SELECT g.' . $_CB_database->NameQuote( 'id' ) . ' AS value' . ', g.' . $_CB_database->NameQuote( 'name' ) . ' AS text' . ', g.' . $_CB_database->NameQuote( 'category' ) . ', c.' . $_CB_database->NameQuote( 'name' ) . ' AS category_name' . "\n FROM " . $_CB_database->NameQuote( '#__groupjive_groups' ) . " AS g" . "\n LEFT JOIN " . $_CB_database->NameQuote( '#__groupjive_categories' ) . " AS c" . ' ON c.' . $_CB_database->NameQuote( 'id' ) . ' = g.' . $_CB_database->NameQuote( 'category' ); if ( ( ! self::isModerator( $userId ) ) && ( ! Application::Cms()->getClientId() ) ) { $query .= "\n LEFT JOIN " . $_CB_database->NameQuote( '#__groupjive_users' ) . " AS u" . ' ON u.' . $_CB_database->NameQuote( 'group' ) . ' = g.' . $_CB_database->NameQuote( 'id' ) . ' AND u.' . $_CB_database->NameQuote( 'user_id' ) . ' = ' . (int) $userId . ' AND u.' . $_CB_database->NameQuote( 'status' ) . ' >= 1' . "\n WHERE c." . $_CB_database->NameQuote( 'published' ) . " = 1" . "\n AND c." . $_CB_database->NameQuote( 'access' ) . " IN " . $_CB_database->safeArrayOfIntegers( self::getAccess( $userId ) ) . "\n AND ( g." . $_CB_database->NameQuote( 'user_id' ) . " = " . (int) $userId . ' OR ( ( g.' . $_CB_database->NameQuote( 'published' ) . ' = 1 )' . ' AND ( ( g.' . $_CB_database->NameQuote( 'type' ) . ' IN ( 1, 2 ) )' . ' OR ( u.' . $_CB_database->NameQuote( 'id' ) . ' IS NOT NULL ) ) ) )' . ( $excludeCategories ? "\n AND c." . $_CB_database->NameQuote( 'id' ) . " NOT IN " . $_CB_database->safeArrayOfIntegers( $excludeCategories ) : null ) . ( $excludeGroups ? "\n AND g." . $_CB_database->NameQuote( 'id' ) . " NOT IN " . $_CB_database->safeArrayOfIntegers( $excludeGroups ) : null ); } else { $query .= ( $excludeCategories ? "\n WHERE c." . $_CB_database->NameQuote( 'id' ) . " NOT IN " . $_CB_database->safeArrayOfIntegers( $excludeCategories ) : null ) . ( $excludeGroups ? "\n " . ( $excludeCategories ? 'AND' : 'WHERE' ) . " g." . $_CB_database->NameQuote( 'id' ) . " NOT IN " . $_CB_database->safeArrayOfIntegers( $excludeGroups ) : null ); } $query .= "\n ORDER BY c." . $_CB_database->NameQuote( 'ordering' ) . ", g." . $_CB_database->NameQuote( 'ordering' ); $_CB_database->setQuery( $query ); $cache[$userId] = $_CB_database->loadObjectList(); } if ( $raw === true ) { return $cache[$userId]; } $optGroups = array(); $options = array(); foreach ( $cache[$userId] as $group ) { $category = (int) $group->category; if ( ! in_array( $category, $optGroups ) ) { $options[] = \moscomprofilerHTML::makeOptGroup( ( $category ? CBTxt::T( $group->category_name ) : CBTxt::T( 'Uncategorized' ) ) ); $optGroups[] = $category; } $options[] = \moscomprofilerHTML::makeOption( (int) $group->value, CBTxt::T( $group->text ) ); } return $options; }
function editField($fid = 0, $option = 'com_comprofiler', $task = 'editField') { global $_CB_database, $_CB_framework, $_PLUGINS; $this->_importNeeded(); $canEditState = CBuser::getMyInstance()->authoriseAction('core.edit.state'); $row = new moscomprofilerFields($_CB_database); $paramsEditorHtml = null; if ($fid == 0) { // default values for new types: $row->type = 'text'; $row->tabid = 11; // contact info by default $row->profile = 1; $row->registration = 1; $row->displaytitle = 1; $row->published = 1; $row->required = 0; $row->readonly = 0; $paramsEditorHtml = array(array('title' => CBTxt::T('Parameters'), 'content' => "<strong>" . CBTxt::T('To see Parameters, first save new field') . "</strong>")); } else { // load the row from the db table $row->load((int) $fid); $fieldTab = new moscomprofilerTabs($_CB_database); // load the row from the db table $fieldTab->load((int) $row->tabid); // Check if user is a super user: if (!$_CB_framework->acl->amIaSuperAdmin()) { // Check if user belongs to useraccessgroupid: if (!in_array($fieldTab->useraccessgroupid, $_CB_framework->acl->get_groups_below_me(null, true))) { echo "<script type=\"text/javascript\"> alert('" . addslashes(CBTxt::T('Unauthorized Access')) . "'); window.history.go(-1);</script>\n"; exit; } // Check if user belongs to viewaccesslevel: if (!in_array($fieldTab->viewaccesslevel, CBuser::getMyInstance()->getAuthorisedViewLevelsIds(false))) { echo "<script type=\"text/javascript\"> alert('" . addslashes(CBTxt::T('Unauthorized Access')) . "'); window.history.go(-1);</script>\n"; exit; } } } $_PLUGINS->loadPluginGroup('user'); if ($task == 'reloadField') { if (!$this->_prov_bind_CB_field($row, $fid)) { echo "<script type=\"text/javascript\"> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n"; exit; } } if ($fid == 0) { if ($row->tablecolumns != '' && !in_array($row->type, array('password', 'userparams'))) { $row->searchable = 1; } else { $row->searchable = 0; } } // params: $paramsEditorHtml = array(); $options = array('option' => $option, 'task' => $task, 'cid' => $row->fieldid); // field-specific own parameters: $fieldHandler = new cbFieldHandler(); $fieldOwnParamsEditHtml = $fieldHandler->drawParamsEditor($row, $options); if ($fieldOwnParamsEditHtml) { $paramsEditorHtml[] = array('title' => CBTxt::T('Field-specific Parameters'), 'content' => $fieldOwnParamsEditHtml); } // additional non-specific other parameters: $fieldsParamsPlugins = $_PLUGINS->getUserFieldParamsPluginIds(); foreach ($fieldsParamsPlugins as $pluginId => $fieldParamHandlerClassName) { $fieldParamHandler = new $fieldParamHandlerClassName($pluginId, $row); // cbFieldParamsHandler(); $addParamsHtml = $fieldParamHandler->drawParamsEditor($options); if ($addParamsHtml) { $addParamsTitle = $fieldParamHandler->getFieldsParamsLabel(); $paramsEditorHtml[] = array('title' => $addParamsTitle, 'content' => $addParamsHtml); } } $where = array(); $where[] = "`fields` = 1"; if (!$_CB_framework->acl->amIaSuperAdmin()) { $where[] = "useraccessgroupid IN (" . implode(',', $_CB_framework->acl->get_groups_below_me(null, true)) . ")"; } $_CB_database->setQuery("SELECT tabid, title FROM #__comprofiler_tabs WHERE " . implode(' AND ', $where) . " ORDER BY ordering"); $tabs = $_CB_database->loadObjectList(); $lists = array(); $tablist = array(); for ($i = 0, $n = count($tabs); $i < $n; $i++) { $tab =& $tabs[$i]; $tablist[] = moscomprofilerHTML::makeOption($tab->tabid, getLangDefinition($tab->title)); } $lists['tabs'] = moscomprofilerHTML::selectList($tablist, 'tabid', 'class="inputbox" size="1" mosReq=1 mosLabel="' . htmlspecialchars(CBTxt::T('Tab')) . '"' . ($canEditState ? '' : ' disabled="disabled"'), 'value', 'text', $row->tabid, 2); $types = array(); if ($fid == 0) { $typeHandlers = array(); $registeredTypes = $_PLUGINS->getUserFieldTypes(); foreach ($registeredTypes as $typ) { $typeHandlers[$typ] = new cbFieldHandler(); $tmpField = new moscomprofilerFields($_CB_database); $tmpField->type = $typ; $typLabel = $typeHandlers[$typ]->getFieldTypeLabel($tmpField); if ($typLabel) { $types[] = moscomprofilerHTML::makeOption($typ, $typLabel); } } } else { $types[] = moscomprofilerHTML::makeOption($row->type, $fieldHandler->getFieldTypeLabel($row, false)); } $webaddrtypes = array(); $webaddrtypes[] = moscomprofilerHTML::makeOption('0', CBTxt::T('URL only')); $webaddrtypes[] = moscomprofilerHTML::makeOption('2', CBTxt::T('Hypertext and URL')); $profiles = array(); $profiles[] = moscomprofilerHTML::makeOption('0', CBTxt::T('No')); $profiles[] = moscomprofilerHTML::makeOption('1', CBTxt::T('Yes: on 1 Line')); $profiles[] = moscomprofilerHTML::makeOption('2', CBTxt::T('Yes: on 2 Lines')); $fvalues = $_CB_database->setQuery("SELECT fieldtitle " . "\n FROM #__comprofiler_field_values" . "\n WHERE fieldid=" . (int) $fid . "\n ORDER BY ordering"); $fvalues = $_CB_database->loadObjectList(); $lists['webaddresstypes'] = moscomprofilerHTML::selectList($webaddrtypes, 'webaddresstypes', 'class="inputbox" size="1"', 'value', 'text', $row->rows, 2); $lists['type'] = moscomprofilerHTML::selectList($types, 'type', 'class="inputbox" size="1"', 'value', 'text', $row->type, 2); $lists['required'] = moscomprofilerHTML::yesnoSelectList('required', 'class="inputbox" size="1"' . ($canEditState ? '' : ' disabled="disabled"'), $row->required === null ? 0 : $row->required); $lists['published'] = moscomprofilerHTML::yesnoSelectList('published', 'class="inputbox" size="1"' . ($canEditState ? '' : ' disabled="disabled"'), $row->published); $lists['readonly'] = moscomprofilerHTML::yesnoSelectList('readonly', 'class="inputbox" size="1"' . ($canEditState ? '' : ' disabled="disabled"'), $row->readonly === null ? 0 : $row->readonly); $lists['profile'] = moscomprofilerHTML::selectList($profiles, 'profile', 'class="inputbox" size="1"' . ($canEditState ? '' : ' disabled="disabled"'), 'value', 'text', $row->profile, 2); $lists['displaytitle'] = moscomprofilerHTML::yesnoSelectList('displaytitle', 'class="inputbox" size="1"', $row->displaytitle); if ($row->tablecolumns != '' && !in_array($row->type, array('password', 'userparams'))) { $lists['searchable'] = moscomprofilerHTML::yesnoSelectList('searchable', 'class="inputbox" size="1"' . ($canEditState ? '' : ' disabled="disabled"'), $row->searchable); } else { $lists['searchable'] = _UE_NO . '<input type="hidden" name="searchable" value="0" />'; } $lists['registration'] = moscomprofilerHTML::yesnoSelectList('registration', 'class="inputbox" size="1"' . ($canEditState ? '' : ' disabled="disabled"'), $row->registration); $pluginView = _CBloadView('field'); $pluginView->editfield($row, $lists, $fvalues, $option, $paramsEditorHtml); }
/** * @param string The name of the form element * @param string The value of the element * @param CBSimpleXMLElement $node The xml element for the parameter * @param string The control name * @return string The html for the element */ function _form_usergroup( $name, $value, &$node, $control_name ) { $gtree = cbGetAllUsergroupsBelowMe(); /* if ( ! $value ) { $value = $_CB_framework->acl->get_group_id('Registered','ARO'); // array_unshift( $gtree, moscomprofilerHTML::makeOption( '0', '- Select User Group -' ) ); } */ if ( ( $node->attributes( 'blanktext' ) ) && ( ( $node->attributes( 'hideblanktext' ) != 'true' ) || ( $value == 0 ) ) ) { array_unshift( $gtree, moscomprofilerHTML::makeOption( '0', $node->attributes( 'blanktext' ) ) ); } $content = moscomprofilerHTML::selectList( $gtree, $this->control_name( $control_name, $name ), 'class="inputbox" id="' . $this->control_id( $control_name, $name ) . '" size="1"', 'value', 'text', (int) $value, 2, false, false ); // size="10" return $content; }
/** * converts each value to an option element of the array * * @param array $options * @param array $arr * @param string $currency */ protected function _valuesToOptions(&$options, &$arr, $currency) { $cbpaidMoney = cbpaidMoney::getInstance(); for ($i = 0, $n = count($arr); $i < $n; $i++) { $displayAmount = $cbpaidMoney->renderPrice($arr[$i], $currency, true); $options[] = moscomprofilerHTML::makeOption($arr[$i], $displayAmount); } }
function editTab( $tid='0', $option='com_comprofiler', $task='editTab' ) { global $_CB_database, $_CB_framework, $_PLUGINS; $this->_importNeeded(); $row = new moscomprofilerTabs( $_CB_database ); // load the row from the db table $row->load( (int) $tid ); if ( $tid && ! in_array( $row->useraccessgroupid, getChildGIDS( userGID( $_CB_framework->myId() ) ) ) ) { echo "<script type=\"text/javascript\"> alert('" . addslashes( CBTxt::T('Unauthorized Access') ) . "'); window.history.go(-1);</script>\n"; exit; } $lists = array(); if($row->sys=='2') $lists['enabled'] = "Yes"; else $lists['enabled'] = moscomprofilerHTML::yesnoSelectList( 'enabled', 'class="inputbox" size="1"', ( $row->enabled !== null ? $row->enabled : 1 ) ); /* ------------------------- ! head ! !-----------------------! ! ! ! ! ! left ! middle ! right ! ! ! ! ! !-----------------------! ! ! ! tabmain ! ! ! !-----------------------! ! underall ! ------------------------- ! ! ! ! ! L1C1 ! L1C2 ! L1C3 ! L1C1...C9 ! ! ! ! !-----------------------! ! ! ! ! ! L2C1 ! L2C4 ! L2C8 ! ... ! ! ! ! !-----------------------! ! ! ! L4C7 ! ! ! !-----------------------! ! ! ! ! L8C3 ! L8C4 ! ...L9C9 ! ! ! !-----------------------! ! + not_on_profile_1..9 */ $position = array(); $position[] = moscomprofilerHTML::makeOption( 'cb_head', _UE_POS_CB_HEAD ); $position[] = moscomprofilerHTML::makeOption( 'cb_left', _UE_POS_CB_LEFT ); $position[] = moscomprofilerHTML::makeOption( 'cb_middle', _UE_POS_CB_MIDDLE ); $position[] = moscomprofilerHTML::makeOption( 'cb_right', _UE_POS_CB_RIGHT ); $position[] = moscomprofilerHTML::makeOption( 'cb_tabmain', _UE_POS_CB_MAIN ); $position[] = moscomprofilerHTML::makeOption( 'cb_underall', _UE_POS_CB_BOTTOM ); for ( $i = 1 ; $i <= 9; $i++ ) { for ( $j = 1 ; $j <= 9; $j++ ) { $position[] = moscomprofilerHTML::makeOption( 'L'.$i.'C'.$j, CBTxt::T('Line') . ' ' . $i . ' ' . CBTxt::T('Column') . ' ' . $j ); } } for ( $i = 1 ; $i <= 9; $i++ ) { $position[] = moscomprofilerHTML::makeOption( 'not_on_profile_'.$i, CBTxt::T('Not displayed on profile') . ' ' . $i ); } if ( ! $row->position ) { $row->position = 'cb_tabmain'; } $lists['position'] = moscomprofilerHTML::selectList( $position, 'position', 'class="inputbox" size="1"', 'value', 'text', $row->position, 2 ); $displaytype = array(); $displaytype[] = moscomprofilerHTML::makeOption( 'tab', _UE_DISPLAY_TAB ); $displaytype[] = moscomprofilerHTML::makeOption( 'div', _UE_DISPLAY_DIV ); $displaytype[] = moscomprofilerHTML::makeOption( 'rounddiv', _UE_DISPLAY_ROUNDED_DIV ); $displaytype[] = moscomprofilerHTML::makeOption( 'html', _UE_DISPLAY_HTML ); $displaytype[] = moscomprofilerHTML::makeOption( 'overlib', _UE_DISPLAY_OVERLIB ); $displaytype[] = moscomprofilerHTML::makeOption( 'overlibfix', _UE_DISPLAY_OVERLIBFIX ); $displaytype[] = moscomprofilerHTML::makeOption( 'overlibsticky', _UE_DISPLAY_OVERLIBSTICKY ); if ( ! $row->displaytype ) { $row->displaytype = 'tab'; } $lists['displaytype'] = moscomprofilerHTML::selectList( $displaytype, 'displaytype', 'class="inputbox" size="1"', 'value', 'text', $row->displaytype, 2 ); if ($tid) { if ( $row->ordering > -10000 && $row->ordering < 10000 ) { // build the html select list for ordering $query = "SELECT ordering AS value, title AS text" . "\n FROM #__comprofiler_tabs" . "\n WHERE position='" . $_CB_database->getEscaped( $row->position ) . "'" . "\n AND enabled > 0" . "\n AND ordering > -10000" . "\n AND ordering < 10000" . "\n ORDER BY ordering" ; $order = $this->_cbGetOrderingList( $query ); $lists['ordering'] = moscomprofilerHTML::selectList( $order, 'ordering', 'class="inputbox" size="1"', 'value', 'text', intval( $row->ordering ), 2 ); } else { $lists['ordering'] = '<input type="hidden" name="ordering" value="'. $row->ordering .'" />' . CBTxt::T('This plugin cannot be reordered') ; } } else { $row->ordering = 999; $row->ordering_register = 10; $row->published = 1; $row->description = ''; $row->useraccessgroupid = -2; $lists['ordering'] = '<input type="hidden" name="ordering" value="'. $row->ordering .'" />'. CBTxt::T('New items default to the last place. Ordering can be changed after this item is saved.'); } $gtree3=array(); $gtree3[] = moscomprofilerHTML::makeOption( -2 , '- ' . CBtxt::T('Everybody') . ' -' ); $gtree3[] = moscomprofilerHTML::makeOption( -1 , '- ' . CBtxt::T('All Registered Users') . ' -' ); $gtree3 = array_merge( $gtree3, $_CB_framework->acl->get_group_children_tree( null, 'USERS', false )); $lists['useraccessgroup']=moscomprofilerHTML::selectList( $gtree3, 'useraccessgroupid', 'size="4"', 'value', 'text', $row->useraccessgroupid, 2, false ); // params: $paramsEditorHtml = array(); $options = array( 'option' => $option, 'task' => $task, 'cid' => $row->tabid ); // additional non-specific other parameters: $_PLUGINS->loadPluginGroup( 'user' ); $fieldsParamsPlugins = $_PLUGINS->getUserTabParamsPluginIds(); foreach ($fieldsParamsPlugins as $pluginId => $fieldParamHandlerClassName ) { $fieldParamHandler = new $fieldParamHandlerClassName( $pluginId, $row ); // cbFieldParamsHandler(); $addParamsHtml = $fieldParamHandler->drawParamsEditor( $options ); if ( $addParamsHtml ) { $addParamsTitle = $fieldParamHandler->getFieldsParamsLabel(); $paramsEditorHtml[] = array( 'title' => $addParamsTitle, 'content' => $addParamsHtml ); } } $pluginView = _CBloadView( 'tab' ); $pluginView->edittab( $row, $option, $lists, $tid, $paramsEditorHtml ); }
/** * @return array */ public function lists() { global $_CB_framework; $lists = array(); if ( $this->installed() ) { require_once( $_CB_framework->getCfg( 'absolute_path' ) . '/administrator/components/com_acymailing/helpers/helper.php' ); /** @var listClass $acyListAPI */ $acyListAPI = acymailing::get( 'class.list' ); $acyLists = $acyListAPI->getLists(); if ( $acyLists ) { foreach ( $acyLists as $acyList ) { $lists[] = moscomprofilerHTML::makeOption( (string) $acyList->listid, $acyList->name ); } } } return $lists; }
/** * Outputs search format including $html being html with input fields * * @param FieldTable $field * @param UserTable $user * @param string $html * @param string $type 'text', 'choice', 'isisnot', 'none' * @param int $list_compare_types IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search * @param string $class Extra-class (e.g. for jQuery) * @return string */ protected function _fieldSearchModeHtml(&$field, &$user, $html, $type, $list_compare_types, $class = '') { switch ($list_compare_types) { case 1: // Advanced: all possibilities: $col = $field->name . '__srmch'; $selected = $user->get($col); switch ($type) { case 'text': $choices = array('is' => CBTxt::T('UE_MATCH_IS_EXACTLY', 'is exactly'), 'phrase' => CBTxt::T('UE_MATCH_PHRASE', 'contains phrase'), 'all' => CBTxt::T('UE_MATCH_ALL', 'contains all of'), 'any' => CBTxt::T('UE_MATCH_ANY', 'contains any of'), '-' => CBTxt::T('UE_MATCH_EXCLUSIONS', 'Exclusions:'), 'isnot' => CBTxt::T('UE_MATCH_IS_EXACTLY_NOT', 'is exactly not'), 'phrasenot' => CBTxt::T('UE_MATCH_PHRASE_NOT', 'doesn\'t contain phrase'), 'allnot' => CBTxt::T('UE_MATCH_ALL_NOT', 'doesn\'t contain all of'), 'anynot' => CBTxt::T('UE_MATCH_ANY_NOT', 'doesn\'t contain any of')); break; case 'singlechoice': $choices = array('is' => CBTxt::T('UE_MATCH_IS', 'is'), 'anyis' => CBTxt::T('UE_MATCH_IS_ONE_OF', 'is one of'), '-' => CBTxt::T('UE_MATCH_EXCLUSIONS', 'Exclusions:'), 'isnot' => CBTxt::T('UE_MATCH_IS_NOT', 'is not'), 'anyisnot' => CBTxt::T('UE_MATCH_IS_NOT_ONE_OF', 'is not one of')); break; case 'multiplechoice': $choices = array('is' => CBTxt::T('UE_MATCH_ARE_EXACTLY', 'are exactly'), 'all' => CBTxt::T('UE_MATCH_INCLUDE_ALL_OF', 'include all of'), 'any' => CBTxt::T('UE_MATCH_INCLUDE_ANY_OF', 'include any of'), '-' => CBTxt::T('Exclusions:'), 'isnot' => CBTxt::T('UE_MATCH_ARE_EXACTLY_NOT', 'are exactly not'), 'allnot' => CBTxt::T('UE_MATCH_INCLUDE_ALL_OF_NOT', 'don\'t include all of'), 'anynot' => CBTxt::T('UE_MATCH_INCLUDE_ANY_OF_NOT', 'don\'t include any of')); break; case 'isisnot': $choices = array('is' => CBTxt::T('UE_MATCH_IS', 'is'), '-' => CBTxt::T('UE_MATCH_EXCLUSIONS_COLUMN', 'Exclusions:'), 'isnot' => CBTxt::T('UE_MATCH_IS_NOT', 'is not')); break; case 'none': default: $choices = null; break; } if ($choices !== null) { $drop = array(); $drop[] = moscomprofilerHTML::makeOption('', CBTxt::T('UE_NO_PREFERENCE', 'No preference')); $group = false; foreach ($choices as $k => $v) { if ($k == '-') { $drop[] = moscomprofilerHTML::makeOptGroup($v); $group = true; } else { $drop[] = moscomprofilerHTML::makeOption($k, $v); } } if ($group) { $drop[] = moscomprofilerHTML::makeOptGroup(null); } $additional = ' class="form-control"'; $list = moscomprofilerHTML::selectList($drop, $field->name . '__srmch', $additional, 'value', 'text', $selected, 1); } else { $list = null; } $return = '<div class="cbSearchContainer cbSearchAdvanced' . ($type ? ' cbSearchAdvanced' . ucfirst($type) : '') . '">' . ($list ? '<div class="cbSearchKind' . ($type ? ' cbSearchKind' . ucfirst($type) : '') . '">' . $list . '</div>' : '') . '<div class="cbSearchCriteria' . ($type ? ' cbSearchCriteria' . ucfirst($type) : '') . ($class ? ' ' . $class : '') . '">' . $html . '</div>' . '</div>'; break; case 2: // Simple "contains" and ranges: // Simple "contains" and ranges: case 0: default: // Simple: Only 'is' and ranges: $return = '<div class="cbSearchContainer cbSearchSimple">' . '<div class="cbSearchCriteria' . ($class ? ' ' . $class : '') . '">' . $html . '</div>' . '</div>'; break; } return $return; }
/** * Accessor: * Returns a field in specified format * * @param FieldTable $field * @param UserTable $user * @param string $output 'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit' * @param string $reason 'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'search' for searches * @param int $list_compare_types IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search * @return mixed */ public function getField( &$field, &$user, $output, $reason, $list_compare_types ) { $hybrid = new cbconnectHybrid(); $fieldName = $field->get( 'name' ); $provider = $hybrid->getProviderFromField( $fieldName ); $providerName = $hybrid->getProviderName( $provider ); $value = $user->get( $fieldName ); $return = null; switch( $output ) { case 'htmledit': if ( $reason == 'search' ) { $return = $this->_fieldSearchModeHtml( $field, $user, $this->_fieldEditToHtml( $field, $user, $reason, 'input', 'text', $value, null ), 'text', $list_compare_types ); } else { if ( Application::Cms()->getClientId() ) { $return = $this->_fieldEditToHtml( $field, $user, $reason, 'input', 'text', $value, null ); } elseif ( $value && ( $user->get( 'id' ) == Application::MyUser()->get( 'id' ) ) ) { $values = array(); $values[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'UNLINK_PROVIDER_ACCOUNT', 'Unlink your [provider] account', array( '[provider]' => $providerName ) ) ); $return = $this->_fieldEditToHtml( $field, $user, $reason, 'input', 'multicheckbox', null, null, $values ); } elseif ( $value && ( ! Application::MyUser()->get( 'id' ) ) ) { $url = $hybrid->getProviderProfileURL( $provider, $value ); if ( $url ) { $url = '<a href="' . $url . '" target="_blank">' . CBTxt::T( 'PROVIDER_PROFILE', '[provider] profile', array( '[provider]' => $providerName ) ) . '</a>'; } if ( ! $url ) { $url = CBTxt::T( 'PROVIDER_PROFILE_ID', '[provider] profile id [provider_id]', array( '[provider]' => $providerName, '[provider_id]' => $value ) ); } $return = CBTxt::T( 'PROVIDER_PROFILE_LINKED_TO_ACCOUNT', 'Your [provider_profile] will be linked to this account.', array( '[provider]' => $providerName, '[provider_profile]' => $url, '[provider_id]' => $value ) ) . $this->_fieldEditToHtml( $field, $user, $reason, 'input', 'hidden', $value, null ); } } break; case 'html': case 'rss': if ( $value ) { $url = $hybrid->getProviderProfileURL( $provider, $value ); if ( $url ) { $value = '<a href="' . $url . '" target="_blank">' . CBTxt::T( 'VIEW_PROVIDER_PROFILE', 'View [provider] Profile', array( '[provider]' => $providerName ) ) . '</a>'; } } $return = $this->formatFieldValueLayout( $this->_formatFieldOutput( $field->get( 'name' ), $value, $output, false ), $reason, $field, $user, false ); break; default: $return = $this->_formatFieldOutput( $field->get( 'name' ), $value, $output ); break; } return $return; }
/** * @param boolean $raw * @return array */ static public function getCategoriesList( $raw = false ) { static $cache = null; if ( ! isset( $cache ) ) { $plugin = cbconsultationsClass::getPlugin(); $categories = explode( ',', $plugin->params->get( 'consultation_categories', 'General,Movies,Music,Games,Sports' ) ); $cache = array(); if ( $categories ) foreach ( $categories as $category ) { $cache[] = moscomprofilerHTML::makeOption( $category, CBTxt::T( $category ) ); } } $rows = $cache; if ( $rows ) { if ( $raw === true ) { $categories = array(); foreach ( $rows as $row ) { $categories[] = $row->value; } $rows = $categories; } } else { $rows = array(); } return $rows; }
/** * prepare frontend invite edit render * * @param int $id * @param UserTable $user */ private function showInviteEdit( $id, $user ) { global $_CB_framework; $row = new InviteTable(); $row->load( (int) $id ); $isModerator = CBGroupJive::isModerator( $user->get( 'id' ) ); $groupId = $this->input( 'group', null, GetterInterface::INT ); if ( $groupId === null ) { $group = $row->group(); } else { $group = CBGroupJive::getGroup( $groupId ); } $returnUrl = $_CB_framework->pluginClassUrl( $this->element, false, array( 'action' => 'groups', 'func' => 'show', 'id' => (int) $group->get( 'id' ) ) ); if ( ! CBGroupJive::canAccessGroup( $group, $user ) ) { cbRedirect( $returnUrl, CBTxt::T( 'Group does not exist.' ), 'error' ); } elseif ( $row->get( 'id' ) && ( $user->get( 'id' ) != $row->get( 'user_id' ) ) ) { cbRedirect( $returnUrl, CBTxt::T( 'You do not have sufficient permissions to edit this invite.' ), 'error' ); } elseif ( ! $isModerator ) { if ( ( $row->get( 'published' ) == -1 ) || ( ( ! $this->params->get( 'groups_invites_display', 1 ) ) && ( $group->get( 'type' ) != 3 ) ) ) { cbRedirect( $returnUrl, CBTxt::T( 'You do not have access to invites in this group.' ), 'error' ); } elseif ( ( ! $row->get( 'id' ) ) && ( ! CBGroupJive::canCreateGroupContent( $user, $group, 'invites' ) ) ) { cbRedirect( $returnUrl, CBTxt::T( 'You do not have sufficient permissions to create an invite in this group.' ), 'error' ); } } CBGroupJive::getTemplate( 'invite_edit' ); $input = array(); $inviteBy = array(); $inviteByLimit = explode( '|*|', $this->params->get( 'groups_invites_by', '1|*|2|*|3|*|4' ) ); if ( ! $inviteByLimit ) { $inviteByLimit = array( 1, 2, 3, 4 ); } if ( in_array( 1, $inviteByLimit ) ) { $inviteBy[] = CBTxt::T( 'User ID' ); } if ( in_array( 2, $inviteByLimit ) ) { $inviteBy[] = CBTxt::T( 'Username' ); } if ( in_array( 3, $inviteByLimit ) ) { $inviteBy[] = CBTxt::T( 'Name' ); } if ( in_array( 4, $inviteByLimit ) ) { $inviteBy[] = CBTxt::T( 'Email Address' ); } $input['invite_by'] = $inviteBy; $listConnections = array(); if ( Application::Config()->get( 'allowConnections' ) ) { $cbConnection = new cbConnection( (int) $user->get( 'id' ) ); foreach( $cbConnection->getConnectedToMe( (int) $user->get( 'id' ) ) as $connection ) { $listConnections[] = moscomprofilerHTML::makeOption( (string) $connection->id, getNameFormat( $connection->name, $connection->username, Application::Config()->get( 'name_format', 3 ) ) ); } } if ( $listConnections ) { array_unshift( $listConnections, moscomprofilerHTML::makeOption( '0', CBTxt::T( '- Select Connection -' ) ) ); $listTooltip = cbTooltip( null, CBTxt::T( 'Select a connection to invite.' ), null, null, null, null, null, 'data-hascbtooltip="true"' ); $input['list'] = moscomprofilerHTML::selectList( $listConnections, 'selected', 'class="gjInviteConnection form-control"' . $listTooltip, 'value', 'text', (int) $this->input( 'post/selected', 0, GetterInterface::INT ), 1, false, false ); } else { $input['list'] = null; } $toTooltup = cbTooltip( null, CBTxt::T( 'GROUP_INVITE_BY', 'Input the recipient as [invite_by].', array( '[invite_by]' => implode( ', ', $inviteBy ) ) ), null, null, null, null, null, 'data-hascbtooltip="true"' ); $input['to'] = '<input type="text" id="to" name="to" value="' . htmlspecialchars( $this->input( 'post/to', ( $row->get( 'user' ) ? (int) $row->get( 'user' ) : $row->get( 'email' ) ), GetterInterface::STRING ) ) . '" class="gjInviteOther form-control" size="40"' . $toTooltup . ' />'; $messageTooltip = cbTooltip( null, CBTxt::T( 'Optionally input private message to include with the invite.' ), null, null, null, null, null, 'data-hascbtooltip="true"' ); $input['message'] = '<textarea id="message" name="message" class="form-control" cols="40" rows="5"' . $messageTooltip . '>' . htmlspecialchars( $this->input( 'post/message', $row->get( 'message' ), GetterInterface::STRING ) ) . '</textarea>'; HTML_groupjiveInviteEdit::showInviteEdit( $row, $input, $group, $user, $this ); }
/** * render frontend events group notifications edit params * * @param string $return * @param NotificationTable $row * @param array $input * @param GroupTable $group * @param UserTable $user * @return string */ public function editNotifications( &$return, &$row, &$input, $group, $user ) { CBGroupJive::getTemplate( 'notifications', true, true, $this->element ); $listToggle = array(); $listToggle[] = moscomprofilerHTML::makeOption( '0', CBTxt::T( "Don't Notify" ) ); $listToggle[] = moscomprofilerHTML::makeOption( '1', CBTxt::T( 'Notify' ) ); $input['event_new'] = moscomprofilerHTML::yesnoSelectList( 'params[event_new]', 'class="form-control"', (int) $this->input( 'post/params.event_new', $row->params()->get( 'event_new', $this->params->get( 'notifications_default_event_new', 0 ) ), GetterInterface::INT ), CBTxt::T( 'Notify' ), CBTxt::T( "Don't Notify" ), false ); $input['event_edit'] = moscomprofilerHTML::yesnoSelectList( 'params[event_edit]', 'class="form-control"', (int) $this->input( 'post/params.event_edit', $row->params()->get( 'event_edit', $this->params->get( 'notifications_default_event_edit', 0 ) ), GetterInterface::INT ), CBTxt::T( 'Notify' ), CBTxt::T( "Don't Notify" ), false ); $input['event_approve'] = moscomprofilerHTML::yesnoSelectList( 'params[event_approve]', 'class="form-control"', (int) $this->input( 'post/params.event_approve', $row->params()->get( 'event_approve', $this->params->get( 'notifications_default_event_approve', 0 ) ), GetterInterface::INT ), CBTxt::T( 'Notify' ), CBTxt::T( "Don't Notify" ), false ); $input['event_attend'] = moscomprofilerHTML::yesnoSelectList( 'params[event_attend]', 'class="form-control"', (int) $this->input( 'post/params.event_attend', $row->params()->get( 'event_attend', $this->params->get( 'notifications_default_event_attend', 0 ) ), GetterInterface::INT ), CBTxt::T( 'Notify' ), CBTxt::T( "Don't Notify" ), false ); $input['event_unattend'] = moscomprofilerHTML::yesnoSelectList( 'params[event_unattend]', 'class="form-control"', (int) $this->input( 'post/params.event_unattend', $row->params()->get( 'event_unattend', $this->params->get( 'notifications_default_event_unattend', 0 ) ), GetterInterface::INT ), CBTxt::T( 'Notify' ), CBTxt::T( "Don't Notify" ), false ); return HTML_groupjiveEventNotifications::showEventNotifications( $row, $input, $group, $user, $this ); }
/** * View for <param type="private" class="cbpaidParamsExt" method="datalist">... * * @param string $value Stored Data of Model Value associated with the element * @param ParamsInterface $pluginParams Main settigns parameters of the plugin * @param string $name Name attribute * @param CBSimpleXMLElement $param This XML node * @param string $control_name Name of the control * @param string $control_name_name css id-encode of the names of the controls surrounding this node * @param boolean $view TRUE: view, FALSE: edit * @param cbpaidTable $modelOfData Data of the Model corresponding to this View * @param cbpaidTable[] $modelOfDataRows Displayed Rows if it is a table * @param int $modelOfDataRowsNumber Total Number of rows * @return null|string */ public function datalist($value, &$pluginParams, $name, &$param, $control_name, $control_name_name, $view, &$modelOfData, &$modelOfDataRows, &$modelOfDataRowsNumber) { global $_CB_database; //TBD $multi = ( $param->attributes( 'multiple' ) == 'true' ); $data = $param->getElementByPath('data'); if ($data) { $dataTable = $data->attributes('table'); if (!$dataTable) { if (isset($this->table)) { $dataTable = $this->table; } elseif (is_object($modelOfData) && $modelOfData instanceof TableInterface) { $dataTable = $modelOfData->getTableName(); } elseif (is_object($modelOfData) && isset($modelOfData->_tbl)) { $dataTable = $modelOfData->_tbl; } else { $dataTable = null; } } $xmlsql = new XmlQuery($_CB_database, $dataTable, $pluginParams); $xmlsql->setExternalDataTypeValues('modelofdata', $modelOfData); $xmlsql->process_orderby($data->getElementByPath('orderby')); // <data><orderby><field> fields $xmlsql->process_fields($data->getElementByPath('rows')); // <data><rows><field> fields $xmlsql->process_where($data->getElementByPath('where')); // <data><where><column> fields $groupby = $data->getElementByPath('groupby'); if (!$groupby) { $groupby = 'value'; } if ($data->attributes('dogroupby') != 'false') { $xmlsql->process_groupby($groupby); } $fieldValuesInDb = $xmlsql->queryLoadObjectsList($data); // get the records if ($view) { if (is_array($fieldValuesInDb)) { foreach ($fieldValuesInDb as $v) { if ($v->value == $value) { $value = $v->text; break; } } } return htmlspecialchars($value); } else { // check if value is in possible values: if ($value != $param->attributes('default') && is_array($fieldValuesInDb)) { $setToDefault = true; foreach ($fieldValuesInDb as $v) { if ($v->value == $value) { $setToDefault = false; break; } } if ($setToDefault) { $value = $param->attributes('default'); } } if ($param->attributes('blanktext') && ($param->attributes('hideblanktext') != 'true' || $value == $param->attributes('default'))) { $default = (string) $param->attributes('default'); array_unshift($fieldValuesInDb, moscomprofilerHTML::makeOption($default, CBPTXT::T($param->attributes('blanktext')))); } //TBD $selected = explode( '|*|', $value ); $classes = 'class="' . RegistryEditView::buildClasses($param, array('form-control')) . '"'; return moscomprofilerHTML::selectList($fieldValuesInDb, $control_name_name, $classes . $this->_title($param), 'value', 'text', $value, 2); // return $this->selectList( $fieldValuesInDb, $param, $control_name, $name, $selected, $multi ); } } return null; }
/** * builds and returns limitbox select input or hidden limit input * * @param bool $showLimitBox * @param bool $showLabel * @return string */ public function getLimitBox($showLimitBox = true, $showLabel = false) { if ($showLimitBox) { if (!in_array((int) $this->limit, $this->limits)) { $this->limits[] = (int) $this->limit; cbArrayToInts($this->limits); sort($this->limits); } $limits = array(); foreach ($this->limits as $i) { $limits[] = moscomprofilerHTML::makeOption($i); } $return = '<span class="' . htmlspecialchars($this->classes['cbPaginationLimit']) . '">' . ($showLabel ? CBTxt::Th('PAGENAV_DISPLAY_NUMBER_PER_PAGE', 'Display #') . ' ' : null) . moscomprofilerHTML::selectList($limits, $this->fieldName('limit'), 'class="' . htmlspecialchars($this->classes['cbPageLimitbox']) . '" onchange="' . $this->limitstartJs(0) . '"', 'value', 'text', (int) $this->limit, 2) . '</span>'; } else { $return = '<input type="hidden" name="' . $this->fieldName('limit') . '" value="' . (int) $this->limit . '" />'; } $return .= '<input type="hidden" name="' . $this->fieldName('limitstart') . '" value="' . (int) $this->limitstart . '" />'; return $return; }
function showUsers( $option, $task, $cid ) { global $_CB_database, $_CB_framework, $_POST, $_PLUGINS, $_CB_TxtIntStore; $this->_importNeeded(); $limit = (int) $_CB_framework->getCfg( 'list_limit' ); if ( $limit == 0 ) { $limit = 10; } $filter_type = $_CB_framework->getUserStateFromRequest( "filter_type{$option}", 'filter_type', 0 ); $filter_status = $_CB_framework->getUserStateFromRequest( "filter_status{$option}", 'filter_status', 0 ); $filter_logged = intval( $_CB_framework->getUserStateFromRequest( "filter_logged{$option}", 'filter_logged', 0 ) ); $lastCBlist = $_CB_framework->getUserState( "view{$option}lastCBlist", null ); if( $lastCBlist == 'showusers' ) { if ( $task == 'showusers' ) { $limit = $_CB_framework->getUserStateFromRequest( "viewlistlimit", 'limit', $limit ); $limitstart = $_CB_framework->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 ); } $lastSearch = $_CB_framework->getUserState( "search{$option}", null ); $search = $_CB_framework->getUserStateFromRequest( "search{$option}", 'search', '' ); if ( $lastSearch != $search ) { $limitstart = 0; $_CB_framework->setUserState( "view{$option}limitstart", $limitstart ); } $search = stripslashes( trim( ( $_CB_TxtIntStore->_iso != 'UTF-8' ) ? strtolower( $search ) : ( is_callable( 'mb_convert_case' ) ? mb_convert_case( $search, MB_CASE_LOWER, "UTF-8") : utf8_encode(strtolower(utf8_decode( $search ) ) ) ) ) ); } else { $filter_type = 0; $filter_status = 0; $filter_logged = 0; clearSearchBox(); $search = ''; $limitstart = 0; $_CB_framework->setUserState( "view{$option}limitstart", $limitstart ); $_CB_framework->setUserState( "view{$option}lastCBlist", "showusers" ); } if ( $task !== 'showusers' ) { if ( $task == 'ajaxemailusers' ) { $limitstart = cbGetParam( $_POST, 'limitstart', 0 ); $limit = cbGetParam( $_POST, 'limit', 0 ); } else { $limitstart = 0; if ( $task == 'emailusers' ) { $limit = 101; // so that first 100 users and more... is displayed. } else { $limit = cbGetParam( $_POST, 'limit', 0 ); } } } $tablesSQL = array( 'u' => '#__users AS u' ); $joinsSQL = array( 'ue' => 'LEFT JOIN #__comprofiler AS ue ON u.id = ue.id' ); $tablesWhereSQL = array(); if ( isset( $search ) && ( $search != "") ) { $tablesWhereSQL[] = "(u.username LIKE '%" . $_CB_database->getEscaped( $search, true ) . "%' OR u.email LIKE '%" . $_CB_database->getEscaped( $search, true ) . "%' OR u.name LIKE '%" . $_CB_database->getEscaped( $search, true ) . "%')"; } if ( $filter_type ) { if ( checkJversion() == 2 ) { $tablesWhereSQL[] = "aro.group_id = " . (int) $filter_type; } else { if ( $filter_type == 'Public Frontend' ) { $tablesWhereSQL[] = "(u.usertype = 'Registered' OR u.usertype = 'Author' OR u.usertype = 'Editor'OR u.usertype = 'Publisher')"; } else if ( $filter_type == 'Public Backend' ) { $tablesWhereSQL[] = "( u.usertype = 'Manager' OR u.usertype = 'Administrator' OR u.usertype = 'Super Administrator' )"; } else { $tablesWhereSQL[] = "u.usertype = " . $_CB_database->Quote( $filter_type ); } } } $tBlocked = CBTxt::T('Blocked'); $tEnabled = CBTxt::T('Enabled'); $tUnconfirmed = CBTxt::T('Unconfirmed'); $tConfirmed = CBTxt::T('Confirmed'); $tUnapproved = CBTxt::T('Unapproved'); $tDisapproved = CBTxt::T('Disapproved'); $tApproved = CBTxt::T('Approved'); $tBanned = CBTxt::T('Banned'); $p = ' + '; $userstates = array( $tBlocked => 'u.block = 1', $tEnabled => 'u.block = 0', $tUnconfirmed => 'ue.confirmed = 0', $tConfirmed => 'ue.confirmed = 1', $tUnapproved => 'ue.approved = 0', $tDisapproved => 'ue.approved = 2', $tApproved => 'ue.approved = 1', $tBanned => 'ue.banned <> 0', $tBlocked . $p . $tUnconfirmed . $p . $tUnapproved => '(u.block = 1 AND ue.confirmed = 0 AND ue.approved = 0)', $tEnabled . $p . $tUnconfirmed . $p . $tUnapproved => '(u.block = 0 AND ue.confirmed = 0 AND ue.approved = 0)', $tBlocked . $p . $tConfirmed . $p . $tUnapproved => '(u.block = 1 AND ue.confirmed = 1 AND ue.approved = 0)', $tEnabled . $p . $tConfirmed . $p . $tUnapproved => '(u.block = 0 AND ue.confirmed = 1 AND ue.approved = 0)', $tBlocked . $p . $tUnconfirmed . $p . $tDisapproved => '(u.block = 1 AND ue.confirmed = 0 AND ue.approved = 2)', $tEnabled . $p . $tUnconfirmed . $p . $tDisapproved => '(u.block = 0 AND ue.confirmed = 0 AND ue.approved = 2)', $tBlocked . $p . $tConfirmed . $p . $tDisapproved => '(u.block = 1 AND ue.confirmed = 1 AND ue.approved = 2)', $tEnabled . $p . $tConfirmed . $p . $tDisapproved => '(u.block = 0 AND ue.confirmed = 1 AND ue.approved = 2)', $tBlocked . $p . $tUnconfirmed . $p . $tApproved => '(u.block = 1 AND ue.confirmed = 0 AND ue.approved = 1)', $tEnabled . $p . $tUnconfirmed . $p . $tApproved => '(u.block = 0 AND ue.confirmed = 0 AND ue.approved = 1)', $tBlocked . $p . $tConfirmed . $p . $tApproved => '(u.block = 1 AND ue.confirmed = 1 AND ue.approved = 1)', $tEnabled . $p . $tConfirmed . $p . $tApproved => '(u.block = 0 AND ue.confirmed = 1 AND ue.approved = 1)', CBTxt::T('Avatar not approved') => "(ue.avatar > '' AND ue.avatarapproved = 0)" ); if ( $filter_status ) { $tablesWhereSQL[] = $userstates[$filter_status]; } if ( $filter_logged == 1 ) { $tablesWhereSQL[] = "s.userid = u.id"; } else if ($filter_logged == 2) { $tablesWhereSQL[] = "s.userid IS NULL"; } // exclude any child group id's for this user //$_CB_framework->acl->_debug = true; $pgids = $_CB_framework->acl->get_group_children( userGID( $_CB_framework->myId() ), 'ARO', 'RECURSE' ); if ( is_array( $pgids ) && (count( $pgids ) > 0 ) ) { if ( checkJversion() == 2 ) { $tablesWhereSQL[] = "( aro.group_id NOT IN ( " . implode( ',', $pgids ) . " ) )"; } else { $tablesWhereSQL[] = "( u.gid NOT IN ( " . implode( ',', $pgids ) . " ) )"; } } // Filter the checkmarked users only: if ( $task !== 'showusers' ) { if ( is_array( $cid ) && ( count( $cid ) > 0 ) ) { cbArrayToInts( $cid ); $tablesWhereSQL[] = "( u.id IN ( " . implode( ',', $cid ) . " ) )"; } } // Advanced searches: $myCbUser =& CBuser::getInstance( $_CB_framework->myId() ); $myUser =& $myCbUser->getUserData(); $tabs = $myCbUser->_getCbTabs(); // new cbTabs( 0, 1 ); //TBD: later: this private method should not be called here, but the whole users-list should go into there and be called here. $allFields = $tabs->_getTabFieldsDb( null, $myUser, 'adminfulllist' ); foreach ( $allFields as $k => $v ) { if ( in_array( $v->type, array( 'pm', 'status', 'formatname', 'hidden', 'delimiter', 'userparams' ) ) ) { unset( $allFields[$k] ); // delimiter, userparams do not have search for now! } } $searchVals = new stdClass(); $list_compare_types = 1; // Advanced: all possibilities (WARNING: can be slow) $tableReferences = array( '#__comprofiler' => 'ue', '#__users' => 'u' ); $searchesFromFields = $tabs->applySearchableContents( $allFields, $searchVals, $_POST, $list_compare_types ); $whereFields = $searchesFromFields->reduceSqlFormula( $tableReferences, $joinsSQL, TRUE ); if ( $whereFields ) { $tablesWhereSQL[] = '(' . $whereFields . ')'; } $searchTabContent = $tabs->getSearchablesContents( $allFields, $myUser, $searchVals, $list_compare_types ); if ($filter_logged == 1 || $filter_logged == 2) { $joinsSQL[] .= "\n INNER JOIN #__session AS s ON s.userid = u.id"; // } else { done later, to avoid blocking site: // $joinsSQL[] .= "\n LEFT JOIN #__session AS s ON s.userid = u.id"; } if ( checkJversion() == 2 ) { $joinsSQL[] = "INNER JOIN #__user_usergroup_map AS aro ON aro.user_id = u.id"; // map user to aro for selection (and display if no selection) if ( $filter_type ) { $joinsSQL[] = "LEFT JOIN #__user_usergroup_map AS arodisplay ON arodisplay.user_id = u.id"; // map user to aro for display of all groups $joinsSQL[] = "INNER JOIN #__usergroups AS g ON g.id = arodisplay.group_id"; // map aro to group for display group name } else { $joinsSQL[] = "INNER JOIN #__usergroups AS g ON g.id = aro.group_id"; // map aro to group } } $_PLUGINS->loadPluginGroup('user'); $_PLUGINS->trigger( 'onBeforeBackendUsersListBuildQuery', array( &$tablesSQL, &$joinsSQL, &$tablesWhereSQL, $option ) ); $queryFrom = "\n FROM " . implode( ', ', $tablesSQL ) . ( count( $joinsSQL ) ? "\n " . implode( "\n ", $joinsSQL ) : '' ) . ( count( $tablesWhereSQL ) ? "\n WHERE " . implode( ' AND ', $tablesWhereSQL ) : '' ) ; // Counting query: $query = "SELECT COUNT(DISTINCT u.id)" . $queryFrom ; $_CB_database->setQuery( $query ); $total = $_CB_database->loadResult(); if ( $total === null ) { echo $_CB_database->getErrorMsg(); } if ( $total <= $limitstart ) { $limitstart = 0; } cbimport( 'cb.pagination' ); $pageNav = new cbPageNav( $total, $limitstart, $limit ); if ( checkJversion() == 2 ) { $grp_name = 'title'; } elseif ( checkJversion() == 1 ) { $grp_name = 'name'; $joinsSQL[] = "INNER JOIN #__core_acl_aro AS aro ON aro.value = u.id"; // map user to aro $joinsSQL[] = "INNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.id"; // map aro to group $joinsSQL[] = "INNER JOIN #__core_acl_aro_groups AS g ON g.id = gm.group_id"; $tablesWhereSQL[] = "aro.section_value = 'users'"; } else { $grp_name = 'name'; $joinsSQL[] = "INNER JOIN #__core_acl_aro AS aro ON aro.value = u.id"; // map user to aro $joinsSQL[] = "INNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.aro_id"; // map aro to group $joinsSQL[] = "INNER JOIN #__core_acl_aro_groups AS g ON g.group_id = gm.group_id"; $tablesWhereSQL[] = "aro.section_value = 'users'"; } $queryFrom = "\n FROM " . implode( ', ', $tablesSQL ) . ( count( $joinsSQL ) ? "\n " . implode( "\n ", $joinsSQL ) : '' ) . ( count( $tablesWhereSQL ) ? "\n WHERE " . implode( ' AND ', $tablesWhereSQL ) : '' ) ; // Main query: if ( checkJversion() == 2 ) { $query = "SELECT u.*, GROUP_CONCAT( DISTINCT g.$grp_name ORDER BY g.$grp_name SEPARATOR ', ') AS groupname, ue.approved, ue.confirmed" . $queryFrom . ' GROUP BY u.id' ; } else { $query = "SELECT DISTINCT u.*, g.$grp_name AS groupname, ue.approved, ue.confirmed" . $queryFrom ; } $_CB_database->setQuery( $query, (int) $pageNav->limitstart, (int) $pageNav->limit ); $rows = $_CB_database->loadObjectList( null, 'moscomprofilerUser', array( &$_CB_database ) ); if ($_CB_database->getErrorNum()) { echo $_CB_database->stderr(); return false; } // creates the CBUsers in cache corresponding to the $users: foreach ( array_keys( $rows ) as $k) { // do not do this otherwise substitutions do not work: // CBuser::setUserGetCBUserInstance( $rows[$k] ); } $template = 'SELECT COUNT(s.userid) FROM #__session AS s WHERE s.userid = '; $n = count( $rows ); for ( $i = 0; $i < $n; $i++ ) { $row = &$rows[$i]; $query = $template . (int) $row->id; $_CB_database->setQuery( $query ); $row->loggedin = $_CB_database->loadResult(); } $select_tag_attribs = 'class="inputbox" size="1" onchange="document.adminForm.submit( );"'; $inputTextExtras = ''; if ( $task != 'showusers' ) { $inputTextExtras = ' disabled="disabled"'; $select_tag_attribs .= $inputTextExtras; } // get list of Log Status for dropdown filter $logged[] = moscomprofilerHTML::makeOption( 0, CBTxt::T('- Select Login State -')); $logged[] = moscomprofilerHTML::makeOption( 1, CBTxt::T('Logged In')); $lists['logged'] = moscomprofilerHTML::selectList( $logged, 'filter_logged', $select_tag_attribs, 'value', 'text', "$filter_logged", 2 ); // get list of Groups for dropdown filter if ( checkJversion() == 2 ) { $query = "SELECT id AS value, title AS text" . "\n FROM #__usergroups"; } else { $query = "SELECT name AS value, name AS text" . "\n FROM #__core_acl_aro_groups" . "\n WHERE name != 'ROOT'" . "\n AND name != 'USERS'"; } $types[] = moscomprofilerHTML::makeOption( '0', CBTxt::T('- Select Group -') ); $_CB_database->setQuery( $query ); $types = array_merge( $types, $_CB_database->loadObjectList() ); $lists['type'] = moscomprofilerHTML::selectList( $types, 'filter_type', $select_tag_attribs, 'value', 'text', "$filter_type", 2 ); $status[] = moscomprofilerHTML::makeOption( 0, CBTxt::T('- Select User Status -')); foreach ( array_keys( $userstates ) as $k ) { $status[] = moscomprofilerHTML::makeOption( $k, $k ); } $lists['status'] = moscomprofilerHTML::selectList( $status, 'filter_status', $select_tag_attribs, 'value', 'text', "$filter_status", 2 ); $pluginAdditions = $_PLUGINS->trigger( 'onAfterBackendUsersList', array( 1, &$rows, &$pageNav, &$search, &$lists, $option, $select_tag_attribs ) ); $pluginColumns = array(); foreach ( $pluginAdditions as $addition ) { if ( is_array( $addition ) ) { $pluginColumns = array_merge( $pluginColumns, $addition ); } } if ( $task == 'showusers' ) { $usersView = _CBloadView( 'users' ); $usersView->showUsers( $rows, $pageNav, $search, $option, $lists, $pluginColumns, $inputTextExtras, $searchTabContent ); } else { $emailSubject = stripslashes( cbGetParam( $_POST, 'emailsubject', '' ) ); $emailBody = stripslashes( cbGetParam( $_POST, 'emailbody', '', _CB_ALLOWRAW | _CB_NOTRIM ) ); $emailsPerBatch = stripslashes( cbGetParam( $_POST, 'emailsperbatch', 50 ) ); $emailPause = stripslashes( cbGetParam( $_POST, 'emailpause', 30 ) ); $simulationMode = stripslashes( cbGetParam( $_POST, 'simulationmode', '' ) ); if ( count( $cid ) > 0 && count( $cid ) < $total ) { $total = count( $cid ); } if ( $task == 'emailusers' ) { $pluginRows = $_PLUGINS->trigger( 'onBeforeBackendUsersEmailForm', array( &$rows, &$pageNav, &$search, &$lists, &$cid, &$emailSubject, &$emailBody, &$inputTextExtras, &$select_tag_attribs, $simulationMode, $option ) ); $usersView = _CBloadView( 'users' ); $usersView->emailUsers( $rows, $total, $search, $option, $lists, $cid, $inputTextExtras, $searchTabContent, $emailSubject, $emailBody, $emailsPerBatch, $emailPause, $simulationMode, $pluginRows ); } elseif ( $task == 'startemailusers' ) { $pluginRows = $_PLUGINS->trigger( 'onBeforeBackendUsersEmailStart', array( &$rows, $total, $search, $lists, $cid, &$emailSubject, &$emailBody, &$inputTextExtras, $simulationMode, $option ) ); $usersView = _CBloadView( 'users' ); $usersView->startEmailUsers( $rows, $search, $option, $lists, $cid, $inputTextExtras, $searchTabContent, $emailSubject, $emailBody, $emailsPerBatch, $emailPause, $total, $simulationMode, $pluginRows ); } elseif ( $task == 'ajaxemailusers' ) { $this->_cbadmin_emailUsers( $rows, $emailSubject, $emailBody, $limitstart, $limit, $total, $simulationMode ); } } return true; }
/** * Draws Users list (ECHO) * * @param int $userId * @param int $listId * @param array $postData * @return void */ public function drawUsersList($userId, $listId, $postData) { global $_CB_database, $_PLUGINS; $_PLUGINS->loadPluginGroup('user'); $searchData = cbGetParam($postData, 'search'); $limitstart = (int) cbGetParam($postData, 'limitstart'); $searchMode = (int) cbGetParam($postData, 'searchmode', 0); $random = (int) cbGetParam($postData, 'rand', 0); $cbUser = CBuser::getInstance((int) $userId, false); $user = $cbUser->getUserData(); $search = null; $input = array(); $publishedLists = array(); $query = 'SELECT *' . "\n FROM " . $_CB_database->NameQuote('#__comprofiler_lists') . "\n WHERE " . $_CB_database->NameQuote('published') . " = 1" . "\n AND " . $_CB_database->NameQuote('viewaccesslevel') . " IN " . $_CB_database->safeArrayOfIntegers(Application::MyUser()->getAuthorisedViewLevels()) . "\n ORDER BY " . $_CB_database->NameQuote('ordering'); $_CB_database->setQuery($query); /** @var ListTable[] $userLists */ $userLists = $_CB_database->loadObjectList(null, '\\CB\\Database\\Table\\ListTable', array($_CB_database)); if ($userLists) { foreach ($userLists as $userList) { $publishedLists[] = moscomprofilerHTML::makeOption((int) $userList->listid, strip_tags($cbUser->replaceUserVars($userList->title, false, false))); if (!$listId && $userList->default) { $listId = (int) $userList->listid; } } if (!$listId) { $listId = (int) $userLists[0]->listid; } } if (!$listId) { echo CBTxt::Th('UE_NOLISTFOUND', 'There are no published user lists!'); return; } if ($userLists) { $input['plists'] = moscomprofilerHTML::selectList($publishedLists, 'listid', 'class="form-control input-block" onchange="this.form.submit();"', 'value', 'text', (int) $listId, 1); } $row = self::getInstance((int) $listId); if (!$row) { echo CBTxt::Th('UE_LIST_DOES_NOT_EXIST', 'This list does not exist'); return; } if (!$cbUser->authoriseView('userslist', $row->listid)) { echo CBTxt::Th('UE_NOT_AUTHORIZED', 'You are not authorized to view this page!'); return; } $params = new Registry($row->params); if ($params->get('hotlink_protection', 0) == 1) { if ($searchData !== null || $limitstart) { cbSpoofCheck('userslist', 'GET'); } } $limit = (int) $params->get('list_limit', 30); if (!$limit) { $limit = 30; } if ($params->get('list_paging', 1) != 1) { $limitstart = 0; } $isModerator = Application::MyUser()->isGlobalModerator(); $_PLUGINS->trigger('onStartUsersList', array(&$listId, &$row, &$search, &$limitstart, &$limit)); // Prepare query variables: $userGroupIds = explode('|*|', $row->usergroupids); $orderBy = self::getSorting($listId, $userId, $random); $filterBy = self::getFiltering($listId, $userId); $columns = self::getColumns($listId, $userId); // Grab all the fields the $user can access: $tabs = new cbTabs(0, 1); $fields = $tabs->_getTabFieldsDb(null, $user, 'list'); // Build the field SQL: $tableReferences = array('#__comprofiler' => 'ue', '#__users' => 'u'); $searchableFields = array(); $fieldsSQL = cbUsersList::getFieldsSQL($columns, $fields, $tableReferences, $searchableFields, $params); $_PLUGINS->trigger('onAfterUsersListFieldsSql', array(&$columns, &$fields, &$tableReferences)); // Build the internal joins and where statements best off list parameters: $tablesSQL = array(); $joinsSQL = array(); $tablesWhereSQL = array(); if ($isModerator) { if (!$params->get('list_show_blocked', 0)) { $tablesWhereSQL['block'] = 'u.block = 0'; } if (!$params->get('list_show_banned', 1)) { $tablesWhereSQL['banned'] = 'ue.banned = 0'; } if (!$params->get('list_show_unapproved', 0)) { $tablesWhereSQL['approved'] = 'ue.approved = 1'; } if (!$params->get('list_show_unconfirmed', 0)) { $tablesWhereSQL['confirmed'] = 'ue.confirmed = 1'; } } else { $tablesWhereSQL = array('block' => 'u.block = 0', 'approved' => 'ue.approved = 1', 'confirmed' => 'ue.confirmed = 1', 'banned' => 'ue.banned = 0'); } $joinsSQL[] = 'JOIN #__user_usergroup_map g ON g.`user_id` = u.`id`'; if ($userGroupIds) { $tablesWhereSQL['gid'] = 'g.group_id IN ' . $_CB_database->safeArrayOfIntegers($userGroupIds); } foreach ($tableReferences as $table => $name) { if ($name == 'u') { $tablesSQL[] = $table . ' ' . $name; } else { $joinsSQL[] = 'JOIN ' . $table . ' ' . $name . ' ON ' . $name . '.`id` = u.`id`'; } } // Build the search criteria: $searchValues = new stdClass(); $searchesFromFields = $tabs->applySearchableContents($searchableFields, $searchValues, $postData, $params->get('list_compare_types', 0)); $whereFields = $searchesFromFields->reduceSqlFormula($tableReferences, $joinsSQL, true); if ($whereFields) { $tablesWhereSQL[] = '(' . $whereFields . ')'; } $_PLUGINS->trigger('onBeforeUsersListBuildQuery', array(&$tablesSQL, &$joinsSQL, &$tablesWhereSQL)); // Construct the FROM and WHERE for the userlist query: $queryFrom = "FROM " . implode(', ', $tablesSQL) . (count($joinsSQL) ? "\n " . implode("\n ", $joinsSQL) : '') . "\n WHERE " . implode("\n AND ", $tablesWhereSQL) . " " . $filterBy; $_PLUGINS->trigger('onBeforeUsersListQuery', array(&$queryFrom, 1, $listId)); // $ui = 1 (frontend) $errorMsg = null; // Checks if the list is being actively searched and it allows searching; otherwise reset back to normal: $searchCount = count(get_object_vars($searchValues)); if ($params->get('list_search', 1) > 0 && $params->get('list_search_empty', 0) && !$searchCount) { $searchMode = 1; $listAll = false; } else { $listAll = $searchCount ? true : false; } if ($searchMode == 0 || $searchMode == 1 && $searchCount || $searchMode == 2) { // Prepare the userlist count query for pagination: $_CB_database->setQuery("SELECT COUNT( DISTINCT u.id ) " . $queryFrom); $total = $_CB_database->loadResult(); if ($limit > $total || $limitstart >= $total) { $limitstart = 0; } // Prepare the actual userlist query to build a list of users: $query = "SELECT DISTINCT ue.*, u.*, '' AS 'NA' " . ($fieldsSQL ? ", " . $fieldsSQL . " " : '') . $queryFrom . " " . $orderBy; $_CB_database->setQuery($query, (int) $limitstart, (int) $limit); /** @var UserTable[] $users */ $users = $_CB_database->loadObjectList(null, '\\CB\\Database\\Table\\UserTable', array($_CB_database)); if (!$_CB_database->getErrorNum()) { $profileLink = $params->get('allow_profilelink', 1); // If users exist lets cache them and disable profile linking if necessary: if ($users) { foreach (array_keys($users) as $k) { // Add this user to cache: CBuser::setUserGetCBUserInstance($users[$k]); if (!$profileLink) { $users[$k]->set('_allowProfileLink', 0); } } } } else { $errorMsg = CBTxt::T('UE_ERROR_IN_QUERY_TURN_SITE_DEBUG_ON_TO_VIEW', 'There is an error in the database query. Site admin can turn site debug to on to view and fix the query.'); } if ($searchCount) { $search = ''; } else { $search = null; } if ($search === null && ($searchMode == 1 && $searchCount || $searchMode == 2)) { $search = ''; } } else { $total = 0; $users = array(); if ($search === null) { $search = ''; } } $pageNav = new cbPageNav($total, $limitstart, $limit); HTML_comprofiler::usersList($row, $users, $columns, $fields, $input, $search, $searchMode, $pageNav, $user, $searchableFields, $searchValues, $tabs, $errorMsg, $listAll, $random); }