The BoardMod Project
 The Project | News | Downloads | Mods | FAQ | Templates | Chat | Forum
BoardMod Support Forum
[ Home | Help | Search | Login | Register ]  

26.05.13 at 02:12:27, Welcome, Guest. Please Login or Register

Choose Language:
Pages: 1 2 3 ... 7
Add new board on Registration (Read 14471 times)
jasnner
Bloody Novice
*
Offline

Posts: 49



05.06.07 at 08:33:01  
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: 12.09.07 at 17:03:31 by jasnner »  
IP Logged
 

BlogCategory_v3_0.zip (Attachment deleted)

Study english, and have fun www.english-nikki.com
Zoo
Hacker Expert
****
Offline

Posts: 290



Reply #1 - 05.06.07 at 11:39:29  
Code:
fopen(FORUMMASTER, "<$boardsdir/forum.master") || die("Could not open File!"); 


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



plus

Code:
push(@fmaster, @newTrail);
fclose(FORUMMASTER);

fclose(FORUMMASTER) unnecessary

Code:
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:
fopen(FORUMMASTER, ">$boardsdir/forum.master") || die("Could not open File!");
foreach $line (@fmaster){
print FORUMMASTER "$line\n";
}
fclose(FORUMMASTER);
 
IP Logged
 
jasnner
Bloody Novice
*
Offline

Posts: 49



Reply #2 - 05.06.07 at 15:55:59  
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~;

 
IP Logged
 

Study english, and have fun www.english-nikki.com
jasnner
Bloody Novice
*
Offline

Posts: 49



Reply #3 - 08.06.07 at 19:41:17  
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.
 
IP Logged
 

Study english, and have fun www.english-nikki.com
ccarr
Ex Member





Reply #4 - 08.06.07 at 20:13:07  
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
 
IP Logged
 
ccarr
Ex Member





Reply #5 - 09.06.07 at 08:00:43  
Hi

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

Posts: 49



Reply #6 - 09.06.07 at 14:50:44  
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: 13.06.07 at 07:59:47 by jasnner »  
IP Logged
 

Study english, and have fun www.english-nikki.com
ccarr
Ex Member





Reply #7 - 09.06.07 at 21:51:12  
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
 
IP Logged
 

members.jpg (Attachment deleted)
jasnner
Bloody Novice
*
Offline

Posts: 49



Reply #8 - 10.06.07 at 02:52:28  
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: 10.06.07 at 05:05:28 by jasnner »  
IP Logged
 

Study english, and have fun www.english-nikki.com
ccarr
Ex Member





Reply #9 - 10.06.07 at 08:33:07  
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.
 
IP Logged
 
jasnner
Bloody Novice
*
Offline

Posts: 49



Reply #10 - 10.06.07 at 09:08:09  
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.
 
IP Logged
 

Study english, and have fun www.english-nikki.com
ccarr
Ex Member





Reply #11 - 10.06.07 at 10:31:49  
Jasinner

Sorry for this long message. Undecided

Found ext_0 & ext_1  2thumbsup

But I don't have the following Code:
                            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:
###############################################################################
# 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'} $member{'username'}.\n\n$prereg_txt{'3'}.\n\n$prereg_txt{'4'}\n\n$scripturl?action=activate;username=$member{'username'};activationkey=$activationcode\n\n$register_txt{'130'}");
&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n $nmn_txt{'4'}$scripturl?action=profileCheck;username=$useraccount{$member{'username'}}\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'} $member{'passwrd1'}\n\n$register_txt{'701'}\n$scripturl?action=profileCheck;username=$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 $nmn_txt{'4'}$scripturl?action=profileCheck;username=$useraccount{$member{'username'}}\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'} $member{'passwrd1'}\n\n$register_txt{'701'}\n$scripturl?action=profileCheck;username=$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 $nmn_txt{'4'}$scripturl?action=profileCheck;username=$useraccount{$member{'username'}}\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'} $regpassword\n\n$register_txt{'701'}\n$scripturl?action=profileCheck;username=$reguser\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'} $regpassword\n\n$register_txt{'701'}\n$scripturl?action=profileCheck;username=$reguser\n\n$register_txt{'130'}");
&sendmail($notification_email, "$nmn_txt{'1'} $member{'username'}!", "$nmn_txt{'2'} $mbname\n $nmn_txt{'3'}$member{'username'}\n $nmn_txt{'4'}$scripturl?action=profileCheck;username=$useraccount{$member{'username'}}\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 .= qq~$approval_txt{'linktoprofile'}$scripturl?action=viewprofile;username=$reguser\n~;
$emailtext .= qq~$approval_txt{'or'}\n~;
$emailtext .= qq~$approval_txt{'linktoprofilefile'}$boardurl/AdminIndex.$yyaext?action=viewpreprofile;username=$reguser\n\n~;

$emailtext .= qq~$approval_txt{'linktoapproval'}$boardurl/AdminIndex.$yyaext?action=approvalmembers~ 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
 
IP Logged
 
jasnner
Bloody Novice
*
Offline

Posts: 49



Reply #12 - 10.06.07 at 11:17:34  
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.
 
IP Logged
 

Register_ccarr.txt (Attachment deleted)

Study english, and have fun www.english-nikki.com
ccarr
Ex Member





Reply #13 - 10.06.07 at 20:14:55  
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
 
IP Logged
 

profile.jpg (Attachment deleted)
jasnner
Bloody Novice
*
Offline

Posts: 49



Reply #14 - 11.06.07 at 14:32:49  
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.
 
IP Logged
 

Study english, and have fun www.english-nikki.com
Pages: 1 2 3 ... 7
© 2000-2012 by - All rights reserved.

Project website hosting proudly sponsored and provided by UK2 Hosting
 The Project | News | Downloads | Mods | FAQ | Templates | Chat | Forum