comments sort of working again but now need to fix the threading which was ported when it was only half working

This commit is contained in:
friendica 2012-10-25 18:42:42 -07:00
parent ebb75340ec
commit 3b394ea43f
17 changed files with 423 additions and 594 deletions

View File

@ -990,7 +990,7 @@ if(! function_exists('login')) {
$reg = false; $reg = false;
$reglink = get_config('system','register_link'); $reglink = get_config('system','register_link');
if(! strlen($reglink)) if(! strlen($reglink))
$reglink = 'zregister'; $reglink = 'register';
if ($register) { if ($register) {
$reg = array( $reg = array(

2
done
View File

@ -182,4 +182,4 @@ mod/
+ zchannel.php + zchannel.php
+ zfinger.php + zfinger.php
? zperms.php ? zperms.php
+ zregister.php + register.php

View File

@ -398,7 +398,11 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
} }
} }
$item_writeable = (($item['writable'] || $item['self']) ? true : false); $channel = $a->get_channel();
// FIXME
// $item_writeable = (($item['writable'] || $item['self']) ? true : false);
$item_writeable = ((local_user() && $channel['channel_hash'] === $item['owner_xchan']) ? true : false);
if($visiting && $mode == 'profile') if($visiting && $mode == 'profile')
$item_writeable = true; $item_writeable = true;
@ -745,6 +749,8 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false); $page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false);
$channel = $a->get_channel();
$observer = $a->get_observer();
if($update) if($update)
$return_url = $_SESSION['return_url']; $return_url = $_SESSION['return_url'];
@ -988,8 +994,8 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
// If there are more than two comments, squash all but the last 2. // If there are more than two comments, squash all but the last 2.
if($toplevelpost) { if($toplevelpost) {
// FIXME - base this on observer permissions
$item_writeable = (($item['writable'] || $item['self']) ? true : false); $item_writeable = ((local_user() && $channel['channel_hash'] === $item['owner_xchan']) ? true : false);
$comments_seen = 0; $comments_seen = 0;
$comments_collapsed = false; $comments_collapsed = false;
@ -1116,9 +1122,9 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
'$parent' => $item['parent'], '$parent' => $item['parent'],
'$qcomment' => $qcomment, '$qcomment' => $qcomment,
'$profile_uid' => $profile_owner, '$profile_uid' => $profile_owner,
'$mylink' => $a->contact['url'], '$mylink' => $observer['xchan_profile'],
'$mytitle' => t('This is you'), '$mytitle' => t('This is you'),
'$myphoto' => $a->contact['thumb'], '$myphoto' => $observer['xchan_photo_s'],
'$comment' => t('Comment'), '$comment' => t('Comment'),
'$submit' => t('Submit'), '$submit' => t('Submit'),
'$edbold' => t('Bold'), '$edbold' => t('Bold'),

View File

@ -493,7 +493,7 @@ function what_next() {
."<p>".t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.') ."<p>".t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.')
.t('Please see the file "install/INSTALL.txt".') .t('Please see the file "install/INSTALL.txt".')
."</p><p>" ."</p><p>"
.t("Go to your new Friendica node <a href='$baseurl/zregister'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.") .t("Go to your new Friendica node <a href='$baseurl/register'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.")
."</p>"; ."</p>";
} }

View File

