[pLog-svn] r3559 - in plog/trunk: class/action class/action/admin class/data class/data/validator class/net/http class/summary/action class/summary/view class/view/admin locale templates/admin templates/summary

Jon Daley plogworld at jon.limedaley.com
Thu Jun 8 19:16:37 GMT 2006


 	I will see.  In addition to my contracting work, two of our 
embedded guys (I am the last one) announced they are quitting.  Things are 
going to be crazy.

On Thu, 8 Jun 2006, Oscar Renalias wrote:

> Jon,
>
> I am not sure if you'll have any time but could you give this a try? It 
> should work in exactly the same way you meant it to work.
>
> I also fixed the subdomain selection process in the registration page.
>
> Oscar
>
> On 8 Jun 2006, at 21:31, oscar at devel.lifetype.net wrote:
>
>> Author: oscar
>> Date: 2006-06-08 18:31:30 +0000 (Thu, 08 Jun 2006)
>> New Revision: 3559
>> 
>> Added:
>>   plog/trunk/class/data/validator/domainvalidator.class.php
>> Modified:
>>   plog/trunk/class/action/admin/adminupdateblogsettingsaction.class.php
>>   plog/trunk/class/action/blogaction.class.php
>>   plog/trunk/class/data/textfilter.class.php
>>   plog/trunk/class/net/http/subdomains.class.php
>>   plog/trunk/class/summary/action/doblogregistration.class.php
>>   plog/trunk/class/summary/action/dofinishregister.class.php
>>   plog/trunk/class/summary/action/registeraction.class.php
>>   plog/trunk/class/summary/view/doblogregistrationview.class.php
>>   plog/trunk/class/view/admin/adminblogsettingsview.class.php
>>   plog/trunk/locale/locale_en_UK.php
>>   plog/trunk/templates/admin/blogsettings.template
>>   plog/trunk/templates/admin/globalsettings_general.template
>>   plog/trunk/templates/summary/registerstep2.template
>>   plog/trunk/templates/summary/registerstep3.template
>> Log:
>> merged Jon's support for different domains at the same time
>> 
>> 
>> Modified: 
>> plog/trunk/class/action/admin/adminupdateblogsettingsaction.class.php
>> ===================================================================
>> --- plog/trunk/class/action/admin/adminupdateblogsettingsaction.class.php 
>> 2006-06-08 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/class/action/admin/adminupdateblogsettingsaction.class.php 
>> 2006-06-08 18:31:30 UTC (rev 3559)
>> @@ -6,7 +6,9 @@
>>     include_once( 
>> PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php" );
>> 	include_once( PLOG_CLASS_PATH."class/data/textfilter.class.php" );
>> 	include_once( 
>> PLOG_CLASS_PATH."class/view/admin/adminblogsettingsview.class.php" );
>> +    include_once( 
>> PLOG_CLASS_PATH."class/data/validator/domainvalidator.class.php" ); 
>> include_once( 
>> PLOG_CLASS_PATH."class/data/validator/rules/intrangerule.class.php" );
>> +	include_once( PLOG_CLASS_PATH."class/net/http/subdomains.class.php" 
>> );
>> 
>>
>>     /**
>> @@ -50,6 +52,8 @@
>> 			$this->registerField( "blogEnableAutosaveDrafts" );
>> 			$this->registerField( "blogShowInSummary" );
>> 			$this->registerField( "blogSendNotification" );
>> +			$this->registerFieldValidator( "blogSubDomain", new 
>> DomainValidator());
>> +			$this->registerFieldValidator( "blogMainDomain", new 
>> DomainValidator());						// set the 
>> view that we're going to use
>> 			$view = new AdminBlogSettingsView( $this->_blogInfo 
>> );
>> 			$view->setErrorMessage( 
>> $this->_locale->tr("error_updating_settings"));
>> @@ -61,6 +65,8 @@
>>          */
>>         function perform()
>>         {
>> +			$config =& Config::getConfig();	+ 
>> // fetch the settings from the db and update them accordingly
>>             $blogs = new Blogs();
>>             $blogSettings = $this->_blogInfo->getSettings();
>> @@ -87,7 +93,42 @@
>> 			$this->_blogInfo->setBlogCategoryId( 
>> $this->_request->getValue( "blogCategory" ));
>> 			$this->_blogInfo->setMangledBlogName( 
>> Textfilter::urlize( $this->_blogInfo->getBlog()));
>> 			$this->_blogInfo->setShowInSummary( 
>> Textfilter::checkboxToBoolean( $this->_request->getValue( 
>> "blogShowInSummary" )));
>> +			+            // check to see whether we are going to 
>> save subdomain information			+            if( 
>> Subdomains::getSubdomainsEnabled()) {
>> +	+                // Translate a few characters to valid names, and 
>> remove the rest
>> +                $mainDomain = 
>> Textfilter::domainize($this->_request->getValue( "blogMainDomain" ));
>> +                if(!$mainDomain)
>> +					$mainDomain = "?";
>> +                $subDomain = 
>> Textfilter::domainize($this->_request->getValue( "blogSubDomain" ));
>> 
>> +                if( Subdomains::isDomainAvailable( $mainDomain )) {
>> +                    $this->_view = new AdminBlogSettingsView( 
>> $this->_blogInfo );
>> +                    $this->_view->setErrorMessage( 
>> $this->_locale->tr("error_updating_blog_subdomain"));
>> +                    $this->setCommonData();
>> +                    return false;
>> +                }
>> +
>> +				if( Subdomains::isValidDomainName( 
>> $mainDomain )) {
>> +	                $this->_view = new AdminBlogSettingsView( 
>> $this->_blogInfo );
>> +	                $this->_view->setErrorMessage( 
>> $this->_locale->tr("error_updating_blog_subdomain"));
>> +	                $this->setCommonData();
>> +	                return false;
>> +				}
>> +
>> +                if($mainDomain == "?"){
>> +					$blog_domain = $subDomain;
>> +                }
>> +                else{
>> +					$blog_domain = $subDomain . "." . 
>> $mainDomain;
>> +                }
>> +
>> +				print("blog_domain = $blog_domain" );
>> +
>> +				$this->_blogInfo->setCustomDomain( 
>> $blog_domain );
>> +            }			+
>>             // and now update the settings in the database
>>             $blogs = new Blogs();
>> 
>> 
>> Modified: plog/trunk/class/action/blogaction.class.php
>> ===================================================================
>> --- plog/trunk/class/action/blogaction.class.php	2006-06-08 17:33:01 
>> UTC (rev 3558)
>> +++ plog/trunk/class/action/blogaction.class.php	2006-06-08 18:31:30 
>> UTC (rev 3559)
>> @@ -206,7 +206,7 @@
>>                     }
>>                 }
>>                 else {
>> -                        // if there is no user parameter, we take the 
>> blogId from the session
>> +                    // if there is no user parameter, we take the blogId 
>> from the session
>>                     if( $this->_session->getValue('blogId') != '' ) {
>>                     	$blogId = $this->_session->getValue('blogId');
>>                     }
>> 
>> Modified: plog/trunk/class/data/textfilter.class.php
>> ===================================================================
>> --- plog/trunk/class/data/textfilter.class.php	2006-06-08 17:33:01 
>> UTC (rev 3558)
>> +++ plog/trunk/class/data/textfilter.class.php	2006-06-08 18:31:30 
>> UTC (rev 3559)
>> @@ -425,14 +425,37 @@
>>          *
>>          * @param string The string that we wish to convert into something 
>> that can be used as a URL
>>          */
>> +        /**
>> +         * Given a string, convert it into something that can be used in 
>> the domain part of a URL
>> +         * (it probably doesn't work very
>> +         * well with non iso-8859-X strings) It will remove the following 
>> characters:
>> +         *
>> +         * ; / ? : @ & = + $ ,
>> +         *
>> +         * It will convert accented characters such as , , , etc to
>> +         * their non-accented counterparts (a, e, i) And
>> +         * any other non-alphanumeric character that hasn't been removed
>> +         * or replaced will be thrown away.
>> +         *
>> +         * @param string The string that we wish to convert into something 
>> that can be used as a URL
>> +         */
>>         function domainize( $string )
>>         {
>> -            $search  = array('_',' ');
>> -            $replace = array('-','-');
>> +		    // remove unnecessary spaces and make everything lower 
>> case
>> +		    $string = preg_replace( "/ +/", " ", strtolower($string) 
>> );
>> +
>> +            // removing a set of reserved characters (rfc2396: ; / ? : @ & 
>> = + $ ,)
>> +            $string = 
>> str_replace(array(';','/','?',':','@','&','=','+','$',','), '', $string);
>> +
>> +            // replace some characters to similar ones
>> +            $search  = array('_',' 
>> ','ä','ö','ü','é','è','à','ç','à','è','ì','ò','ù','á','é','í','ó','ú','ë','ï');
>> +            $replace = 
>> array('-','-','a','o','u','e','e','a','c','a','e','i','o','u','a','e','i','o','u','e','i');
>>             $string = str_replace($search, $replace, $string);
>> -            $string = Textfilter::urlize($string);
>> +
>> +            // and everything that is still left that hasn't been 
>> replaced/encoded, throw it away
>> +            $string = preg_replace( '/[^a-z0-9.-]/', '', $string );
>>             $string = trim($string, "-.");
>> -
>> +
>>             return $string;
>>         }
>> 
>> 
>> Added: plog/trunk/class/data/validator/domainvalidator.class.php
>> ===================================================================
>> --- plog/trunk/class/data/validator/domainvalidator.class.php	2006-06-08 
>> 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/class/data/validator/domainvalidator.class.php	2006-06-08 
>> 18:31:30 UTC (rev 3559)
>> @@ -0,0 +1,32 @@
>> +<?php
>> +
>> +	include_once( 
>> PLOG_CLASS_PATH."class/data/validator/validator.class.php" );
>> +	include_once( 
>> PLOG_CLASS_PATH."class/data/validator/rules/nonemptyrule.class.php" );
>> +	include_once( 
>> PLOG_CLASS_PATH."class/data/validator/rules/filteredwordsrule.class.php" );
>> +	+    /**
>> +     * \ingroup Validator
>> +     *
>> +     * Checks if a domain is valid. Domains have to comply with the 
>> following rules:
>> +     *
>> +     * - They must not be empty
>> +     * - They must not be any of the forbidden usernames. Forbidden 
>> domains
>> +     *   (and usernames) can be configured via the 'forbidden_usernames'
>> +     *   configuration parameter.
>> +     *
>> +     * @see NonEmptyRule
>> +     * @see FilteredWordsRule
>> +     */
>> +    class DomainValidator extends Validator
>> +    {
>> +    	function DomainValidator()
>> +        {
>> +        	$this->Validator();
>> +//        	$this->addRule( new NonEmptyRule());
>> +			$config =& Config::getConfig();
>> +			$forbiddenDomainNames = $config->getValue( 
>> "forbidden_usernames", "" );
>> +			$forbiddenDomainNamesArray = explode( " ", 
>> $forbiddenDomainNames );
>> +			$this->addRule( new FilteredWordsRule( 
>> $forbiddenDomainNamesArray ));
>> +        }
>> +    }
>> +?>
>> \ No newline at end of file
>> 
>> Modified: plog/trunk/class/net/http/subdomains.class.php
>> ===================================================================
>> --- plog/trunk/class/net/http/subdomains.class.php	2006-06-08 17:33:01 
>> UTC (rev 3558)
>> +++ plog/trunk/class/net/http/subdomains.class.php	2006-06-08 18:31:30 
>> UTC (rev 3559)
>> @@ -63,5 +63,72 @@
>> 			// return it...
>> 			return( $isSubdomain );
>> 		}
>> +		+		/**
>> +		 * Returns true if subdomains are enabled in one way or 
>> another in the configuration
>> +		 *
>> +		 * @return True if enabled or false otherwise
>> +	     * @static		+		 */
>> +		function getSubdomainsEnabled()
>> +		{
>> +			include_once( 
>> PLOG_CLASS_PATH."class/config/config.class.php" );			+ 
>> $config =& Config::getConfig();
>> +			+            $blog_domains_enabled =
>> +                ($config->getValue("subdomains_enabled", 0) &&
>> +                (strpos($config->getValue("subdomains_base_url", ""),
>> +                        "{blogdomain}") !== FALSE));
>> +
>> +			return( $blog_domains_enabled );
>> +		}
>> +		+		/**
>> +		 * Returns an array with the list of available domains
>> +		 *
>> +		 * @return True if successful or false otherwise
>> +		 */
>> +		function getAvailableDomains()
>> +		{
>> +			include_once( 
>> PLOG_CLASS_PATH."class/config/config.class.php" );
>> +			$config =& Config::getConfig();
>> +			+            $available_domains = 
>> $config->getValue("subdomains_available_domains", "");
>> +            if($available_domains){
>> +                $available_domains = explode(" ", $available_domains);
>> +            }
>> +
>> +			return( $available_domains );
>> +		}
>> +		+		/**
>> +		 * Returns true if the given domain name is one of the 
>> available ones
>> +		 *
>> +		 * @param domain The domain name we'd like to check
>> +		 * @return True if successful or false otherwise
>> +	     * @static
>> +		 * @see Subdomains::getAvailableDomains
>> +		 */		+		function isDomainAvailable( 
>> $domain )
>> +		{
>> +			$domains = Subdomains::getAvailableDomains();
>> +			return( array_key_exists( $domain, array_flip( 
>> $domains )));
>> +		}
>> +		+		/**
>> +		 * Returns true if the given subdomain name is valid (i.e. 
>> complies with the domain naming restrictions)
>> +		 *
>> +		 * @param domain The name we'd like to check
>> +		 * @return True if successful or false otherwise
>> +		 */
>> +		function isValidDomainName( $domain )
>> +		{
>> +            // Use forbidden_usernames for domains as well, since they are 
>> related
>> +            // in that we don't want people to register www.xyz or 
>> forums.xyz
>> +            // through these subdomains either
>> +			include_once( 
>> PLOG_CLASS_PATH."class/data/validator/usernamevalidator.class.php" );
>> +			$val =  new UsernameValidator();
>> +			return( $val->validate( $domain ));
>> +		}
>> 	}
>> ?>
>> \ No newline at end of file
>> 
>> Modified: plog/trunk/class/summary/action/doblogregistration.class.php
>> ===================================================================
>> --- plog/trunk/class/summary/action/doblogregistration.class.php 
>> 2006-06-08 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/class/summary/action/doblogregistration.class.php 
>> 2006-06-08 18:31:30 UTC (rev 3559)
>> @@ -7,6 +7,8 @@
>> 	include_once( 
>> PLOG_CLASS_PATH."class/summary/view/doblogregistrationview.class.php" );
>> 	include_once( 
>> PLOG_CLASS_PATH."class/summary/view/blogtemplatechooserview.class.php" );
>> 	include_once( PLOG_CLASS_PATH."class/locale/locales.class.php" );
>> +    include_once( 
>> PLOG_CLASS_PATH."class/data/validator/domainvalidator.class.php" );
>> +	include_once( PLOG_CLASS_PATH."class/net/http/subdomains.class.php" 
>> );
>>
>> 	/**
>> 	 * registers a blog
>> @@ -23,20 +25,57 @@
>> 	    	$this->registerFieldValidator( "blogName", new 
>> StringValidator());
>> 	    	$this->registerFieldValidator( "blogCategoryId", new 
>> IntegerValidator());
>> 	    	$this->registerFieldValidator( "blogLocale", new 
>> StringValidator());
>> +			$this->registerFieldValidator( "blogSubDomain", new 
>> DomainValidator(), true );
>> +			$this->registerFieldValidator( "blogMainDomain", new 
>> DomainValidator(), true );
>> 	    	$view = new doBlogRegistrationView();
>> 	    	$view->setErrorMessage( 
>> $this->_locale->tr("register_error_creating_blog"));
>> 	    	$this->setValidationErrorView( $view );
>>         }
>> 
>> +		function validate()
>> +		{
>> +			// if the other fields did not validate, no need to 
>> continue
>> +			if( !parent::validate())
>> +				return false;
>> +				+            // check to see whether we are 
>> going to save subdomain information
>> +			$valid = true;
>> +            if( Subdomains::getSubdomainsEnabled()) {
>> +
>> +				// Translate a few characters to valid names, 
>> and remove the rest
>> +                $mainDomain = 
>> Textfilter::domainize($this->_request->getValue( "blogMainDomain" ));
>> +                if(!$mainDomain)
>> +                    $mainDomain = "?";
>> +                $subDomain = 
>> Textfilter::domainize($this->_request->getValue( "blogSubDomain" ));
>> +
>> +                // get list of allowed domains
>> +				$available_domains = 
>> Subdomains::getAvailableDomains();
>> +
>> +                // make sure the mainDomain parameter is one of the 
>> blogAvailableDomains and if not,
>> +				// force a validation error
>> +                if( !Subdomains::isDomainAvailable( $mainDomain ) || 
>> !Subdomains::isValidDomainName( $subDomain )) {
>> +					$valid = false;
>> + 
>> $this->_form->setFieldValidationStatus( "blogSubDomain", false ); 
>> +					$this->validationErrorProcessing();
>> +                }
>> +
>> +                if($mainDomain == "?")
>> +                    $this->blogDomain = $subDomain;
>> +                else
>> +                    $this->blogDomain = $subDomain . "." . $mainDomain;
>> +            }
>> +
>> +			return( $valid );
>> +		}
>> +
>>         function perform()
>>         {
>> -            // validated values
>> -            $tf = new Textfilter();
>> -			            // create the new view and clean the 
>> cache
>>             $this->_view = new BlogTemplateChooserView();
>>             $this->setValues();
>>             $this->setCommonData();
>> +
>> +			return( true );
>>         }
>>     }
>> -?>
>> +?>
>> \ No newline at end of file
>> 
>> Modified: plog/trunk/class/summary/action/dofinishregister.class.php
>> ===================================================================
>> --- plog/trunk/class/summary/action/dofinishregister.class.php 
>> 2006-06-08 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/class/summary/action/dofinishregister.class.php 
>> 2006-06-08 18:31:30 UTC (rev 3559)
>> @@ -100,6 +100,7 @@
>>         function createBlog($userId)
>> 		{
>>             $this->blogName = 
>> stripslashes($this->_request->getValue("blogName"));
>> +            $this->blogDomain = 
>> stripslashes($this->_request->getValue("blogDomain"));
>>             $this->blogCategoryId = 
>> $this->_request->getValue("blogCategoryId");
>>             $this->blogLocale = $this->_request->getValue("blogLocale");
>>             $this->templateId = $this->_request->getValue("templateId");
>> @@ -118,6 +119,12 @@
>>             $blogInfo->setLocale( $locale );
>>             $blogInfo->setTemplate( $this->templateId );
>>             $blogInfo->setBlogCategoryId( $this->blogCategoryId );
>> +
>> +            if( Subdomains::getSubdomainsEnabled()) {
>> +				$blogDomain = $this->_request->getValue( 
>> "blogDomain" );
>> +				$blogInfo->setCustomDomain( $blogDomain );
>> +            }			+
>>             $newblogId = $blogs->addBlog( $blogInfo );
>>
>>             if( !$newblogId ) {
>> 
>> Modified: plog/trunk/class/summary/action/registeraction.class.php
>> ===================================================================
>> --- plog/trunk/class/summary/action/registeraction.class.php	2006-06-08 
>> 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/class/summary/action/registeraction.class.php	2006-06-08 
>> 18:31:30 UTC (rev 3559)
>> @@ -20,6 +20,7 @@
>>     var $blogCategoryId;
>>     var $blogLocale;
>>     var $templateId;
>> +    var $blogDomain;
>>     //}}}
>>
>>     //{{{function RegisterAction( $actionInfo, $request )
>> @@ -29,6 +30,7 @@
>> 				$tf = new Textfilter();
>>         $this->blogName = $tf->filterAllHTML( $this->_request->getValue( 
>> "blogName" ));
>> +        $this->blogDomain = $tf->filterAllHTML( $this->_request->getValue( 
>> "blogDomain" ));
>>         $this->blogCategoryId = $this->_request->getValue( "blogCategoryId" 
>> );
>>         $this->blogLocale = $this->_request->getValue( "blogLocale" );
>>         $this->userName = $tf->filterAllHTML($this->_request->getValue( 
>> "userName" ));
>> @@ -55,6 +57,7 @@
>>         $this->_view->setValue( "userEmail", $this->userEmail );
>>         $this->_view->setValue( "blogName", $this->blogName );
>>         $this->_view->setValue( "blogCategoryId", $this->blogCategoryId );
>> +        $this->_view->setValue( "blogDomain", $this->blogDomain );
>>         $this->_view->setValue( "blogLocale", $this->blogLocale );
>>         $this->_view->setValue( "templateId", $this->templateId );
>>     }
>> 
>> Modified: plog/trunk/class/summary/view/doblogregistrationview.class.php
>> ===================================================================
>> --- plog/trunk/class/summary/view/doblogregistrationview.class.php 
>> 2006-06-08 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/class/summary/view/doblogregistrationview.class.php 
>> 2006-06-08 18:31:30 UTC (rev 3559)
>> @@ -3,6 +3,7 @@
>> 	include_once( 
>> PLOG_CLASS_PATH."class/summary/view/summaryview.class.php" );
>> 	include_once( PLOG_CLASS_PATH."class/locale/locales.class.php" );
>> 	include_once( PLOG_CLASS_PATH."class/dao/blogcategories.class.php" );
>> +	include_once( PLOG_CLASS_PATH."class/net/http/subdomains.class.php" 
>> );
>> 		/**
>> 	 * shows a list with all the locales so that users can choose, too
>> @@ -28,8 +29,14 @@
>> 			// get a list of blog categories, so we can let user 
>> to choose
>> 			$blogCategories = new BlogCategories();
>> 			$categories = $blogCategories->getBlogCategories();
>> -			$this->setValue( "blogCategories", $categories );
>> +			$this->setValue( "blogCategories", $categories );
>> 			+			// enable or disable the 
>> drop-down list to select subdomains
>> +			if( Subdomains::getSubdomainsEnabled()) {
>> +				$this->setValue( "blogDomainsEnabled", true 
>> );
>> +				$this->setValue( "blogAvailableDomains", 
>> Subdomains::getAvailableDomains());
>> +			}
>> +						// and render the rest of the 
>> contents of the view
>> 			parent::render();
>> 		}
>> 
>> Modified: plog/trunk/class/view/admin/adminblogsettingsview.class.php
>> ===================================================================
>> --- plog/trunk/class/view/admin/adminblogsettingsview.class.php 
>> 2006-06-08 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/class/view/admin/adminblogsettingsview.class.php 
>> 2006-06-08 18:31:30 UTC (rev 3559)
>> @@ -4,6 +4,7 @@
>> 	include_once( 
>> PLOG_CLASS_PATH."class/template/templatesets/templatesets.class.php" );
>> 	include_once( PLOG_CLASS_PATH."class/locale/locales.class.php" );
>> 	include_once( PLOG_CLASS_PATH."class/dao/blogcategories.class.php" );
>> +	include_once( PLOG_CLASS_PATH."class/net/http/subdomains.class.php" 
>> );
>> 	    /**
>>      * \ingroup View
>> @@ -18,6 +19,8 @@
>> 		{
>> 			$this->AdminTemplatedView( $blogInfo, "blogsettings" 
>> );
>> 			+			$config =& 
>> Config::getConfig();			+ 
>> $blogSettings = $blogInfo->getSettings();
>> 			$this->setValue( "blogAbout", 
>> $this->_blogInfo->getAbout());
>> 			$this->setValue( "blogName", 
>> $this->_blogInfo->getBlog());
>> @@ -40,6 +43,37 @@
>> 			$this->setValue( "blogCategory", 
>> $this->_blogInfo->getBlogCategoryId());
>> 			$this->setValue( "blogShowInSummary", 
>> $this->_blogInfo->getShowInSummary());
>> 			$this->setValue( "blogSendNotification", 
>> $blogSettings->getValue( "default_send_notification" ));
>> +			+            // only do blog_domain stuff if 
>> subdomains are enabled
>> +            // Don't waste time here, as well as be less confusing by
>> +            // not showing the option to users who can't use it
>> +            if( Subdomains::getSubdomainsEnabled()) {
>> +                $domain = $this->_blogInfo->getCustomDomain();
>> +
>> +				$available_domains = 
>> Subdomains::getAvailableDomains();
>> +
>> +                // default to any domain, this will be overwritten
>> +                // if the domain is found in the available_domains array
>> +                $subdomain = $domain;
>> +                $maindomain = "?";
>> +
>> +                foreach($available_domains as $avdomain){
>> +	                // search to see if domain suffix is on
>> +	                // the available_domain list.
>> +	                $found = strpos($domain, $avdomain);
>> +	                if($found !== FALSE && $found == (strlen($domain) - 
>> strlen($avdomain))){
>> +	                $subdomain = substr($domain, 0, $found-1);
>> +	                $maindomain = $avdomain;
>> +	                break;
>> +	                }
>> +                }
>> +
>> +                // pass the domain information to the view
>> +                $this->setValue( "blogSubDomain", $subdomain );
>> +                $this->setValue( "blogMainDomain", $maindomain );
>> +                $this->setValue( "blogAvailableDomains", 
>> $available_domains );
>> +                $this->setValue( "blogDomainsEnabled", 1 );
>> +            }					}
>> 				function render()
>> 
>> Modified: plog/trunk/locale/locale_en_UK.php
>> ===================================================================
>> --- plog/trunk/locale/locale_en_UK.php	2006-06-08 17:33:01 UTC (rev 
>> 3558)
>> +++ plog/trunk/locale/locale_en_UK.php	2006-06-08 18:31:30 UTC (rev 
>> 3559)
>> @@ -688,7 +688,6 @@
>> $messages['help_temp_folder'] = 'Folder that LifeType can use to write its 
>> temporary data such as compiled templates, etc. Use a folder outside the 
>> web server tree for increased security [Default = ./tmp]';
>> $messages['help_base_url'] = 'Base URL where this blog is installed';
>> $messages['help_subdomains_enabled'] = 'Enable or disable subdomains. 
>> Please see the documentation for more information regarding subdomains 
>> [Default = No]';
>> -$messages['help_subdomains_base_url'] = 'When subdomains are enabled, this 
>> base URL is used instead of base_url. Use {blogname} to get the blog name 
>> and {username} to get the name of the user owner of the blog in order to 
>> generate a link to a blog. (i.e. http://{blogname}.yourdomain.com)';
>> $messages['help_include_blog_id_in_url'] = 'Meaningful only when subdomains 
>> are enabled and "normal" URLs are enabled, forces internally-generated URLs 
>> not to have the "blogId" parameter. Do not change unless you know what you 
>> are doing [Default = Yes]';
>> $messages['help_script_name'] = 'Set this if you need to rename index.php 
>> to something else [Default = index.php]';
>> $messages['help_show_posts_max'] = 'Maximum number of posts shown in the 
>> main page. Only meaningful for new blogs [Default = 15]';
>> @@ -1041,6 +1040,11 @@
>> $messages['first_day_of_week_label'] = 'First Day of Week';
>> $messages['first_day_of_week_help'] = 'First Day of Week in calendar';
>> 
>> +$messages['help_subdomains_base_url'] = 'When subdomains are enabled, this 
>> base URL is used instead of base_url. Use {blogname} to get the blog name, 
>> {username} to get the name of the user owner of the blog and {blogdomain} 
>> to allow the user to specify any subdomain in order to generate a link to a 
>> blog. (e.g.. http://{blogname}.yourdomain.com)';
>> +
>> $messages['registration_default_subject'] = 'LifeType registration 
>> confirmation';
>> 
>> +$messages['error_invalid_subdomain'] = 'The subdomain name is not valid or 
>> it is not unique';
>> +$messages['register_blog_domain_help'] = 'Name and subdomain that you 
>> would like to use for your new blog';
>> +$messages['domain'] = 'Domain';
>> ?>
>> \ No newline at end of file
>> 
>> Modified: plog/trunk/templates/admin/blogsettings.template
>> ===================================================================
>> --- plog/trunk/templates/admin/blogsettings.template	2006-06-08 17:33:01 
>> UTC (rev 3558)
>> +++ plog/trunk/templates/admin/blogsettings.template	2006-06-08 18:31:30 
>> UTC (rev 3559)
>> @@ -15,7 +15,29 @@
>>       {include file="$admintemplatepath/validate.template" field=blogName 
>> message=$locale->tr("error_empty_name")}
>>     </div>
>> 
>> +    {if $blogDomainsEnabled}
>>     <div class="field">
>> +      <label for="blogSubDomain">{$locale->tr("domain")}</label>
>> +      <div 
>> class="formHelp">{$locale->tr("register_blog_domain_help")}</div>
>> +      <input type="text" name="blogSubDomain" id="blogSubDomain" 
>> style="width:150px" value="{$blogSubDomain}" />
>> +      <select name="blogMainDomain" id="blogMainDomain">
>> +       {foreach from=$blogAvailableDomains item=domain}
>> +        <option value="{$domain}"
>> +             {if $domain == $blogMainDomain}selected{/if}>
>> +             {if $domain == "?"}
>> +               {$locale->tr("subdomains_any_domain")}
>> +             {else}
>> +               .{$domain}
>> +             {/if}
>> +        </option>
>> +       {/foreach}
>> +      </select>
>> +      {include file="$admintemplatepath/validate.template" 
>> field=blogSubDomain message=$locale->tr("error_invalid_subdomain")}
>> +      {include file="$admintemplatepath/validate.template" 
>> field=blogMainDomain message=$locale->tr("error_invalid_domain")}
>> +    </div>
>> +    {/if}
>> +
>> +    <div class="field">
>>       <label for="blogAbout">{$locale->tr("description")}</label>
>>       <span class="required"></span>
>>       <div class="formHelp">{$locale->tr("blog_description_help")}</div>
>> 
>> Modified: plog/trunk/templates/admin/globalsettings_general.template
>> ===================================================================
>> --- plog/trunk/templates/admin/globalsettings_general.template 
>> 2006-06-08 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/templates/admin/globalsettings_general.template 
>> 2006-06-08 18:31:30 UTC (rev 3559)
>> @@ -38,6 +38,12 @@
>>     <div class="formHelp">{$locale->tr("help_subdomains_base_url")}</div>
>>     <input style="width:100%" type="text" 
>> name="config[subdomains_base_url]" value="{$subdomains_base_url}"/>
>>    </div>
>> +   <!-- subdomains_available_domains -->
>> +   <div class="field">
>> +    <label 
>> for="config[subdomains_available_domains]">subdomains_available_domains</label>
>> +    <div 
>> class="formHelp">{$locale->tr("help_subdomains_available_domains")}</div>
>> +    <input style="width:100%" type="text" 
>> name="config[subdomains_available_domains]" 
>> value="{$subdomains_available_domains}"/>
>> +   </div>
>>    <!-- include_blog_id_in_url -->
>>    <div class="field">
>>     <label 
>> for="config[include_blog_id_in_url]">include_blog_id_in_url</label>
>> 
>> Modified: plog/trunk/templates/summary/registerstep2.template
>> ===================================================================
>> --- plog/trunk/templates/summary/registerstep2.template	2006-06-08 
>> 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/templates/summary/registerstep2.template	2006-06-08 
>> 18:31:30 UTC (rev 3559)
>> @@ -10,7 +10,30 @@
>>      <input type="text" name="blogName" value="{$blogName}" id="blogName" 
>> />
>>      {include file="summary/validate.template" field=blogName 
>> message=$locale->tr("error_empty_name")}
>>    </div>
>> +
>> +   {if $blogDomainsEnabled}
>>    <div class="field">
>> +     <label for="blogSubDomain">{$locale->tr("domain")}</label>
>> +	 <span class="required">*</span>
>> +     <div 
>> class="formHelp">{$locale->tr("register_blog_domain_help")}</div>
>> +     <input type="text" name="blogSubDomain" id="blogSubDomain" 
>> style="width:150px" value="{$blogSubDomain}" />
>> +     <select name="blogMainDomain" id="blogMainDomain">
>> +      {foreach from=$blogAvailableDomains item=domain}
>> +       <option value="{$domain}" {if $domain == 
>> $blogMainDomain}selected{/if}>
>> +            {if $domain == "?"}
>> +              {$locale->tr("subdomains_any_domain")}
>> +            {else}
>> +              .{$domain}
>> +            {/if}
>> +       </option>
>> +      {/foreach}
>> +     </select>
>> +     {include file="summary/validate.template" field=blogSubDomain 
>> message=$locale->tr("error_invalid_subdomain")}
>> +     {include file="summary/validate.template" field=blogMainDomain 
>> message=$locale->tr("error_invalid_domain")}
>> +   </div>
>> +   {/if}
>> +
>> +   <div class="field">
>>      <label for="blogCategoryId">{$locale->tr("blog_category")}</label>
>>      <span class="required">*</span>
>>      <div class="formHelp">{$locale->tr("blog_category_help")}</div>
>> @@ -20,6 +43,7 @@
>>       {/foreach}
>>      </select>
>>    </div>
>> +
>>    <div class="field">
>>      <label for="blogLocale">{$locale->tr("language")}</label>
>>      <span class="required">*</span>
>> 
>> Modified: plog/trunk/templates/summary/registerstep3.template
>> ===================================================================
>> --- plog/trunk/templates/summary/registerstep3.template	2006-06-08 
>> 17:33:01 UTC (rev 3558)
>> +++ plog/trunk/templates/summary/registerstep3.template	2006-06-08 
>> 18:31:30 UTC (rev 3559)
>> @@ -31,6 +31,7 @@
>>     <!-- <input type="button" 
>> onClick="javascript:window.location='summary.php?op=RegisterStep3'" 
>> value="&laquo; {$locale->tr("register_back")}" name="Register"/> -->
>>     <input type="submit" name="{$locale->tr("register_next")}" 
>> value="{$locale->tr("register_next")} &raquo;"/>
>>     <input type="hidden" name="userName" value="{$userName}"/>
>> +    <input type="hidden" name="blogDomain" value="{$blogDomain}"/>
>>     <input type="hidden" name="userFullName" value="{$userFullName}"/>
>>     <input type="hidden" name="userPassword" value="{$userPassword}"/>
>>     <input type="hidden" name="userEmail" value="{$userEmail}"/>
>> 
>> _______________________________________________
>> pLog-svn mailing list
>> pLog-svn at devel.lifetype.net
>> http://devel.lifetype.net/mailman/listinfo/plog-svn
>> 
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.lifetype.net/mailman/listinfo/plog-svn

**************************************
Jon Daley
http://jon.limedaley.com/

The meanness of another merely provides an excuse to hate,
   but never a valid reason.
-- Joseph Girzone


More information about the pLog-svn mailing list