source: qesdi/joomla/trunk/custom_extensions/plg_simplecaddy17_qesdi_mod/simplecaddy.php @ 5908

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/qesdi/joomla/trunk/custom_extensions/plg_simplecaddy17_qesdi_mod/simplecaddy.php@5908
Revision 5908, 7.4 KB checked in by pnorton, 11 years ago (diff)

Created modified version of the extensions based on the changes to the
installed code.

Line 
1<?php
2/**
3* @package SimpleCaddy 1.7 for Joomla
4* @copyright Copyright (C) 2006-2009 Henk von Pickartz. All rights reserved.
5* GNU/GPL license
6*/
7
8// no direct access
9// Check to ensure this file is included in Joomla!
10defined( '_JEXEC' ) or die();
11$debug=0;
12
13jimport( 'joomla.plugin.plugin' );
14JPlugin::loadLanguage( 'plg_simplecaddy' );
15
16$mainframe->registerEvent( 'onPrepareContent', 'plgCaddy' );
17require_once (JPATH_ROOT.DS.'components'.DS.'com_caddy'.DS.'caddy.class.php');
18require_once (JPATH_ROOT.DS.'components'.DS.'com_caddy'.DS.'caddy.cart.class.php');
19
20
21function plgCaddy( &$row, &$plgParams, $page=0) {
22        $regex = '/{(simplecaddy)\s*(.*?)}/i';
23        $plugin =& JPluginHelper::getPlugin('content', 'simplecaddy');
24        // to get any params for the plugin
25        $pluginParams   = new JParameter( $plugin->params );
26
27        $parms=array();
28        $matches = array();
29        preg_match_all( $regex, $row->text, $matches, PREG_SET_ORDER );
30        foreach ($matches as $elm) {
31                $line=str_replace("&nbsp;", " ", $elm[2]);
32                $line=str_replace(" ", "&", $line);
33                parse_str( $line, $parms );
34                $html=getSC($parms, $pluginParams, 1);
35                $row->text = preg_replace($regex, $html, $row->text, 1);
36        }
37        return true;
38}
39
40function getSC($params, $pluginParams, $debugmode=0) {
41        global $Itemid;
42//printf("<pre>%s</pre>", print_r($plgParams,1));
43        $prodcode=$params['code'];
44        $defaultqty=isset($params['defqty']) ? $params['defqty'] : 1;
45        $cfg=new sc_configuration();
46        $tsep=$cfg->get('thousand_sep');
47        $dsep=$cfg->get('decimal_sep');
48        $decs=$cfg->get('decimals');
49        $currency=$cfg->get('currency');
50        $curralign=$cfg->get('curralign');
51
52        $db     =& JFactory::getDBO();
53        $query="SELECT * FROM #__sc_products WHERE prodcode='$prodcode'";
54        $db->setQuery( $query );
55        $product = $db->loadObject();
56
57        if (!$product) {
58                $html  ="<div class='sccart'>";
59                $html .="<h3>The product code ($prodcode) is not found.</h3>";
60                $html .="</div>";
61                return $html;
62        }
63
64        if ($product->published=='0') {
65                $html  ="<div class='sccart'>";
66                $html .="<h3>The product (code : $prodcode) is not published.</h3>";
67                $html .="</div>";
68                return $html;
69        }
70
71        if (!$db->query()) {
72                echo "<script> alert('".$db->getErrorMsg()."'); window.history.go(-1); </script>\n";
73                exit();
74        }
75       
76        $prodpresentation="";
77        if ($pluginParams->get('showproductcodetext')) $prodpresentation .= "\n<span class='scproduct'>#PRODUCTCODETEXT#</span>";
78        if ($pluginParams->get('showproductcode')) $prodpresentation.="\n<span class='scprodcode'>#PRODUCTCODE#</span>";
79        if ($pluginParams->get('showtitle')) $prodpresentation.="\n<span class='scshorttext'>#SHORTTEXT#</span>";
80        if ($pluginParams->get('showunitpricetext')) $prodpresentation.="\n<span class='scunitprice'>#UNITPRICETEXT#</span>";
81        if ($pluginParams->get('showunitprice')) $prodpresentation.="\n<span class='scunitprice'>#UNITPRICE#</span>";
82        if ($pluginParams->get('showquantitytext')) $prodpresentation.="\n<span class='scunitprice'>#QUANTITYTEXT#</span>";
83        $prodpresentation.="\n<span class='scunitprice'>#QUANTITY#</span>";
84        $prodpresentation.="\n#CARTOPTIONS#";   
85        $prodpresentation.="\n<div class='atczone'>#ADDTOCARTBUTTON#</div>";
86
87        $html  ="\n<div class='sccart'>";
88        $html .="\n<form name='addtocart$product->id' action='index.php' method='post'>";
89
90        $amount = number_format($product->unitprice, $decs, $dsep, $tsep);
91        if ($curralign==1) {
92                $amount = $currency ."&nbsp;". $amount;
93        }
94        else
95        {
96                $amount = $amount ."&nbsp;". $currency;
97        }
98
99        $html .= $prodpresentation;
100
101
102        $optionhtml ="<div class='cartoptions'>";
103        if ($pluginParams->get('showcartoptionstitle')) $optionhtml.="\n<div class='cartoptions'>#CARTOPTIONSTITLE#</div>";
104//add the options line here
105        $hasoptions=0;
106        if (trim($product->options)) {
107                $hasoptions=1;
108                $options=explode("\n", trim($product->options));
109                switch ($product->showas) {
110                        case "1": // radio buttons
111                                foreach ($options as $key=>$po) {
112                                        list($shorttext, $formula, $caption, $defselect )=explode(":", $po);
113                                        $id=md5($product->prodcode.$po);
114                                        $checked="";
115                                        if (trim($defselect) == "default") $checked=" checked='checked' ";
116                                        $optionhtml .= "<input type='radio' name='edtoption' value='$id:$po' $checked />".stripslashes($shorttext)." | \n";
117                                }
118                                break;
119                        case "4": // vertical radio buttons
120                                foreach ($options as $key=>$po) {
121                                        list($shorttext, $formula, $caption, $defselect )=explode(":", $po);
122                                        $id=md5($product->prodcode.$po);
123                                        $checked="";
124                                        if ($defselect=="default") $checked=" checked='checked' ";
125                                        $optionhtml .= "\n<br /><input type='radio' name='edtoption' value='$id:$po' $checked />".stripslashes($shorttext);
126                                        $optionhtml.=" $caption";
127                                }
128                                break;
129                        case "2": // dropdown list
130                                $optionhtml.="<select name='edtoption'>\n";
131                                foreach ($options as $key=>$po) {
132                                        list($shorttext, $formula, $caption, $defselect )=explode(":", $po);
133                                        $id=md5($product->prodcode.$po);
134                                        $checked="";
135                                        if ($defselect=="default") $checked=" selected='selected' ";
136                                        $optionhtml .= "<option value='$id:$po' $checked>".stripslashes($shorttext)." $caption</option>\n";
137                                }
138                                $optionhtml .= "</select>\n";
139                                break;
140                        case "3": // standard list
141                                $optionhtml.="<select name='edtoption' size='10'>\n";
142                                foreach ($options as $key=>$po) {
143                                        list($shorttext, $formula, $caption, $defselect )=explode(":", $po);
144                                        $id=md5($product->prodcode.$po);
145                                        $checked="";
146                                        if ($defselect=="default") $checked=" selected='selected' ";
147                                        $optionhtml .= "<option value='$id:$po' $checked>".stripslashes($shorttext)." $caption</option>\n";
148                                }
149                                $optionhtml .= "</select>\n";
150                                break;
151                        default:
152                                $optionhtml .= "";
153                }
154        }
155        else
156        { // product without options - generate id from productcode
157                $id=md5($product->prodcode);
158                $optionhtml .= "\n<input type='hidden' value='$id' name='edtoption' />";
159        }
160        $optionhtml .="</div>";
161        $atcbtn ="\n<input type='submit' name='submit' value='".JText::_('SC_ADD_TO_CART')."' class='scbutton' />";
162        $qtyfield="\n<input type='". ($pluginParams->get('showquantity')?'text':'hidden') ."' name='edtqty' value='$defaultqty' size='1' />";
163        $html .="\n<input type='hidden' name='edtprodcode' value='$product->prodcode' />";
164        $html .="\n<input type='hidden' name='edtshorttext' value='$product->shorttext' />";
165        $html .="\n<input type='hidden' name='edtunitprice' value='$product->unitprice' />";
166        $html .="\n<input type='hidden' name='option' value='com_caddy' />";
167        $html .="\n<input type='hidden' name='action' value='addtocart' />";
168        $html .="\n<input type='hidden' name='Itemid' value='$Itemid' />";
169        $html .="\n</form>";
170        $html .="</div>";
171
172//now replace any variables
173        $html=str_replace("#PRODUCTCODETEXT#", JText::_('SC_PRODUCT'), $html);
174        $html=str_replace("#PRODUCTCODE#", $product->prodcode, $html);
175        $html=str_replace("#SHORTTEXT#", $product->shorttext, $html);
176        $html=str_replace("#UNITPRICETEXT#", JText::_('SC_PRICE_PER_UNIT'), $html);
177        $html=str_replace("#UNITPRICE#", $amount, $html);
178        $html=str_replace("#QUANTITY#", $qtyfield, $html);
179        $html=str_replace("#QUANTITYTEXT#", JText::_('SC_QUANTITY'), $html);
180                $html=str_replace("#ADDTOCARTBUTTON#", $atcbtn, $html);
181        $html=str_replace("#CARTOPTIONS#", $optionhtml, $html);
182        if (trim($product->options)) {
183                $html=str_replace("#CARTOPTIONSTITLE#", stripslashes($product->optionstitle), $html);
184        }
185        else
186        {
187                $html=str_replace("#CARTOPTIONSTITLE#", "", $html);
188        }
189        return $html;
190}
191
192?>
Note: See TracBrowser for help on using the repository browser.