@ -564,7 +564,9 @@ function item_post(&$a) {
$notify_type = (($parent) ? 'comment-new' : 'wall-new' ); $notify_type = (($parent) ? 'comment-new' : 'wall-new' );
$uri = item_message_id(); $uri = item_message_id();
$parent_uri = $uri;
if($parent_item)
$parent_uri = $parent_item['uri'];
// Fallback so that we alway have a thr_parent // Fallback so that we alway have a thr_parent
@ -589,6 +591,7 @@ function item_post(&$a) {
$datarray['received'] = datetime_convert(); $datarray['received'] = datetime_convert();
$datarray['changed'] = datetime_convert(); $datarray['changed'] = datetime_convert();
$datarray['uri'] = $uri; $datarray['uri'] = $uri;
$datarray['parent_uri'] = $parent_uri;
$datarray['title'] = $title; $datarray['title'] = $title;
$datarray['body'] = $body; $datarray['body'] = $body;
$datarray['app'] = $app; $datarray['app'] = $app;
@ -774,11 +777,10 @@ function item_post(&$a) {
if(! $parent) if(! $parent)
$parent = $post_id; $parent = $post_id;
$r = q("UPDATE `item` SET `parent` = %d, `parent_uri` = '%s', `plink` = '%s', `changed` = '%s', `visible` = 1 $r = q("UPDATE `item` SET `parent` = %d, `parent_uri` = '%s', `changed` = '%s'
WHERE `id` = %d LIMIT 1", WHERE `id` = %d LIMIT 1",
intval($parent), intval($parent),
dbesc(($parent == $post_id) ? $uri : $parent_item['uri']), dbesc(($parent == $post_id) ? $uri : $parent_item['uri']),
dbesc($a->get_baseurl() . '/display/' . $channel['channel_address'] . '/' . $post_id),
dbesc(datetime_convert()), dbesc(datetime_convert()),
intval($post_id) intval($post_id)
); );
@ -787,7 +789,9 @@ function item_post(&$a) {
// This way we don't see every picture in your new photo album posted to your wall at once. // This way we don't see every picture in your new photo album posted to your wall at once.
// They will show up as people comment on them. // They will show up as people comment on them.
if(! $parent_item['item_restrict'] & ITEM_HIDDEN) { // fixme set item visible as well
if($parent_item['item_restrict'] & ITEM_HIDDEN) {
$r = q("UPDATE `item` SET `item_restrict` = %d WHERE `id` = %d LIMIT 1", $r = q("UPDATE `item` SET `item_restrict` = %d WHERE `id` = %d LIMIT 1",
intval($parent_item['item_restrict'] - ITEM_HIDDEN), intval($parent_item['item_restrict'] - ITEM_HIDDEN),
intval($parent_item['id']) intval($parent_item['id'])

View File

@ -36,7 +36,7 @@ function photos_init(&$a) {
// FIXME // FIXME
$o .= '<div class="vcard">'; $o .= '<div class="vcard">';
$o .= '<div class="fn">' . $a->data['channel']['channel_name'] . '</div>'; $o .= '<div class="fn">' . $a->data['channel']['channel_name'] . '</div>';
$o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->get_cached_avatar_image($a->get_baseurl() . '/photo/profile/' . $a->data['channel']['channel_id']) . '" alt="' . $a->data['user']['username'] . '" /></div>'; $o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->get_cached_avatar_image($a->get_baseurl() . '/photo/profile/l/' . $a->data['channel']['channel_id']) . '" alt="' . $a->data['channel']['channel_name'] . '" /></div>';
$o .= '</div>'; $o .= '</div>';
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true); $albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);

View File

@ -1,189 +1,135 @@
<?php <?php
if(! function_exists('register_post')) { require_once('include/account.php');
function register_init(&$a) {
$result = null;
$cmd = ((argc() > 1) ? argv(1) : '');
switch($cmd) {
case 'invite_check.json':
$result = check_account_invite($_REQUEST['invite_code']);
break;
case 'email_check.json':
$result = check_account_email($_REQUEST['email']);
break;
case 'password_check.json':
$result = check_account_password($_REQUEST['password']);
break;
default:
break;
}
if($result) {
json_return_and_die($result);
}
}
function register_post(&$a) { function register_post(&$a) {
global $lang;
$verified = 0;
$blocked = 1;
$arr = array('post' => $_POST);
call_hooks('register_post', $arr);
$max_dailies = intval(get_config('system','max_daily_registrations')); $max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailes) { if($max_dailies) {
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day"); $r = q("select count(*) as total from account where account_created > UTC_TIMESTAMP - INTERVAL 1 day");
if($r && $r[0]['total'] >= $max_dailies) { if($r && $r[0]['total'] >= $max_dailies) {
notice( t('Maximum daily site registrations exceeded. Please try again tomorrow.') . EOL);
return; return;
} }
} }
switch($a->config['register_policy']) { if(! x($_POST,'tos')) {
notice( t('Please indicate acceptance of the Terms of Service. Registration failed.') . EOL);
return;
}
$policy = get_config('system','register_policy');
switch($policy) {
case REGISTER_OPEN: case REGISTER_OPEN:
$blocked = 0; $flags = ACCOUNT_UNVERIFIED;
$verified = 1;
break; break;
case REGISTER_APPROVE: case REGISTER_APPROVE:
$blocked = 1; $flags = ACCOUNT_UNVERIFIED | ACCOUNT_BLOCKED;
$verified = 0;
break; break;
default: default:
case REGISTER_CLOSED: case REGISTER_CLOSED:
if((! x($_SESSION,'authenticated') && (! x($_SESSION,'administrator')))) { if(! is_site_admin()) {
notice( t('Permission denied.') . EOL ); notice( t('Permission denied.') . EOL );
return; return;
} }
$blocked = 1; $flags = ACCOUNT_UNVERIFIED | ACCOUNT_BLOCKED;
$verified = 0;
break; break;
} }
require_once('include/user.php');
$arr = $_POST; $arr = $_POST;
$arr['account_flags'] = $flags;
$arr['blocked'] = $blocked; $result = create_account($arr);
$arr['verified'] = $verified;
$result = create_user($arr);
if(! $result['success']) { if(! $result['success']) {
notice($result['message']); notice($result['message']);
return; return;
} }
require_once('include/security.php');
$user = $result['user'];
if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) { $using_invites = intval(get_config('system','invitation_only'));
$url = $a->get_baseurl() . '/profile/' . $user['nickname']; $num_invites = intval(get_config('system','number_invites'));
proc_run('php',"include/directory.php","$url"); $invite_code = ((x($_POST,'invite_code')) ? notags(trim($_POST['invite_code'])) : '');
if($using_invites && $invite_code) {
q("delete * from register where hash = '%s' limit 1", dbesc($invite_code));
set_pconfig($result['account']['account_id'],'system','invites_remaining',$num_invites);
} }
$using_invites = get_config('system','invitation_only'); if($policy == REGISTER_OPEN ) {
$num_invites = get_config('system','number_invites'); $res = send_verification_email($result['email'],$result['password']);
$invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : '');
if( $a->config['register_policy'] == REGISTER_OPEN ) {
if($using_invites && $invite_id) {
q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
}
$email_tpl = get_intltext_template("register_open_eml.tpl");
$email_tpl = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$username' => $user['username'],
'$email' => $user['email'],
'$password' => $result['password'],
'$uid' => $user['uid'] ));
$res = mail($user['email'], sprintf(t('Registration details for %s'), $a->config['sitename']),
$email_tpl,
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
if($res) { if($res) {
info( t('Registration successful. Please check your email for further instructions.') . EOL ) ; info( t('Registration successful. Please check your email for validation instructions.') . EOL ) ;
goaway(z_root());
}
else {
notice( t('Failed to send email message. Here is the message that failed.') . $email_tpl . EOL );
} }
} }
elseif($a->config['register_policy'] == REGISTER_APPROVE) { elseif($policy == REGISTER_APPROVE) {
if(! strlen($a->config['admin_email'])) { $res = send_reg_approval_email($result);
notice( t('Your registration can not be processed.') . EOL);
goaway(z_root());
}
$hash = random_string();
$r = q("INSERT INTO `register` ( `hash`, `created`, `uid`, `password`, `language` ) VALUES ( '%s', '%s', %d, '%s', '%s' ) ",
dbesc($hash),
dbesc(datetime_convert()),
intval($user['uid']),
dbesc($result['password']),
dbesc($lang)
);
$r = q("SELECT `language` FROM `user` WHERE `email` = '%s' LIMIT 1",
dbesc($a->config['admin_email'])
);
if(count($r))
push_lang($r[0]['language']);
else
push_lang('en');
if($using_invites && $invite_id) {
q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
}
$email_tpl = get_intltext_template("register_verify_eml.tpl");
$email_tpl = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$username' => $user['username'],
'$email' => $user['email'],
'$password' => $result['password'],
'$uid' => $user['uid'],
'$hash' => $hash
));
$res = mail($a->config['admin_email'], sprintf(t('Registration request at %s'), $a->config['sitename']),
$email_tpl,
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
pop_lang();
if($res) { if($res) {
info( t('Your registration is pending approval by the site owner.') . EOL ) ; info( t('Your registration is pending approval by the site owner.') . EOL ) ;
}
else {
notice( t('Your registration can not be processed.') . EOL);
}
goaway(z_root()); goaway(z_root());
} }
} authenticate_success($result['account'],true,false,true);
if(! strlen($next_page = get_config('system','workflow_register_next')))
$next_page = 'zchannel';
$_SESSION['workflow'] = true;
goaway(z_root() . '/' . $next_page);
}
return;
}}
if(! function_exists('register_content')) {
function register_content(&$a) { function register_content(&$a) {
// logged in users can register others (people/pages/groups)
// even with closed registrations, unless specifically prohibited by site policy.
// 'block_extended_register' blocks all registrations, period.
$block = get_config('system','block_extended_register'); if(get_config('system','register_policy') == REGISTER_CLOSED) {
if(local_user() && ($block)) {
notice("Permission denied." . EOL);
return;
}
if((! local_user()) && ($a->config['register_policy'] == REGISTER_CLOSED)) {
notice("Permission denied." . EOL); notice("Permission denied." . EOL);
return; return;
} }
$max_dailies = intval(get_config('system','max_daily_registrations')); $max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailes) { if($max_dailies) {
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day"); $r = q("select count(*) as total from account where account_created > UTC_TIMESTAMP - INTERVAL 1 day");
if($r && $r[0]['total'] >= $max_dailies) { if($r && $r[0]['total'] >= $max_dailies) {
logger('max daily registrations exceeded.'); logger('max daily registrations exceeded.');
notice( t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL); notice( t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL);
@ -191,80 +137,51 @@ function register_content(&$a) {
} }
} }
if(x($_SESSION,'theme')) // Configurable terms of service link
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme')) $tosurl = get_config('system','tos_url');
unset($_SESSION['mobile-theme']); if(! $tosurl)
$tosurl = $a->get_baseurl() . '/help/TermsOfService';
$toslink = '<a href="' . $tosurl . '" >' . t('Terms of Service') . '</a>';
// Configurable whether to restrict age or not - default is based on international legal requirements
// This can be relaxed if you are on a restricted server that does not share with public servers
if(get_config('system','no_age_restriction'))
$label_tos = sprintf( t('I accept the %s for this website'), $toslink);
else
$label_tos = sprintf( t('I am over 13 years of age and accept the %s for this website'), $toslink);
$enable_tos = 1 - intval(get_config('system','no_termsofservice'));
$email = ((x($_REQUEST,'email')) ? strip_tags(trim($_REQUEST['email'])) : "" );
$password = ((x($_REQUEST,'password')) ? trim($_REQUEST['password']) : "" );
$password2 = ((x($_REQUEST,'password2')) ? trim($_REQUEST['password2']) : "" );
$invite_code = ((x($_REQUEST,'invite_code')) ? strip_tags(trim($_REQUEST['invite_code'])) : "" );
$username = ((x($_POST,'username')) ? $_POST['username'] : ((x($_GET,'username')) ? $_GET['username'] : '')); $o = replace_macros(get_markup_template('register.tpl'), array(
$email = ((x($_POST,'email')) ? $_POST['email'] : ((x($_GET,'email')) ? $_GET['email'] : ''));
$openid_url = ((x($_POST,'openid_url')) ? $_POST['openid_url'] : ((x($_GET,'openid_url')) ? $_GET['openid_url'] : ''));
$nickname = ((x($_POST,'nickname')) ? $_POST['nickname'] : ((x($_GET,'nickname')) ? $_GET['nickname'] : ''));
$photo = ((x($_POST,'photo')) ? $_POST['photo'] : ((x($_GET,'photo')) ? hex2bin($_GET['photo']) : ''));
$invite_id = ((x($_POST,'invite_id')) ? $_POST['invite_id'] : ((x($_GET,'invite_id')) ? $_GET['invite_id'] : ''));
'$title' => t('Registration'),
$oidhtml = ''; '$registertext' => get_config('system','register_text'),
$fillwith = '';
$fillext = '';
$oidlabel = '';
$realpeople = '';
if(get_config('system','publish_all')) {
$profile_publish_reg = '<input type="hidden" name="profile_publish_reg" value="1" />';
}
else {
$publish_tpl = get_markup_template("profile_publish.tpl");
$profile_publish = replace_macros($publish_tpl,array(
'$instance' => 'reg',
'$pubdesc' => t('Include your profile in member directory?'),
'$yes_selected' => ' checked="checked" ',
'$no_selected' => '',
'$str_yes' => t('Yes'),
'$str_no' => t('No')
));
}
$license = '';
$o = get_markup_template("register.tpl");
$arr = array('template' => $o);
call_hooks('register_form',$arr);
$o = replace_macros($o, array(
'$oidhtml' => $oidhtml,
'$invitations' => get_config('system','invitation_only'), '$invitations' => get_config('system','invitation_only'),
'$invite_desc' => t('Membership on this site is by invitation only.'), '$invite_desc' => t('Membership on this site is by invitation only.'),
'$invite_label' => t('Your invitation ID: '), '$label_invite' => t('Please enter your invitation code'),
'$invite_id' => $invite_id, '$invite_code' => $invite_code,
'$realpeople' => $realpeople,
'$regtitle' => t('Registration'), '$label_email' => t('Your email address'),
'$registertext' =>((x($a->config,'register_text')) '$label_pass1' => t('Choose a password'),
? '<div class="error-message">' . $a->config['register_text'] . '</div>' '$label_pass2' => t('Please re-enter your password'),
: "" ), '$label_tos' => $label_tos,
'$fillwith' => $fillwith, '$enable_tos' => $enable_tos,
'$fillext' => $fillext,
'$oidlabel' => $oidlabel,
'$openid' => $openid_url,
'$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '),
'$addrlabel' => t('Your Email Address: '),
'$nickdesc' => t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.'),
'$nicklabel' => t('Choose a nickname: '),
'$photo' => $photo,
'$publish' => $profile_publish,
'$regbutt' => t('Register'),
'$username' => $username,
'$email' => $email, '$email' => $email,
'$nickname' => $nickname, '$pass1' => $password,
'$license' => $license, '$pass2' => $password2,
'$sitename' => $a->get_hostname() '$submit' => t('Register')
)); ));
return $o; return $o;
}} }

