Page Index Toggle Pages: [1] 2 3 ... 7 Send TopicPrint
Very Hot Topic (More than 25 Replies) Add new board on Registration (Read 50213 times)
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Add new board on Registration
Jun 5th, 2007 at 7:33am
Print Post  
BlogCategory mod

current release Version 3_0
Fixed two bugs:
1.Add board from profile, not including self introduction.
2.Board Pics not being resized. This should work in IE and Netscape/Mozilla but haven't checked other browers, feedback in appreciated.

Add a new board(Blog) on member registration. The blog has the member's avatar and self intro as the board pic and description. Anyone can add topics to the user's blog, but the new member,(blogger) has full admin rights to their board.

Install Instructions
1.first install:
*extended_profiles_v22
*users_avatars_upload_v1_5_yabb21
   
2.turn on account pre-registration and activiation

3.create a category called members using admin center
4.use extended profiles mod and create two fields:
   useBlog (checkbox),
   self introduction (multi-line textbox)
     -Click 'Options' next to self introduction
     -Set Limit Length to 300 characters
     -Go to 'Editable by User' set it to 'Users can edit it, show on "options" page
5. In admin center for edit profile fields, make sure "Required on Registration" is set to optional for useBlog and self introduction
6. if useBlog is not the first field you have created using Extended_profiles rename ext_0 (in this file) with your useBlog field name eg. ext_3
   and if self introduction is not the second field you have created rename ext_1 with your self intro field name
   (check any *.vars file for the correct field names to use)
    
7.In the admin center, change the User Avatars Uploads's, Attachments URL from "./avatars/UsersAvatars" to "UsersAvatars"
  So  Attachments Dir: is still "./avatars/UsersAvatars", just change the URL.
  If you have an absolute link to the folder eg. http://myDomain.com/YaBB/avatars/UsersAvatars/ that is ok too, (don't have to change it).
