Follow us on Twitter X-Cart on Facebook Wiki
Shopping cart software Solutions for online shops and malls
 

MultiSkin

 
Reply
   X-Cart forums > X-Cart 4 > Dev Questions > Changing design
 
Thread Tools Search this Thread
  #11  
Old 10-15-2003, 07:18 AM
 
buster buster is offline
 

Newbie
  
Join Date: Feb 2003
Posts: 7
 

Default

Ok, (not that anyone is following this thread )
Here is the latest that I have, (the whole smarty.php):
Code:
<? /*****************************************************************************\ +-----------------------------------------------------------------------------+ | X-Cart | | Copyright (c) 2001-2003 Ruslan R. Fazliev <rrf@rrf.ru> | | All rights reserved. | +-----------------------------------------------------------------------------+ | PLEASE READ THE FULL TEXT OF SOFTWARE LICENSE AGREEMENT IN THE "COPYRIGHT" | | FILE PROVIDED WITH THIS DISTRIBUTION. THE AGREEMENT TEXT IS ALSO AVAILABLE | | AT THE FOLLOWING URL: http://www.x-cart.com/license.php | | | | THIS AGREEMENT EXPRESSES THE TERMS AND CONDITIONS ON WHICH YOU MAY USE | | THIS SOFTWARE PROGRAM AND ASSOCIATED DOCUMENTATION THAT RUSLAN R. | | FAZLIEV (hereinafter referred to as "THE AUTHOR") IS FURNISHING OR MAKING | | AVAILABLE TO YOU WITH THIS AGREEMENT (COLLECTIVELY, THE "SOFTWARE"). | | PLEASE REVIEW THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT | | CAREFULLY BEFORE INSTALLING OR USING THE SOFTWARE. BY INSTALLING, | | COPYING OR OTHERWISE USING THE SOFTWARE, YOU AND YOUR COMPANY | | (COLLECTIVELY, "YOU") ARE ACCEPTING AND AGREEING TO THE TERMS OF THIS | | LICENSE AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY THIS | | AGREEMENT, DO NOT INSTALL OR USE THE SOFTWARE. VARIOUS COPYRIGHTS AND | | OTHER INTELLECTUAL PROPERTY RIGHTS PROTECT THE SOFTWARE. THIS | | AGREEMENT IS A LICENSE AGREEMENT THAT GIVES YOU LIMITED RIGHTS TO USE | | THE SOFTWARE AND NOT AN AGREEMENT FOR SALE OR FOR TRANSFER OF TITLE.| | THE AUTHOR RETAINS ALL RIGHTS NOT EXPRESSLY GRANTED BY THIS AGREEMENT. | | | | The Initial Developer of the Original Code is Ruslan R. Fazliev | | Portions created by Ruslan R. Fazliev are Copyright (C) 2001-2003 | | Ruslan R. Fazliev. All Rights Reserved. | +-----------------------------------------------------------------------------+ \*****************************************************************************/ # # $Id: smarty.php, Modified $ # umask(0); # # If we are in subdir of X-Cart dir, then include with '../' # else include with './' # if (!@include("../Smarty-2.5.0/Smarty.class.php")) @include("./Smarty-2.5.0/Smarty.class.php"); # # Get absolute path # define('BASEDIR', realpath(dirname(__FILE__))); # # Smarty object for processing html templates # $smarty = new Smarty; if( $HTTP_GET_VARS['skin']){ // Setting the fake cookie so we can do some if's later $_COOKIE['skin'] = $HTTP_GET_VARS['skin']; //Setting the real cookie, expires 1 year from now setcookie('skin', $HTTP_GET_VARS['skin'], time() + 31536000); } else { // Setting the fake cookie so we can do some if's later $_COOKIE['skin'] = $HTTP_COOKIE_VARS['skin']; //Updating the real cookie to expire 1 year form now setcookie('skin', $HTTP_COOKIE_VARS['skin'], time() + 31536000); } // Set some directories based on cookie, or lack of cookie if( $_COOKIE['skin'] == 2){ $smarty->template_dir = BASEDIR.DIRECTORY_SEPARATOR."skin2"; $smarty->compile_dir = BASEDIR.DIRECTORY_SEPARATOR."templates2_c"; $smarty->config_dir = BASEDIR.DIRECTORY_SEPARATOR."skin2"; $smarty->cache_dir = BASEDIR.DIRECTORY_SEPARATOR."cache2"; $smarty->secure_dir = BASEDIR.DIRECTORY_SEPARATOR."skin2"; $smarty->debug_tpl="file:debug_templates.tpl"; $smarty->assign("ImagesDir","../skin2/images"); $smarty->assign("SkinDir","../skin2"); } else { //Default Template in case cookie is not set $smarty->template_dir = BASEDIR.DIRECTORY_SEPARATOR."skin1"; $smarty->compile_dir = BASEDIR.DIRECTORY_SEPARATOR."templates_c"; $smarty->config_dir = BASEDIR.DIRECTORY_SEPARATOR."skin1"; $smarty->cache_dir = BASEDIR.DIRECTORY_SEPARATOR."cache"; $smarty->secure_dir = BASEDIR.DIRECTORY_SEPARATOR."skin1"; $smarty->debug_tpl="file:debug_templates.tpl"; $smarty->assign("ImagesDir","../skin1/images"); $smarty->assign("SkinDir","../skin1"); } if( !is_dir($smarty->compile_dir) && !file_exists($smarty->compile_dir) ) @mkdir($smarty->compile_dir); if( !is_writable($smarty->compile_dir) || !is_dir($smarty->compile_dir) ){ echo "Can't write template cache in the directory: ".$smarty->compile_dir.". Please check if it exists, and have writable permissions."; exit; } $file_temp_dir=$smarty->compile_dir; # # Smarty object for processing mail templates # $mail_smarty = $smarty; # # WARNING : # Please ensure that you have no whitespaces / empty lines below this message. # Adding a whitespace or an empty line below this line will cause a PHP error. # ?>