View File

@ -1,187 +0,0 @@
<?php
require_once('include/account.php');
function zregister_init(&$a) {
$result = null;
$cmd = ((argc() > 1) ? argv(1) : '');
switch($cmd) {
case 'invite_check.json':
$result = check_account_invite($_REQUEST['invite_code']);
break;
case 'email_check.json':
$result = check_account_email($_REQUEST['email']);
break;
case 'password_check.json':
$result = check_account_password($_REQUEST['password']);
break;
default:
break;
}
if($result) {
json_return_and_die($result);
}
}
function zregister_post(&$a) {
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailies) {
$r = q("select count(*) as total from account where account_created > UTC_TIMESTAMP - INTERVAL 1 day");
if($r && $r[0]['total'] >= $max_dailies) {
notice( t('Maximum daily site registrations exceeded. Please try again tomorrow.') . EOL);
return;
}
}
if(! x($_POST,'tos')) {
notice( t('Please indicate acceptance of the Terms of Service. Registration failed.') . EOL);
return;
}
$policy = get_config('system','register_policy');
switch($policy) {
case REGISTER_OPEN:
$flags = ACCOUNT_UNVERIFIED;
break;
case REGISTER_APPROVE:
$flags = ACCOUNT_UNVERIFIED | ACCOUNT_BLOCKED;
break;
default:
case REGISTER_CLOSED:
if(! is_site_admin()) {
notice( t('Permission denied.') . EOL );
return;
}
$flags = ACCOUNT_UNVERIFIED | ACCOUNT_BLOCKED;
break;
}
$arr = $_POST;
$arr['account_flags'] = $flags;
$result = create_account($arr);
if(! $result['success']) {
notice($result['message']);
return;
}
require_once('include/security.php');
$using_invites = intval(get_config('system','invitation_only'));
$num_invites = intval(get_config('system','number_invites'));
$invite_code = ((x($_POST,'invite_code')) ? notags(trim($_POST['invite_code'])) : '');
if($using_invites && $invite_code) {
q("delete * from register where hash = '%s' limit 1", dbesc($invite_code));
set_pconfig($result['account']['account_id'],'system','invites_remaining',$num_invites);
}
if($policy == REGISTER_OPEN ) {
$res = send_verification_email($result['email'],$result['password']);
if($res) {
info( t('Registration successful. Please check your email for validation instructions.') . EOL ) ;
}
}
elseif($policy == REGISTER_APPROVE) {
$res = send_reg_approval_email($result);
if($res) {
info( t('Your registration is pending approval by the site owner.') . EOL ) ;
}
else {
notice( t('Your registration can not be processed.') . EOL);
}
goaway(z_root());
}
authenticate_success($result['account'],true,false,true);
if(! strlen($next_page = get_config('system','workflow_register_next')))
$next_page = 'zchannel';
$_SESSION['workflow'] = true;
goaway(z_root() . '/' . $next_page);
}
function zregister_content(&$a) {
if(get_config('system','register_policy') == REGISTER_CLOSED) {
notice("Permission denied." . EOL);
return;
}
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailies) {
$r = q("select count(*) as total from account where account_created > UTC_TIMESTAMP - INTERVAL 1 day");
if($r && $r[0]['total'] >= $max_dailies) {
logger('max daily registrations exceeded.');
notice( t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL);
return;
}
}
// Configurable terms of service link
$tosurl = get_config('system','tos_url');
if(! $tosurl)
$tosurl = $a->get_baseurl() . '/help/TermsOfService';
$toslink = '<a href="' . $tosurl . '" >' . t('Terms of Service') . '</a>';
// Configurable whether to restrict age or not - default is based on international legal requirements
// This can be relaxed if you are on a restricted server that does not share with public servers
if(get_config('system','no_age_restriction'))
$label_tos = sprintf( t('I accept the %s for this website'), $toslink);
else
$label_tos = sprintf( t('I am over 13 years of age and accept the %s for this website'), $toslink);
$enable_tos = 1 - intval(get_config('system','no_termsofservice'));
$email = ((x($_REQUEST,'email')) ? strip_tags(trim($_REQUEST['email'])) : "" );
$password = ((x($_REQUEST,'password')) ? trim($_REQUEST['password']) : "" );
$password2 = ((x($_REQUEST,'password2')) ? trim($_REQUEST['password2']) : "" );
$invite_code = ((x($_REQUEST,'invite_code')) ? strip_tags(trim($_REQUEST['invite_code'])) : "" );
$o = replace_macros(get_markup_template('zregister.tpl'), array(
'$title' => t('Registration'),
'$registertext' => get_config('system','register_text'),
'$invitations' => get_config('system','invitation_only'),
'$invite_desc' => t('Membership on this site is by invitation only.'),
'$label_invite' => t('Please enter your invitation code'),
'$invite_code' => $invite_code,
'$label_email' => t('Your email address'),
'$label_pass1' => t('Choose a password'),
'$label_pass2' => t('Please re-enter your password'),
'$label_tos' => $label_tos,
'$enable_tos' => $enable_tos,
'$email' => $email,
'$pass1' => $password,
'$pass2' => $password2,
'$submit' => t('Register')
));
return $o;
}

