Sallittujen lista tarkastaa käyttäjänimen. Ei sähköpostiosoitetta. Ei fiksua.
Koodi: Valitse kaikki
<?php
#BEGIN_LICENSE
#-------------------------------------------------------------------------
# Module: SelfRegistration (c) 2008 by Robert Campbell
# (calguy1000@cmsmadesimple.org)
# An addon module for CMS Made Simple to allow users to register themselves
# with a website.
#
# Version: 1.1.5
#
#-------------------------------------------------------------------------
# CMS - CMS Made Simple is (c) 2005 by Ted Kulp (wishy@cmsmadesimple.org)
# This project's homepage is: http://www.cmsmadesimple.org
#
#-------------------------------------------------------------------------
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# However, as a special exception to the GPL, this software is distributed
# as an addon module to CMS Made Simple. You may not use this software
# in any Non GPL version of CMS Made simple, or in any version of CMS
# Made simple that does not indicate clearly and obviously in its admin
# section that the site was built with CMS Made simple.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Or read it online: http://www.gnu.org/licenses/licenses.html#GPL
#
#-------------------------------------------------------------------------
#END_LICENSE
if( !isset($gCms) ) exit;
$feusers =& $this->GetModuleInstance('FrontEndUsers');
if( !$feusers )
{
// this is ugly for the user to see
// but at least the admin will be able to figure it out
// this shouldn't happen once the user has seen the form.
$this->_DisplayErrorPage( $id, $params, $returnid,
$this->Lang('error_nofeusersmodule'));
return;
}
$cmsmailer =& $this->GetModuleInstance('CMSMailer');
if( !$cmsmailer )
{
// this is ugly for the user to see
// but at least the admin will be able to figure it out
$this->_DisplayErrorPage( $id, $params, $returnid,
$this->Lang('error_nofeusersmodule'));
return;
}
// check for required parameters
if( !isset( $params['group_id'] ) )
{
$this->_DisplayErrorPage( $id, $params, $returnid,
$this->Lang('error_insufficientparams'));
return;
}
// attempt to register to an absolutely verboten group.
$tmp = $this->GetPreference('noregister_groups');
if( !empty($tmp) )
{
$tmp = explode(',',$tmp);
if( in_array($params['group_id'],$tmp) )
{
$this->_DisplayErrorPage( $id, $params, $returnid,
$this->Lang('error_noregister'));
return;
}
}
// Get property definitions
$propdefnsbyname = $feusers->GetPropertyDefns();
// Get group property relations
$properties = array();
{
$tmp = $feusers->GetGroupPropertyRelations( $params['group_id'] );
for( $i = 0; $i < count($tmp); $i++ )
{
$properties[$tmp[$i]['name']] = $tmp[$i];
}
}
//
// Check to ensure all required fields have some content
// and validate email fields
//
$reg_additionalgroups = $this->GetPreference('reg_additionalgroups',0);
$allow_overwrite = (isset($params['allowoverwrite']))?$params['allowoverwrite']:0;
$matchfields_str = $this->GetPreference('additionalgroups_matchfields','');
$matchfields = explode('::',$matchfields_str);
foreach( $properties as $propname => $prop )
{
$defn = $propdefnsbyname[$propname];
$proptype = $defn['type'];
$required = ($properties[$propname]['required'] == 2);
$force_unique = $defn['force_unique'];
switch( $proptype )
{
case 2: /* email */
if( $required )
{
if( !isset($params['input_'.$propname]) || $params['input_'.$propname] == '' )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_requiredfield',$defn['prompt']);
return $this->myRedirect( $id, 'default', $returnid, $params );
}
$result = $feusers->IsValidEmailAddress( $params['input_'.$propname]);
if( $result[0] == false )
{
$params['error'] = 1;
$params['message'] = $result[1];
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
break;
case 5: /* multiselect */
if( $required )
{
if( !isset($params['input_'.$propname]) || $params['input_'.$propname] == '' )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_requiredfield',$defn['prompt']);
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
if( isset($params['input_'.$propname]) )
{
$params['input_'.$propname] = implode(',',$params['input_'.$propname]);
}
break;
case 8: /* date */
if( $required )
{
if( !isset($params['input_'.$propname.'Month']) )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_requiredfield',$defn['prompt']);
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
if( isset($params['input_'.$propname.'Month']) )
{
$params['input_'.$propname] =
mktime(0,0,0,
$params['input_'.$propname.'Month'],
$params['input_'.$propname.'Day'],
$params['input_'.$propname.'Year']);
unset($params['input_'.$propname.'Month']);
unset($params['input_'.$propname.'Day']);
unset($params['input_'.$propname.'Year']);
}
break;
default:
if( $required )
{
if( !isset($params['input_'.$propname]) || $params['input_'.$propname] == '' )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_requiredfield',$defn['prompt']);
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
break;
}
if( $force_unique && (!$allow_overwrite || !in_array($propname,$matchfields)) )
{
$value = $params['input_'.$propname];
if( $value != '' && !$feusers->IsUserPropertyValueUnique( -1, $propname, $value ) )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_uniquefield',$defn['prompt']);
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
}
// get the username and password
$username = '';
if( isset( $params['input_username'] ) )
{
$username = trim($params['input_username']);
}
$password = '';
if( isset( $params['input_password'] ) )
{
$password = trim($params['input_password']);
}
$repeatpassword = '';
if( isset( $params['input_repeatpassword'] ) )
{
$repeatpassword = trim($params['input_repeatpassword']);
}
// check if the username is valid
if( $username == '' )
{
$params['error'] = 1;
if ($feusers->GetPreference('username_is_email'))
{
$params['message'] = $this->Lang('error_emptyemail');
}
else
{
$params['message'] = $this->Lang('error_emptyusername');
}
return $this->myRedirect( $id, 'default', $returnid, $params );
}
// ********* MOVED - SIIRRETTY IN FINNISH ************
// get an email field
// so that we can do some emailing.
$email_field = '';
if ($feusers->GetPreference('username_is_email'))
{
// email field is easy!
$email_field = 'input_username';
}
else
{
// find an email field... something that's name has email in it
// or is of type 2
foreach( $params as $key => $val )
{
if( preg_match( '/^input_/', $key ) )
{
$proptype = '';
$propname = substr($key,strlen('input_'));
if( isset($propdefnsbyname[$propname]) && $propdefnsbyname[$propname]['type'] == 2 )
{
$email_field = 'input_'.$propname;
}
}
}
}
if( $email_field == '' )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_noemailaddress');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
$email = $params[$email_field];
// check the repeated email field.
if( $this->GetPreference('selfreg_force_email_twice') )
{
if( !isset($params[$email_field.'_again'] ) )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_nosecondemailaddress');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
if( $params[$email_field] != $params[$email_field.'_again'] )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_emaildoesnotmatch');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
// ******** MOVED END - SIIRRETTY LOPPUU **********
//Ok, we have a valid $email, now we check to see
//if we're checking the whitelist (or blacklist) and
//and then if it matches...
if ($this->GetPreference('enable_whitelist', '') != '')
{
$matched = false;
$list = preg_split("/((\r(?!\n))|((?<!\r)\n)|(\r\n))/", $this->GetPreference('whitelist', ''));
if (count($list))
{
foreach ($list as $one_line)
{
$regex = '/^' . str_replace("@", "\@", str_replace("\*", ".*", preg_quote($one_line))) . '$/';
// ****** changed - muutettu *******
//if (preg_match($regex, $username) > 0)
if (preg_match($regex, $email) > 0)
// ****** changed end - muutos loppuu *******
{
$matched = true;
break;
}
}
}
if (
($this->GetPreference('enable_whitelist', '') == 'exclude' && $matched) ||
($this->GetPreference('enable_whitelist', '') == 'include' && !$matched)
)
{
$params['error'] = 1;
$params['message'] = $this->GetPreference('whitelist_trigger_message', 'Whitelist Matched');
return $this->myRedirect($id, 'default', $returnid, $params);
}
}
// check if the passwords match or if they're valid
if( $password != $repeatpassword )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_passwordsdontmatch');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
$minpwlen = $feusers->GetPreference('min_passwordlength');
$maxpwlen = $feusers->GetPreference('max_passwordlength');
if( strlen($password) < $minpwlen || strlen($password) > $maxpwlen )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_invalidpassword',
array($minpwlen,$maxpwlen));
return $this->myRedirect( $id, 'default', $returnid, $params );
}
// check captcha.
$captcha =& $this->GetModuleInstance('Captcha');
if( is_object($captcha) && !isset($params['nocaptcha']) )
{
if (! $captcha->CheckCaptcha($params['input_captcha']))
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_captchamismatch');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
// check if the username is taken.
$overwrite_uid = null;
if( $reg_additionalgroups && $allow_overwrite )
{
// we're allowing registration to additional groups.
// meaning we need to find the existing user info
$query = new feu_user_query(1);
foreach( $matchfields as $field )
{
switch($field)
{
case '*username-password*':
$query->add_and_opt(feu_user_query_opt::MATCH_USERNAME,$username);
$query->add_and_opt(feu_user_query_opt::MATCH_PASSWORD,$password);
break;
default:
$query->add_and_opt_obj(new feu_user_query_opt(feu_user_query_opt::MATCH_PROPERTY,$field,$params['input_'.$field]));
break;
}
}
$query->prepare();
$cnt = $query->get_match_count();
if( $cnt == 1 )
{
// only one match found.
$data = $query->get_data(1);
$overwrite_uid = $data[0]['id'];
}
}
// we just have to make sure the username isn't taken.
if( empty($overwrite_uid) && $feusers->GetUserID($username) )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_usernametaken');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
if( !$feusers->IsValidUsername( $username, ($overwrite_uid < 1) ? true : false ) )
{
$params['error'] = 1;
if ($feusers->GetPreference('username_is_email'))
{
$params['message'] = $this->Lang('error_invalidemail');
}
else
{
$params['message'] = $this->Lang('error_invalidusername');
}
return $this->myRedirect( $id, 'default', $returnid, $params );
}
$uid = $this->GetTempUserID($username);
if( $uid != false )
{
$params['error'] = 1;
$params['message'] = $this->Lang('error_usernametaken');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
// generate a unique code that the user can enter to double confirm
// his login.
$code = $feusers->GenerateRandomPrintableString();
// have to add the record to the database so that we know who this guy is
// when he comes back
$return = $this->CreateTempUser( $params['group_id'], $username, $password, $code, $overwrite_uid );
if( $return[0] == false )
{
$params['error'] = 1;
$params['message'] = $return[1];
return $this->myRedirect( $id, 'default', $returnid, $params );
}
// and add his properties too
$tmpuid = $return[1];
foreach( $properties as $propname => $prop )
{
$proptype = $propdefnsbyname[$propname]['type'];
$required = ($properties[$propname]['required'] == 2);
// check if the value exists (it may be an optional field)
if( !isset($params['input_'.$propname]) ) continue;
$value = $params['input_'.$propname];
if( is_array($value) )
{
}
$return = $this->AddTempUserProperty( $tmpuid, $propname,
$params['input_'.$propname] );
if( $return[0] == false )
{
// now we have an issue to figure out
$this->DeleteTempUser( $tmpuid );
$params['error'] = 1;
$params['message'] = $return[1];
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
//
// okay we're done creating temporary users
//
$redirect_pref = 'redirect_afterregister';
$action = 'post_registeruser';
$parms = array();
$parms['username'] = $username;
$parms['email'] = $email;
$expires = '';
$docreatefeu = 1;
if( $this->GetPreference('allowpaidregistration') )
{
// we're doing paid registration.
// first, get the package info.
$query = 'SELECT * FROM '.cms_db_prefix().'module_selfreg_paidpkgs WHERE gid = ?';
$pkg = $db->GetRow($query,array($params['group_id']));
$expires = selfreg_utils::pkg_subscr_to_expirydate($pkg);
if( $pkg && $pkg['cost'] > 0 )
{
// this package costs money.
$cart = cg_ecomm::get_cart_module();
if( $cart )
{
$redirect_pref = 'redirect_paidpkg';
// now we gotta add an item to the cart.
$item = new cg_ecomm_cartitem('',$tmpuid,1,$this->GetName());
$item->set_type(cg_ecomm_cartitem::TYPE_SERVICE);
$item->set_base_price($pkg['cost']);
$smarty->assign('tmpuid',$tmpuid);
$smarty->assign('username',$username);
$smarty->assign('pkg',$pkg);
$sku = 'sr-'.sprintf('%03d-%05d',$pkg['id'],$tmpuid);
$smarty->assign('sku',$sku);
$tmp = '{sitename} membership {$tmpuid}';
$tpl = $this->GetPreference('cartitem_summary_tpl');
if( !$tpl ) $tpl = $tmp;
$item->set_sku($sku);
$item->set_summary($this->ProcessTemplateFromData($tpl));
$item->set_item_total($pkg['cost']);
$subscription = new cg_ecomm_productinfo_subscription();
$subscription->set_payperiod(cg_ecomm_productinfo_subscription::SUBSCR_PERIOD_YEARLY);
$subscription->set_deliveryperiod(cg_ecomm_productinfo_subscription::SUBSCR_PERIOD_YEARLY);
$subscription->set_expiry(-1);
$item->set_subscription($subscription);
$res = $cart->AddCartItem($item);
$docreatefeu = 0;
if( !$res )
{
// couldn't add this item to the cart (maybe the policy got in the way)
// so redirect back to the start.
// and display a message?
$this->DeleteTempUser( $tmpuid );
$this->DeleteTempUserProperties( $tmpuid );
$params['error'] = 1;
$params['message'] = $this->Lang('error_policycantadd');
return $this->myRedirect( $id, 'default', $returnid, $params );
}
}
}
// if we get here either the cost is 0 or there is some problem with the cart
// so we just proceed like normal.
}
if( $this->GetPreference('require_email_confirmation',1) )
{
// okay, we're now ready to send the email, yahoo, yahoo, yahoo
// now we have to decide what goes in it.
$this->_SendUserConfirmationEmail($id,$returnid,$email,
$username, $params['group_id'], $code );
// send an event
$this->SendEvent('onNewUser',
array('username'=>$username,
'email'=>$email));
// we're not redirecting anywhere we need to display some nice message
// about we just spammed your inbox, etc, etc.
}
else if ($docreatefeu)
{
$action = 'post_createuser';
// it appears we're allowing instant registration
$result = $this->_CreateFrontendUser( $tmpuid, $params['group_id'],
$username, $password, $expires );
if( $result[0] == FALSE )
{
$params['error'] = 1;
$params['message'] = $result[1];
return $this->myRedirect( $id, 'default', $returnid, $params );
}
// woohooo, the user be created (hopefully).
// delete the records from the SelfReg tables
$this->DeleteTempUserProperties( $tmpuid );
$this->DeleteTempUser( $tmpuid );
// do we automatically log this user in?
if( $this->GetPreference('login_afterverify') )
{
$feu =& $this->GetModuleInstance('FrontEndUsers');
$res = $feu->Login( $username, $password );
if( is_array($res) && $res[0] == FALSE )
{
die('auto login error = {$res[1]}');
}
}
// send an event
$this->SendEvent('onNewUser',
array('username'=>$username,
'email'=>$email));
}
// Check if we have to redirect to a page or not
$destpagestr = $this->ProcessTemplateFromData($this->GetPreference($redirect_pref));
if( !empty($destpagestr) )
{
$contentops =& $gCms->GetContentOperations();
$destpageid = $contentops->GetPageIDFromAlias($destpagestr);
if( $destpageid == FALSE )
{
$tmpalias = $contentops->GetPageAliasFromID($destpagestr);
if( $tmpalias )
{
$destpageid = $tmpalias;
}
}
$returnid = $destpageid;
}
if( $this->GetPreference('selfreg_skip_final_msg') ||
$this->GetPreference('allowpaidregistration') )
{
if( isset($params['orig_url']) && empty($destpagestr) )
{
redirect($params['orig_url']);
return;
}
$this->RedirectContent($returnid);
}
$this->Redirect($id,$action,$returnid,$parms);
?>
Koodi: Valitse kaikki
<?php
$lang['prompt_redirect_paidpkg'] = 'Page ID/Alias to redirect to for paid packages';
$lang['info_redirect_paidpkg'] ='A smarty template that determines the pageid or alias of a page to redirect to for paid packages. Typically a user that is registering for your site may want to go directly to your checkout page, or to the view cart page.';
$lang['info_additionalgroups_matchfields'] = 'When allowing existing users to register to an additional group, you can specify which FEU properties of the existing user must match when the user registers again. This information will be used to uniquely identify the FEU user account';
$lang['info_cartitem_summary_tpl'] = 'A smarty template that determines the value of the summary that appears with this line item in the cart, and during the checkout process. If no value is specified a default is used. Valid smarty variables are {$pkg} <em>(array)</em>. {$sku}, {$username}, {$tmpuid} <em>(the users temporary user id)</em>. <strong>Note:</strong> some payment gateways may only support a fixed number of characters for the summary.';
$lang['prompt_cartitem_summary_tpl'] = 'Cart Item Summary Template';
$lang['paid_registration'] = 'Paid Registration';
$lang['info_skip_final_msg'] = 'This option determins wether the registration complete message should be displayed to the user after registration.';
$lang['notifications'] = 'Ilmoitukset';
$lang['info_login_afterverify'] = 'This option will automatically log the visitor into the site after the user has been pushed to the Frontend Users module. This option has no effect if allowing paid registration';
$lang['info_email_confirmation'] = 'This option sends an email to the registerd user account with a link that allows verifying that the account information entered is valid.<br/><strong>Note:</strong> This option should not be used when allowing paid registrations';
$lang['prompt_registration_settings'] = 'Rekisteröintiasetukset';
$lang['none'] = 'Ei';
$lang['month'] = 'Kuukausi';
$lang['year'] = 'Vuosi';
$lang['subscription_expires'] = 'Rekisteröinti uusitaan joka';
$lang['error_policycantadd'] = 'The policy of this website does not allow adding this item to your cart. Please contact the site administrator';
$lang['prompt_allow_select_pkg'] = 'Allow users to select a package (group) to register to';
$lang['info_allowselectpkg'] = 'You may wish to allow your users to select an FEU group to register to. These groups are tied to packages (for ecommerce purposes). However if not using the E-commerce functionality, the price data can be ignored';
$lang['error_nopkgs'] = 'No packages have been defined to allow the customer to register to';
$lang['selpkg_template'] = 'Select Package Template';
$lang['title_selpkg_template'] = 'Select Subscription Package Template';
$lang['info_selpkg_template'] = 'This template is used when paid subscriptions are enabled to allow the user to select a paid subscription package';
$lang['error_pkgcost'] = 'Package Cost is Invalid';
$lang['error_pkgexists'] = 'A package with a %s of %s already exists';
$lang['description'] = 'Description';
$lang['edit_paidpkg'] = 'Edit Paid Package "%s"';
$lang['add_paidpkg'] = 'Add Paid Package';
$lang['name'] = 'Nimi';
$lang['prompt'] = 'Prompt';
$lang['group'] = 'Ryhmä';
$lang['cost'] = 'Cost';
$lang['regpkgs_tab'] = 'Registration Packages';
$lang['prompt_allow_paid_registration'] = 'Require members to pay for registration to your site';
$lang['info_allow_paid_registration'] = 'Please also select Selfregistration as a source module from CGEcommerceBase, and configure the "Paid Registration" Tab. Additionally, you must enable package selection above.';
$lang['email-password'] = 'Sähköpostiosoite ja salasana';
$lang['username-password'] = 'Käyttäjänimi ja salasana';
$lang['help_param_allowoverwrite'] = <<<EOT
This parameter allows overwriting existing FEU users. In conjunction with the preferences in the SelfRegistration admin panel you can specify what data will be used to uniquely identify a user account';
EOT;
$lang['into_additionalgroups_matchfields'] = 'Specify which fields should be used to uniquely identify a user. This can be used to allow the user to register when an account already exists for that user with a different username.';
$lang['prompt_additionalgroups_matchfields'] = 'When overwriting an existing account the following fields must match';
$lang['prompt_reg_additionalgroups'] = 'Sallitko rekisteröityjen käyttäjien rekisteröityä muihin ryhmiin?';
$lang['prompt_additionalgroups_settings'] = 'Muut ryhmän asetukset';
$lang['prompt_general_settings'] = 'Yleiset asetukset';
$lang['prompt_security_settings'] = 'Turvallisuusasetukset';
$lang['error_uniquefield'] = 'Määritelty arvo "%s" on jo käytössä toisella rekisteröidyllä käyttäjällä';
$lang['help_param_action'] = <<<EOT
Tämä parametri määrää modulin käyttäytymisen.
<ul>
<li><strong>oletus</strong>
<p>Tämä on oletustoiminta. Perustuu <em>(deprecated></em> tila parametriin <em>(katso alta)</em> se voi näyttää joko rekisteröintilomakkeen, varmistuslomakkeen tai jonkun muun lomakkeen.</li>
</li>
<li>reguser_link
<p>Näyttää linkin rekisteröintilomakkeelle.</p>
</li>
</ul>
EOT;
$lang['help_param_destpage'] = 'Applicable only to the action=reguser_link.. this parameter allows specifying (by alias or page id) a destination page for the link.';
$lang['help_param_group'] = 'Applicable to the action=reguser_link or action=register, this parameter allows specifying a group in which the user will be regisered';
$lang['help_param_onlyhref'] = 'Used only in the action=reguser_link, setting this parameter indicates that the output should only contain the url portion of the link';
$lang['help_param_linktext'] = 'Used only in the action_reguser_link it allows specifying the text for the generated link. This parameter is ignored if the onlyhref parameter is specified.';
$lang['help_param_noinline'] = 'Applicable to many actions, this parameter overrides the preference in the admin panel to indicate that the output from the generated link or form should not be displayed inline. i.e: noinline=1 on the default action will indicate that the output text will replace the {content} tag.';
$lang['error_noregister'] = 'You cannot register to become a member of this user group';
$lang['prompt_noregister'] = 'Estä käyttäjää kirjautumasta valittuun/valittuihin ryhmiin';
$lang['error_nosecondemailaddress'] = 'Sähköpostiosoite pitää antaa kahteen kertaan';
$lang['push_live'] = 'Lisää käyttäjä';
$lang['areyousure_pushuser'] = 'Haluatko varmasti lisätä käyttäjän ilman varmistusprosessia?';
$lang['delete'] = 'Poista';
$lang['login_afterverify'] = 'Kirjaa uusi käyttäjä automaattisesti sisään kun varmistus on suoritettu';
$lang['skip_final_msg'] = 'Älä näytä kiitos-viestiä rekisteröinnin jälkeen';
$lang['redirect_afterregister'] = 'Sivun ID/alias, joka näytetään rekisteröinnin jälkeen';
$lang['redirect_afterverify'] = 'Sivun ID/alias, joka näytetään rekisteröinnin vahvistamisen jälkeen';
$lang['use_inline_forms'] = 'Use Inline Forms <em>(form output replaces the module tag, not all of content)</em>';
$lang['error_codesdontmatch'] = 'Valtuutusavain on väärä';
$lang['event_description_onNewUser'] = 'Toiminto joka suoritetaan kun uusi käyttäjä on rekisteröitynyt';
$lang['event_description_onUserRegistered'] = 'Toiminto joka suoritetaan kun uusi käyttäjä on varmentanut tunnuksensa ja rekisteröinti on valmis';
$lang['event_help_onNewUser'] = '<p>Toiminto joka suoritetaan kun uusi käyttäjä on rekisteröitynyt</p>
<h4>Tiedot</h4>
<ul>
<li><em>username</em> - Uuden käyttäjän valitsema käyttäjänimi</li>
<li><em>email</em> - Uuden käyttäjän sähköpostiosoite</li>
</ul>
';
$lang['event_help_onUserRegistered'] = '<p>Uusi käyttäjä on rekisteröity ja todennettu</p>
<h4>Tiedot</h4>
<ul>
<li><em>username</em> - Rekisteröity käyttäjänimi</li>
<li><em>id</em> - Uuden käyttäjän uid</li>
</ul>
';
$lang['confirm_submitprefs'] = 'Vaihda hallinnan asetuksia?';
$lang['info_admin_password'] = 'Jätä tämä kenttä tyhjäksi säilyttääksesi käyttäjän salasanan';
$lang['info_admin_repeatpassword'] = 'Jätä tämä kenttä tyhjäksi säilyttääksesi käyttäjän salasanan';
$lang['error_emaildoesnotmatch'] = 'Email-osoitteet eivät ole samat';
$lang['force_email_twice'] = 'Vaadi käyttäjiltä email-osoite kahteen kertaan';
$lang['again'] = 'uudestaan';
$lang['deleteselusers'] = 'Poista valitut käyttäjät';
$lang['error_nopropdefns'] = 'Ei ominaisuuksia tai ongelma tietokannassa';
$lang['error_nogroups'] = 'Ei ryhmiä tai ongelma tietokannassa';
$lang['error_dberror'] = 'Tietokantavirhe';
$lang['title_post_sendanotheremail_template'] = 'Lähetä unohditko salasanasi -emailin pohja';
$lang['title_sendanotheremail_template'] = 'Unohditko salasansi -emailin pohja';
$lang['clickhere'] = 'Paina tästä';
$lang['msg_sendanotheremail'] = 'Olen jo suorittanut rekisteröinnin, mutta en saanut sähköpostia.';
$lang['sendanotheremail_template'] = 'Unohditko salasansi -emailin pohja';
$lang['info_userverified'] = 'Uusi käyttäjä lisätty FrontEndUsersiin';
$lang['edit'] = 'Muokkaa';
$lang['unknown'] = 'Tuntematon';
$lang['select'] = 'Valitse';
$lang['check_all'] = 'Valitse kaikki';
$lang['uncheck_all'] = 'Poista valinnat';
$lang['send_adjustmentemail'] = 'Lähetä email käyttäjälle';
$lang['txt_adjustmentemail'] = '(kertoo käyttäjälle tilin muokkauksesta)';
$lang['txt_changepassword'] = 'Täytä nämä kentät vaihtaaksesi käyttäjän salasanan';
$lang['edituser'] = 'Muokkaa käyttäjää';
$lang['areyousure_deleteuser'] = 'Oletko varma että haluat poistaa tämän puolittain rekisteröidyn käyttäjän';
$lang['hdr_userid'] = 'Käyttäjä ID';
$lang['hdr_username'] = 'Käyttäjätunnus';
$lang['hdr_grpname'] = 'Ryhmä';
$lang['hdr_created'] = 'Luotu';
$lang['hdr_email'] = 'Email';
$lang['usersfound'] = 'Käyttäjiä löydetty (näytetään maksimissaan 250)';
$lang['users'] = 'Käyttäjät';
$lang['list1day'] = 'Listaa yli päivän vanhat';
$lang['subject'] = 'Aihe lähteville emaileille';
$lang['htmlbody'] = 'HTML-emailin sisältö';
$lang['textbody'] = 'Teksti-emailin sisältö';
$lang['prompt_numresetrecord'] = 'Käyttäjiä tällä hetkellä rekisteröitymässä: ';
$lang['remove1week'] = 'Poista kaikki yli viikon vanhat';
$lang['remove1month'] = 'Poista kaikki yli kuukauden vanhat';
$lang['remove1day'] = 'Poista kaikki yli päivän vanhat';
$lang['removeall'] = 'Poista kaikki';
$lang['areyousure'] = 'Oletko varma?';
$lang['registration_info_edited'] = 'Rekisteröinti tietoja muutettu';
$lang['registration_confirmation'] = 'Rekisteröinnin vahvistus';
$lang['user_registration'] = 'Rekisteröidy';
$lang['finalmessage_template'] = 'Kiitos -viestipohja';
$lang['title_verifyregistration'] = 'Varmista rekisteröinti';
$lang['code'] = 'Vahvistusavain';
$lang['default'] = 'Palauta oletukset';
$lang['error_noproperties'] = 'Käyttäjältä ei löydy ominaisuuksia';
$lang['error_noproprelations'] = 'Ei ominaisuussuhteita';
$lang['error_emailinvalid'] = 'Virheellinen email osoite';
$lang['error_noemailaddress'] = 'Ei käypää email-osoitekenttää';
$lang['error_requiredfield'] = 'Kenttä %s täytyy täyttää';
$lang['registration1_template'] = 'Rekisteröintipohja 1';
$lang['registration2_template'] = 'Rekisteröintipohja 2';
$lang['emailconfirm_template'] = 'Vahvistus-emailin pohja';
$lang['emailuseredited_template'] = 'Käyttäjän tietoja vaihdettu -pohja';
$lang['preferences'] = 'Asetukset';
$lang['error_usernotfound'] = 'Käyttäjää ei löytynyt';
$lang['error_invalidusername'] = 'Käyttäjätunnus on virheellinen (liian lyhyt, liian pitkä tai sisältää virheellisiä merkkejä). Käyttäjätunnus ei saa sisältää vain kirjaimia ja numeroita (ei välilyöntiä)';
$lang['error_invalidemail'] = 'Sähköposti on virheellinen.';
$lang['error_usernametaken'] = 'Käyttäjätunnus on jo käytössä';
$lang['error_passwordsdontmatch'] = 'Virhe: salasanat eivät ole yhtenevät';
$lang['error_invalidpassword'] = 'Salasana on virheellinen. Salasanan tulee olla vähintään %s ja enintään %s merkkiä pitkä';
$lang['error_emptyusername'] = 'Käyttäjätunnus ei voi olla tyhjä';
$lang['error_emptyemail'] = 'Sähköposti ei voi olla tyhjä';
$lang['repeatpassword'] = 'Salasana (uudestaan)';
$lang['password'] = 'Salasana';
$lang['username'] = 'Käyttäjätunnus';
$lang['email'] = 'Sähköposti';
$lang['captcha_title'] = 'Syötä kuvassa oleva teksti';
$lang['error_insufficientparams'] = 'Vääriä (tai puuttuvia) parametreja moduulikutsussa';
$lang['error_nofeusersmodule'] = 'Ei voitu alustaa FrontEndUsers-moduulia';
$lang['error_nosuchgroup'] = 'Valittua ryhmää ei ole';
$lang['error_captchamismatch'] = 'Kuvassa oleva ja syötetty teksti eivät ole yhtenevät';
$lang['send_emails_to'] = 'Rekisteröinti-emailit lähetetään osoitteeseen';
$lang['require_email_confirmation'] = 'Vaadi käyttäjää vahvistamaan rekisteröinti sähköpostilla';
$lang['notify_on_registration'] = 'Lähetä email-ilmoitus uudesta rekisteröinnistä';
$lang['cancel'] = 'Peruuta';
$lang['submit'] = 'Lähetä';
$lang['enable_whitelist'] = 'Salli hyväksyä tai rajoittaa-lista';
$lang['whitelist'] = 'Listaa jokainen osoite jonka haluan rajoittaa tai sallia. yksi per rivi. (käytä * villikorttia esim. *@joku.fi)';
$lang['whitelist_trigger_message'] = 'Viesti joka näytetään jos ehto ei täyty';
$lang['dont_use'] = 'Ei rajoitusta';
$lang['no_matches'] = 'älä salli osoitteen joka on listalla rekisteröityä';
$lang['only_matches'] = 'Salli vain osoitteet jotka ovat listalla rekisteröityä';
$lang['friendlyname'] = 'Self Registration Module';
$lang['postinstall'] = 'Installation successfull, please remember to set the "Modify SelfRegistration Settings" permission. If the Captcha module is installed, then captcha functionality is enabled by default. We strongly reccommend that you install this module. If the Captcha module is installed, and you want to disable it, use the nocaptcha param in your selfregistration tag.';
$lang['postuninstall'] = 'Self Registration -moduuli on poistettu järjestelmästä. Nähellään!';
$lang['uninstalled'] = 'Moduulin asennus poistettu';
$lang['installed'] = 'Moduulin versio %s asennettu.';
$lang['prefsupdated'] = 'Modulin asetukset päivitetty.';
$lang['accessdenied'] = 'Käyttöoikeusvirhe! Tarkista oikeutesi.';
$lang['error'] = 'Virhe!';
$lang['upgraded'] = 'Moduuli päivitetty versioon %s.';
$lang['title_mod_prefs'] = 'Modulin asetukset';
$lang['title_mod_admin'] = 'Modulin hallintapaneeli';
$lang['title_admin_panel'] = 'Self Registration -moduuli';
$lang['moddescription'] = 'Moduuli, joka sallii sivuston käyttäjien (FEU) rekisteröidä itse itsensä.';
$lang['welcome_text'] = '<p>Tervetuloa käyttämään Self registration -moduulia.</p>';
$lang['changelog'] = '<ul>
<li>Version 0.0.1. Oct 2005. Initial NRPT (Not Ready for Prime Time) release.</li>
<li>Version 0.1.0. Oct 2005. Initial release.</li>
<li>Version 0.1.1. Oct 2005. Set the HTML mail flag.</li>
<li>Version 0.1.2. Oct 2005. Moved Random stuff into feusers, and added the ability to delete old entries from the registration temporary tables</li>
<li><p>Version 0.1.3. - Dec 2005</p>
<p>Fixed the toggles in the admin preferences. Also, changed the permissions model to not require the unique permission added previously for the selfreg module.</p>
<p>This release was removed due to possible errors</p>
</li>
<li><p>Version 0.1.4. - Jan 2006</p>
<p>Fixed minor errors with CheckPermission, replaced all assign_by_refs's with assigns for hopeful php5 compatibility.</p>
<li><p>Version 0.1.5. - Jan 2006</p>
<p>Added the ability to set the subject of the confirmation email, and added the ability to specify a text body. Subject, and text body are required.</p>
</li>
<li><p>Version 1.0.0. - Feb 2006</p>
<p>Fixed a problem with the verify mode.</p>
<p>Added the ability to edit and delete users. with selection on the checkboxes, and "checkall"</p>
<p>Now require FEUsers 0.1.8 and CMSMailer 1.73.9</p>
<p>Added another tab for the "your settings have been adjusted" email templates</p>
<p>Added CSV Exporting</p>
<p>Added a "Delete all users older than a day" button</p>
<p>Now works with the maximum length field of FEUsers</p>
<p>Added support for dropdowns and text areas</p>
<p>Disallow punctuation characters in username</p>
</li>
<li><p>Version 1.0.1. - Feb 2006</p>
<p>Added the ability for users to request another registration email (uses the same code), incase they lost their first one.</p>
</li>
<li><p>Version 1.0.2. - Feb 2006</p>
<p>The "Require email confirmation" checkbox now works. Users are added straight to the frontend users database</p>
<p>Fixed a bug with the confirmation emails having links to the admin section (new bug only).</p>
</li>
<li><p>Version 1.0.3. - Feb 2006</p>
<p>Added the (optional) ability to require the user enter the email address twice</p>
<p>Fixed a bug with the useredited message not being thrown through smarty</p>
<p>Fixed the default registration template a bit to aide in validation for non required fields (fixed a warning)</p>
<p>Fix problems with inline and non-inline forms and links</p>
<p>Handle another case where the admin may not have created the proper type of email property</p>
<p>Changed to require CMS 0.12-beta2 at a minimum (for safety purposes)</p>
</li>
<li><p>Version 1.0.4. - Mar 2006</p>
<p>More control over username and password field sizes (controlled by feusers)</p>
<p>Confirmation on editing preferences</p>
<p>Require 0.12 proper of cms as a minimum</p>
</li>
<li><p>Version 1.1.0. - Dec 2006</p>
<p>Added events and 1.0 compatibility</p>
<p>Captcha support (thanks Dittman)</p>
</li>
<li><p>Version 1.1.1. - Apr 2007</p>
<p>Now require FEUsers 1.2.0 (minimum)</p>
<p>Support for multiselect lists in feusers</p>
<p>Output some more fields to smarty to allow for increased accessibility</p>
<p>Split code out into multiple files to reduce overall memory footprint</p>
<p>Ignore all image fields</p>
<p>Change Captcha support to be on by default if the Captcha module is found</p>
</li>
<li><p>Version 1.1.2. - Nov 2007</p>
<p>Fix the problem with the UserDisplayLostRegEmailForm thing</p>
<p>Adds the id to the onUserRegistered Event</p>
<p>Fixes the problem with checkbox properties not working</p>
<p>Now Requires CMS 1.2 minimum</p>
<p>You can now use {SelfRegistration group='blah'}</p>
<p>Now Requires CMS 1.3 minimum.</p>
</li>
<li><p>Version 1.1.3. - Nov 2007</p>
<p>Fixes issue with SMTP Email address validation</p>
<p>Now Require FEU 1.3.1</p>
</li>
</ul>';
$lang['help'] = '<h3>What Does This Do?</h3>
<p>This module is designed to allow front end users to register themselves and fill in the required information. It then sends a confirmation email, with a link to a second page that must be completed before the registration is complete. Once registration is complete, a user account is created in the front end users module.</p>
<p>In order to use this module, you must create a property of type "Email Address" in the FrontendUsers module, and associate that property with the group to be used for self registration.</p>
<h3>How Do I Use It</h3>
<p>You place the followng tag into your page {cms_module module=SelfRegistration group=usergroup}</p>
<p>You must have previously created properties and user groups in the FrontEndUsers module in order for this to work properly.</p>
<h3>Parameters</h3>
<p><strong>mode</strong> <em>optional</em> - possible values are "signup" and "verify". If this parameter is not specified, "signup" is assumbed.</p>
<p><strong>group</strong> <em>optional</em> - This parameter is required if mode is "signup", or if mode is left empty.</p>
<p><strong>nocaptcha</strong> <em>optional</em> - This will disable captcha on the signup form. By default, if the Captcha module is installed, captcha support is provided. This parameter disables it.</p>
<h3>Support</h3>
<p>This module does not include commercial support. However, there are a number of resources available to help you with it:</p>
<ul>
<li>For the latest version of this module, FAQs, or to file a Bug Report or buy commercial support, please visit calguy's
module homepage at <a href="http://techcom.dyndns.org">techcom.dyndns.org</a>.</li>
<li>Additional discussion of this module may also be found in the <a href="http://forum.cmsmadesimple.org">CMS Made Simple Forums</a>.</li>
<li>The author, calguy1000, can often be found in the <a href="irc://irc.freenode.net/#cms">CMS IRC Channel</a>.</li>
<li>Lastly, you may have some success emailing the author directly.</li>
</ul>
<p>As per the GPL, this software is provided as-is. Please read the text
of the license for the full disclaimer.</p>
<h3>Copyright and License</h3>
<p>Copyright © 2005, Robert Campbel <a href="mailto:calguy1000@hotmail.com"><calguy1000@hotmail.com></a>. All Rights Are Reserved.</p>
<p>This module has been released under the <a href="http://www.gnu.org/licenses/licenses.html#GPL">GNU Public License</a>. You must agree to this license before using the module.</p>
';
$lang['utma'] = '156861353.1959547193.1213865783.1214078572.1214083722.12';
$lang['utmz'] = '156861353.1214056345.10.4.utmccn=(referral)|utmcsr=dev.cmsmadesimple.org|utmcct=/forum/forum.php|utmcmd=referral';
$lang['utmc'] = '156861353';
$lang['utmb'] = '156861353';
?>