X-Cart: shopping cart software

X-Cart forums (https://forum.x-cart.com/index.php)
-   Changing design (https://forum.x-cart.com/forumdisplay.php?f=51)
-   -   How to add php code? (https://forum.x-cart.com/showthread.php?t=53638)

sinobest 05-07-2010 05:06 AM

How to add php code?
 
i want to add som php code to home_main.tpl, how to do?

balinor 05-07-2010 05:32 AM

Re: How to add php code?
 
You can't add php code to templates, you need to add it to the php files - what exactly are you trying to do?

Shamun 05-07-2010 10:20 AM

Re: How to add php code?
 
You can add php code to the .tpl files using {php}{/php} but for simplicity you should be adding it to a .php file outside of the /skin1/ directory tree.

balinor 05-07-2010 12:33 PM

Re: How to add php code?
 
Sorry, I should have said 'It is not good practice to add php to the templates'

sinobest 05-09-2010 07:57 AM

Re: How to add php code?
 
for example, i want to add the following php code to x-cart:
Code:

<?php
// Include Wordpress
define('WP_USE_THEMES', false);
require('../../wp/en/glasses/wp-load.php');
query_posts('showposts=5');
?>
<?php while (have_posts()): the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<p><a href="<?php the_permalink(); ?>">Read more...</a></p>
<?php endwhile; ?>


how to do?

tks.

Shamun 05-09-2010 01:19 PM

Re: How to add php code?
 
Just so you know, it probably won't work.
If Wordpress has any php functions with the same names as in X-cart (which is likely) then you'll have errors. You will probably have session problems as well.

As for how, I believe you'll need to put that into init.php
You will also need to assign the php variables as smarty variables to call via {$variable} in your template.

sinobest 05-10-2010 06:08 PM

Re: How to add php code?
 
how to do, pls?

sinobest 06-24-2010 04:39 AM

Re: How to add php code?
 
anybody can share his skills?
tks.

Shamun 06-24-2010 05:44 AM

Re: How to add php code?
 
Your wanting to use non-xcart and non-smarty code in an xcart and smarty environment. Not to mention wordpress is huge...

You should talk to qualiteam, bcse etc. if you really want it done.

geckoday 06-24-2010 05:50 AM

Re: How to add php code?
 
To avoid conflicts with X-Cart you should pull the Wordpress posts using an RSS feed. I created a Smarty plugin to do this. Create a file include/templater/plugins/function.sr_wpfeed.php with this code:

PHP Code:

<?php
if ( !defined('XCART_START') ) { header("Location: home.php"); die("Access denied"); }
## -----------------------------------------------------------------------------
## Smarty plugin "sr_wpfeed"
## Purpose: Return wordpress RSS feed
##          Snow River X-Cart web store
##
## Author: Ralph Day, Snow River
##
##
## -----------------------------------------------------------------------------
##
## Changelog:
##
## 2009-10-26 Created (RD)
##
##
## -----------------------------------------------------------------------------
##
##
## Sample usage
## ------------
## {sr_wpfeed var="someposts" wpsite="http://www.snowriver.com/uggs-and-more" num=2}
## <foreach from=$someposts item=somepost>
##   {$somepost.link}
##   {$somepost.title}
##   {$somepost.description}
## </foreach>
## 
##
## Parameters
## ----------
## var [string] (required)
##      Name for Smarty variable to return feed array in
## 
## wpsite [string] (required)
##      URL of Wordpress site
## 
## num [integer] (required)
##      number of posts to return
## 
## 
## -----------------------------------------------------------------------------

function smarty_function_sr_wpfeed($params, &$smarty) {

  global 
$sql_tbl;
  global 
$store_language;

  
$required_params = array('var','wpsite''num');

  foreach(
$required_params as $_key => $reqd_param) {
    if (!isset(
$params[$reqd_param]))
      
$smarty->trigger_error("sr_wpfeed: required attribute '$reqd_param' not passed"E_USER_ERROR);
  }

  
$var      '';
  
$wpsite '';
  
$num 0;
  foreach(
$params as $_key => $_val) {
    switch(
$_key) {
      case 
'wpsite':
      case 
'var':
          if (!
is_array($_val)) {
              if (
$_val <> '')
                $
$_key $_val;
              else
                
$smarty->trigger_error("sr_wpfeed: '$_key' cannot be an empty string"E_USER_ERROR);
          } else
              
$smarty->trigger_error("sr_wpfeed: '$_key' cannot be an array"E_USER_ERROR);
          break;
          
      case 
'num':
          if (!
is_array($_val)) {
            $
$_key = (int)$_val;
            if ($
$_key || $$_key >25)
                
$smarty->trigger_error("sr_wpfeed: '$_key' not between 1 and 25"E_USER_ERROR);
          } else
              
$smarty->trigger_error("sr_wpfeed: '$_key' cannot be an array"E_USER_ERROR);
          break;

      default:
          
$smarty->trigger_error("sr_wpfeed: attribute '$_key' not recognized"E_USER_NOTICE);
          break;
    }
  }
    if(!
$xml=simplexml_load_file($wpsite.'/feed')){
        
trigger_error('Error reading XML file',E_USER_ERROR);
    }
  
$posts = array();
    foreach(
$xml as $item){
        for(
$i=0$i<count($item->item); $i++){
            if(
$i<$num){
        
$posts[] = array('link'         =>  (string)$item->item[$i]->link
                       
'title'        =>  htmlentities($item->item[$i]->title,ENT_COMPAT'UTF-8')
                       , 
'description'  =>  $item->item[$i]->description
                       
);
      }
        }
    }

  
$smarty->assign($var$posts);
}
?>


The sample usage comments in the code shows what you can drop into your desired .tpl file to display the posts.


All times are GMT -8. The time now is 09:55 PM.

Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.