View File

@ -1 +1 @@
2012-10-24.117 2012-10-25.118

View File

@ -4,29 +4,29 @@ h2 {
margin-top: 15%; margin-top: 15%;
} }
#zregister-form { #register-form {
font-size: 1.4em; font-size: 1.4em;
margin-left: 15%; margin-left: 15%;
margin-top: 5%; margin-top: 5%;
} }
.zregister-label { .register-label {
float: left; float: left;
width: 275px; width: 275px;
} }
.zregister-input { .register-input {
float: left; float: left;
width: 275px; width: 275px;
padding: 5px; padding: 5px;
} }
.zregister-feedback { .register-feedback {
float: left; float: left;
margin-left: 45px; margin-left: 45px;
} }
.zregister-field-end { .register-field-end {
clear: both; clear: both;
margin-bottom: 20px; margin-bottom: 20px;
} }

29
view/js/mod_register.js Normal file
View File

@ -0,0 +1,29 @@
$(document).ready(function() {
$("#register-email").blur(function() {
var zreg_email = $("#register-email").val();
$.get("register/email_check.json?f=&email=" + encodeURIComponent(zreg_email),function(data) {
$("#register-email-feedback").html(data.message);
zFormError("#register-email-feedback",data.error);
});
});
$("#register-password").blur(function() {
if(($("#register-password").val()).length < 6 ) {
$("#register-password-feedback").html(aStr['pwshort']);
zFormError("#register-password-feedback",true);
}
else {
$("#register-password-feedback").html("");
zFormError("#register-password-feedback",false);
}
});
$("#register-password2").blur(function() {
if($("#register-password").val() != $("#register-password2").val()) {
$("#register-password2-feedback").html(aStr['pwnomatch']);
zFormError("#register-password2-feedback",true);
}
else {
$("#register-password2-feedback").html("");
zFormError("#register-password2-feedback",false);
}
});
});

