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;
$reglink = get_config('system','register_link');
if(! strlen($reglink))
$reglink = 'zregister';
$reglink = 'register';
if ($register) {
$reg = array(

2
done
View File

@ -182,4 +182,4 @@ mod/
+ zchannel.php
+ zfinger.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')
$item_writeable = true;
@ -744,7 +748,9 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false);
$channel = $a->get_channel();
$observer = $a->get_observer();
if($update)
$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($toplevelpost) {
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
// FIXME - base this on observer permissions
$item_writeable = ((local_user() && $channel['channel_hash'] === $item['owner_xchan']) ? true : false);
$comments_seen = 0;
$comments_collapsed = false;
@ -1116,9 +1122,9 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
'$parent' => $item['parent'],
'$qcomment' => $qcomment,
'$profile_uid' => $profile_owner,
'$mylink' => $a->contact['url'],
'$mylink' => $observer['xchan_profile'],
'$mytitle' => t('This is you'),
'$myphoto' => $a->contact['thumb'],
'$myphoto' => $observer['xchan_photo_s'],
'$comment' => t('Comment'),
'$submit' => t('Submit'),
'$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.')
.t('Please see the file "install/INSTALL.txt".')
."</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>";
}

View File

@ -564,7 +564,9 @@ function item_post(&$a) {
$notify_type = (($parent) ? 'comment-new' : 'wall-new' );
$uri = item_message_id();
$parent_uri = $uri;
if($parent_item)
$parent_uri = $parent_item['uri'];
// Fallback so that we alway have a thr_parent
@ -589,6 +591,7 @@ function item_post(&$a) {
$datarray['received'] = datetime_convert();
$datarray['changed'] = datetime_convert();
$datarray['uri'] = $uri;
$datarray['parent_uri'] = $parent_uri;
$datarray['title'] = $title;
$datarray['body'] = $body;
$datarray['app'] = $app;
@ -774,11 +777,10 @@ function item_post(&$a) {
if(! $parent)
$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",
intval($parent),
dbesc(($parent == $post_id) ? $uri : $parent_item['uri']),
dbesc($a->get_baseurl() . '/display/' . $channel['channel_address'] . '/' . $post_id),
dbesc(datetime_convert()),
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.
// 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",
intval($parent_item['item_restrict'] - ITEM_HIDDEN),
intval($parent_item['id'])

View File

@ -36,7 +36,7 @@ function photos_init(&$a) {
// FIXME
$o .= '<div class="vcard">';
$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>';
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);

View File

@ -1,189 +1,135 @@
<?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) {
global $lang;
$verified = 0;
$blocked = 1;
$arr = array('post' => $_POST);
call_hooks('register_post', $arr);
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailes) {
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
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;
}
}
switch($a->config['register_policy']) {
case REGISTER_OPEN:
$blocked = 0;
$verified = 1;
break;
case REGISTER_APPROVE:
$blocked = 1;
$verified = 0;
break;
default:
case REGISTER_CLOSED:
if((! x($_SESSION,'authenticated') && (! x($_SESSION,'administrator')))) {
notice( t('Permission denied.') . EOL );
return;
}
$blocked = 1;
$verified = 0;
break;
if(! x($_POST,'tos')) {
notice( t('Please indicate acceptance of the Terms of Service. Registration failed.') . EOL);
return;
}
require_once('include/user.php');
$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;
$arr['blocked'] = $blocked;
$arr['verified'] = $verified;
$result = create_user($arr);
$result = create_account($arr);
if(! $result['success']) {
notice($result['message']);
return;
}
require_once('include/security.php');
$user = $result['user'];
if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) {
$url = $a->get_baseurl() . '/profile/' . $user['nickname'];
proc_run('php',"include/directory.php","$url");
$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);
}
$using_invites = get_config('system','invitation_only');
$num_invites = get_config('system','number_invites');
$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($policy == REGISTER_OPEN ) {
$res = send_verification_email($result['email'],$result['password']);
if($res) {
info( t('Registration successful. Please check your email for further instructions.') . EOL ) ;
goaway(z_root());
}
else {
notice( t('Failed to send email message. Here is the message that failed.') . $email_tpl . EOL );
info( t('Registration successful. Please check your email for validation instructions.') . EOL ) ;
}
}
elseif($a->config['register_policy'] == REGISTER_APPROVE) {
if(! strlen($a->config['admin_email'])) {
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();
elseif($policy == REGISTER_APPROVE) {
$res = send_reg_approval_email($result);
if($res) {
info( t('Your registration is pending approval by the site owner.') . EOL ) ;
goaway(z_root());
}
else {
notice( t('Your registration can not be processed.') . EOL);
}
goaway(z_root());
}
return;
}}
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);
}
if(! function_exists('register_content')) {
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(local_user() && ($block)) {
notice("Permission denied." . EOL);
return;
}
if((! local_user()) && ($a->config['register_policy'] == REGISTER_CLOSED)) {
if(get_config('system','register_policy') == REGISTER_CLOSED) {
notice("Permission denied." . EOL);
return;
}
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailes) {
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
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);
@ -191,80 +137,51 @@ function register_content(&$a) {
}
}
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
// 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'])) : "" );
$username = ((x($_POST,'username')) ? $_POST['username'] : ((x($_GET,'username')) ? $_GET['username'] : ''));
$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'] : ''));
$o = replace_macros(get_markup_template('register.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,
$oidhtml = '';
$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'),
'$invite_desc' => t('Membership on this site is by invitation only.'),
'$invite_label' => t('Your invitation ID: '),
'$invite_id' => $invite_id,
'$realpeople' => $realpeople,
'$regtitle' => t('Registration'),
'$registertext' =>((x($a->config,'register_text'))
? '<div class="error-message">' . $a->config['register_text'] . '</div>'
: "" ),
'$fillwith' => $fillwith,
'$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,
'$nickname' => $nickname,
'$license' => $license,
'$sitename' => $a->get_hostname()
'$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,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%;
}
#zregister-form {
#register-form {
font-size: 1.4em;
margin-left: 15%;
margin-top: 5%;
}
.zregister-label {
.register-label {
float: left;
width: 275px;
}
.zregister-input {
.register-input {
float: left;
width: 275px;
padding: 5px;
}
.zregister-feedback {
.register-feedback {
float: left;
margin-left: 45px;
}
.zregister-field-end {
.register-field-end {
clear: both;
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 {
margin-top: 10px;
border: 1px solid #CCC;
border-left: 1px solid #e0e0e0;
position: relative;
-moz-border-radius: 3px;
border-radius: 3px;
}
.tread-wrapper .tread-wrapper {
@ -975,8 +973,9 @@ input#dfrn-url {
}
.wall-item-content-wrapper.comment {
# margin-left: 50px;
background: #EEEEEE;
background: #ffffff;
border-left: 1px solid #e0e0e0;
margin-left: 50px;
}
.wall-item-like.comment, .wall-item-dislike.comment {
@ -1210,12 +1209,12 @@ input#dfrn-url {
.comment-edit-wrapper {
margin-top: 15px;
background: #f3f3f3;
background: #ffffff;
margin-left: 50px;
}
.comment-wwedit-wrapper {
background: #f3f3f3;
background: #ffffff;
}
.comment-edit-photo {
@ -1235,11 +1234,30 @@ input#dfrn-url {
.comment-edit-text-empty, .comment-edit-text-full {
float: left;
margin-top: 10px;
-moz-border-radius: 3px;
border-radius: 3px;
border: 1px solid #cccccc;
border-left: 1px solid #e0e0e0;
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 {
clear: both;
}
@ -1678,6 +1696,12 @@ input#dfrn-url {
width: 587px;
}
#profile-jot-text_parent, .mceLayout {
border-radius: 3px;
-moz-border-radius: 3px;
box-shadow: 4px 4px 3px 0 #444444;
}
#profile-jot-text {
height: 20px;
color:#cccccc;
@ -1686,6 +1710,137 @@ input#dfrn-url {
-moz-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 **/
@ -1793,24 +1948,6 @@ input#dfrn-url {
/** /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 {
margin-top: 30px;

View File

@ -1,57 +1,45 @@
<h3>$regtitle</h3>
<h2>$title</h2>
<form action="register" method="post" id="register-form">
<input type="hidden" name="photo" value="$photo" />
$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>
{{ if $registertext }}
<div id="register-desc" class="descriptive-paragraph">$registertext</div>
{{ endif }}
{{ if $invitations }}
<p id="register-invite-desc">$invite_desc</p>
<div id="register-name-wrapper" >
<label for="register-name" id="label-register-name" >$namelabel</label>
<input type="text" maxlength="60" size="32" name="username" id="register-name" value="$username" >
</div>
<div id="register-name-end" ></div>
<label for="register-invite" id="label-register-invite" class="register-label">$label_invite</label>
<input type="text" maxlength="72" size="32" name="invite_code" id="register-invite" class="register-input" value="$invite_code" />
<div id="register-invite-feedback" class="register-feedback"></div>
<div id="register-invite-end" class="register-field-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-email" id="label-register-email" >$addrlabel</label>
<input type="text" maxlength="60" size="32" name="email" id="register-email" value="$email" >
</div>
<div id="register-email-end" ></div>
<label for="register-password" id="label-register-password" class="register-label" >$label_pass1</label>
<input type="password" maxlength="72" size="32" name="password" id="register-password" class="register-input" value="$pass1" />
<div id="register-password-feedback" class="register-feedback"></div>
<div id="register-password-end" class="register-field-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" >
<label for="register-nickname" id="label-register-nickname" >$nicklabel</label>
<input type="text" maxlength="60" size="32" name="nickname" id="register-nickname" value="$nickname" ><div id="register-sitename">@$sitename</div>
</div>
<div id="register-nickname-end" ></div>
{{ if $enable_tos }}
<input type="checkbox" name="tos" id="register-tos" value="1" />
<label for="register-tos" id="label-register-tos">$label_tos</label>
<div id="register-tos-feedback" class="register-feedback"></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>
$license

View File

@ -6,38 +6,40 @@
{{endif}}
<div id="tread-wrapper-$item.id" class="tread-wrapper $item.toplevel">
<a name="$item.id" ></a>
{{ if $item.threaded }}
<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-outside-wrapper $item.indent$item.previewing{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-outside-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-photo-wrapper" 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')"
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">
<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>
<div class="wall-item-info{{ if $item.owner_url }} wallwall{{ endif }}" id="wall-item-info-$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')"
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" 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" /></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>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul>
$item.item_photo_menu
</ul>
</div>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul>
$item.item_photo_menu
</ul>
</div>
</div>
<div class="wall-item-photo-end"></div>
<div class="wall-item-wrapper" id="wall-item-wrapper-$item.id" >
{{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
{{ else }}<div class="wall-item-lock"></div>{{ endif }}
<div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
<div class="wall-item-location" id="wall-item-location-$item.id">$item.location</div>
</div>
</div>
<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>
<div class="wall-item-ago" id="wall-item-ago-$item.id" >$item.ago</div>
</div>
<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" title="$item.localtime">$item.ago</div>
</div>
<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-end"></div>
@ -47,6 +49,15 @@
<span class='tag'>$tag</span>
{{ endfor }}
</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 class="wall-item-tools" id="wall-item-tools-$item.id">
@ -59,7 +70,7 @@
</div>
{{ endif }}
{{ 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 }}
{{ if $item.edpost }}
<a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
@ -71,39 +82,37 @@
{{ endif }}
{{ if $item.filer }}
<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" >
{{ 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>
{{ 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>
</div>
</div>
<div class="wall-item-wrapper-end"></div>
<div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.like</div>
<div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.dislike</div>
{{ if $item.threaded }}
{{ if $item.comment }}
<div class="wall-item-comment-wrapper$item.indent" >
<div class="wall-item-comment-wrapper $item.indent" >
$item.comment
</div>
{{ endif }}
{{ endif }}
<div class="wall-item-outside-wrapper-end$item.indent" ></div>
<div class="wall-item-outside-wrapper-end $item.indent" ></div>
</div>
{{ for $item.children as $item }}
{{ inc $item.template }}{{ endinc }}
{{ endfor }}
{{ if $item.comment }}
{{ if $item.flatten }}
<div class="wall-item-comment-wrapper" >
$item.comment
</div>
{{ endif }}
{{ endif }}
</div>
{{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>