8.install the mod
9. upload
   Register.pl to Sources/
   BlogCategory.pl to Sources/
   Profile.pl to Sources/
   BoardIndex.pl to Sources/
   BlogCategory.txt to Variables/ (haven't added admin functions yet, so tweek variables here)
   BlogCategory.lng to your Languages/English/ folder

v2_6_2 9th Sept, 2007
Fixed a bug where changes to user's profiles where deleting blogs by mistake.

v2_6_1 6th Sept, 2007
Added step 5 of install instructions

v2_6, 29th July 2007
I tested it on a fresh install today and updated some of the <search for> tags to work on a fresh install, without Admin Center Update Mod
« Last Edit: Sep 12th, 2007 at 4:03pm by jasnner »  

BlogCategory_v3_0.zip (Attachment deleted)

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
Zoo
Senior Member
****
Offline


I love YaBB 1G - SP1!

Posts: 290
Joined: Jan 22nd, 2003
Re: Add new board on Registration
Reply #1 - Jun 5th, 2007 at 10:39am
Print Post  
Code
Select All
fopen(FORUMMASTER, "<$boardsdir/forum.master") || die("Could not open File!"); 


replace
Code
Select All
fopen(FORUMMASTER, "$boardsdir/forum.master") || die("Could not open File!"); 



plus

Code
Select All
push(@fmaster, @newTrail);
fclose(FORUMMASTER); 


fclose(FORUMMASTER) unnecessary

Code
Select All
fopen(FORUMMASTER, ">$boardsdir/forum.master") || die("Could not open File!");
truncate(FORUMMASTER, 0);
seek(FORUMMASTER, 0, 0);
foreach $line (@fmaster){
    print FORUMMASTER "$line\n";
}

fclose(FORUMMASTER); 


replace
Code
Select All
fopen(FORUMMASTER, ">$boardsdir/forum.master") || die("Could not open File!");
foreach $line (@fmaster){
    print FORUMMASTER "$line\n";
}
fclose(FORUMMASTER); 

  
Back to top
 
IP Logged
 
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Re: Add new board on Registration
Reply #2 - Jun 5th, 2007 at 2:55pm
Print Post  
Thanks Zoo,

I implemented your suggestions. But it still doesn't work corretly.
After I activate a new account the forum.master file updates correctly, but as soon as I click login, 
$cat{'members'} = qq~board1,newBoard~;

is placed with the old version -
$cat{'members'} = qq~board1~;

  

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Re: Add new board on Registration
Reply #3 - Jun 8th, 2007 at 6:41pm
Print Post  
Ok, i got it to work.

Basically I had to add the board name to the global @allboards array and also add a global $board{'$boardname'}.

I have posted my new code, on the first post.
  

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
ccarr
Ex Member


Re: Add new board on Registration
Reply #4 - Jun 8th, 2007 at 7:13pm
Print Post  
Hi Jasinner

I'm trying to get my head around how this works or how it would be used? ??? Do you have an example on your forum that can be viewed?

Thanks
  
Back to top
 
IP Logged
 
ccarr
Ex Member


Re: Add new board on Registration
Reply #5 - Jun 9th, 2007 at 7:00am
Print Post  
Hi

Is the idea to make your forum more like BeBo or MySpace? That would be a good option to have?
  
Back to top
 
IP Logged
 
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Re: Add new board on Registration
Reply #6 - Jun 9th, 2007 at 1:50pm
Print Post  
I have one category that is called members.
This category is like a blog. All members who choose to join the blog on registration, write in an introduction and choose a pic.

Anyone can add topics in the user's blog, which is not desireable(I plan to use an external application to add topics automatically). But the owner of the board has admin rights to that board, so they can remove any topics they don't like.

You can view my forum at www.english-nikki.com/blog/
(it is my blog in japanese). Please feel free to join and see how it creates a board.
« Last Edit: Jun 13th, 2007 at 6:59am by jasnner »  

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
ccarr
Ex Member


Re: Add new board on Registration
Reply #7 - Jun 9th, 2007 at 8:51pm
Print Post  
Hi again Jasinner

Thanks for the link and explanation. It sounds like a good idea. Unfortunately I have a lot of mods installed so I can only install it manually. I had a go at installing it and created a category called 'members' and then registered a new member.

The only change was at registration where the following options (see attached image) are added at the bottom. No new boards were created as far as I can tell.  Cry
  

members.jpg (Attachment deleted)
Back to top
 
IP Logged
 
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Re: Add new board on Registration
Reply #8 - Jun 10th, 2007 at 1:52am
Print Post  
Thanks for trying it out.

Please see the revised edition of the mod for install instructions. (I added some instructions, and seperated the code to BlogCategory.pl)

I use a different sytle sheet so i didn't notice my <tr>'s are spose to be <tr class="windowbg">. I have updated the mod file.
« Last Edit: Jun 10th, 2007 at 4:05am by jasnner »  

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
ccarr
Ex Member


Re: Add new board on Registration
Reply #9 - Jun 10th, 2007 at 7:33am
Print Post  
Jasinner

Thanks again. I will try again but I'm not sure about these instructions? What do they mean? ???

    2.rename ext_3 with your useBlog field name
    3.rename ext_1 with your self intro field name

Where is: ext_3 & ext_1 ? ???

I don't think that you have included the 'BlogCategory.lng' in the mode file?

There appears to be a rogue file called: 'BlogCategory.pl~' in the Sources folder?

I'm looking forward to trying it out. Sorry if I am being a bit thick.
  
Back to top
 
IP Logged
 
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Re: Add new board on Registration
Reply #10 - Jun 10th, 2007 at 8:08am
Print Post  
Have a look at your members/admin.var file and see the extra fields you've created with extended_profiles mod in there. They should be named ext_*

Sorry, you don't need the .lng file yet, that is for the next version. I have removed it from the install instructions.
  

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
ccarr
Ex Member


Re: Add new board on Registration
Reply #11 - Jun 10th, 2007 at 9:31am
Print Post  
Jasinner

Sorry for this long message. Undecided

Found ext_0 & ext_1  :2thumbsup:

But I don't have the following
Code
Select All
                            if (-e "$memberdir/$reguser.pre") {
				my $setting;
				fopen(LOADUSER, "$memberdir/$reguser.pre");
				my @settings = <LOADUSER>;
				fclose(LOADUSER);
				foreach $setting (@settings) {
				    chomp $setting;
				    unless (length($setting) == 0) {
					$setting =~ s/\'(.*?)\'\,\"(.*?)\"//ig;
					my $tag   = $1;
					my $value = $2;
					${$reguser}{$tag} = $value;
				        }
                                 }
                             } 



Is that important, and if not where will I put the last edit.?

Here are the contents of my Register.pl:
Code
Select All
###############################################################################
# Register.pl                                                                 #
###############################################################################
# YaBB: Yet another Bulletin Board                                            #
# Open-Source Community Software for Webmasters                               #
# Version:        YaBB 2.1                                                    #
# Released:       November 8, 2005                                            #
# Distributed by: http://www.yabbforum.com                                    #
# =========================================================================== #
# Copyright (c) 2000-2005 YaBB (www.yabbforum.com) - All Rights Reserved.     #
# Software by: The YaBB Development Team                                      #
#              with assistance from the YaBB community.                       #
# Sponsored by: Xnull Internet Media, Inc. - http://www.ximinc.com            #
#               Your source for web hosting, web design, and domains.         #
###############################################################################

$registerplver = 'YaBB 2.1 $Revision: 1.7 $';
if ($action eq 'detailedversion') { return 1; }

LoadLanguage('Register');
LoadLanguage('Approval');
LoadLanguage("New_Member_Notification");

	&LoadLanguage("UsersAvatars");
	require "$sourcedir/UsersAvatars.pl";
	require "$vardir/UsersAvatars.txt"; #required for @extupic
my $serveros = "$^O";
if ($serveros =~ m/Win/) {
	my $regstyle = qq~style=" text-transform: lowercase"~;
} else {
	my $regstyle = '';
}

sub Register {
	if ($regdisable && $iamguest) { &fatal_error("$register_txt{'3'}"); }
	my ($langopt, $tmpregname, $tmpregemail, $tmpregpasswrd1, $tmpregpasswrd2, $hidechecked);
	if ($FORM{'reglanguage'}) {
		$language = $FORM{'reglanguage'};
		LoadLanguage('Main');
		LoadLanguage('Register');
	}
	if ($FORM{'tusername'})  { $tmpregname     = $FORM{'tusername'}; }
	if ($FORM{'temail'})     { $tmpregemail    = $FORM{'temail'}; }
	if ($FORM{'thideemail'}) { $hidechecked    = qq~checked="checked"~; }
	if ($FORM{'tpasswrd1'})  { $tmpregpasswrd1 = $FORM{'tpasswrd1'}; }
	if ($FORM{'tpasswrd2'})  { $tmpregpasswrd2 = $FORM{'tpasswrd2'}; }
	if ($FORM{'tlocation'})  { $tmplocation    = $FORM{'tlocation'}; }
	if ($FORM{'tcountry'})   { $tmpcountry     = $FORM{'tcountry'}; }
	if ($FORM{'tstate'})     { $tmpstate       = $FORM{'tstate'}; }
	if ($FORM{'tmap'})       { $tmpmap         = $FORM{'tmap'}; }
	if ($FORM{'txcoord'})    { $tmpxcoordinat  = $FORM{'txcoord'}; }
	if ($FORM{'tycoord'})    { $tmpycoordinat  = $FORM{'tycoord'}; }

	opendir(DIR, $langdir);
	$morelang = 0;

	while (my $filesanddirs = readdir(DIR)) {
		chomp $filesanddirs;
		if (($filesanddirs ne '.') && ($filesanddirs ne '..') && (-e "$langdir/$filesanddirs/Register.lng")) {
			$lngsel = "";
			if ($filesanddirs eq $language) { $lngsel = qq~selected="selected"~; }
			$langopt .= qq~<option value="$filesanddirs"$lngsel>$filesanddirs</option>~;
			$morelang++;
		}
	}
	close(DIR);

	if ($regcheck) {
		&validation_code;
	}
	if (!$iamguest) { &fatal_error("$register_txt{'2'}"); }
	### Distilled Email Domains mod ###
	require "$vardir/Distilled_Email_Domains.txt";
	if ($adomains){
		@domains = split (/\,/, $adomains);
		$aedomains = qq~<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td><input type="text" maxlength="30" name="email" value="$tmpregemail" size="15" /></td><td><select name="domain">~;
		foreach (@domains){$aedomains .= ($_ =~ m/\@/) ? qq~<option value="$_">$_</option>~ : qq~<option value="\@$_">&#64;$_</option>~;}
		$aedomains .= qq~</select></td></tr></table>~;
	}
	else {$aedomains .= qq~<input type="text" maxlength="60" name="email" value="$tmpregemail" size="45" />~;}
	### Distilled Email Domains mod end ###

	$yymain .= qq~
<div class="bordercolor" style="padding: 1px;">
<table border="0" width="100%" cellspacing="0" class="bordercolor" cellpadding="4">
  <tr class="titlebg">
    <td colspan="2">
    <img src="$imagesdir/register.gif" alt="$register_txt{'97'}" border="0" /> <span class="text1"><b>$register_txt{'97'}</b> $register_txt{'517'}</span></td>
  </tr>
~;

	if ($morelang > 1) {
		$yymain .= qq~
  <tr class="windowbg">
    <td class="windowbg" width="100%">
        <b>$register_txt{'101'}</b>
	</td>
        <td>
		<form action="$scripturl?action=register" method="post" name="sellanguage">
	        <select name="reglanguage" onchange="addsettings(); submit();">
		$langopt
		</select>
		<input type="hidden" name="tusername" id="tusername" value="" />
		<input type="hidden" name="temail" id="temail" value="" />
		<input type="hidden" name="tpasswrd1" id="tpasswrd1" value="" />
		<input type="hidden" name="tpasswrd2" id="tpasswrd2" value="" />
		<input type="hidden" name="thideemail" id="thideemail" value="" />
		<noscript><input type="submit" value="$maintxt{'32'}" /></noscript>
		</form>
	</td>
  </tr>
~;
	}
	$yymain .= qq~
  <tr class="windowbg">
    <td class="windowbg" width="100%">
        * <b>$register_txt{'98'}:</b>
        <br /><span class="small">$register_txt{'520'}</span>
	</td>
    <td>
		<form action="$scripturl?action=register2" method="post" name="creator" enctype="multipart/form-data">
		<input type="text" name="username" size="30" value="$tmpregname" maxlength="18"$regstyle />
		<input type="hidden" name="_session_id_" id="_session_id_" value="$sessionid" />
		<input type="hidden" name="regdate" id="regdate" value="$regdate" />
		<input type="hidden" name="language" id="language" value="$language" />
	</td>
  </tr><tr class="windowbg">
    <td>* <b>$register_txt{'69'}:</b>
        <br /><span class="small">$register_txt{'679'}</span>
	</td>
~;
	if ($allow_hide_email == 1) {
		$yymain .= qq~
    <td valign="middle">
	    $aedomains <!-- ### Distilled Email Domains mod ### -->
	    <input type="checkbox" name="hideemail" value="checked"$hidechecked /> $register_txt{'721'}
	</td>
~;
	} else {
		$yymain .= qq~
    <td>
		$aedomains <!-- ### Distilled Email Domains mod ### -->
        <br /><span class="small">$register_txt{'679'}</span>
	</td>
~;
	}
	$yymain .= qq~
  </tr>
~;
	unless ($emailpassword) {
		$yymain .= qq~
  <tr class="windowbg">
	<td>* <b>$register_txt{'81'}:</b></td>
    <td><input type="password" maxlength="30" name="passwrd1" value="$tmpregpasswrd1" size="30" /></td>
  </tr><tr class="windowbg">
    <td>* <b>$register_txt{'82'}:</b></td>
    <td><input type="password" maxlength="30" name="passwrd2" value="$tmpregpasswrd2" size="30" /></td>
  </tr>
~;
	}

	if ($regcheck) {
		$yymain .= qq~
  <tr class="windowbg">
    <td><b>$floodtxt{'1'}:</b></td>
    <td>$showcheck</td>
  </tr><tr class="windowbg">
    <td><b>$floodtxt{'3'}:</b></td>
    <td><input type="text" maxlength="30" name="verification" id="verification" size="30" /></td>
  </tr>
~;
	}

	require "$sourcedir/ExtendedProfiles.pl";
	$yymain .= &ext_register;
	if($regreason && !$regdisable) {
		$yymain .= qq~
  <tr class="windowbg">
    <td>* <b>$approval_txt{'enterreason'}:</b></td>
    <td><textarea name="reason" rows=5 cols=80>$approval_txt{'defaultreason'}</textarea></font></td>
  </tr>
~;
	}

	if ($RegAgree) {
		if ($language) {
			fopen(AGREE, "$langdir/$language/agreement.txt");
		} else {
			fopen(AGREE, "$langdir/$lang/agreement.txt");
		}
		@agreement = <AGREE>;
		fclose(AGREE);
		$fullagree = join("", @agreement);
		$fullagree =~ s/\n/<br \/>/g;
		$yymain .= qq~
  <tr>
	<td width="100%" colspan="2" class="windowbg">
		&nbsp;
	</td>
  </tr>
  <tr>
	<td width="100%" colspan="2" class="titlebg">
		<img src="$imagesdir/xx.gif" alt="$register_txt{'97'}" border="0" /> <b>$register_txt{'764a'}</b>
	</td>
  </tr>
  <tr>
	<td width="100%" colspan="2" class="windowbg2">
		<span style="float: left; padding: 5px;">
		<br />$fullagree<br /><br />
		</span>
	</td>
  </tr>
  <tr>
	<td width="100%" colspan="2" class="catbg" align="center">
		<b>$register_txt{'585'}</b> <input type="radio" name="regagree" value="yes" />
		&nbsp;&nbsp;&nbsp; <b>$register_txt{'586'}</b> <input type="radio" name="regagree" value="no" checked="checked" />
	</td>
  </tr>
  <tr>
	<td width="100%" colspan="2" class="windowbg">
		&nbsp;
	</td>
  </tr>

~;
	}
	$yymain .= qq~
   <tr class="windowbg">
          <td width="320" align="left"><b>$profile_txt{229}</b><br/><span class="small">$profile_txt{'474'}</span></td>
	  <td align="left">
            <script language="JavaScript1.2" type="text/javascript">
            <!--
            function showimage()
            {
              if (!document.images) return;
              document.images.icons.src="./avatars/"+document.creator.userpic.options[document.creator.userpic.selectedIndex].value;
	  }
		      //-->
            </script>
            <select name="userpic" size="6" onchange="showimage()">
              <option value="blank.gif">(no pic)</option>
              <option value="akachan.gif">AkaChan</option>
              <option value="batman.gif">Batman</option>
              <option value="bobafett.gif">Bobafett</option>
              <option value="boyandmower.gif">BoyAndMower</option>
              <option value="boyandpc.gif">BoyAndPc</option>
              <option value="bunny.gif">Bunny</option>
              <option value="chairo.gif">Chairo</option>
              <option value="conputa.gif">Conputa</option>
              <option value="devil.gif">Devil</option>
              <option value="digimon.gif">Digimon</option>
              <option value="dog.gif">Dog</option>
              <option value="duck.gif">Duck</option>
              <option value="ganbatteru.gif">Ganbatteru</option>
              <option value="garfield.gif">Garfield</option>
              <option value="genkonna.gif">GenkOnna</option>
              <option value="gopher.gif">Gopher</option>
              <option value="iceskatekid.gif">IceSkateKid</option>
              <option value="katsu.gif" selected="selected">Katsu</option>
              <option value="kid.gif">Kid</option>
              <option value="linux.gif">Linux</option>
              <option value="lovebird.gif">Lovebird</option>
              <option value="makkun.gif">MakKun</option>
              <option value="makkushiro.gif">Makkushiro</option>
              <option value="mama.gif">Mama</option>
              <option value="marukun.gif">MaruKun</option>
              <option value="maul.gif">Maul</option>
              <option value="meganechan.gif">MeganeChan</option>
              <option value="mib.gif">MIB</option>
              <option value="oomegane.gif">OoMegane</option>
              <option value="paintingbird.gif">PaintingBird</option>
              <option value="piero.gif">Piero</option>
              <option value="pinkun.gif">PinKun</option>
              <option value="samusan.gif">Ryu</option>
              <option value="smiley.gif">Smiley</option>
              <option value="smurfs.gif">Smurfs</option>
              <option value="sonic.gif">Sonic</option>
              <option value="speedy.gif">Speedy</option>
              <option value="superman.gif">Superman</option>
              <option value="sylvester.gif">Sylvester</option>
              <option value="thomas.gif">Thomas</option>
              <option value="tigger.gif">Tigger</option>
              <option value="wacko.gif">Wacko</option>
              <option value="winnie.gif">Winnie</option>
              <option value="xena.gif">Xena</option>
              <option value="yakuza.gif">Yakuza</option>
            </select>
            &nbsp;&nbsp;<img src="./avatars/blank.gif" name="icons" border="0" hspace="15" alt="" />
	    </td>
   </tr>
   <tr class="windowbg">
	    <td width="320" align="left">
	                <b>$profile_txt{'475'}</b><br />
         		<span class="small">
          		$lang_uapav{'37'} @extupic<br />
          		$lang_uapav{'35'} $userpic_width $lang_uapav{'34'} $userpic_height $lang_uapav{'33'}<br />
          		$lang_uapav{'36'}</span>
            <td align="left">
	                <input type="checkbox" name="userpicpersonalcheck"  />&nbsp;<input type="text" name="userpicpersonal" size="45" value="http://" /><br/>
			<span class="small">$lang_uapav{'24'}</span><br /><br />

          		<input type="file" name="file" size="50" /><br />
          		<span class="small">$lang_uapav{'27'}</span><br />
		~;
          
	                if ($sizef_useravatars > 0) {
     		              $yymain .= qq~
     		              $lang_uapav{'29'} $sizef_useravatars $lang_uapav{'30'}
     		              ~;
	                }
	                $yymain .= qq~    
      		</td>
</tr>
~;

	$yymain .= qq~
  <tr class="titlebg">
	<td width="100%" colspan="2">
	<br /><center><input type="submit" value="$register_txt{'97'}" /></center>
	</td>
  </tr>
</table>
</div>
</form>
~;

	$yymain .= qq~


<script type="text/javascript" language="JavaScript"> <!--
	document.creator.username.focus();

	function addsettings() {
		var mailpass = $emailpassword;
		var hidemail = $allow_hide_email

		document.sellanguage.tusername.value = document.creator.username.value;
		document.sellanguage.temail.value = document.creator.email.value;
		if(hidemail == 1) {
			if(document.creator.hideemail.checked) document.sellanguage.thideemail.value = 1;
		}
		if(mailpass != 1) {
			document.sellanguage.tpasswrd1.value = document.creator.passwrd1.value;
			document.sellanguage.tpasswrd2.value = document.creator.passwrd1.value;
		}
	}
//--> </script>
~;
	$yytitle = "$register_txt{'97'}";
	&template;
	exit;
}

sub reg_banning {

	$ban_user  = $_[0];
	$ban_email = $_[1];

	if ($username eq "admin" && $iamadmin) { return 0; }
	my (@banlist, $banned, $ban_time, $dummy, $line);
	my $bansize = -s "$vardir/ban.txt";
	if ($bansize > 9) {
		fopen(BAN, "$vardir/ban.txt");
		@banlist = <BAN>;
		fclose(BAN);
	} else {
		return 0;
	}
	$ban_time = int(time);

	foreach $line (@banlist) {
		@banned = ();
		chomp $line;
		($dummy, $bannedlst) = split(/\|/, $line);
		@banned = split(/\,/, $bannedlst);
		if ($dummy eq "I") {    # IP BANNING
			foreach $ipbanned (@banned) {
				$str_len = length($ipbanned);
				$comp_ip = substr($user_ip, 0, $str_len);
				if ($ipbanned eq $comp_ip) {
					fopen(LOG, ">>$vardir/ban_log.txt");
					print LOG "$ban_time|$user_ip\n";
					fclose(LOG);
					&UpdateCookie("delete", $ban_user);
					$username = "Guest";
					&fatal_error("I: $security_txt{'678'}$security_txt{'430'}!");
					&redirectinternal;
				}
			}
		} elsif ($dummy eq "E") {    # EMAIL BANNING
			foreach $emailbanned (@banned) {
				if (lc $emailbanned eq lc $ban_email) {
					fopen(LOG, ">>$vardir/ban_log.txt");
					print LOG "$ban_time|$emailbanned ($user_ip)\n";
					fclose(LOG);
					&UpdateCookie("delete", $ban_user);
					$username = "Guest";
					&fatal_error("E: $security_txt{'678'}$security_txt{'430'}!");
					&redirectinternal;
				}
			}
		} elsif ($dummy eq "U") {    # USERNAME BANNING
			foreach $namebanned (@banned) {
				if (lc $namebanned eq lc $ban_user) {
					fopen(LOG, ">>$vardir/ban_log.txt");
					print LOG "$ban_time|$namebanned ($user_ip)\n";
					fclose(LOG);
					&UpdateCookie("delete", $ban_user);
					$username = "Guest";
					&fatal_error("U: $security_txt{'678'}$security_txt{'430'}!");
					&redirectinternal;
				}
			}
		}
	}
}

sub Register2 {
	if ($regdisable && $iamguest) { &fatal_error("$register_txt{'3'}"); }
	if ($FORM{'regagree'} eq "no") {
		$yySetLocation = qq~$scripturl~;
		&redirectexit;
	}
	my %member;
	while (($key, $value) = each(%FORM)) {
		$value =~ s~\A\s+~~;
		$value =~ s~\s+\Z~~;
		$value =~ s~[\n\r]~~g;
		$member{$key} = $value;
	}
	$member{'username'} =~ s/\s/_/g;
	### Distilled Email Domains mod ###
	if ($member{'domain'}) {$member{'email'} = qq($member{'email'}$member{'domain'});}

	require "$vardir/Distilled_Email_Domains.txt";
	if ($bdomains && !$adomains){
		LoadLanguage("Distilled_Email_Domains");
		@domains = split (/\,/, $bdomains);
		foreach (@domains) {
			if ($_ !~ /\@/) {$_ = "\@$_";}
			elsif ($_ !~ /^./) {$_ = ".$_";}
			&fatal_error("$Distilled_Email_Domains_txt{'8'} $_.") if $member{'email'} =~ m/$_/i;
		}
	}
	### Distilled Email Domains mod end ###

	# Make sure users can't register with banned details
	&reg_banning("$member{'username'}", "$member{'email'}");

	# check if there is a system hash named like this by checking existence through size
	my $hsize = keys(%{ $member{'username'} });
	if ($hsize > 0) { &fatal_error("Username prohibited by system"); }
	if (length($member{'username'}) > 25) { $member{'username'} = substr($member{'username'}, 0, 25); }
	&fatal_error("($member{'username'}) $register_txt{'37'}") if ($member{'username'} eq '');
	&fatal_error("($member{'username'}) $register_txt{'99'}") if ($member{'username'} eq '_' || $member{'username'} eq '|');
	&fatal_error("$register_txt{'244'} $member{'username'}") if ($member{'username'} =~ /guest/i);
	&fatal_error("$register_txt{'240'} $register_txt{'35'} $register_txt{'241'}") if ($member{'username'} !~ /\A[0-9A-Za-z#+-\.@^_]+\Z/);
	&fatal_error("$register_txt{'240'} $register_txt{'35'} $register_txt{'241'}") if ($member{'username'} =~ /,/);
	&fatal_error("($member{'username'}) $register_txt{'76'}")                     if ($member{'email'} eq "");
	&fatal_error("($member{'username'}) $register_txt{'100'}")                    if (-e ("$memberdir/$member{'username'}.vars"));
	&fatal_error("$register_txt{'1'}")                                            if ($member{'username'} eq $member{'passwrd1'});

	$testname    = lc $member{'username'};
	$testemail   = lc $member{'email'};
	$is_existing = lc &MemberIndex("check_exist", "$testname");
	if ($is_existing eq $testname) { &fatal_error("($member{'username'}) $register_txt{'473'}"); }
	$is_existing = lc &MemberIndex("check_exist", "$testemail");
	if ($is_existing eq $testemail) { &fatal_error("$register_txt{'730'} ($member{'email'}) $register_txt{'731'}"); }

	&ToHTML($member{'email'});

	if ($regcheck) {
		&fatal_error("$floodtxt{'4'}") if ($member{'verification'} eq '');
		&fatal_error("$register_txt{'240'} $floodtxt{'3'} $register_txt{'241'}") if ($member{'verification'} !~ /\A[0-9A-Za-z]+\Z/);

		# Trying to figure out the mess we made while encrypting verification
		$lastvalue        = 13;
		$verificationtest = "";
		for ($n = 0; $n < length "$member{'regdate'}"; $n++) {
			$value = (substr("$member{'regdate'}", $n, 1)) + $lastvalue + 1;
			$letter = substr("$member{'_session_id_'}", $value, 1);
			$lastvalue = $value;
			$verificationtest .= qq~$letter~;
		}
		&fatal_error("$floodtxt{'4'}") if ($verificationtest ne $member{'verification'});
	}

	if ($emailpassword) {
		srand();
		$member{'passwrd1'} = int(rand(100));
		$member{'passwrd1'} =~ tr/0123456789/ymifxupbck/;
		$_ = int(rand(77));
		$_ =~ tr/0123456789/q8dv7w4jm3/;
		$member{'passwrd1'} .= $_;
		$_ = int(rand(89));
		$_ =~ tr/0123456789/y6uivpkcxw/;
		$member{'passwrd1'} .= $_;
		$_ = int(rand(188));
		$_ =~ tr/0123456789/poiuytrewq/;
		$member{'passwrd1'} .= $_;
		$_ = int(rand(65));
		$_ =~ tr/0123456789/lkjhgfdaut/;
		$member{'passwrd1'} .= $_;
	} else {
		&fatal_error("($member{'username'}) $register_txt{'213'}") if ($member{'passwrd1'} ne $member{'passwrd2'});
		&fatal_error("($member{'username'}) $register_txt{'91'}") if ($member{'passwrd1'} eq '');
		&fatal_error("$register_txt{'240'} $register_txt{'36'} $register_txt{'241'}") if ($member{'passwrd1'} !~ /\A[\s0-9A-Za-z!@#$%\^&*\(\)_\+|`~\-=\\:;'",\.\/?\[\]\{\}]+\Z/);
	}
	&fatal_error("$register_txt{'240'} $register_txt{'69'} $register_txt{'241'}") if ($member{'email'} !~ /[\w\-\.\+]+\@[\w\-\.\+]+\.(\w{2,4}$)/);
	&fatal_error("$register_txt{'500'}") if (($member{'email'} =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) || ($member{'email'} !~ /\A.+@\[?(\w|[-.])+\.[a-zA-Z]{2,4}|[0-9]{1,4}\]?\Z/));
	fopen(BAN, "$vardir/ban_email.txt");
	@banned = <BAN>;
	fclose(BAN);
	foreach $curban (@banned) {
		if ($member{'email'} eq "$curban") { &fatal_error("$register_txt{'678'}$register_txt{'430'}!"); }
	}

	fopen(RESERVE, "$vardir/reserve.txt") || &fatal_error("$register_txt{'23'} reserve.txt", 1);
	@reserve = <RESERVE>;
	fclose(RESERVE);
	fopen(RESERVECFG, "$vardir/reservecfg.txt") || &fatal_error("$register_txt{'23'} reservecfg.txt", 1);
	@reservecfg = <RESERVECFG>;
	fclose(RESERVECFG);
	for ($a = 0; $a < @reservecfg; $a++) {
		chomp $reservecfg[$a];
	}
	$matchword = $reservecfg[0] eq 'checked';
	$matchcase = $reservecfg[1] eq 'checked';
	$matchuser = $reservecfg[2] eq 'checked';
	$matchname = $reservecfg[3] eq 'checked';
	$namecheck = $matchcase eq 'checked' ? $member{'username'} : lc $member{'username'};

	foreach $reserved (@reserve) {
		chomp $reserved;
		$reservecheck = $matchcase ? $reserved : lc $reserved;
		if ($matchuser) {
			if ($matchword) {
				if ($namecheck eq $reservecheck) { &fatal_error("$register_txt{'244'} $reserved"); }
			} else {
				if ($namecheck =~ $reservecheck) { &fatal_error("$register_txt{'244'} $reserved"); }
			}
		}
	}

	&fatal_error("$register_txt{'100'})") if (-e ("$memberdir/$member{'username'}.vars"));
	if ($regreason && (!$member{'reason'} || length($member{'reason'}) < 4)) {
		&fatal_error("$approval_txt{'errorreason'}");
	}
	if ($send_welcomeim == 1 && $preregister == 0) {
		$messageid = $^T . $$;
		fopen(IM, ">$memberdir/$member{'username'}.msg", 1);
		print IM "$sendname|$imsubject|$date|$imtext|$messageid|$ENV{'REMOTE_ADDR'}|1\n";
		fclose(IM);
	}
	$encryptopass = &encode_password($member{'passwrd1'});
	$reguser      = $member{'username'};
	$registerdate = &timetostring($date);
	$language     = $member{'language'};

	${$uid.$reguser}{'password'}      = $encryptopass;
	${$uid.$reguser}{'realname'}      = $FORM{'username'};
	${$uid.$reguser}{'email'}         = lc($member{'email'});
	${$uid.$reguser}{'postcount'}     = 0;
	${$uid.$reguser}{'usertext'}      = $defaultusertxt;
	${$uid.$reguser}{'userpic'}       = "blank.gif";
	if ($FORM{'userpicpersonalcheck'}){
	    #this is a url
	    if(($FORM{'file'} eq "") && ($FORM{'userpicpersonal'} =~ m/\.gif\Z/i || $FORM{'userpicpersonal'} =~ m/\.jpg\Z/i || $FORM{'userpicpersonal'} =~ m/\.jpeg\Z/i || $FORM{'userpicpersonal'} =~ m/\.png\Z/i)) {
					   print TEMP "this is  a url\n";
                #leave it as it is
		${$uid.$reguser}{'userpic'} = $FORM{'userpicpersonal'};
	    }

	    #this is a uploaded file
	    if (($FORM{'file'} =~ m/\.gif\Z/i || $FORM{'file'} =~ m/\.jpg\Z/i || $FORM{'file'} =~ m/\.jpeg\Z/i || $FORM{'file'} =~ m/\.png\Z/i)) {
					   print TEMP "this is an uploaded file\n";
		my ($fixname);
		&UsersAvatarsUP($reguser);
			if ($okatt) {
				&UsersAvatarsLOG($reguser,$valueupic2,1);
                                $fixname=$valueupic;
				#get the file extendsion
		                $fixname =~ m/\.(.*)/;
		                $fixext = $1;
		                ${$uid.$reguser}{'userpic'} = '/UsersAvatars/'.$reguser.'.'.$fixext;
			}
			if ($okdelatt) {
				&UsersAvatarsLOG($reguser,0,0);
				${$uid.$reguser}{'userpic'} = "";
				$checked = "";
			}
		&clear_temp;
	    }
        }
        #this is a standard pic from host
        elsif(!($FORM{'userpicpersonalcheck'}) && ($FORM{'userpic'} ne "")){
	    ${$uid.$reguser}{'userpic'} = "$FORM{'userpic'}";
	}
	if(($FORM{'userpic'} eq "") && ($FORM{'userpicpersonal'} eq "") && ($FORM{'file'} eq "")) {
					   ${$uid.$reguser}{'userpic'} = $default_UserPic_val;
        }
	&fatal_error("$profile_txt{'592'}") if (${$uid.$reguser}{'userpic'} !~ m^\A[0-9a-zA-Z_\.\#\%\-\:\+\?\$\&\~\.\,\@/]+\Z^);
	${$uid.$reguser}{'regdate'}       = $registerdate;
	${$uid.$reguser}{'regtime'}       = $date;
	${$uid.$reguser}{'timeselect'}    = $timeselected;
	${$uid.$reguser}{'timeoffset'}    = $timeoffset;
	${$uid.$reguser}{'dsttimeoffset'} = $dstoffset;
	${$uid.$reguser}{'hidemail'}      = $FORM{'hideemail'};
	${$uid.$reguser}{'timeformat'}    = qq~MM D+ YYYY @ HH:mm:ss*~;
	${$uid.$reguser}{'template'}      = $new_template;
	${$uid.$reguser}{'language'}      = $language;
	${$uid.$reguser}{'pageindex'}     = qq~1|1|1~;

	if ($preregister) {
		# If a pre-registration list exists load it
		if (-e "$memberdir/memberlist.inactive") {
			fopen(INACT, "$memberdir/memberlist.inactive");
			@reglist = <INACT>;
			fclose(INACT);
		}
		# check if user isn't already in pre-registration
		foreach $regline (@reglist) {
			chomp $regline;
			($dummy, $dummy, $regmember, $dummy) = split(/\|/, $regline);
			if ($reguser eq $regmember) { &fatal_error("$prereg_txt{'13'}"); last; }
		}

		# create pre-registration .pre file and write log and inactive list
		$regpassword = $member{'passwrd1'};
		$regtime     = int(time);
		&validation_code;
		$activationcode = substr($sessionid, 0, 20);

		require "$sourcedir/ExtendedProfiles.pl";
		my $error = ext_validate_submition($reguser,$reguser);
		if ($error ne "") { &fatal_error($error); } else { &ext_saveprofile($reguser); }

		&UserAccount($reguser, "preregister");
		&WriteReason($member{'username'},$member{'reason'},$date) if $regreason;

		fopen(INACT, ">$memberdir/memberlist.inactive", 1);
		foreach $curreg (@reglist) { print INACT "$curreg\n"; }
		print INACT "$regtime|$activationcode|$reguser|$regpassword\n";
		fclose(INACT);
		fopen(REGLOG, ">>$vardir/registration.log", 1);
		print REGLOG "$regtime|N|$member{'username'}\n";
		fclose(REGLOG);
		&sendmail($member{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $member{'username'}!\n\n$prereg_txt{'2'} ter_txt{'130'}");
 		&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");

		$yymain .= qq~
		<br /><br />
		<table border="0" width="600" cellspacing="1" class="bordercolor" align="center">
		<tr>
		<td colspan="2" class="titlebg">
		<img src="$imagesdir/register.gif" alt="$prereg_txt{'1a'}" border="0" /> <span class="text1"><b>$prereg_txt{'1a'}</b></span></td>
		</tr><tr>
		<td colspan="2" class="windowbg" align="center">
		<br />$prereg_txt{'1'}<br /><br />
		</td>
		</tr>~;
		require "$sourcedir/LogInOut.pl";
		&sharedLogin;
		$yymain .= qq~
		</table>
		<br /><br />
		~;
		$yytitle = "$prereg_txt{'1a'}";
	} else {
		require "$sourcedir/ExtendedProfiles.pl";
		my $error = ext_validate_submition($reguser,$reguser);
		if ($error ne "") { &fatal_error($error); } else { &ext_saveprofile($reguser); }

#		&UserAccount($reguser, "register") & MemberIndex("add", $reguser) & FormatUserName($reguser);
		if ($needapproval == 3) { # approve before joing
			&UserAccount($reguser, "register");
			rename("$memberdir/$reguser.vars", "$memberdir/$reguser.wait.vars");
		} else {
			&UserAccount($reguser, "register") & MemberIndex("add", $reguser) & FormatUserName($reguser);
		}

		# free register but need approval
		&ApprovalSet if $needapproval;
		&SendNewRegMail if $needapproval;
		&WriteReason($member{'username'},$member{'reason'},$date) if $regreason;
		if ($emailpassword) {
			&sendmail($member{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $member{'username'}!\n\n$register_txt{'719'} $member{'username'}, $register_txt{'492'} name=$useraccount{$member{'username'}}\n\n$register_txt{'130'}");
 			&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");
			require "$sourcedir/LogInOut.pl";
			$sharedLogin_title = "$register_txt{'97'}";
			$sharedLogin_text  = "$register_txt{'703'}";
			$yymain .= qq~<div class="bordercolor" style="width: 400px; margin-bottom: 8px; margin-left: auto; margin-right: auto;">~;
			$shared_log = &sharedLogin;
			$yymain .= qq~$shared_log~;
			$yymain .= qq~</div>~;
		} else {
			if ($emailwelcome) {
				&sendmail($member{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $member{'username'}!\n\n$register_txt{'719'} $member{'username'}, $register_txt{'492'} name=$useraccount{$member{'username'}}\n\n$register_txt{'130'}");
 				&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");
			}
			$yymain .= qq~
			<br /><br />
			<form action="$scripturl?action=login2" method="post">
			<table border="0" width="300" cellspacing="1" class="bordercolor" align="center">
			<tr>
			<td class="titlebg">
			<img src="$imagesdir/register.gif" alt="$register_txt{'97'}" border="0" /> <span class="text1"><b>$register_txt{'97'}</b></span></td>
			</tr><tr>
			<td class="windowbg" align="center">
			<br />$register_txt{'431'}<br /><br />
			<input type="hidden" name="username" value="$member{'username'}" />
			<input type="hidden" name="passwrd" value="$member{'passwrd1'}" />
			<input type="hidden" name="cookielength" value="$Cookie_Length" />
			<input type="submit" value="$register_txt{'34'}" />
			</td>
			</tr>
			</table>
			</form>
			<br /><br />
			~;
		}
		$yytitle = "$register_txt{'245'}";
	}
	&template;
	exit;
}

sub activation_check {
	$changed  = 0;
	$timer    = int(time);
	$timespan = $preregspan * 3600;
	fopen(INACT, "$memberdir/memberlist.inactive");
	@actlist = <INACT>;
	fclose(INACT);

	# check if user is in pre-registration and check activation key
	foreach $regline (@actlist) {
		($regtime, $dummy, $regmember, $dummy) = split(/\|/, $regline);
		$difftime = $timer - $regtime;
		if ($difftime > $timespan) {
			$changed = 1;
			unlink "$memberdir/$regmember.pre";

			# add entry to registration log
			fopen(REGLOG, ">>$vardir/registration.log", 1);
			print REGLOG "$timer|T|$regmember\n";
			fclose(REGLOG);
		} else {
			# update non activate user list
			# write valid registration to the list again
			push(@outlist, $regline);
		}
	}
	if ($changed) {
		# re-open inactive list for update if changed
		fopen(INACT, ">$memberdir/memberlist.inactive", 1);
		print INACT @outlist;
		fclose(INACT);
	}
}

sub user_activation {
	$changed       = 0;
	$reguser       = $INFO{'username'};
	$activationkey = $INFO{'activationkey'};
	if (!-e "$memberdir/$reguser.pre" && -e "$memberdir/$reguser.vars") { &fatal_error("$prereg_txt{'14a'}"); }
	if (!-e "$memberdir/$reguser.pre") { &fatal_error("$prereg_txt{'14'}"); }
	# If a pre-registration list exists load it
	if (-e "$memberdir/memberlist.inactive") {
		fopen(INACT, "$memberdir/memberlist.inactive");
		@reglist = <INACT>;
		fclose(INACT);
	}

	# check if user is in pre-registration and check activation key
	foreach $regline (@reglist) {
		($regtime, $testkey, $regmember, $regpassword) = split(/\|/, $regline);

		# update non activate user list
		if ($regmember ne $reguser) {
			push(@chnglist, $regline);
		} else {
			if ($activationkey ne $testkey) {
				push(@chnglist, $regline);
				# add entry to registration log
				my $logtime = int(time);
				fopen(REGLOG, ">>$vardir/registration.log", 1);
				print REGLOG "$logtime|E|$reguser\n";
				fclose(REGLOG);
				&fatal_error("$prereg_txt{'10'}");
			} else {
				$changed = 1;

				# user is in list and the keys match, so let him/her in
				if ($needapproval == 3) { # 3: approval before join;
					rename("$memberdir/$reguser.pre", "$memberdir/$reguser.wait.vars");
				} else {
					# user is in list and the keys match, so let him/her in
					rename("$memberdir/$reguser.pre", "$memberdir/$reguser.vars");
					&UserCheck($reguser, "email");
					&MemberIndex("add", $reguser);
				}
				&ApprovalSet if $needapproval;
				&SendNewRegMail if $needapproval;

				# add entry to registration log
				my $logtime = int(time);
				fopen(REGLOG, ">>$vardir/registration.log", 1);
				print REGLOG "$logtime|A|$reguser\n";
				fclose(REGLOG);
				if ($send_welcomeim == 1) {
					$messageid = $^T . $$;
					fopen(IM, ">$memberdir/$reguser.msg", 1);
					print IM "$sendname|$imsubject|$date|$imtext|$messageid|$ENV{'REMOTE_ADDR'}|1\n";
					fclose(IM);
				}
				if ($emailpassword) {
					LoadUser("$reguser");
					&sendmail(${$uid.$reguser}{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $reguser!\n\n$register_txt{'719'} $reguser, $register_txt{'492'} eguser\n\n$register_txt{'130'}");
					$yymain .= qq~<br /><table border="0" width="100%" cellspacing="1" class="bordercolor" align="center">~;
					$sharedLogin_title = "$register_txt{'97'}";
					$sharedLogin_text  = "$register_txt{'703'}";
					$yymain .= qq~</table>~;
				} else {
					if ($emailwelcome) {
						LoadUser("$reguser");
						&sendmail(${$uid.$reguser}{'email'}, "$register_txt{'700'} $mbname", "$register_txt{'248'} $reguser!\n\n$register_txt{'719'} $reguser, $register_txt{'492'} eguser\n\n$register_txt{'130'}");
				 		&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n ame'}}\n $nmn_txt{'5'}\n");
					}
				}
			}
		}
	}
	if ($changed) {
		# if changed write new inactive list
		fopen(INACT, ">$memberdir/memberlist.inactive");
		print INACT @chnglist;
		fclose(INACT);
	}
	$yymain .= qq~
	<br /><br />
	<table border="0" width="600" cellspacing="1" class="bordercolor" align="center">
	<tr>
	<td colspan="2" class="titlebg">
	<img src="$imagesdir/register.gif" alt="$prereg_txt{'1a'}" border="0" /> <span class="text1"><b>$prereg_txt{'1a'}</b></span></td>
	</tr><tr>
	<td colspan="2" class="windowbg" align="center">
	<br />$prereg_txt{'5'}<br /><br />~;
	if ($emailpassword eq "1") {
		$yymain .= qq~$register_txt{'703'}<br /> <br />~;
	}
	$yymain .= qq~
	</td>
	</tr>~;
	require "$sourcedir/LogInOut.pl";
	&sharedLogin;
	$yymain .= qq~
	</table>
	<br /><br />
	~;
	$yytitle = "$prereg_txt{'5'}";
	&template;
	exit;
}

sub ApprovalSet {
	fopen(APPROVAL, ">$memberdir/$reguser.wait");
	print APPROVAL $user_ip;
	fclose(APPROVAL);
	fopen (WAIT, ">>$memberdir/waitlist.txt");
	print WAIT "$reguser\n";
	fclose (WAIT);

	# language text update
	if ($needapproval == 1) {
		$register_txt{'130'} .= qq~\n\n$approval_txt{'displayregsoft'}~;
		$register_txt{'703'} .= qq~<br /><br />$approval_txt{'displayregsoft'}~;
		$register_txt{'431'} .= qq~<br /><br />$approval_txt{'displayregsoft'}~;
		$prereg_txt{'5'}     .= qq~<br /><br />$approval_txt{'displayregsoft'}~;
	}
	elsif ($needapproval == 2) {
		$register_txt{'130'} .= qq~\n\n$approval_txt{'displayreghard'}~;
		$register_txt{'703'} .= qq~<br /><br />$approval_txt{'displayreghard'}~;
		$register_txt{'431'} .= qq~<br /><br />$approval_txt{'displayreghard'}~;
		$prereg_txt{'5'}     .= qq~<br /><br />$approval_txt{'displayreghard'}~;
	}
	elsif ($needapproval == 3) {
		$register_txt{'130'} .= qq~\n\n$approval_txt{'displayregbefore'}~;
		$register_txt{'703'} .= qq~<br /><br />$approval_txt{'displayregbefore'}~;
		$register_txt{'431'} .= qq~<br /><br />$approval_txt{'displayregbefore'}~;
		$prereg_txt{'5'}      = qq~$approval_txt{'displayregbefore_act'}<br /><br />$approval_txt{'displayregbefore'}~;
	}
}

sub SendNewRegMail {
	return if !$newregmail;

	my @newregmailtolist = split(/\,/, $newregmailto);
	foreach $mailtouser (@newregmailtolist) {
		&LoadUser($mailtouser);
		next if ! $uid.$mailtouser{'email'};

		$emailsubject = $approval_txt{'newreg'};
		$emailsubject .= ": $mbname";

		$emailtext  = qq~$approval_txt{'newmember'}$reguser\n\n~;
		$emailtext .= \n~;
		$emailtext .= qq~$approval_txt{'or'}\n~;
		$emailtext .= profile;username=$reguser\n\n~;

		$emailtext .= mbers~ if $needapproval;

		&sendmail(${$uid.$mailtouser}{'email'}, $emailsubject, $emailtext);
	}
}

sub WriteReason {
	return if !$regreason;

	# CheckReason;
	$_[1] =~ s/\|/\&#124;/g;
	$convertstr = $_[1];
	$convertcut = 500;
	&CountChars;
	$_[1] = $convertstr;

	fopen(REASON, ">>$memberdir/regreason.txt");
	print REASON qq~$_[0]|$_[1]|$_[2]\n~;
	fclose(REASON);
}

1; 



I have a list of mods installed in my profile but don't have the AdminCenter update installed. I notice that you removed it from the list of requirements?

Thanks for your help with this Smiley
  
Back to top
 
IP Logged
 
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Re: Add new board on Registration
Reply #12 - Jun 10th, 2007 at 10:17am
Print Post  
That code is important, I thought it was part of the original so I removed it. It is back in the mod now, oops  Lips Sealed

I added that code to the correct place in your Registration.pl and uploaded it.

I realized you don't need the admin_update mod.
  

Register_ccarr.txt (Attachment deleted)

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
ccarr
Ex Member


Re: Add new board on Registration
Reply #13 - Jun 10th, 2007 at 7:14pm
Print Post  
Thanks Jasinner

Everything is now installed and all original forum functions are still working ok. New profile settings as attached image.

I created a category called: Members and created a new member and added the members image in the registration page. Works ok (but with no image preview? not really a problem but would be a handy feature).

Logged in as new member and switched on the blog option etc, but no new board was created as far as I can tell? I checked in AdminCentre/Boards and also looked in the sites Boards folder but no board?

I had changed the text in the 'admin.vars' from:

'ext_0',""  
'ext_1',""

to

'ext_0',"useBlog"
'ext_1',"self introduction"

Is that correct? Have I missed something?

Thanks again
  

profile.jpg (Attachment deleted)
Back to top
 
IP Logged
 
jasnner
New Member
*
Offline


Bonsai!

Posts: 49
Joined: May 31st, 2007
Gender: Male
Re: Add new board on Registration
Reply #14 - Jun 11th, 2007 at 1:32pm
Print Post  
I'm sorry mate,

I had the wrong BlogCategory.pl file in the zip. I have included the actual BlogCategory.pl into the zip, please try it.

Also, i tried to simplify the install procedure a bit, by renaming ext_3 to ext_0, so that 'isblog' is now ext_0 in Register.pl. So you shouldn't have to change any names now. They should be set right from reading your previous post.

So just overwirte BlogCategory.pl in your sources folder with the new one, in the BlogCategory.zip.

I am working on the profile.pl now, so that users can opt out of keeping a blog, or start one after registration.

Do you have a preview if the user selects a standard image eg. batman.gif? I have an idea, maybe I left one thing out of the mod.
Could you please send me a list of the original avatars included in Yabb2.1? The current mod includes some that I added and I would like to change the mod back to the original list.

Anyway, see if you can get it to add a board first.
  

Study english, and have fun www.english-nikki.com
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: [1] 2 3 ... 7
Send TopicPrint