View File

@ -1,29 +0,0 @@
$(document).ready(function() {
$("#zregister-email").blur(function() {
var zreg_email = $("#zregister-email").val();
$.get("zregister/email_check.json?f=&email=" + encodeURIComponent(zreg_email),function(data) {
$("#zregister-email-feedback").html(data.message);
zFormError("#zregister-email-feedback",data.error);
});
});
$("#zregister-password").blur(function() {
if(($("#zregister-password").val()).length < 6 ) {
$("#zregister-password-feedback").html(aStr['pwshort']);
zFormError("#zregister-password-feedback",true);
}
else {
$("#zregister-password-feedback").html("");
zFormError("#zregister-password-feedback",false);
}
});
$("#zregister-password2").blur(function() {
if($("#zregister-password").val() != $("#zregister-password2").val()) {
$("#zregister-password2-feedback").html(aStr['pwnomatch']);
zFormError("#zregister-password2-feedback",true);
}
else {
$("#zregister-password2-feedback").html("");
zFormError("#zregister-password2-feedback",false);
}
});
});

View File

@ -964,10 +964,8 @@ input#dfrn-url {
.wall-item-content-wrapper { .wall-item-content-wrapper {
margin-top: 10px; margin-top: 10px;
border: 1px solid #CCC; border-left: 1px solid #e0e0e0;
position: relative; position: relative;
-moz-border-radius: 3px;
border-radius: 3px;
} }
.tread-wrapper .tread-wrapper { .tread-wrapper .tread-wrapper {
@ -975,8 +973,9 @@ input#dfrn-url {
} }
.wall-item-content-wrapper.comment { .wall-item-content-wrapper.comment {
# margin-left: 50px; background: #ffffff;
background: #EEEEEE; border-left: 1px solid #e0e0e0;
margin-left: 50px;
} }
.wall-item-like.comment, .wall-item-dislike.comment { .wall-item-like.comment, .wall-item-dislike.comment {
@ -1210,12 +1209,12 @@ input#dfrn-url {
.comment-edit-wrapper { .comment-edit-wrapper {
margin-top: 15px; margin-top: 15px;
background: #f3f3f3; background: #ffffff;
margin-left: 50px; margin-left: 50px;
} }
.comment-wwedit-wrapper { .comment-wwedit-wrapper {
background: #f3f3f3; background: #ffffff;
} }
.comment-edit-photo { .comment-edit-photo {
@ -1235,11 +1234,30 @@ input#dfrn-url {
.comment-edit-text-empty, .comment-edit-text-full { .comment-edit-text-empty, .comment-edit-text-full {
float: left; float: left;
margin-top: 10px; margin-top: 10px;
-moz-border-radius: 3px; border-left: 1px solid #e0e0e0;
border-radius: 3px;
border: 1px solid #cccccc;
padding: 3px 1px 1px 3px; padding: 3px 1px 1px 3px;
} }
.comment-edit-text-empty {
color: gray;
height: 1.5em;
width: 175px;
overflow: auto;
margin-bottom: 10px;
}
.comment-wwedit-wrapper.threaded > .comment-edit-form > .comment-edit-text-empty {
height: 1.5em;
}
.comment-edit-text-full {
color: black;
height: 150px;
width: 350px;
overflow: auto;
}
.comment-edit-text-end { .comment-edit-text-end {
clear: both; clear: both;
} }
@ -1678,6 +1696,12 @@ input#dfrn-url {
width: 587px; width: 587px;
} }
#profile-jot-text_parent, .mceLayout {
border-radius: 3px;
-moz-border-radius: 3px;
box-shadow: 4px 4px 3px 0 #444444;
}
#profile-jot-text { #profile-jot-text {
height: 20px; height: 20px;
color:#cccccc; color:#cccccc;
@ -1686,6 +1710,137 @@ input#dfrn-url {
-moz-border-radius: 3px; -moz-border-radius: 3px;
border-radius: 3px; border-radius: 3px;
} }
#profile-jot-text:hover {
color: #000000;
}
.wall-item-photo, .photo, .contact-block-img, .my-comment-photo {
border-radius: 3px;
-moz-border-radius: 3px;
box-shadow: 4px 4px 3px 0 #444444;
}
#datebrowse-sidebar select {
margin-left: 25px;
border-radius: 3px;
-moz-border-radius: 3px;
opacity: 0.3;
filter:alpha(opacity=30);
}
#datebrowse-sidebar select:hover {
opacity: 1.0;
filter:alpha(opacity=100);
}
#posted-date-selector {
margin-left: 30px !important;
margin-top: 5px !important;
margin-right: 0px !important;
margin-bottom: 0px !important;
}
#posted-date-selector:hover {
box-shadow: 4px 4px 3px 0 #444444;
margin-left: 25px !important;
margin-top: 0px !important;
margin-right: 5px !important;
margin-bottom: 5px !important;
}
#side-bar-photos-albums {
margin-top: 15px;
}
#side-bar-photos-albums ul {
list-style: none;
}
.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .profile-jot-text, .group-selected, .nets-selected, .fileas-selected, #profile-jot-submit, .categories-selected {
border-radius: 3px;
-moz-border-radius: 3px;
box-shadow: 4px 4px 3px 0 #444444;
}
.settings-widget .selected {
border-radius: 3px;
-moz-border-radius: 3px;
box-shadow: 4px 4px 3px 0 #444444;
}
#sidebar-page-list .label {
margin-left: 5px;
}
.photo {
border: 1px solid #AAAAAA;
}
.photo-top-photo, .photo-album-photo {
padding: 10px;
max-width: 300px;
border: 1px solid #888888;
}
.rotleft1 {
-webkit-transform: rotate(-1deg);
-moz-transform: rotate(-1deg);
-ms-transform: rotate(-1deg);
-o-transform: rotate(-1deg);
}
.rotleft2 {
-webkit-transform: rotate(-2deg);
-moz-transform: rotate(-2deg);
-ms-transform: rotate(-2deg);
-o-transform: rotate(-2deg);
}
.rotleft3 {
-webkit-transform: rotate(-3deg);
-moz-transform: rotate(-3deg);
-ms-transform: rotate(-3deg);
-o-transform: rotate(-3deg);
}
.rotleft4 {
-webkit-transform: rotate(-4deg);
-moz-transform: rotate(-4deg);
-ms-transform: rotate(-4deg);
-o-transform: rotate(-4deg);
}
.rotright1 {
-webkit-transform: rotate(1deg);
-moz-transform: rotate(1deg);
-ms-transform: rotate(1deg);
-o-transform: rotate(1deg);
}
.rotright2 {
-webkit-transform: rotate(2deg);
-moz-transform: rotate(2deg);
-ms-transform: rotate(2deg);
-o-transform: rotate(2deg);
}
.rotright3 {
-webkit-transform: rotate(3deg);
-moz-transform: rotate(3deg);
-ms-transform: rotate(3deg);
-o-transform: rotate(3deg);
}
.rotright4 {
-webkit-transform: rotate(4deg);
-moz-transform: rotate(4deg);
-ms-transform: rotate(4deg);
-o-transform: rotate(4deg);
}
/** acl **/ /** acl **/
@ -1793,24 +1948,6 @@ input#dfrn-url {
/** /acl **/ /** /acl **/
.comment-edit-text-empty {
color: gray;
height: 5em;
width: 175px;
overflow: auto;
margin-bottom: 10px;
}
.comment-wwedit-wrapper.threaded > .comment-edit-form > .comment-edit-text-empty {
height: 1.5em;
}
.comment-edit-text-full {
color: black;
height: 150px;
width: 350px;
overflow: auto;
}
#group-new-submit-wrapper { #group-new-submit-wrapper {
margin-top: 30px; margin-top: 30px;