I copied the default skin1 directory to a new skin2 directory.
If you add ?skin=# to the end of the URL the change is immediate, unlike my last post. You don't need ?skin=# except to change skins. The cookie stays between sessions. Still reading up on cookies, security wise.

The admin section is a little funny.
When you are in the admin section you can change skins after you login. After changing skins you can edit the skin, yadda, yadda. When you log out it goes back to skin1, I assume the cookie gets deleted when you logout, that way you are forced to re-enter your username and password.
So still looking at that as well.

Any help? Comment? Foreseeable problems?
Reply With Quote
  #12  
Old 10-16-2003, 08:38 AM
 
buster buster is offline
 

Newbie
  
Join Date: Feb 2003
Posts: 7
 

Default

Ok, figured out the admin section. When you set the cookie you have to set the path that can read the cookie. So if you do this:
Code:
setcookie('skin', $HTTP_GET_VARS['skin'], time() + 31536000, "/");
Then the skin works for the admin section as well.
Reply With Quote
  #13  
Old 10-19-2003, 11:28 AM
  B00MER's Avatar 
B00MER B00MER is offline
 

X-Guru
  
Join Date: Sep 2002
Location: Keller, TX (Cart-Lab.com)
Posts: 3,165
 

Default

Your close but not quite there yet

I've already got such done, and is in working condition & tested on live sites, mod_skinswap:

http://www.cartlab.net/lab/customer/product.php?productid=27

New version is about to be released which includes some of the new features:

- Admin configurable
- Disable/Enabled Swapping
- What to swap with, Store Language, Affiliate ID, Skin variable or any other variable.
- Default skin (fallback) if none is specified
- Use a skin repository directory to store all skins, or use subdirs directly from the root of xcart/
- Set which debug template to use on "Enable debug console" in General Settings of admin. (debug.tpl, or debug_tempaltes.tpl)
- Cookie lifetime of 1 year of skin choice.
- Check if skin directory specified in swap variable exist if not fallback to default.

http://www.cartlab.net/images/skinswap_ss.gif

The new version will be either released today or tomorrow.

Kudos!
__________________
Cart-Lab - 100+ Social Bookmarks for X-Cart.
Reply With Quote
Reply
   X-Cart forums > X-Cart 4 > Dev Questions > Changing design



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -8. The time now is 07:17 AM.

   

 
X-Cart forums © 2001-2020