#!/usr/bin/perl # You may need to change this path to /usr/local/bin/perl #************************************************************** # # Script to modify skeleton files upon account creation: PWSpostwwwacct3 V2.5 # # Written by: # Premier Website Solutions - http://www.premierwebsitesolutions.com # Created - in 2003 (V1.0) # Modified - October 6, 2004 (V2.0) # - altered to be more usable by others # - added instructions for other users # Last Modified - June 6, 2006 (V2.5) # - modified to work with home or home2 directories # # To use this script, just list the pages you want modified below, provide markers on # those pages as explained shortly, and upload this file to the /scripts directory on # your server, renamed to postwwwacct and made executable. # # Every time an account is created in WHM, this script is automatically called to # do it's job. Variables are passed to it from WHM's wwwacct script and some of # those variable are used in place of the markers on the skeleton file pages. # # Here are the variables that are passed to this script: # $ARGV[0] = domain # $ARGV[1] = username # $ARGV[2] = password # $ARGV[3] = space (MB) # $ARGV[4] = theme # $ARGV[5] = ded IP (y/n) # $ARGV[6] = cgi (y/n) # $ARGV[7] = FP (y/n) # $ARGV[8] = max ftp (n or #) # $ARGV[9] = max sql (n or #) # $ARGV[10] = max POP (n or #) # $ARGV[11] = max lists (n or #) # $ARGV[12] = max subs (n or #) # $ARGV[13] = bandwidth (# or 0) in MB's # $ARGV[14] = shell (y/n) # $ARGV[15] = owner # $ARGV[16] = plan # $ARGV[17] = max park (# or unlimited) # $ARGV[18] = max addon (# or unlimited) # $ARGV[19] = feature list (default) # $ARGV[20] = contact email # # # PROVIDING MARKERS ON PAGES TO BE MODIFIED # ----------------------------------------- # # What this script does is substitute markers on your cpanel3_skel pages with the # variables just listed. The markers are in the format # **ARGV0** # **ARGV1** # **ARGV2** # and so on. # # Anywhere you place **ARGV0** in your skeleton pages, that will be replaced with the domain. # Anywhere you place **ARGV1** in your skeleton pages, that will be replaced with the username. # Anywhere you place **ARGV2** in your skeleton pages, that will be replaced with the password. # # Obviously, you DO NOT want to put the password on the default pages. That's just # explaining how it works. The ones you may want to use are: # **ARGV0** is replaced with the domain (i.e. domain.com) # **ARGV1** is replaced with the username (we use it for our custom formmail script) # **ARGV3** is replaced with the space in MB's # **ARGV13** is replaced with the bandwidth in MB's # # Here is an example of a skeleton index.html page: # # #
## Welcome to **ARGV0** # #
# This is a newly created account. Please bookmark this site and check back later. # #
# You can contact the site owner at **ARGV20**. # #
# Website Owner: # #
# Your new account is ready. You have **ARGV3**MB's of space and **ARGV13**MB's of bandwidth.
# If you have any questions, please contact us at email@host.com.
#
#
#
#
#
# Registered users of this script will be notified of any future updates.
# If you registered this copy with us, put your email here for future reference.
# This copy is registered to:
#
#**************************************************************
@pages = ("public_html/index.html",
"public_html/404.shtml",
"public_html/500.shtml"
);
#-------------------------------------------------------------------
#-------------------------------------------------------------------
# UNLESS YOU KNOW CGI, DO NOT EDIT ANYTHING BELOW HERE
# Feel free to study the code, but alterations are at your own risk
#-------------------------------------------------------------------
#-------------------------------------------------------------------
print "\nRunning postwwwacct to alter skeleton files ...\n";
&editsite;
print "\nAlterations completed\n";
if (-e "/scripts/postwwwacct2") {
print "\nSending variables to postwwwacct2.\n";
system("/scripts/postwwwacct2",@ARGV);
}
exit;
sub editsite {
if (-e "/home/$ARGV[1]") {
$homedir = "home";
}
elsif (-e "/home2/$ARGV[1]") {
$homedir = "home2";
}
else {
print "\nCan't find the $ARGV[1] directory. It must be in a directory other than home or home2.";
return;
}
foreach $page (@pages) {
if (-e "/$homedir/$ARGV[1]/$page") {
print "editing $page\n";
open (FILE,"/$homedir/$ARGV[1]/$page");
@LINES=