View File

@ -1,57 +1,45 @@
<h3>$regtitle</h3> <h2>$title</h2>
<form action="register" method="post" id="register-form"> <form action="register" method="post" id="register-form">
<input type="hidden" name="photo" value="$photo" /> {{ if $registertext }}
<div id="register-desc" class="descriptive-paragraph">$registertext</div>
$registertext
<p id="register-realpeople">$realpeople</p>
<p id="register-fill-desc">$fillwith</p>
<p id="register-fill-ext">$fillext</p>
{{ if $invitations }}
<p id="register-invite-desc">$invite_desc</p>
<div id="register-invite-wrapper" >
<label for="register-invite" id="label-register-invite" >$invite_label</label>
<input type="text" maxlength="60" size="32" name="invite_id" id="register-invite" value="$invite_id" >
</div>
<div id="register-name-end" ></div>
{{ endif }} {{ endif }}
{{ if $invitations }}
<p id="register-invite-desc">$invite_desc</p>
<div id="register-name-wrapper" > <label for="register-invite" id="label-register-invite" class="register-label">$label_invite</label>
<label for="register-name" id="label-register-name" >$namelabel</label> <input type="text" maxlength="72" size="32" name="invite_code" id="register-invite" class="register-input" value="$invite_code" />
<input type="text" maxlength="60" size="32" name="username" id="register-name" value="$username" > <div id="register-invite-feedback" class="register-feedback"></div>
</div> <div id="register-invite-end" class="register-field-end"></div>
<div id="register-name-end" ></div> {{ endif }}
<label for="register-email" id="label-register-email" class="register-label" >$label_email</label>
<input type="text" maxlength="72" size="32" name="email" id="register-email" class="register-input" value="$email" />
<div id="register-email-feedback" class="register-feedback"></div>
<div id="register-email-end" class="register-field-end"></div>
<div id="register-email-wrapper" > <label for="register-password" id="label-register-password" class="register-label" >$label_pass1</label>
<label for="register-email" id="label-register-email" >$addrlabel</label> <input type="password" maxlength="72" size="32" name="password" id="register-password" class="register-input" value="$pass1" />
<input type="text" maxlength="60" size="32" name="email" id="register-email" value="$email" > <div id="register-password-feedback" class="register-feedback"></div>
</div> <div id="register-password-end" class="register-field-end"></div>
<div id="register-email-end" ></div>
<p id="register-nickname-desc" >$nickdesc</p> <label for="register-password2" id="label-register-password2" class="register-label" >$label_pass2</label>
<input type="password" maxlength="72" size="32" name="password2" id="register-password2" class="register-input" value="$pass2" />
<div id="register-password2-feedback" class="register-feedback"></div>
<div id="register-password2-end" class="register-field-end"></div>
<div id="register-nickname-wrapper" > {{ if $enable_tos }}
<label for="register-nickname" id="label-register-nickname" >$nicklabel</label> <input type="checkbox" name="tos" id="register-tos" value="1" />
<input type="text" maxlength="60" size="32" name="nickname" id="register-nickname" value="$nickname" ><div id="register-sitename">@$sitename</div> <label for="register-tos" id="label-register-tos">$label_tos</label>
</div> <div id="register-tos-feedback" class="register-feedback"></div>
<div id="register-nickname-end" ></div> <div id="register-tos-end" class="register-field-end"></div>
{{ else }}
<input type="hidden" name="tos" value="1" />
{{ endif }}
$publish <input type="submit" name="submit" id="register-submit-button" value="$submit" />
<div id="register-submit-end" class="register-field-end"></div>
<div id="register-submit-wrapper">
<input type="submit" name="submit" id="register-submit-button" value="$regbutt" />
</div>
<div id="register-submit-end" ></div>
</form> </form>
$license

