Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/user.zip
Назад
PK f�!]����X X tmpl/saveunsub.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout hidden="true" /> </metadata> PK f�!]��<� tmpl/saveunsub.phpnu &1i� <?php /** * @package AcyMailing for Joomla! * @version 5.9.6 * @author acyba.com * @copyright (C) 2009-2018 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?> PK f�!]�?� � tmpl/subs_dropdown.phpnu &1i� <?php /** * @package AcyMailing for Joomla! * @version 5.9.6 * @author acyba.com * @copyright (C) 2009-2018 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><div id="acyusersubscription"> <?php $k = 0; $selectedIndex = ''; foreach($this->subscription as $key => $row) { if(empty($row->published) OR !$row->visible) continue; $value = 0; $dropdownOpts[] = acymailing_selectOption($row->listid, $row->name); if($row->status == 1) { $value = 1; $selectedIndex = $k; } echo '<input type="hidden" class="listsub-dropdown" name="data[listsub]['.$row->listid.'][status]" value="'.$value.'">'; $k++; } $dropdown = acymailing_select($dropdownOpts, 'data[listsubdropdown]', 'onchange="setSubsDropdown()"', 'value', 'text', $selectedIndex); echo $dropdown; ?> </div> <script type="text/javascript"> function setSubsDropdown() { var dropdown = document.getElementById('datalistsubdropdown'); var selectedOption = dropdown.options[dropdown.selectedIndex]; var selectedListId = selectedOption.value; var hiddenInputs = document.getElementsByClassName('listsub-dropdown'); for(var i = 0; i < hiddenInputs.length; i++) { hiddenInputs[i].value = '0'; if(hiddenInputs[i].name == 'data[listsub][' + selectedListId + '][status]') { hiddenInputs[i].value = '1'; } } } </script> PK f�!]2_ �� � tmpl/modify.phpnu &1i� <?php /** * @package AcyMailing for Joomla! * @version 5.9.6 * @author acyba.com * @copyright (C) 2009-2018 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><div id="acymodifyform"> <?php if('joomla' == 'wordpress') acymailing_displayMessages(); if($this->values->show_page_heading){ ?> <h1 class="contentheading<?php echo $this->values->suffix; ?>"><?php echo $this->values->page_heading; ?></h1> <?php } ?> <?php if(!empty($this->introtext)){ echo '<span class="acymailing_introtext">'.$this->introtext.'</span>'; } ?> <form action="<?php echo acymailing_frontendLink('user', false, acymailing_isNoTemplate(), true);?>" method="post" name="adminForm" id="adminForm" <?php if(!empty($this->fieldsClass->formoption)) echo $this->fieldsClass->formoption; ?> > <fieldset class="adminform acy_user_info"> <legend><span><?php echo acymailing_translation( 'USER_INFORMATIONS' ); ?></span></legend> <div id="acyuserinfo"> <?php if(acymailing_level(3)){ if(!empty($this->subscriber->email)) $this->fieldsClass->currentUser = $this->subscriber; $tmpCatId = array(); $tmpCatTag = array(); foreach($this->extraFields as $fieldName => $oneExtraField) { if($oneExtraField->type == 'category'){ if(empty($oneExtraField->fieldcat) && !empty($tmpCatId)){ while(!empty($tmpCatId)){ echo '</'.str_replace('fldset', 'fieldset', end($tmpCatTag)).'>'; array_pop($tmpCatId); array_pop($tmpCatTag); } } $tmpCatId[] = $oneExtraField->fieldid; $tmpCatTag[] = $oneExtraField->options['fieldcattag']; echo '<'.str_replace('fldset', 'fieldset', end($tmpCatTag)).' class="fieldCategory '.$oneExtraField->options['fieldcatclass'].'" id="tr'.$oneExtraField->namekey.'">'; if(in_array(end($tmpCatTag), array('fieldset', 'fldset'))) echo '<legend>'.$oneExtraField->fieldname.'</legend>'; }else{ if(in_array($oneExtraField->fieldcat, $tmpCatId) || empty($oneExtraField->fieldcat)){ while(!empty($tmpCatId) && $oneExtraField->fieldcat != end($tmpCatId)){ echo '</'.str_replace('fldset', 'fieldset', end($tmpCatTag)).'>'; array_pop($tmpCatId); array_pop($tmpCatTag); } } echo '<div id="tr'.$fieldName.'" class="acy_onefield"><div class="acykey">'.$this->fieldsClass->getFieldName($oneExtraField).'</div>'; echo '<div class="inputVal">'; if(in_array($fieldName,array('name','email')) AND !empty($this->subscriber->userid)){echo $this->subscriber->$fieldName; } else{echo $this->fieldsClass->display($oneExtraField,@$this->subscriber->$fieldName,'data[subscriber]['.$fieldName.']'); } echo '</div></div>'; } } $lastVal = end($tmpCatId); while(!empty($lastVal)){ echo '</'.str_replace('fldset', 'fieldset', end($tmpCatTag)).'>'; array_pop($tmpCatId); array_pop($tmpCatTag); $lastVal = end($tmpCatId); } }else{ if(!empty($this->fieldsToDisplay) && (strpos($this->fieldsToDisplay, 'name') !== false || strpos($this->fieldsToDisplay, 'default') !== false || strpos($this->fieldsToDisplay, 'all') !== false)){ ?> <div id="trname" class="acy_onefield"> <div class="acykey"> <label for="field_name"><?php echo acymailing_translation( 'JOOMEXT_NAME' ); ?></label> </div> <div class="inputVal"> <?php if(empty($this->subscriber->userid)){ echo '<input type="text" name="data[subscriber][name]" id="field_name" class="inputbox" style="width:200px;" value="'.$this->escape(@$this->subscriber->name).'" />'; }else{ echo $this->subscriber->name; } ?> </div> </div> <?php } if(!empty($this->fieldsToDisplay) && (strpos($this->fieldsToDisplay, 'email') !== false || strpos($this->fieldsToDisplay, 'default') !== false || strpos($this->fieldsToDisplay, 'all') !== false)){ ?> <div id="tremail" class="acy_onefield"> <div class="acykey"> <label for="field_email"><?php echo acymailing_translation( 'JOOMEXT_EMAIL' ); ?></label> </div> <div class="inputVal"> <?php if(empty($this->subscriber->userid)){ echo '<input class="inputbox" type="text" name="data[subscriber][email]" id="field_email" style="width:200px;" value="'.$this->escape(@$this->subscriber->email).'" />'; }else{ echo $this->subscriber->email; } ?> </div> </div> <?php } if(!empty($this->fieldsToDisplay) && (strpos($this->fieldsToDisplay, 'html') !== false || strpos($this->fieldsToDisplay, 'default') !== false || strpos($this->fieldsToDisplay, 'all') !== false)){ ?> <div id="trhtml" class="acy_onefield"> <div class="acykey"> <label for="field_email"><?php echo acymailing_translation( 'RECEIVE' ); ?></label> </div> <div class="inputVal"> <?php echo acymailing_boolean("data[subscriber][html]" , '',$this->subscriber->html,acymailing_translation('HTML'),acymailing_translation('JOOMEXT_TEXT'),'user_html'); ?> </div> </div> <?php } } ?> </div> </fieldset> <?php if($this->displayLists){?> <fieldset class="adminform acy_subscription_list"> <legend><span><?php echo acymailing_translation( 'SUBSCRIPTION' ); ?></span></legend> <?php if(empty($this->dropdown)) include('subs_default.php'); else include('subs_dropdown.php'); ?> </fieldset> <?php } ?> <br /> <input type="hidden" name="hiddenlists" value="<?php echo $this->hiddenlists; ?>"/> <?php $config = acymailing_config(); $current = acymailing_getMenu(); if(!empty($current)) echo '<input type="hidden" name="acy_source" value="menu_'.$current->id.'" />'; acymailing_formOptions(); ?> <input type="hidden" name="subid" value="<?php echo $this->subscriber->subid; ?>" /> <?php if(acymailing_getVar('cmd', 'tmpl') == 'component'){ ?><input type="hidden" name="tmpl" value="component" /><?php } ?> <input type="hidden" name="key" value="<?php echo $this->subscriber->key; ?>" /> <p class="acymodifybutton"> <input class="button btn btn-primary" type="submit" onclick="document.adminForm.task.value='savechanges';return checkChangeForm();" value="<?php echo empty($this->subscriber->subid) ? $this->escape(acymailing_translation('SUBSCRIBE')) : $this->escape(acymailing_translation('SAVE_CHANGES'))?>"/> </p> </form> <?php if(!empty($this->finaltext)){ echo '<span class="acymailing_finaltext">'.$this->finaltext.'</span>'; } ?> </div> PK f�!]��� � tmpl/modify.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="User : subscribe/modify your subscription"> <message>This menu item enables your visitors or logged-in users to subscribe/modify their subscription.</message> </layout> <state> <name>User : subscribe/modify your subscription</name> <params addpath="/components/com_acymailing/params"> <param name="lists" type="lists" default="All" label="VISIBLE_LISTS" description="The following selected lists will be displayed on your subscribe form." /> <param name="listschecked" type="lists" default="All" label="LISTS_CHECKED_DEFAULT" description="The selected lists will be checked by default on your form." /> <param name="hiddenlists" type="lists" default="None" label="AUTO_SUBSCRIBE_TO" description="The user will be automatically subscribed to the selected lists when registering with the form." /> <param name="customfields" type="customfields" default="Default" label="DISP_FIELDS" description="The following selected fields will be displayed on your subscribe form." /> <param name="@spacer" type="spacer" default="" label="" description="" /> <param name="introtext" type="textarea" rows="5" cols="35" default="" label="INTRO_TEXT" description="This text will be displayed before the form inside a span class=acymailing_introtext" /> <param name="finaltext" type="textarea" rows="5" cols="35" default="" label="POST_TEXT" description="This text will be displayed after the form inside a span class=acymailing_finaltext" /> <param name="dropdown" type="radio" default="0" label="DROPDOWN_LISTS" description="Display the visible lists in a dropdown"> <option value="0">JOOMEXT_NO</option> <option value="1">JOOMEXT_YES</option> </param> </params> </state> <fields name="params" addfieldpath="/components/com_acymailing/params"> <fieldset name="basic"> <field name="lists" type="lists" default="All" label="VISIBLE_LISTS" description="The following selected lists will be displayed on your subscribe form." /> <field name="listschecked" type="lists" default="All" label="LISTS_CHECKED_DEFAULT" description="The selected lists will be checked by default on your form." /> <field name="hiddenlists" type="lists" default="None" label="AUTO_SUBSCRIBE_TO" description="The user will be automatically subscribed to the selected lists when registering with the form." /> <field name="customfields" type="customfields" default="Default" label="DISP_FIELDS" description="The following selected fields will be displayed on your subscribe form." /> <field name="@spacer" type="spacer" default="" label="" description="" /> <field name="introtext" type="textarea" rows="5" cols="35" default="" label="INTRO_TEXT" description="This text will be displayed before the form inside a span class=acymailing_introtext" filter="SAFEHTML" /> <field name="finaltext" type="textarea" rows="5" cols="35" default="" label="POST_TEXT" description="This text will be displayed after the form inside a span class=acymailing_finaltext" filter="SAFEHTML" /> <field name="dropdown" type="radio" default="0" label="DROPDOWN_LISTS" description="Display the visible lists in a dropdown"> <option value="0">JOOMEXT_NO</option> <option value="1">JOOMEXT_YES</option> </field> </fieldset> </fields> </metadata> PK f�!]�#o, , tmpl/index.htmlnu &1i� <html><body bgcolor="#FFFFFF"></body></html>PK f�!]��<� tmpl/confirm.phpnu &1i� <?php /** * @package AcyMailing for Joomla! * @version 5.9.6 * @author acyba.com * @copyright (C) 2009-2018 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?> PK f�!]����X X tmpl/confirm.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout hidden="true" /> </metadata> PK f�!]� � tmpl/unsub.phpnu &1i� <?php /** * @package AcyMailing for Joomla! * @version 5.9.6 * @author acyba.com * @copyright (C) 2009-2018 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><div id="unsubpage"> <?php echo $this->intro; ?> <form action="<?php echo acymailing_frontendLink('user', false, acymailing_isNoTemplate(), true); ?>" method="post" name="adminForm" id="adminForm"> <?php if($this->config->get('unsub_dispoptions', 1)){ ?> <div class="unsuboptions"> <?php if(!empty($this->mailid)){ ?> <div id="unsublist_div" class="unsubdiv"> <label for="unsublist"><input type="checkbox" value="1" name="unsublist" id="unsublist" disabled="disabled" checked="checked"/> <?php echo str_replace(array_keys($this->replace), $this->replace, acymailing_translation('UNSUB_CURRENT')); ?></label> </div> <?php } ?> <div id="unsuball_div" class="unsubdiv"> <label for="unsuball"><input type="checkbox" value="1" name="unsuball" id="unsuball" <?php if(empty($this->mailid)) echo 'checked="checked"'; ?> /> <?php echo str_replace(array_keys($this->replace), $this->replace, acymailing_translation('UNSUB_ALL')); ?></label> <div id="unsubfull_div" class="unsubdiv"> <label for="refuse"><input type="checkbox" value="1" name="refuse" id="refuse"/> <?php echo str_replace(array_keys($this->replace), $this->replace, acymailing_translation('UNSUB_FULL')); ?></label> </div> </div> <?php if(!empty($this->otherSubscriptions) && $this->config->get('unsub_dispothersubs', 0)){ ?> <div id="unsub_list_div" class="unsubdiv"> <?php echo acymailing_translation('ACY_OTHERSUBSCRIPTIONS'); $i = 0; foreach($this->otherSubscriptions as $oneSubscription){ echo '<div><label for="unsubotherlists'.$i.'"><input type="checkbox" value="1" name="unsubotherlists[]" id="unsubotherlists'.$i.'" class="unsubotherlistscheckbox"/> '.$oneSubscription->name.'</label>'; echo '<input type="hidden" value="'.$oneSubscription->listid.'" name="unsubotherlistsid[]" id="unsubotherlistsid'.$i.'"/></div>'; $i++; } ?> </div> <?php } ?> </div> <?php }else{ echo '<input type="hidden" value="1" name="unsuball" />'; } if($this->config->get('unsub_survey', 1)){ ?> <div class="unsubsurvey"> <div class="unsubsurveytext"><?php echo str_replace(array_keys($this->replace), $this->replace, acymailing_translation('UNSUB_SURVEY')); ?></div> <?php $reasons = unserialize($this->config->get('unsub_reasons')); foreach($reasons as $i => $oneReason){ if(preg_match('#^[A-Z_]*$#', $oneReason)){ $trans = acymailing_translation($oneReason); }else{ $trans = $oneReason; } echo '<div>'; echo '<label for="reason'.$i.'"><input type="checkbox" value="'.$oneReason.'" name="survey[]" id="reason'.$i.'" /> '.$trans.'</label>'; echo '</div>'; } ?> <div id="otherreasons"> <label for="other"><?php echo acymailing_translation('UNSUB_SURVEY_OTHER'); ?></label><br/> <textarea name="survey[]" id="other" style="width:300px;height:70px"></textarea> </div> </div> <?php } ?> <input type="hidden" name="subid" value="<?php echo $this->subscriber->subid; ?>"/> <input type="hidden" name="key" value="<?php echo $this->subscriber->key; ?>"/> <input type="hidden" name="mailid" value="<?php echo $this->mailid; ?>"/> <input type="hidden" name="Itemid" value="<?php echo acymailing_getVar('int', 'Itemid'); ?>"/> <?php acymailing_formOptions(); ?> <div id="unsubbutton_div" class="unsubdiv"> <input class="acymailing_button_grey" onclick="acymailing.submitbutton('saveunsub');" type="submit" value="<?php echo acymailing_translation('UNSUBSCRIBE', true) ?>"/> </div> </form> </div> PK f�!]����X X tmpl/unsub.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout hidden="true" /> </metadata> PK f�!]���~� � tmpl/subs_default.phpnu &1i� <?php /** * @package AcyMailing for Joomla! * @version 5.9.6 * @author acyba.com * @copyright (C) 2009-2018 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><div id="acyusersubscription"> <?php $k = 0; foreach($this->subscription as $row){ if(empty($row->published) OR !$row->visible) continue; $listClass = 'acy_list_status_' . str_replace('-','m',(int) @$row->status); ?> <div class="<?php echo "row$k $listClass"; ?> acy_onelist"> <div class="acystatus"> <span><?php echo $this->status->display("data[listsub][".$row->listid."][status]",@$row->status); ?></span> </div> <div class="acyListInfo"> <div class="list_name"><?php echo $row->name ?></div> <div class="list_description"><?php echo $row->description ?></div> </div> </div> <?php $k = 1 - $k; } ?> </div> PK f�!]��:, view.html.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_users * * @copyright (C) 2007 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * User view class. * * @since 1.5 */ class UsersViewUser extends JViewLegacy { protected $form; protected $item; protected $grouplist; protected $groups; protected $state; /** * Display the view * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void * * @since 1.5 */ public function display($tpl = null) { $this->form = $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State'); $this->tfaform = $this->get('Twofactorform'); $this->otpConfig = $this->get('otpConfig'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new Exception(implode("\n", $errors), 500); } // Prevent user from modifying own group(s) $user = JFactory::getUser(); if ((int) $user->id != (int) $this->item->id || $user->authorise('core.admin')) { $this->grouplist = $this->get('Groups'); $this->groups = $this->get('AssignedGroups'); } $this->form->setValue('password', null); $this->form->setValue('password2', null); parent::display($tpl); $this->addToolbar(); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { JFactory::getApplication()->input->set('hidemainmenu', true); $user = JFactory::getUser(); $canDo = JHelperContent::getActions('com_users'); $isNew = ($this->item->id == 0); $isProfile = $this->item->id == $user->id; JToolbarHelper::title( JText::_( $isNew ? 'COM_USERS_VIEW_NEW_USER_TITLE' : ($isProfile ? 'COM_USERS_VIEW_EDIT_PROFILE_TITLE' : 'COM_USERS_VIEW_EDIT_USER_TITLE') ), 'user ' . ($isNew ? 'user-add' : ($isProfile ? 'user-profile' : 'user-edit')) ); if ($canDo->get('core.edit') || $canDo->get('core.create')) { JToolbarHelper::apply('user.apply'); JToolbarHelper::save('user.save'); } if ($canDo->get('core.create') && $canDo->get('core.manage')) { JToolbarHelper::save2new('user.save2new'); } if (empty($this->item->id)) { JToolbarHelper::cancel('user.cancel'); } else { JToolbarHelper::cancel('user.cancel', 'JTOOLBAR_CLOSE'); } JToolbarHelper::divider(); JToolbarHelper::help('JHELP_USERS_USER_MANAGER_EDIT'); } } PK f�!]�#o, , index.htmlnu &1i� <html><body bgcolor="#FFFFFF"></body></html>PK n"]h� � tmpl/edit.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_USERS_USER_VIEW_EDIT_TITLE"> <message> <![CDATA[COM_USERS_USER_VIEW_EDIT_DESC]]> </message> </layout> </metadata> PK n"]��<�n n tmpl/edit.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_users * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; // Include the component HTML helpers. JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); JHtml::_('behavior.formvalidator'); JHtml::_('formbehavior.chosen', 'select'); JFactory::getDocument()->addScriptDeclaration(" Joomla.submitbutton = function(task) { if (task == 'user.cancel' || document.formvalidator.isValid(document.getElementById('user-form'))) { Joomla.submitform(task, document.getElementById('user-form')); } }; Joomla.twoFactorMethodChange = function(e) { var selectedPane = 'com_users_twofactor_' + jQuery('#jform_twofactor_method').val(); jQuery.each(jQuery('#com_users_twofactor_forms_container>div'), function(i, el) { if (el.id != selectedPane) { jQuery('#' + el.id).hide(0); } else { jQuery('#' + el.id).show(0); } }); }; "); // Get the form fieldsets. $fieldsets = $this->form->getFieldsets(); ?> <form action="<?php echo JRoute::_('index.php?option=com_users&layout=edit&id=' . (int) $this->item->id); ?>" method="post" name="adminForm" id="user-form" class="form-validate form-horizontal" enctype="multipart/form-data"> <?php echo JLayoutHelper::render('joomla.edit.item_title', $this); ?> <fieldset> <?php echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'details')); ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'details', JText::_('COM_USERS_USER_ACCOUNT_DETAILS')); ?> <?php foreach ($this->form->getFieldset('user_details') as $field) : ?> <div class="control-group"> <div class="control-label"> <?php echo $field->label; ?> </div> <div class="controls"> <?php if ($field->fieldname == 'password') : ?> <?php // Disables autocomplete ?> <input type="password" style="display:none"> <?php endif; ?> <?php echo $field->input; ?> </div> </div> <?php endforeach; ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php if ($this->grouplist) : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'groups', JText::_('COM_USERS_ASSIGNED_GROUPS')); ?> <?php echo $this->loadTemplate('groups'); ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php $this->ignore_fieldsets = array('user_details'); echo JLayoutHelper::render('joomla.edit.params', $this); ?> <?php if (!empty($this->tfaform) && $this->item->id) : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'twofactorauth', JText::_('COM_USERS_USER_TWO_FACTOR_AUTH')); ?> <div class="control-group"> <div class="control-label"> <label id="jform_twofactor_method-lbl" for="jform_twofactor_method" class="hasTooltip" title="<?php echo '<strong>' . JText::_('COM_USERS_USER_FIELD_TWOFACTOR_LABEL') . '</strong><br />' . JText::_('COM_USERS_USER_FIELD_TWOFACTOR_DESC'); ?>"> <?php echo JText::_('COM_USERS_USER_FIELD_TWOFACTOR_LABEL'); ?> </label> </div> <div class="controls"> <?php echo JHtml::_('select.genericlist', Usershelper::getTwoFactorMethods(), 'jform[twofactor][method]', array('onchange' => 'Joomla.twoFactorMethodChange()'), 'value', 'text', $this->otpConfig->method, 'jform_twofactor_method', false); ?> </div> </div> <div id="com_users_twofactor_forms_container"> <?php foreach ($this->tfaform as $form) : ?> <?php $style = $form['method'] == $this->otpConfig->method ? 'display: block' : 'display: none'; ?> <div id="com_users_twofactor_<?php echo $form['method'] ?>" style="<?php echo $style; ?>"> <?php echo $form['form'] ?> </div> <?php endforeach; ?> </div> <fieldset> <legend> <?php echo JText::_('COM_USERS_USER_OTEPS'); ?> </legend> <div class="alert alert-info"> <?php echo JText::_('COM_USERS_USER_OTEPS_DESC'); ?> </div> <?php if (empty($this->otpConfig->otep)) : ?> <div class="alert alert-warning"> <?php echo JText::_('COM_USERS_USER_OTEPS_WAIT_DESC'); ?> </div> <?php else : ?> <?php foreach ($this->otpConfig->otep as $otep) : ?> <span class="span3"> <?php echo substr($otep, 0, 4); ?>-<?php echo substr($otep, 4, 4); ?>-<?php echo substr($otep, 8, 4); ?>-<?php echo substr($otep, 12, 4); ?> </span> <?php endforeach; ?> <div class="clearfix"></div> <?php endif; ?> </fieldset> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php echo JHtml::_('bootstrap.endTabSet'); ?> </fieldset> <input type="hidden" name="task" value="" /> <?php echo JHtml::_('form.token'); ?> </form> PK n"]�JU� � tmpl/edit_groups.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_users * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; // Include the component HTML helpers. JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); ?> <?php echo JHtml::_('access.usergroups', 'jform[groups]', $this->groups, true); ?> PK ,f"]m�_�) ) joomla/joomla.phpnu &1i� <?php /** * @package Joomla.Plugin * @subpackage User.joomla * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Uri\Uri; use Joomla\CMS\User\User; use Joomla\CMS\User\UserHelper; use Joomla\Registry\Registry; /** * Joomla User plugin * * @since 1.5 */ class PlgUserJoomla extends JPlugin { /** * Application object * * @var JApplicationCms * @since 3.2 */ protected $app; /** * Database object * * @var JDatabaseDriver * @since 3.2 */ protected $db; /** * Set as required the passwords fields when mail to user is set to No * * @param JForm $form The form to be altered. * @param mixed $data The associated data for the form. * * @return boolean * * @since 3.9.2 */ public function onContentPrepareForm($form, $data) { // Check we are manipulating a valid user form before modifying it. $name = $form->getName(); if ($name === 'com_users.user') { // In case there is a validation error (like duplicated user), $data is an empty array on save. // After returning from error, $data is an array but populated if (!$data) { $data = JFactory::getApplication()->input->get('jform', array(), 'array'); } if (is_array($data)) { $data = (object) $data; } // Passwords fields are required when mail to user is set to No if (empty($data->id) && !$this->params->get('mail_to_user', 1)) { $form->setFieldAttribute('password', 'required', 'true'); $form->setFieldAttribute('password2', 'required', 'true'); } } return true; } /** * Remove all sessions for the user name * * Method is called after user data is deleted from the database * * @param array $user Holds the user data * @param boolean $success True if user was successfully stored in the database * @param string $msg Message * * @return boolean * * @since 1.6 */ public function onUserAfterDelete($user, $success, $msg) { if (!$success) { return false; } $query = $this->db->getQuery(true) ->delete($this->db->quoteName('#__session')) ->where($this->db->quoteName('userid') . ' = ' . (int) $user['id']); try { $this->db->setQuery($query)->execute(); } catch (JDatabaseExceptionExecuting $e) { return false; } $query = $this->db->getQuery(true) ->delete($this->db->quoteName('#__messages')) ->where($this->db->quoteName('user_id_from') . ' = ' . (int) $user['id']); try { $this->db->setQuery($query)->execute(); } catch (JDatabaseExceptionExecuting $e) { return false; } return true; } /** * Utility method to act on a user after it has been saved. * * This method sends a registration email to new users created in the backend. * * @param array $user Holds the new user data. * @param boolean $isnew True if a new user is stored. * @param boolean $success True if user was successfully stored in the database. * @param string $msg Message. * * @return void * * @since 1.6 */ public function onUserAfterSave($user, $isnew, $success, $msg) { $mail_to_user = $this->params->get('mail_to_user', 1); if (!$isnew || !$mail_to_user) { return; } // TODO: Suck in the frontend registration emails here as well. Job for a rainy day. // The method check here ensures that if running as a CLI Application we don't get any errors if (method_exists($this->app, 'isClient') && !$this->app->isClient('administrator')) { return; } // Check if we have a sensible from email address, if not bail out as mail would not be sent anyway if (strpos($this->app->get('mailfrom'), '@') === false) { $this->app->enqueueMessage(Text::_('JERROR_SENDING_EMAIL'), 'warning'); return; } $lang = Factory::getLanguage(); $defaultLocale = $lang->getTag(); /** * Look for user language. Priority: * 1. User frontend language * 2. User backend language */ $userParams = new Registry($user['params']); $userLocale = $userParams->get('language', $userParams->get('admin_language', $defaultLocale)); if ($userLocale !== $defaultLocale) { $lang->setLanguage($userLocale); } $lang->load('plg_user_joomla', JPATH_ADMINISTRATOR); // Compute the mail subject. $emailSubject = Text::sprintf( 'PLG_USER_JOOMLA_NEW_USER_EMAIL_SUBJECT', $user['name'], $this->app->get('sitename') ); // Compute the mail body. $emailBody = Text::sprintf( 'PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY', $user['name'], $this->app->get('sitename'), Uri::root(), $user['username'], $user['password_clear'] ); $res = Factory::getMailer()->sendMail( $this->app->get('mailfrom'), $this->app->get('fromname'), $user['email'], $emailSubject, $emailBody ); if ($res === false) { $this->app->enqueueMessage(Text::_('JERROR_SENDING_EMAIL'), 'warning'); } // Set application language back to default if we changed it if ($userLocale !== $defaultLocale) { $lang->setLanguage($defaultLocale); } } /** * This method should handle any login logic and report back to the subject * * @param array $user Holds the user data * @param array $options Array holding options (remember, autoregister, group) * * @return boolean True on success * * @since 1.5 */ public function onUserLogin($user, $options = array()) { $instance = $this->_getUser($user, $options); // If _getUser returned an error, then pass it back. if ($instance instanceof Exception) { return false; } // If the user is blocked, redirect with an error if ($instance->block == 1) { $this->app->enqueueMessage(Text::_('JERROR_NOLOGIN_BLOCKED'), 'warning'); return false; } // Authorise the user based on the group information if (!isset($options['group'])) { $options['group'] = 'USERS'; } // Check the user can login. $result = $instance->authorise($options['action']); if (!$result) { $this->app->enqueueMessage(Text::_('JERROR_LOGIN_DENIED'), 'warning'); return false; } // Mark the user as logged in $instance->guest = 0; $session = Factory::getSession(); // Grab the current session ID $oldSessionId = $session->getId(); // Fork the session $session->fork(); $session->set('user', $instance); // Ensure the new session's metadata is written to the database $this->app->checkSession(); // Purge the old session $query = $this->db->getQuery(true) ->delete('#__session') ->where($this->db->quoteName('session_id') . ' = ' . $this->db->quoteBinary($oldSessionId)); try { $this->db->setQuery($query)->execute(); } catch (RuntimeException $e) { // The old session is already invalidated, don't let this block logging in } // Hit the user last visit field $instance->setLastVisit(); // Add "user state" cookie used for reverse caching proxies like Varnish, Nginx etc. if ($this->app->isClient('site')) { $this->app->input->cookie->set( 'joomla_user_state', 'logged_in', 0, $this->app->get('cookie_path', '/'), $this->app->get('cookie_domain', ''), $this->app->isHttpsForced(), true ); } return true; } /** * This method should handle any logout logic and report back to the subject * * @param array $user Holds the user data. * @param array $options Array holding options (client, ...). * * @return boolean True on success * * @since 1.5 */ public function onUserLogout($user, $options = array()) { $my = Factory::getUser(); $session = Factory::getSession(); // Make sure we're a valid user first if ($user['id'] == 0 && !$my->get('tmp_user')) { return true; } $sharedSessions = $this->app->get('shared_session', '0'); // Check to see if we're deleting the current session if ($my->id == $user['id'] && ($sharedSessions || (!$sharedSessions && $options['clientid'] == $this->app->getClientId()))) { // Hit the user last visit field $my->setLastVisit(); // Destroy the php session for this user $session->destroy(); } // Enable / Disable Forcing logout all users with same userid $forceLogout = $this->params->get('forceLogout', 1); if ($forceLogout) { $clientId = (!$sharedSessions) ? (int) $options['clientid'] : null; UserHelper::destroyUserSessions($user['id'], false, $clientId); } // Delete "user state" cookie used for reverse caching proxies like Varnish, Nginx etc. if ($this->app->isClient('site')) { $this->app->input->cookie->set('joomla_user_state', '', 1, $this->app->get('cookie_path', '/'), $this->app->get('cookie_domain', '')); } return true; } /** * This method will return a user object * * If options['autoregister'] is true, if the user doesn't exist yet they will be created * * @param array $user Holds the user data. * @param array $options Array holding options (remember, autoregister, group). * * @return User * * @since 1.5 */ protected function _getUser($user, $options = array()) { $instance = User::getInstance(); $id = (int) UserHelper::getUserId($user['username']); if ($id) { $instance->load($id); return $instance; } // TODO : move this out of the plugin $params = ComponentHelper::getParams('com_users'); // Read the default user group option from com_users $defaultUserGroup = $params->get('new_usertype', $params->get('guest_usergroup', 1)); $instance->id = 0; $instance->name = $user['fullname']; $instance->username = $user['username']; $instance->password_clear = $user['password_clear']; // Result should contain an email (check). $instance->email = $user['email']; $instance->groups = array($defaultUserGroup); // If autoregister is set let's register the user $autoregister = isset($options['autoregister']) ? $options['autoregister'] : $this->params->get('autoregister', 1); if ($autoregister) { if (!$instance->save()) { JLog::add('Error in autoregistration for user ' . $user['username'] . '.', JLog::WARNING, 'error'); } } else { // No existing user and autoregister off, this is a temporary user. $instance->set('tmp_user', true); } return $instance; } } PK ,f"]��� joomla/joomla.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <extension version="3.1" type="plugin" group="user" method="upgrade"> <name>plg_user_joomla</name> <author>Joomla! Project</author> <creationDate>December 2006</creationDate> <copyright>(C) 2006 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.0.0</version> <description>PLG_USER_JOOMLA_XML_DESCRIPTION</description> <files> <filename plugin="joomla">joomla.php</filename> </files> <languages> <language tag="en-GB">en-GB.plg_user_joomla.ini</language> <language tag="en-GB">en-GB.plg_user_joomla.sys.ini</language> </languages> <config> <fields name="params"> <fieldset name="basic"> <field name="autoregister" type="radio" label="PLG_USER_JOOMLA_FIELD_AUTOREGISTER_LABEL" description="PLG_USER_JOOMLA_FIELD_AUTOREGISTER_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="mail_to_user" type="radio" label="PLG_USER_JOOMLA_FIELD_MAILTOUSER_LABEL" description="PLG_USER_JOOMLA_FIELD_MAILTOUSER_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="forceLogout" type="radio" label="PLG_USER_JOOMLA_FIELD_FORCELOGOUT_LABEL" description="PLG_USER_JOOMLA_FIELD_FORCELOGOUT_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> </fieldset> </fields> </config> </extension> PK ,f"]�uH profile/profiles/profile.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <form> <fields name="profile"> <fieldset name="profile" label="PLG_USER_PROFILE_SLIDER_LABEL" > <field name="address1" type="text" label="PLG_USER_PROFILE_FIELD_ADDRESS1_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS1_DESC" id="address1" filter="string" size="30" /> <field name="address2" type="text" label="PLG_USER_PROFILE_FIELD_ADDRESS2_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS2_DESC" id="address2" filter="string" size="30" /> <field name="city" type="text" label="PLG_USER_PROFILE_FIELD_CITY_LABEL" description="PLG_USER_PROFILE_FIELD_CITY_DESC" id="city" filter="string" size="30" /> <field name="region" type="text" label="PLG_USER_PROFILE_FIELD_REGION_LABEL" description="PLG_USER_PROFILE_FIELD_REGION_DESC" id="region" filter="string" size="30" /> <field name="country" type="text" label="PLG_USER_PROFILE_FIELD_COUNTRY_LABEL" description="PLG_USER_PROFILE_FIELD_COUNTRY_DESC" id="country" filter="string" size="30" /> <field name="postal_code" type="text" label="PLG_USER_PROFILE_FIELD_POSTAL_CODE_LABEL" description="PLG_USER_PROFILE_FIELD_POSTAL_CODE_DESC" id="postal_code" filter="string" size="30" /> <field name="phone" type="tel" label="PLG_USER_PROFILE_FIELD_PHONE_LABEL" description="PLG_USER_PROFILE_FIELD_PHONE_DESC" id="phone" filter="string" size="30" /> <field name="website" type="url" label="PLG_USER_PROFILE_FIELD_WEB_SITE_LABEL" description="PLG_USER_PROFILE_FIELD_WEB_SITE_DESC" id="website" filter="url" size="30" validate="url" /> <field name="favoritebook" type="text" label="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_LABEL" description="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_DESC" filter="string" size="30" /> <field name="aboutme" type="textarea" label="PLG_USER_PROFILE_FIELD_ABOUT_ME_LABEL" description="PLG_USER_PROFILE_FIELD_ABOUT_ME_DESC" cols="30" rows="5" filter="safehtml" /> <field name="dob" type="dob" label="PLG_USER_PROFILE_FIELD_DOB_LABEL" description="PLG_USER_PROFILE_FIELD_DOB_DESC" info="PLG_USER_PROFILE_SPACER_DOB" translateformat="true" showtime="false" filter="server_utc" /> <field name="tos" type="tos" label="PLG_USER_PROFILE_FIELD_TOS_LABEL" description="PLG_USER_PROFILE_FIELD_TOS_DESC" default="0" filter="integer" > <option value="1">PLG_USER_PROFILE_OPTION_AGREE</option> <option value="0">PLG_USER_PROFILE_OPTION_DO_NOT_AGREE</option> </field> </fieldset> </fields> </form> PK ,f"]*� profile/field/tos.phpnu &1i� <?php /** * @package Joomla.Plugin * @subpackage User.profile * * @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('JPATH_PLATFORM') or die; JFormHelper::loadFieldClass('radio'); /** * Provides input for TOS * * @since 2.5.5 */ class JFormFieldTos extends JFormFieldRadio { /** * The form field type. * * @var string * @since 2.5.5 */ protected $type = 'Tos'; /** * Method to get the field label markup. * * @return string The field label markup. * * @since 2.5.5 */ protected function getLabel() { $label = ''; if ($this->hidden) { return $label; } // Get the label text from the XML element, defaulting to the element name. $text = $this->element['label'] ? (string) $this->element['label'] : (string) $this->element['name']; $text = $this->translateLabel ? JText::_($text) : $text; // Set required to true as this field is not displayed at all if not required. $this->required = true; // Build the class for the label. $class = !empty($this->description) ? 'hasPopover' : ''; $class = $class . ' required'; $class = !empty($this->labelClass) ? $class . ' ' . $this->labelClass : $class; // Add the opening label tag and main attributes attributes. $label .= '<label id="' . $this->id . '-lbl" for="' . $this->id . '" class="' . $class . '"'; // If a description is specified, use it to build a tooltip. if (!empty($this->description)) { $label .= ' title="' . htmlspecialchars(trim($text, ':'), ENT_COMPAT, 'UTF-8') . '"'; $label .= ' data-content="' . htmlspecialchars( $this->translateDescription ? JText::_($this->description) : $this->description, ENT_COMPAT, 'UTF-8' ) . '"'; if (JFactory::getLanguage()->isRtl()) { $label .= ' data-placement="left"'; } } $tosArticle = $this->element['article'] > 0 ? (int) $this->element['article'] : 0; if ($tosArticle) { JHtml::_('behavior.modal'); JLoader::register('ContentHelperRoute', JPATH_BASE . '/components/com_content/helpers/route.php'); $attribs = array(); $attribs['class'] = 'modal'; $attribs['rel'] = '{handler: \'iframe\', size: {x:800, y:500}}'; $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('id, alias, catid, language') ->from('#__content') ->where('id = ' . $tosArticle); $db->setQuery($query); $article = $db->loadObject(); if (JLanguageAssociations::isEnabled()) { $tosAssociated = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $tosArticle); } $currentLang = JFactory::getLanguage()->getTag(); if (isset($tosAssociated) && $currentLang !== $article->language && array_key_exists($currentLang, $tosAssociated)) { $url = ContentHelperRoute::getArticleRoute( $tosAssociated[$currentLang]->id, $tosAssociated[$currentLang]->catid, $tosAssociated[$currentLang]->language ); $link = JHtml::_('link', JRoute::_($url . '&tmpl=component'), $text, $attribs); } else { $slug = $article->alias ? ($article->id . ':' . $article->alias) : $article->id; $url = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language); $link = JHtml::_('link', JRoute::_($url . '&tmpl=component'), $text, $attribs); } } else { $link = $text; } // Add the label text and closing tag. $label .= '>' . $link . '<span class="star"> *</span></label>'; return $label; } } PK ,f"]!�*�� � profile/field/dob.phpnu &1i� <?php /** * @package Joomla.Plugin * @subpackage User.profile * * @copyright (C) 2014 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('JPATH_PLATFORM') or die; JFormHelper::loadFieldClass('calendar'); /** * Provides input for "Date of Birth" field * * @package Joomla.Plugin * @subpackage User.profile * @since 3.3.7 */ class JFormFieldDob extends JFormFieldCalendar { /** * The form field type. * * @var string * @since 3.3.7 */ protected $type = 'Dob'; /** * Method to get the field label markup. * * @return string The field label markup. * * @since 3.3.7 */ protected function getLabel() { $label = parent::getLabel(); // Get the info text from the XML element, defaulting to empty. $text = $this->element['info'] ? (string) $this->element['info'] : ''; $text = $this->translateLabel ? JText::_($text) : $text; if ($text) { $app = JFactory::getApplication(); $layout = new JLayoutFile('plugins.user.profile.fields.dob'); $view = $app->input->getString('view', ''); // Only display the tip when editing profile if ($view === 'registration' || $view === 'profile' || $app->isClient('administrator')) { $layout = new JLayoutFile('plugins.user.profile.fields.dob'); $info = $layout->render(array('text' => $text)); $label = $info . $label; } } return $label; } } PK ,f"]̨h)x'