View File

@ -6,25 +6,28 @@
{{endif}} {{endif}}
<div id="tread-wrapper-$item.id" class="tread-wrapper $item.toplevel"> <div id="tread-wrapper-$item.id" class="tread-wrapper $item.toplevel">
<a name="$item.id" ></a> <a name="$item.id" ></a>
{{ if $item.threaded }} <div class="wall-item-outside-wrapper $item.indent$item.previewing{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-outside-wrapper-$item.id" >
<div class="wall-item-outside-wrapper $item.indent$item.previewing threaded" id="wall-item-outside-wrapper-$item.id" >
{{ else }}
<div class="wall-item-outside-wrapper $item.indent$item.previewing" id="wall-item-outside-wrapper-$item.id" >
{{ endif }}
<div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" > <div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info" id="wall-item-info-$item.id"> <div class="wall-item-info{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id" {{ if $item.owner_url }}
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
<a href="$item.owner_url" target="redir" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
<img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
</div>
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
{{ endif }}
<div class="wall-item-photo-wrapper{{ if $item.owner_url }} wwfrom{{ endif }}" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')" onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)"> onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id"> <a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /> <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
</a>
<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span> <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id"> <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul> <ul>
$item.item_photo_menu $item.item_photo_menu
</ul> </ul>
</div> </div>
</div> </div>
<div class="wall-item-photo-end"></div> <div class="wall-item-photo-end"></div>
<div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" > <div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
@ -34,9 +37,8 @@
</div> </div>
</div> </div>
<div class="wall-item-author"> <div class="wall-item-author">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a> <a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>{{ if $item.owner_url }} $item.to <a href="$item.owner_url" target="redir" title="$item.olinktitle" class="wall-item-name-link"><span class="wall-item-name$item.osparkle" id="wall-item-ownername-$item.id">$item.owner_name</span></a> $item.vwall{{ endif }}<br />
<div class="wall-item-ago" id="wall-item-ago-$item.id" >$item.ago</div> <div class="wall-item-ago" id="wall-item-ago-$item.id" title="$item.localtime">$item.ago</div>
</div> </div>
<div class="wall-item-content" id="wall-item-content-$item.id" > <div class="wall-item-content" id="wall-item-content-$item.id" >
<div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div> <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
@ -47,6 +49,15 @@
<span class='tag'>$tag</span> <span class='tag'>$tag</span>
{{ endfor }} {{ endfor }}
</div> </div>
{{ if $item.has_cats }}
<div class="categorytags"><span>$item.txt_cats {{ for $item.categories as $cat }}$cat.name <a href="$cat.removeurl" title="$remove">[$remove]</a> {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }}
</div>
{{ endif }}
{{ if $item.has_folders }}
<div class="filesavetags"><span>$item.txt_folders {{ for $item.folders as $cat }}$cat.name <a href="$cat.removeurl" title="$remove">[$remove]</a> {{ if $cat.last }}{{ else }}, {{ endif }}{{ endfor }}
</div>
{{ endif }}
</div> </div>
</div> </div>
<div class="wall-item-tools" id="wall-item-tools-$item.id"> <div class="wall-item-tools" id="wall-item-tools-$item.id">
@ -59,7 +70,7 @@
</div> </div>
{{ endif }} {{ endif }}
{{ if $item.plink }} {{ if $item.plink }}
<div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" class="icon remote-link$item.sparkle"></a></div> <div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" target="external-link" class="icon remote-link$item.sparkle"></a></div>
{{ endif }} {{ endif }}
{{ if $item.edpost }} {{ if $item.edpost }}
<a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a> <a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
@ -72,10 +83,11 @@
{{ if $item.filer }} {{ if $item.filer }}
<a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a> <a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
{{ endif }} {{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" > <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }} {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
</div> </div>
{{ if $item.drop.dropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }} {{ if $item.drop.pagedrop }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
<div class="wall-item-delete-end"></div> <div class="wall-item-delete-end"></div>
</div> </div>
</div> </div>
@ -85,25 +97,22 @@
{{ if $item.threaded }} {{ if $item.threaded }}
{{ if $item.comment }} {{ if $item.comment }}
<div class="wall-item-comment-wrapper$item.indent" > <div class="wall-item-comment-wrapper $item.indent" >
$item.comment $item.comment
</div> </div>
{{ endif }} {{ endif }}
{{ endif }} {{ endif }}
<div class="wall-item-outside-wrapper-end$item.indent" ></div> <div class="wall-item-outside-wrapper-end $item.indent" ></div>
</div> </div>
{{ for $item.children as $item }} {{ for $item.children as $item }}
{{ inc $item.template }}{{ endinc }} {{ inc $item.template }}{{ endinc }}
{{ endfor }} {{ endfor }}
{{ if $item.comment }}
{{ if $item.flatten }} {{ if $item.flatten }}
<div class="wall-item-comment-wrapper" > <div class="wall-item-comment-wrapper" >
$item.comment $item.comment
</div> </div>
{{ endif }} {{ endif }}
{{ endif }}
</div> </div>
{{if $item.comment_lastcollapsed}}</div>{{endif}} {{if $item.comment_lastcollapsed}}</div>{{endif}}

View File

@ -1,45 +0,0 @@
<h2>$title</h2>
<form action="zregister" method="post" id="zregister-form">
{{ if $registertext }}
<div id="zregister-desc" class="descriptive-paragraph">$registertext</div>
{{ endif }}
{{ if $invitations }}
<p id="register-invite-desc">$invite_desc</p>
<label for="zregister-invite" id="label-zregister-invite" class="zregister-label">$label_invite</label>
<input type="text" maxlength="72" size="32" name="invite_code" id="zregister-invite" class="zregister-input" value="$invite_code" />
<div id="zregister-invite-feedback" class="zregister-feedback"></div>
<div id="zregister-invite-end" class="zregister-field-end"></div>
{{ endif }}
<label for="zregister-email" id="label-zregister-email" class="zregister-label" >$label_email</label>
<input type="text" maxlength="72" size="32" name="email" id="zregister-email" class="zregister-input" value="$email" />
<div id="zregister-email-feedback" class="zregister-feedback"></div>
<div id="zregister-email-end" class="zregister-field-end"></div>
<label for="zregister-password" id="label-zregister-password" class="zregister-label" >$label_pass1</label>
<input type="password" maxlength="72" size="32" name="password" id="zregister-password" class="zregister-input" value="$pass1" />
<div id="zregister-password-feedback" class="zregister-feedback"></div>
<div id="zregister-password-end" class="zregister-field-end"></div>
<label for="zregister-password2" id="label-zregister-password2" class="zregister-label" >$label_pass2</label>
<input type="password" maxlength="72" size="32" name="password2" id="zregister-password2" class="zregister-input" value="$pass2" />
<div id="zregister-password2-feedback" class="zregister-feedback"></div>
<div id="zregister-password2-end" class="zregister-field-end"></div>
{{ if $enable_tos }}
<input type="checkbox" name="tos" id="zregister-tos" value="1" />
<label for="zregister-tos" id="label-zregister-tos">$label_tos</label>
<div id="zregister-tos-feedback" class="zregister-feedback"></div>
<div id="zregister-tos-end" class="zregister-field-end"></div>
{{ else }}
<input type="hidden" name="tos" value="1" />
{{ endif }}
<input type="submit" name="submit" id="zregister-submit-button" value="$submit" />
<div id="zregister-submit-end" class="zregister-field-end"></div>
</form>