You can subscribe to this list here.
| 2011 |
Jan
|
Feb
|
Mar
(4) |
Apr
(57) |
May
(31) |
Jun
(21) |
Jul
(11) |
Aug
(23) |
Sep
(22) |
Oct
(36) |
Nov
(62) |
Dec
(85) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2012 |
Jan
(24) |
Feb
(24) |
Mar
(65) |
Apr
(232) |
May
(118) |
Jun
(22) |
Jul
(54) |
Aug
(57) |
Sep
(14) |
Oct
(27) |
Nov
(16) |
Dec
(19) |
| 2013 |
Jan
(16) |
Feb
(12) |
Mar
(3) |
Apr
(17) |
May
(2) |
Jun
(30) |
Jul
(33) |
Aug
(19) |
Sep
(35) |
Oct
(58) |
Nov
(27) |
Dec
(64) |
| 2014 |
Jan
(102) |
Feb
(80) |
Mar
(15) |
Apr
(4) |
May
(3) |
Jun
(3) |
Jul
(5) |
Aug
(11) |
Sep
(15) |
Oct
|
Nov
(3) |
Dec
(5) |
| 2015 |
Jan
(5) |
Feb
(4) |
Mar
(2) |
Apr
(11) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(9) |
Nov
(10) |
Dec
|
| 2016 |
Jan
(3) |
Feb
(2) |
Mar
(18) |
Apr
(13) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
|
|
From: <hom...@us...> - 2015-11-14 11:15:59
|
Revision: 5279
http://sourceforge.net/p/oscss/svn/5279
Author: homer8173
Date: 2015-11-14 11:15:56 +0000 (Sat, 14 Nov 2015)
Log Message:
-----------
Install new lightbox responsive - Licence MIT
src = http://osvaldas.info/image-lightbox-responsive-touch-friendly
Modified Paths:
--------------
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/gabarit/product/view.gab
Added Paths:
-----------
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/imagelightbox.min.js
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/lightbox.css
trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/includes_header.php
Modified: trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/gabarit/product/view.gab
===================================================================
--- trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/gabarit/product/view.gab 2015-11-12 14:28:05 UTC (rev 5278)
+++ trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/gabarit/product/view.gab 2015-11-14 11:15:56 UTC (rev 5279)
@@ -1,4 +1,5 @@
<?php
+
/**
@licence GPL 2005-2010 The osCSS developers - osCSS Open Source E-commerce
@package osCSS-2 <www http://www.oscss.org>
@@ -21,68 +22,70 @@
<div class="col-sm-6 col-sm-push-6">
<?php if(!in_array( $page->GetPageType(), array('checkout', 'account') ) && is_object($ACA) && ($modules=$ACA->display_view($page->GetVar('current_id'))) && is_array($modules) && count($modules)>0 ): /** Boucle des modules aca actif */ ?>
- <section class="childsmod <?php echo $page->the_type(); ?>">
- <ul id="myTab" class="nav nav-pills" role="tablist">
+ <section class="childsmod <?php echo $page->the_type(); ?>">
+ <ul id="myTab" class="nav nav-pills" role="tablist">
<?php foreach ($modules as $k => $ModTypeRow) {
$i++;
echo '<li '.(($i===1)?'class="active"':"").'><a href="'.$myUrl.'#in_tabs' . $i . $k . '" role="tab" data-toggle="tab">' . $ModTypeRow->GetTitle() . '</a> </li>';
} ?>
- </ul>
- <div id="tab-content" class="tab-content">
+ </ul>
+ <div id="tab-content" class="tab-content">
<?php reset($modules);
$i = 1;
foreach ($modules as $k => $ModTypeRow) {
$i++;
?>
- <div id="in_tabs<?php echo $i . $k ?>" class="tab-pane text-justify thumbnail fade <?= (($i===2)?'in active':"") ?>">
+ <div id="in_tabs<?php echo $i . $k ?>" class="tab-pane text-justify thumbnail fade <?= (($i===2)?'in active':"") ?>">
<?php echo unhtmlentities($ModTypeRow->GetContent()); ?>
- <br style="clear:both" />
- </div>
+ <br style="clear:both" />
+ </div>
<?php } ?>
- </div>
- </section>
+ </div>
+ </section>
<?php endif; ?>
-
<div class="share-buttons btn-group center-block">
- <a class="btn btn-disable btn-lg"><span class="glyphicon glyphicon-bullhorn"></span></a>
- <a target="_blank" class="btn btn-default btn-lg" title="Share on Facebook" href="https://www.facebook.com/sharer/sharer.php?u=PRODUCT-URL"><i class="sprite-facebook rotator"></i></a>
- <a target="_blank" class="btn btn-default btn-lg" title="Share on Twitter" href="https://twitter.com/home?status=PRODUCT-URL"><i class="sprite-tweeter rotator"></i></a>
- <a target="_blank" class="btn btn-default btn-lg" title="Share on Google+" href="https://plus.google.com/share?url=PRODUCT-URL"><i class="sprite-googlep rotator"></i></a>
- <a target="_blank" class="btn btn-default btn-lg" title="Pin on Pinterest" href="https://pinterest.com/pin/create/button/?url=PRODUCT-URL&media=IMAGE-URL&description=DESCRIPTION"><i class="sprite-pinterest rotator"></i></a>
+ <a class="btn btn-default btn-lg" title="<?= __('Partager sur les réseaux sociaux =>');?>"><span class="glyphicon glyphicon-bullhorn"></span></a>
+ <a target="_blank" class="btn btn-default btn-lg" title="Share on Facebook" href="https://www.facebook.com/sharer/sharer.php?u=<?= $product_info['href'] ?>"><i class="sprite-facebook rotator"></i></a>
+ <a target="_blank" class="btn btn-default btn-lg" title="Share on Twitter" href="https://twitter.com/home?status=<?= $product_info['href'] ?>"><i class="sprite-tweeter rotator"></i></a>
+ <a target="_blank" class="btn btn-default btn-lg" title="Share on Google+" href="https://plus.google.com/share?url=<?= $product_info['href'] ?>"><i class="sprite-googlep rotator"></i></a>
+ <a target="_blank" class="btn btn-default btn-lg" title="Pin on Pinterest" href="https://pinterest.com/pin/create/button/?url=<?= $product_info['href'] ?>&media=<?= tep_image(DIR_WS_IMAGES . $img_gd, $product_info['name'], $page->_conf_value('POPUP_IMAGE_WIDTH'), $page->_conf_value('POPUP_IMAGE_HEIGHT'), "", true) ?>&description=<?= urlencode($product_info['text']) ?>"><i class="sprite-pinterest rotator"></i></a>
</div>
</div>
<div class="col-sm-6 col-sm-pull-6">
<div class="col-xs-4">
<?php if(count($objectProduct->GetImages())>1): ?>
- <ul class="list-group">
+ <ul class="list-group">
<?php foreach($objectProduct->GetImages() as $img) : ?>
- <li class="list-group-item">
+ <li class="list-group-item">
<?php ?>
- <?php echo '<a class="lightbox" rel="lightbox-view" href="' . tep_image(DIR_WS_IMAGES . $img, $objectProduct->GetName(), $page->_conf_value('POPUP_IMAGE_WIDTH'), $page->_conf_value('POPUP_IMAGE_HEIGHT'), "", true) . '" ", true) . '\',\'' . tep_image(DIR_WS_IMAGES . $img, $objectProduct->GetName(),$page->_conf_value('POPUP_IMAGE_WIDTH'), $page->_conf_value('POPUP_IMAGE_HEIGHT'), "", true) . '\')" rel="example_group">' . tep_image(DIR_WS_IMAGES . $img, $objectProduct->GetName(), $page->_conf_value('STACK_IMAGE_WIDTH'), $page->_conf_value('STACK_IMAGE_HEIGHT')) . '</a>'; ?>
+ <?php echo '<a class="imagelightbox" rel="lightbox-view" href="' . tep_image(DIR_WS_IMAGES . $img, $objectProduct->GetName(), $page->_conf_value('POPUP_IMAGE_WIDTH'), $page->_conf_value('POPUP_IMAGE_HEIGHT'), "", true) . '" ", true) . '\',\'' . tep_image(DIR_WS_IMAGES . $img, $objectProduct->GetName(),$page->_conf_value('POPUP_IMAGE_WIDTH'), $page->_conf_value('POPUP_IMAGE_HEIGHT'), "", true) . '\')" rel="example_group">' . tep_image(DIR_WS_IMAGES . $img, $objectProduct->GetName(), $page->_conf_value('STACK_IMAGE_WIDTH'), $page->_conf_value('STACK_IMAGE_HEIGHT')) . '</a>'; ?>
<?php ?>
- </li>
+ </li>
<?php endforeach; ?>
- </ul>
+ </ul>
<?php endif; ?>
</div>
<div class="col-xs-8">
<?php /// Le block principal de l'image du produit. ?>
- <?php if ( ($replace=$page->prop_ctrl('products_image', $objectProduct->GetImage())) !=false) echo $replace($product_info, 'lightbox' , $page->_conf_value('HEADING_IMAGE_WIDTH'), $page->_conf_value('HEADING_IMAGE_HEIGHT'));
+ <?php if ( ($replace=$page->prop_ctrl('products_image', $objectProduct->GetImage())) !=false) {
+
+ echo call_user_func ($replace,$product_info, 'imagelightbox' , $page->_conf_value('HEADING_IMAGE_WIDTH'), $page->_conf_value('HEADING_IMAGE_HEIGHT'));
+ }
else { ?>
- <script type="text/javascript"><!--
- document.write('<?php echo '<p><a href="' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $objectProduct->GetId()) . '" >' . tep_image(DIR_WS_IMAGES .$objectProduct->GetImage(), addslashes($objectProduct->GetName()), $page->_conf_value('HEADING_IMAGE_WIDTH'), $page->_conf_value('HEADING_IMAGE_HEIGHT'), ' id="image_master" ') . '</a></p>'; ?>');
- //--></script>
- <noscript>
+ <script type="text/javascript"><!--
+ document.write('<?php echo '<p><a href="' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $objectProduct->GetId()) . '" >' . tep_image(DIR_WS_IMAGES .$objectProduct->GetImage(), addslashes($objectProduct->GetName()), $page->_conf_value('HEADING_IMAGE_WIDTH'), $page->_conf_value('HEADING_IMAGE_HEIGHT'), ' id="image_master" ') . '</a></p>'; ?>');
+ //--></script>
+ <noscript>
<?php echo '<p><a href="' . tep_href_link(DIR_WS_IMAGES .$objectProduct->GetImage()) . '">' . tep_image(DIR_WS_IMAGES .$objectProduct->GetImage(), $objectProduct->GetName(), $page->_conf_value('HEADING_IMAGE_WIDTH'), $page->_conf_value('HEADING_IMAGE_HEIGHT'), ' id="image_master" ') . '</a><br /><a href="' . tep_href_link(DIR_WS_IMAGES .$objectProduct->GetImage()) . '">' . __('text click to enlarge') . '</a></p>'; ?>
- </noscript>
+ </noscript>
<?php } ?>
-
+
</div>
-
- <p class="productModel"><?php if ($objectProduct->GetModel()!="")echo __('Model :').' <b>'.$objectProduct->GetModel(); ?></b></p>
+
+ <p class="productModel"><?php if ($objectProduct->GetModel()!="")echo __('Model :').' <b>'.$objectProduct->GetModel(); ?></b></p>
<?php if ($objectProduct->GetDateAvailable() > date('Y-m-d H:i:s')): ?>
- <div class="col-xs-12"><?php echo sprintf(__('text date available'), tep_date_long($objectProduct->GetDateAvailable())); ?></div>
+ <div class="col-xs-12"><?php echo sprintf(__('text date available'), tep_date_long($objectProduct->GetDateAvailable())); ?></div>
<?php endif;?>
</div>
<hr class="sprite-row" />
@@ -94,15 +97,15 @@
</li>
<li class="list-group-item text-center ">
<?php if ( $objectProduct->GetTrackStock() == 3 && $objectProduct->GetQuanity() <= 0): ?>
- <!-- this product is definitive enought stock -->
- <div class="h4"><span class="label label-warning"><?php echo __('products info stock finish in limited') ?></span></div>
+ <!-- this product is definitive enought stock -->
+ <div class="h4"><span class="label label-warning"><?php echo __('products info stock finish in limited') ?></span></div>
<?php else: ?>
- <div class="h3"><span class="label label-success"><?php echo __('products info stock ok') ?></span></div>
+ <div class="h3"><span class="label label-success"><?php echo __('products info stock ok') ?></span></div>
<?php endif;?>
</li>
<li class="list-group-item text-center ">
<?php if ( _test_bool($objectProduct->GetAction('buy')) /*_test_bool($product_info['action']['buy'])*/): ?>
- <!-- this product is avaible for add cart -->
+ <!-- this product is avaible for add cart -->
<?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product', 'post', 'class="addcart"')); ?>
@@ -110,20 +113,20 @@
<?php /** Aca Attribute Products */ if(isset($module['Abonnement'])) echo $module['Abonnement']->display_view_master($objectProduct->GetId());?>
<?php echo tep_draw_hidden_field('products_id', $objectProduct->GetId()); ?>
- <div class="input-group">
+ <div class="input-group">
<?php echo tep_draw_input_field('products_quantity', 'products_quantity', '1', 'size="2" placeholder="'.__('text prefix qty').'" min="1" class="form-control"', false, 'number'); ?>
- <span class="input-group-btn"><input type="submit" class="btn btn-warning" value="<?php echo __('image button in cart'); ?>"></span>
- </div>
+ <span class="input-group-btn"><input type="submit" class="btn btn-warning" value="<?php echo __('image button in cart'); ?>"></span>
+ </div>
- </form>
+ </form>
<?php else: ?>
<?php if ( $objectProduct->GetTrackStock() == 3 && $objectProduct->GetQuanity() <= 0): ?>
- <!-- this product is definitive enought stock -->
- <p>
+ <!-- this product is definitive enought stock -->
+ <p>
<?php echo __('products info stock finish in limited') ?>
- </p>
+ </p>
<?php endif;?>
<?php endif ; ?>
Added: trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/imagelightbox.min.js
===================================================================
--- trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/imagelightbox.min.js (rev 0)
+++ trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/imagelightbox.min.js 2015-11-14 11:15:56 UTC (rev 5279)
@@ -0,0 +1,138 @@
+/*
+ By Osvaldas Valutis, www.osvaldas.info
+ Available for use under the MIT License
+ */
+
+; (function(e, t, n, r){"use strict"; var i = function(){var e = n.body || n.documentElement, e = e.style; if (e.WebkitTransition == "")return"-webkit-"; if (e.MozTransition == "")return"-moz-"; if (e.OTransition == "")return"-o-"; if (e.transition == "")return""; return false}, s = i() === false?false:true, o = function(e, t, n){var r = {}, s = i(); r[s + "transform"] = "translateX(" + t + ")"; r[s + "transition"] = s + "transform " + n + "s linear"; e.css(r)}, u = "ontouchstart"in t, a = t.navigator.pointerEnabled || t.navigator.msPointerEnabled, f = function(e){if (u)return true; if (!a || typeof e === "undefined" || typeof e.pointerType === "undefined")return false; if (typeof e.MSPOINTER_TYPE_MOUSE !== "undefined"){if (e.MSPOINTER_TYPE_MOUSE != e.pointerType)return true} else if (e.pointerType != "mouse")return true; return false}; e.fn.imageLightbox = function(r){var r = e.extend({selector:'id="imagelightbox"', allowedTypes:"png|jpg|jpeg|gif", animationSpeed:250, preloadNext:true, enableKeyboard:true, quitOnEnd:false, quitOnImgClick:false, quitOnDocClick:true, onStart:false, onEnd:false, onLoadStart:false, onLoadEnd:false}, r), i = e([]), l = e(), c = e(), h = 0, p = 0, d = 0, v = false, m = function(t){return e(t).prop("tagName").toLowerCase() == "a" && (new RegExp(".(" + r.allowedTypes + ")$", "i")).test(e(t).attr("href"))}, g = function(){if (!c.length)return true; var n = e(t).width() * .8, r = e(t).height() * .9, i = new Image; i.src = c.attr("src"); i. = i.width; p = i.height; if (h > n || p > r){var s = h / p > n / r?h / n:p / r; h /= s; p /= s}c.css({width:h + "px", height:p + "px", top:(e(t).height() - p) / 2 + "px", left:(e(t).width() - h) / 2 + "px"})}}, y = function(t){if (v)return false; t = typeof t === "undefined"?false:t == "left"?1: - 1; if (c.length){if (t !== false && (i.length < 2 || r.quitOnEnd === true && (t === - 1 && i.index(l) == 0 || t === 1 && i.index(l) == i.length - 1))){w(); return false}var n = {opacity:0}; if (s)o(c, 100 * t - d + "px", r.animationSpeed / 1e3); else n.left = parseInt(c.css("left")) + 100 * t + "px"; c.animate(n, r.animationSpeed, function(){b()}); d = 0}v = true; if (r.onLoadStart !== false)r.onLoadStart(); setTimeout(function(){c = e("<img " + r.selector + " />").attr("src", l.attr("href")).load(function(){c.appendTo("body"); g(); var n = {opacity:1}; c.css("opacity", 0); if (s){o(c, - 100 * t + "px", 0); setTimeout(function(){o(c, 0 + "px", r.animationSpeed / 1e3)}, 50)} else{var u = parseInt(c.css("left")); n.left = u + "px"; c.css("left", u - 100 * t + "px")}c.animate(n, r.animationSpeed, function(){v = false; if (r.onLoadEnd !== false)r.onLoadEnd()}); if (r.preloadNext){var a = i.eq(i.index(l) + 1); if (!a.length)a = i.eq(0); e("<img />").attr("src", a.attr("href")).load()}}).error(function(){if (r.onLoadEnd !== false)r.onLoadEnd()}); var n = 0, u = 0, p = 0; c.on(a?"pointerup MSPointerUp":"click", function(e){e.preventDefault(); if (r.quitOnImgClick){w(); return false}if (f(e.originalEvent))return true; var t = (e.pageX || e.originalEvent.pageX) - e.target.offsetLeft; l = i.eq(i.index(l) - (h / 2 > t?1: - 1)); if (!l.length)l = i.eq(h / 2 > t?i.length:0); y(h / 2 > t?"left":"right")}).on("touchstart pointerdown MSPointerDown", function(e){if (!f(e.originalEvent) || r.quitOnImgClick)return true; if (s)p = parseInt(c.css("left")); n = e.originalEvent.pageX || e.originalEvent.touches[0].pageX}).on("touchmove pointermove MSPointerMove", function(e){if (!f(e.originalEvent) || r.quitOnImgClick)return true; e.preventDefault(); u = e.originalEvent.pageX || e.originalEvent.touches[0].pageX; d = n - u; if (s)o(c, - d + "px", 0); else c.css("left", p - d + "px")}).on("touchend touchcancel pointerup pointercancel MSPointerUp MSPointerCancel", function(e){if (!f(e.originalEvent) || r.quitOnImgClick)return true; if (Math.abs(d) > 50){l = i.eq(i.index(l) - (d < 0?1: - 1)); if (!l.length)l = i.eq(d < 0?i.length:0); y(d > 0?"right":"left")} else{if (s)o(c, 0 + "px", r.animationSpeed / 1e3); else c.animate({left:p + "px"}, r.animationSpeed / 2)}})}, r.animationSpeed + 100)}, b = function(){if (!c.length)return false; c.remove(); c = e()}, w = function(){if (!c.length)return false; c.animate({opacity:0}, r.animationSpeed, function(){b(); v = false; if (r.onEnd !== false)r.onEnd()})}; e(t).on("resize", g); if (r.quitOnDocClick){e(n).on(u?"touchend":"click", function(t){if (c.length && !e(t.target).is(c))w()})}if (r.enableKeyboard){e(n).on("keyup", function(e){if (!c.length)return true; e.preventDefault(); if (e.keyCode == 27)w(); if (e.keyCode == 37 || e.keyCode == 39){l = i.eq(i.index(l) - (e.keyCode == 37?1: - 1)); if (!l.length)l = i.eq(e.keyCode == 37?i.length:0); y(e.keyCode == 37?"left":"right")}})}e(n).on("click", this.selector, function(t){if (!m(this))return true; t.preventDefault(); if (v)return false; v = false; if (r.onStart !== false)r.onStart(); l = e(this); y()}); this.each(function(){if (!m(this))return true; i = i.add(e(this))}); this.switchImageLightbox = function(e){var t = i.eq(e); if (t.length){var n = i.index(l); l = t; y(e < n?"left":"right")}return this}; this.quitImageLightbox = function(){w(); return this}; return this}})(jQuery, window, document);
+ $(function()
+ {
+ // ACTIVITY INDICATOR
+
+ var activityIndicatorOn = function()
+ {
+ $('<div id="imagelightbox-loading"><div></div></div>').appendTo('body');
+ },
+ activityIndicatorOff = function()
+ {
+ $('#imagelightbox-loading').remove();
+ },
+ // OVERLAY
+
+ overlayOn = function()
+ {
+ $('<div id="imagelightbox-overlay"></div>').appendTo('body');
+ },
+ overlayOff = function()
+ {
+ $('#imagelightbox-overlay').remove();
+ },
+ // CLOSE BUTTON
+
+ closeButtonOn = function(instance)
+ {
+ $('<button type="button" id="imagelightbox-close" title="Close"></button>').appendTo('body').on('click touchend', function(){ $(this).remove(); instance.quitImageLightbox(); return false; });
+ },
+ closeButtonOff = function()
+ {
+ $('#imagelightbox-close').remove();
+ },
+ // CAPTION
+
+ captionOn = function()
+ {
+ var description = $('a[href="' + $('#imagelightbox').attr('src') + '"] img').attr('alt');
+ if (typeof description != 'undefined' && description.length > 0)
+ $('<div id="imagelightbox-caption">' + description + '</div>').appendTo('body');
+ },
+ captionOff = function()
+ {
+ $('#imagelightbox-caption').remove();
+ },
+ // NAVIGATION
+
+ navigationOn = function(instance, selector)
+ {
+ var images = $(selector);
+ if (images.length)
+ {
+ var nav = $('<div id="imagelightbox-nav"></div>');
+ for (var i = 0; i < images.length; i++)
+ nav.append('<button type="button"></button>');
+ nav.appendTo('body');
+ nav.on('click touchend', function(){ return false; });
+ var navItems = nav.find('button');
+ navItems.on('click touchend', function()
+ {
+ var $this = $(this);
+ if (images.eq($this.index()).attr('href') != $('#imagelightbox').attr('src'))
+ instance.switchImageLightbox($this.index());
+ navItems.removeClass('active');
+ navItems.eq($this.index()).addClass('active');
+ return false;
+ })
+ .on('touchend', function(){ return false; });
+ }
+ },
+ navigationUpdate = function(selector)
+ {
+ var items = $('#imagelightbox-nav button');
+ items.removeClass('active');
+ items.eq($(selector).filter('[href="' + $('#imagelightbox').attr('src') + '"]').index(selector)).addClass('active');
+ },
+ navigationOff = function()
+ {
+ $('#imagelightbox-nav').remove();
+ },
+ // ARROWS
+
+ arrowsOn = function(instance, selector)
+ {
+ var $arrows = $('<button type="button" class="imagelightbox-arrow imagelightbox-arrow-left"></button><button type="button" class="imagelightbox-arrow imagelightbox-arrow-right"></button>');
+ $arrows.appendTo('body');
+ $arrows.on('click touchend', function(e)
+ {
+ e.preventDefault();
+ var $this = $(this),
+ $target = $(selector + '[href="' + $('#imagelightbox').attr('src') + '"]'),
+ index = $target.index(selector);
+ if ($this.hasClass('imagelightbox-arrow-left'))
+ {
+ index = index - 1;
+ if (!$(selector).eq(index).length)
+ index = $(selector).length;
+ }
+ else
+ {
+ index = index + 1;
+ if (!$(selector).eq(index).length)
+ index = 0;
+ }
+
+ instance.switchImageLightbox(index);
+ return false;
+ });
+ },
+ arrowsOff = function()
+ {
+ $('.imagelightbox-arrow').remove();
+ };
+
+
+
+ var selectorF = '.imagelightbox';
+ var instanceF = $(selectorF).imageLightbox(
+ {
+ selector: 'id="imagelightbox"', // string;
+ allowedTypes: '.*', // string;
+ animationSpeed: 250, // integer;
+ preloadNext: true, // bool; silently preload the next image
+ enableKeyboard: true, // bool; enable keyboard shortcuts (arrows Left/Right and Esc)
+ quitOnEnd: false, // bool; quit after viewing the last image
+ quitOnImgClick: false, // bool; quit when the viewed image is clicked
+ quitOnDocClick: true, // bool; quit when anything but the viewed image is clicked
+ onStart: function() { overlayOn(); closeButtonOn(instanceF); arrowsOn(instanceF, selectorF); },
+ onEnd: function() { overlayOff(); captionOff(); closeButtonOff(); arrowsOff(); activityIndicatorOff(); },
+ onLoadStart: function() { captionOff(); activityIndicatorOn(); },
+ onLoadEnd: function() { captionOn(); activityIndicatorOff(); $('.imagelightbox-arrow').css('display', 'block'); }
+ });
+ });
\ No newline at end of file
Added: trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/lightbox.css
===================================================================
--- trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/lightbox.css (rev 0)
+++ trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/inc/lightbox.css 2015-11-14 11:15:56 UTC (rev 5279)
@@ -0,0 +1,293 @@
+#imagelightbox
+{
+ cursor: pointer;
+ position: fixed;
+ z-index: 9999;
+
+ -ms-touch-action: none;
+ touch-action: none;
+}
+
+
+/* IMAGE LIGHTBOX SELECTOR */
+
+
+
+/* ACTIVITY INDICATION */
+
+#imagelightbox-loading,
+#imagelightbox-loading div
+{
+ border-radius: 50%;
+}
+#imagelightbox-loading
+{
+ width: 2.5em; /* 40 */
+ height: 2.5em; /* 40 */
+ background-color: #444;
+ background-color: rgba( 0, 0, 0, .5 );
+ position: fixed;
+ z-index: 10003;
+ top: 50%;
+ left: 50%;
+ padding: 0.625em; /* 10 */
+ margin: -1.25em 0 0 -1.25em; /* 20 */
+
+ -webkit-box-shadow: 0 0 2.5em rgba( 0, 0, 0, .75 ); /* 40 */
+ box-shadow: 0 0 2.5em rgba( 0, 0, 0, .75 ); /* 40 */
+}
+#imagelightbox-loading div
+{
+ width: 1.25em; /* 20 */
+ height: 1.25em; /* 20 */
+ background-color: #fff;
+
+ -webkit-animation: imagelightbox-loading .5s ease infinite;
+ animation: imagelightbox-loading .5s ease infinite;
+}
+
+@-webkit-keyframes imagelightbox-loading
+{
+ from { opacity: .5; -webkit-transform: scale( .75 ); }
+ 50% { opacity: 1; -webkit-transform: scale( 1 ); }
+ to { opacity: .5; -webkit-transform: scale( .75 ); }
+}
+@keyframes imagelightbox-loading
+{
+ from { opacity: .5; transform: scale( .75 ); }
+ 50% { opacity: 1; transform: scale( 1 ); }
+ to { opacity: .5; transform: scale( .75 ); }
+}
+
+
+/* OVERLAY */
+
+#imagelightbox-overlay
+{
+ background-color: #fff;
+ background-color: rgba( 255, 255, 255, .9 );
+ position: fixed;
+ z-index: 9998;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
+
+/* "CLOSE" BUTTON */
+
+#imagelightbox-close
+{
+ width: 2.5em; /* 40 */
+ height: 2.5em; /* 40 */
+ text-align: left;
+ background-color: #666;
+ border-radius: 50%;
+ position: fixed;
+ z-index: 10002;
+ top: 2.5em; /* 40 */
+ right: 2.5em; /* 40 */
+
+ -webkit-transition: color .3s ease;
+ transition: color .3s ease;
+}
+#imagelightbox-close:hover,
+#imagelightbox-close:focus
+{
+ background-color: #111;
+}
+#imagelightbox-close:before,
+#imagelightbox-close:after
+{
+ width: 2px;
+ background-color: #fff;
+ content: '';
+ position: absolute;
+ top: 20%;
+ bottom: 20%;
+ left: 50%;
+ margin-left: -1px;
+}
+#imagelightbox-close:before
+{
+ -webkit-transform: rotate( 45deg );
+ -ms-transform: rotate( 45deg );
+ transform: rotate( 45deg );
+}
+#imagelightbox-close:after
+{
+ -webkit-transform: rotate( -45deg );
+ -ms-transform: rotate( -45deg );
+ transform: rotate( -45deg );
+}
+
+
+/* CAPTION */
+
+#imagelightbox-caption
+{
+ text-align: center;
+ color: #fff;
+ background-color: #666;
+ position: fixed;
+ z-index: 10001;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: 0.625em; /* 10 */
+}
+
+
+/* NAVIGATION */
+
+#imagelightbox-nav
+{
+ background-color: #444;
+ background-color: rgba( 0, 0, 0, .5 );
+ border-radius: 20px;
+ position: fixed;
+ z-index: 10001;
+ left: 50%;
+ bottom: 3.75em; /* 60 */
+ padding: 0.313em; /* 5 */
+
+ -webkit-transform: translateX( -50% );
+ -ms-transform: translateX( -50% );
+ transform: translateX( -50% );
+}
+#imagelightbox-nav button
+{
+ width: 1em; /* 20 */
+ height: 1em; /* 20 */
+ background-color: transparent;
+ border: 1px solid #fff;
+ border-radius: 50%;
+ display: inline-block;
+ margin: 0 0.313em; /* 5 */
+}
+#imagelightbox-nav button.active
+{
+ background-color: #fff;
+}
+
+
+/* ARROWS */
+
+.imagelightbox-arrow
+{
+ width: 3.75em; /* 60 */
+ height: 7.5em; /* 120 */
+ background-color: #444;
+ background-color: rgba( 0, 0, 0, .5 );
+ vertical-align: middle;
+ display: none;
+ position: fixed;
+ z-index: 10001;
+ top: 50%;
+ margin-top: -3.75em; /* 60 */
+}
+.imagelightbox-arrow:hover,
+.imagelightbox-arrow:focus
+{
+ background-color: #666;
+ background-color: rgba( 0, 0, 0, .75 );
+}
+.imagelightbox-arrow:active
+{
+ background-color: #111;
+}
+.imagelightbox-arrow-left
+{
+ left: 2.5em; /* 40 */
+}
+.imagelightbox-arrow-right
+{
+ right: 2.5em; /* 40 */
+}
+.imagelightbox-arrow:before
+{
+ width: 0;
+ height: 0;
+ border: 1em solid transparent;
+ content: '';
+ display: inline-block;
+ margin-bottom: -0.125em; /* 2 */
+}
+.imagelightbox-arrow-left:before
+{
+ border-left: none;
+ border-right-color: #fff;
+ margin-left: -0.313em; /* 5 */
+}
+.imagelightbox-arrow-right:before
+{
+ border-right: none;
+ border-left-color: #fff;
+ margin-right: -0.313em; /* 5 */
+}
+
+#imagelightbox-loading,
+#imagelightbox-overlay,
+#imagelightbox-close,
+#imagelightbox-caption,
+#imagelightbox-nav,
+.imagelightbox-arrow
+{
+ -webkit-animation: fade-in .25s linear;
+ animation: fade-in .25s linear;
+}
+@-webkit-keyframes fade-in
+{
+ from { opacity: 0; }
+ to { opacity: 1; }
+}
+@keyframes fade-in
+{
+ from { opacity: 0; }
+ to { opacity: 1; }
+}
+
+@media only screen and (max-width: 41.250em) /* 660 */
+{
+ #container
+ {
+ width: 100%;
+ }
+ #imagelightbox-close
+ {
+ top: 1.25em; /* 20 */
+ right: 1.25em; /* 20 */
+ }
+ #imagelightbox-nav
+ {
+ bottom: 1.25em; /* 20 */
+ }
+
+ .imagelightbox-arrow
+ {
+ width: 2.5em; /* 40 */
+ height: 3.75em; /* 60 */
+ margin-top: -2.75em; /* 30 */
+ }
+ .imagelightbox-arrow-left
+ {
+ left: 1.25em; /* 20 */
+ }
+ .imagelightbox-arrow-right
+ {
+ right: 1.25em; /* 20 */
+ }
+}
+
+@media only screen and (max-width: 20em) /* 320 */
+{
+ .imagelightbox-arrow-left
+ {
+ left: 0;
+ }
+ .imagelightbox-arrow-right
+ {
+ right: 0;
+ }
+}
\ No newline at end of file
Added: trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/includes_header.php
===================================================================
--- trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/includes_header.php (rev 0)
+++ trunk/catalog/install/data/templates/appareil_photo/Modern_RWD/includes/plugins/product/lightbox/includes_header.php 2015-11-14 11:15:56 UTC (rev 5279)
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ @licence GPL 2005-2013 The osCSS developers - osCSS Open Source E-commerce
+ @subpackage lightbox2
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.1.1
+ @date 15/05/2012, 21:44
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ */
+
+/**
+ function de definiton de l'execution
+ */
+function lightbox_add_propriete() {
+ global $template;
+ $prop = array('products_image' => array(
+ 'key_shearch' => 'products_image',
+ 'class_page' => 'product,',
+ 'replace' => 'lightbox_replace',
+ ));
+
+ return $prop;
+}
+
+/**
+ fucntion d'execution du plugin
+ */
+function lightbox_replace($product_info, $class = 'lightbox', $img_w, $img_h) {
+
+ global $page;
+ $img_gd = (isset($product_info['products_image_xl'])) ? $product_info['products_image_xl'] : $product_info['image'];
+ $m = '' . "\n";
+ $m .='<p><a class="' . $class . '" rel="' . $class . '" href="' . tep_image(DIR_WS_IMAGES . $img_gd, $product_info['name'], $page->_conf_value('POPUP_IMAGE_WIDTH'), $page->_conf_value('POPUP_IMAGE_HEIGHT'), "", true) . '" title="' . addslashes($product_info['name']) . '" >' . tep_image(DIR_WS_IMAGES . $product_info['image'], addslashes($product_info['name']), $page->_conf_value('HEADING_IMAGE_WIDTH'), $page->_conf_value('HEADING_IMAGE_HEIGHT'), ' id="image_master" ') . '</a></p>' . "\n";
+ $m .='' . "\n";
+ $m .='<noscript>' . "\n";
+ $m .='<p><a class="' . $class . '" href="' . tep_image(DIR_WS_IMAGES . $img_gd, $product_info['name'], $page->_conf_value('POPUP_IMAGE_WIDTH'), $page->_conf_value('POPUP_IMAGE_HEIGHT'), "", true) . '">' . tep_image(DIR_WS_IMAGES . $product_info['image'], $product_info['name'], $img_w, $img_h, ' id="image_master" ') . '</a><br /><a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['image']) . '">' . TEXT_CLICK_TO_ENLARGE . '</a></p>' . "\n";
+ $m .='</noscript>' . "\n";
+
+ return $m;
+}
+
+/**
+ Definition des scripts du plugins
+ */
+function lightbox_scripts() {
+ global $page;
+ $dir_ws_here = $page->getPathTemplate() . 'includes/plugins/product/lightbox/';
+// $dir_ws_here = DIR_WS_TEMPLATES . DEFAULT_TEMPLATE_NAME . '/includes/plugins/product/lightbox/';
+
+ $scripts = array('jquery' => array(
+ 'type' => 'framework',
+ 'file' => "ext/jquery/jquery.min.js",
+ 'pages' => 'product_info,'
+ ),
+ '1' => array(
+ 'type' => 'script',
+ 'place' => 'header',
+ 'file' => array(
+ $dir_ws_here . "inc/lightbox.css",
+ ),
+ 'sort' => 6
+ ),
+ '2' => array(
+ 'type' => 'script',
+ 'place' => 'footer',
+ 'file' => array(
+ $dir_ws_here . "inc/imagelightbox.min.js"
+ ),
+ 'sort' => 6
+ ),
+ );
+ return $scripts;
+}
+
+?>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hom...@us...> - 2015-11-12 14:28:07
|
Revision: 5278
http://sourceforge.net/p/oscss/svn/5278
Author: homer8173
Date: 2015-11-12 14:28:05 +0000 (Thu, 12 Nov 2015)
Log Message:
-----------
FIX bug category parent order
path where not correct since 3rd level depth
Modified Paths:
--------------
trunk/catalog/includes/classes/drivers/data/categorie.php
Modified: trunk/catalog/includes/classes/drivers/data/categorie.php
===================================================================
--- trunk/catalog/includes/classes/drivers/data/categorie.php 2015-10-23 08:48:10 UTC (rev 5277)
+++ trunk/catalog/includes/classes/drivers/data/categorie.php 2015-11-12 14:28:05 UTC (rev 5278)
@@ -399,7 +399,7 @@
if ( $objCategorie->GetParentId() > 0){
- $tmp[] = $objCategorie->GetParentId();
+ $tmp = array_merge(array($objCategorie->GetParentId()), $tmp);
if ($objCategorie->GetParentId() != $categories_id){
$categories= self::get_parent_categories($tmp, $objCategorie->GetParentId() );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hom...@us...> - 2015-10-23 08:48:13
|
Revision: 5277
http://sourceforge.net/p/oscss/svn/5277
Author: homer8173
Date: 2015-10-23 08:48:10 +0000 (Fri, 23 Oct 2015)
Log Message:
-----------
FIX error install
Modified Paths:
--------------
trunk/catalog/install/includes/sql/mysql/data/91_osc_configuration.sql
Modified: trunk/catalog/install/includes/sql/mysql/data/91_osc_configuration.sql
===================================================================
--- trunk/catalog/install/includes/sql/mysql/data/91_osc_configuration.sql 2015-10-20 07:50:07 UTC (rev 5276)
+++ trunk/catalog/install/includes/sql/mysql/data/91_osc_configuration.sql 2015-10-23 08:48:10 UTC (rev 5277)
@@ -105,7 +105,7 @@
insert into osc_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, configuration_type) values ('Ordre de tri sous-total', 'MODULE_ORDER_TOTAL_SUBTOTAL_SORT_ORDER', '0', 'Ordre de tri pour l\'affichage', '6', '11', NULL, NOW(), '2');
insert into osc_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, configuration_type) values ('Ordre de tri taxes', 'MODULE_ORDER_TOTAL_TAX_SORT_ORDER', '8', 'Ordre de tri pour l\'affichage', '6', '12', NULL, NOW(), '2');
insert into osc_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, configuration_type) values ('Ordre de description', 'MODULE_ACAPRO_DESC_BASE_SORT_ORDER', '1', 'Ordre de tri pour l\'affichage', '6', '13', NULL, NOW(), '2');
-insert into osc_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, configuration_type) values ('Ordre de tri taxes', 'MODULE_ORDER_TOTAL_TAX_SORT_ORDER', '8', 'Ordre de tri pour l\'affichage', '6', '12', NULL, NOW(), '2');
+-- insert into osc_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, configuration_type) values ('Ordre de tri taxes', 'MODULE_ORDER_TOTAL_TAX_SORT_ORDER', '8', 'Ordre de tri pour l\'affichage', '6', '12', NULL, NOW(), '2');
insert into osc_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, configuration_type) values ('MODULE_ACAPRO_DESC_BASE_ATTACH_FIELDS_TABS_S', 'MODULE_ACAPRO_DESC_BASE_ATTACH_FIELDS_TABS', 'desc_base', 'MODULE_ACAPRO_DESC_BASE_ATTACH_FIELDS_TABS_L', '6', '13', NULL, NOW(), '1');
-- 7 shipping
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-10-20 07:50:09
|
Revision: 5276
http://sourceforge.net/p/oscss/svn/5276
Author: oscim
Date: 2015-10-20 07:50:07 +0000 (Tue, 20 Oct 2015)
Log Message:
-----------
Fix errror in install process
Modified Paths:
--------------
trunk/catalog/install/includes/classes/core.php
trunk/catalog/install/includes/content/core.base.php
Modified: trunk/catalog/install/includes/classes/core.php
===================================================================
--- trunk/catalog/install/includes/classes/core.php 2015-10-15 17:03:47 UTC (rev 5275)
+++ trunk/catalog/install/includes/classes/core.php 2015-10-20 07:50:07 UTC (rev 5276)
@@ -228,7 +228,7 @@
// // $this->fs_document_root=substr(dirname(__FILE__), 0, -strlen('includes/'.$path_install.basename(__FILE__)));
$this->cookie_domain =$_SERVER['HTTP_HOST'];
- $www_location = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_FILENAME'];
+ $www_location = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
$this->www_location = substr($www_location, 0, strpos($www_location, $path_install));
$this->https_www_address = str_replace('http://', 'https://', $this->www_location);
$this->ws_admin_rand=(!isset($_POST['WS_STORE_ADMIN'])? 'admin'.rand(10,1000) :$_POST['WS_STORE_ADMIN']) ;
Modified: trunk/catalog/install/includes/content/core.base.php
===================================================================
--- trunk/catalog/install/includes/content/core.base.php 2015-10-15 17:03:47 UTC (rev 5275)
+++ trunk/catalog/install/includes/content/core.base.php 2015-10-20 07:50:07 UTC (rev 5276)
@@ -107,7 +107,7 @@
function draw_message(){
- $path='../';
+ $path= '../';
$this->err=false;
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
@@ -126,12 +126,13 @@
$this->PileMessage('alert',core::l10n("Le fichier n'est pas accessible en écriture : ").$r['value']) ;
$this->err=true;
}
- }else {
- $rep=preg_replace("#[a-z]*\.[a-z]*#i",'',$r['value']);
- if (!is_writable($path.$rep)){
- $this->PileMessage('alert',core::l10n("Le répertoire n'est pas accessible en écriture : ").$path.$rep);
- $this->err=true;
- }
+ else {
+ $rep=preg_replace("#[a-z]*\.[a-z]*#i",'',$r['value']);
+ if (!is_writable($path.$rep)){
+ $this->PileMessage('alert',core::l10n("Le repertoire n'est pas accessible en écriture : ").$path.$rep);
+ $this->err=true;
+ }
+ }
}
}
else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-10-15 17:03:49
|
Revision: 5275
http://sourceforge.net/p/oscss/svn/5275
Author: oscim
Date: 2015-10-15 17:03:47 +0000 (Thu, 15 Oct 2015)
Log Message:
-----------
Clean and fix
Modified Paths:
--------------
trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab
trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab
Modified: trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab 2015-10-15 17:03:27 UTC (rev 5274)
+++ trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab 2015-10-15 17:03:47 UTC (rev 5275)
@@ -33,8 +33,8 @@
<td> <?php echo $Ovalues["products_options_values_name"]; ?> </td>
<td class="row_action">
<span class="view fils ">
- <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=edit' , 'NONSSL') . '">'; ?><?php echo tep_image(CsrtAction::getFullPathIcon('edit'), IMAGE_UPDATE); ?></a>
- <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=delete_confirm', 'NONSSL') , '">'; ?><?php echo tep_image(CsrtAction::getFullPathIcon('delete'), IMAGE_DELETE); ?></a>
+ <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=edit' , 'NONSSL') . '">'; ?><?php echo tep_image(DIR_WS_ICONS.'icon_edit.png', IMAGE_UPDATE); ?></a>
+ <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=delete_confirm', 'NONSSL') , '">'; ?><?php echo tep_image(DIR_WS_ICONS.'icon_delete.png', IMAGE_DELETE); ?></a>
</span>
</td>
<?php }?>
Modified: trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab 2015-10-15 17:03:27 UTC (rev 5274)
+++ trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab 2015-10-15 17:03:47 UTC (rev 5275)
@@ -26,7 +26,7 @@
</p>
<p class="block_input">
<label for="products_date_available"><?php echo __('legend opt thumbail'); ?></label>
- <?php echo '<a class="button browser" href="#" image", 'options').'">'.tep_draw_input_field('products_options_values_thumbnail[' . attributes::$languages[$i]['id'] . ']', 'products_options_values_thumbnail_' . attributes::$languages[$i]['id'], attributes::$poIDInfo->products_options_values_thumbnail[attributes::$languages[$i]['id']]).tep_image(DIR_WS_ICONS . 'icon_browser.png', PARCOURIR_SERVER).'</a>' ; ?>
+ <?php echo '<a class="button browser" href="#" image", '').'">'.tep_draw_input_field('products_options_values_thumbnail[' . attributes::$languages[$i]['id'] . ']', 'products_options_values_thumbnail_' . attributes::$languages[$i]['id'], attributes::$poIDInfo->products_options_values_thumbnail[attributes::$languages[$i]['id']]).tep_image(DIR_WS_ICONS . 'icon_browser.png', PARCOURIR_SERVER).'</a>' ; ?>
</p>
</div>
<?php endfor; ?>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-10-15 17:03:30
|
Revision: 5274
http://sourceforge.net/p/oscss/svn/5274
Author: oscim
Date: 2015-10-15 17:03:27 +0000 (Thu, 15 Oct 2015)
Log Message:
-----------
clean file
Modified Paths:
--------------
trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt
Modified: trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt
===================================================================
--- trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt 2015-10-15 17:01:59 UTC (rev 5273)
+++ trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt 2015-10-15 17:03:27 UTC (rev 5274)
@@ -14,8 +14,6 @@
$lang['heading title option value delete']="Supprimer une valeur d'option" ;
$lang['heading title add option delete']="Supprimer une option" ;
-$lang['heading title']="Création attribut produits" ;
-
$lang['table heading id']="ID" ;
$lang['table heading product']="Nom du produit" ;
$lang['table heading opt name']="Nom de l'option" ;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-10-15 17:02:01
|
Revision: 5273
http://sourceforge.net/p/oscss/svn/5273
Author: oscim
Date: 2015-10-15 17:01:59 +0000 (Thu, 15 Oct 2015)
Log Message:
-----------
Fix
Modified Paths:
--------------
trunk/catalog/admin/includes/modules/configuration/modstatus.php
trunk/catalog/admin/includes/modules/pages/attributes.php
trunk/catalog/admin/includes/modules/pages/categories.php
trunk/catalog/admin/includes/modules/pages/currencies.php
trunk/catalog/admin/includes/modules/pages/customers.php
trunk/catalog/admin/includes/modules/pages/held_orders.php
trunk/catalog/admin/includes/modules/pages/newslettersModeles.php
trunk/catalog/admin/includes/modules/pages/orders.php
trunk/catalog/admin/includes/modules/pages/package.php
trunk/catalog/admin/includes/modules/pages/products.php
trunk/catalog/admin/includes/modules/pages/tax_classes.php
trunk/catalog/admin/includes/modules/products/desc_base.php
Modified: trunk/catalog/admin/includes/modules/configuration/modstatus.php
===================================================================
--- trunk/catalog/admin/includes/modules/configuration/modstatus.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/configuration/modstatus.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -3,16 +3,16 @@
@licence GPL 2005-2013 The osCSS developers - osCSS Open Source E-commerce
@portion code Copyright (c) 2002 osCommerce
@package osCSS-2 <www http://www.oscss.org>
- @version 2.2.0
+ @version 2.1.1
@date 14/04/2012, 17:00
@author oscim <mail aur...@os...> <www http://www.oscim.fr>
@encode UTF-8
@class modstatus
@brief Manage All status in table status, for all status type
- La modification des status
+ La modification des status
*/
-error_reporting(E_ALL);
+
Class modstatus
implements ext_configuration
{
@@ -98,7 +98,7 @@
/**
@fn update_advanced()
@brief Add/update les constantes associé au status
- Lisaison talble configuration
+ Lisaison talle configuration
*/
private function update_advanced(){
if (isset($_POST['default']) && ($_POST['default'] == 'on'))
@@ -184,10 +184,7 @@
/** PUBLIC METHODE */
/**
- @fn draw_action()
- @brief Action en remplacement des action par defaut
- @return none
- use redirect after action
+ Action en remplacement des action par defaut
*/
public function draw_action(){
global $action,$messageStack;
@@ -222,7 +219,7 @@
if ($action == 'insert')
- $list_status_id = sqlstatus::create($sql_data);
+ sqlstatus::create($sql_data);
else
sqlstatus::update($sql_data);
@@ -232,19 +229,6 @@
if(in_array(self::$config['type'],self::$type_advanced )) $this->update_advanced();
- /**
- add specific type product
- Add CFG_CLASS_VIRTUAL_TYPE_xxx in configuration table
- This new var conf define section visible in product edit
- */
- if(self::$config['type'] == 'product') {
- sqlconfiguration::create(array(
- 'key'=>'CFG_CLASS_VIRTUAL_TYPE_'.$list_status_id ,
- 'value'=>''
- ));
- }
-
-
tep_redirect(tep_href_link(FILENAME_CONFIGURATION, tep_get_all_get_params(array('action','sID'),false). '&sID=' . $list_status_id));
break;
case 'deleteconfirm':
Modified: trunk/catalog/admin/includes/modules/pages/attributes.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/attributes.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/attributes.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -163,13 +163,7 @@
for ($i=0, $n=sizeof(self::$languages); $i<$n; $i++) {
$sql_data_array['name']= tep_db_prepare_input($_POST['products_options_values_name'][self::$languages[$i]['id']]);
-
- $products_attributes_thumb= tep_db_prepare_input($_POST['products_options_values_thumbnail'][self::$languages[$i]['id']]);
- if( substr($products_attributes_thumb, 0,strlen( DIR_WS_CATALOG_IMAGES)) ==DIR_WS_CATALOG_IMAGES ) $products_attributes_thumb = tep_db_prepare_input(substr($products_attributes_thumb, strlen( DIR_WS_CATALOG_IMAGES) ) );
- else $products_attributes_thumb = tep_db_prepare_input($products_attributes_thumb);
-
- $sql_data_array['thumbnail']= $products_attributes_thumb;
-
+ $sql_data_array['thumbnail']= tep_db_prepare_input($_POST['products_options_values_thumbnail'][self::$languages[$i]['id']]);
$sql_data_array['id']= $povID;
$sql_data_array['language_id']= self::$languages[$i]['id'];
Modified: trunk/catalog/admin/includes/modules/pages/categories.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/categories.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/categories.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -35,8 +35,6 @@
,InterfacedTJsonS
// detail row in chidls
,InterfacedInnerHtml
- // use filter generic
- , FilterTabsData
// use filter put in RootListing link
, RightToFilter
@@ -63,9 +61,12 @@
@var array $DiversInfo transport var
*/
public static $DiversInfo;
+ /**
+ @var array $actions
+ */
+ public static $actions;
-
public function __construct(){
self::Clean();
self::GetConf();
@@ -355,7 +356,7 @@
self::$action=$actions;
-
+
self::$modules->check_action(self::$action);
self::$DiversInfo['current_category_id']=((isset($_GET['cPath'])&& !empty($_GET['cPath'])) ? tep_db_prepare_input($_GET['cPath']) : 0);
@@ -368,13 +369,10 @@
case 'setflag':
if ( ($_GET['flag'] == '0') || ($_GET['flag'] == '1') ) {
if (self::$Id > 0)
- if( sqlcategorie::update(array('id'=>self::$Id, 'sqlarray'=>array('categories_status'=>(int)$_GET['flag']))) == (int)1 )
- $messageStack->add(__('@categorie update status'), 'success');
- else
- $messageStack->add(__('@categorie update status') , 'error');
+ sqlcategorie::update(array('id'=>self::$Id, 'categories_status'=>(int)$_GET['flag']));
}
-
+ $messageStack->add(__('@categorie update status'), 'success');
parent::GenericAction(true);
@@ -385,7 +383,7 @@
case 'viewflag':
if ( ($_GET['flag'] == '0') || ($_GET['flag'] == '1') ) {
if (self::$Id > 0)
- sqlcategorie::update(array('id'=>self::$Id, 'sqlarray'=>array('categories_hidden'=>(int)$_GET['flag'])));
+ sqlcategorie::update(array('id'=>self::$Id, 'categories_hidden'=>(int)$_GET['flag']));
}
$messageStack->add(__('@categorie update visibility'), 'success');
@@ -474,7 +472,7 @@
}
- $query_raw = "SELECT DISTINCT ".$adjust->listfields." , cat.categories_id as id ".
+ $query_raw = "SELECT DISTINCT ".$adjust->listfields." ".
" FROM " . TABLE_CATEGORIES . " cat ".
" JOIN " . TABLE_CATEGORIES_DESCRIPTION . " catd ON (catd.categories_id = cat.categories_id AND catd.language_id = '" . (int)$adjust->languages_id . "') ";
@@ -511,7 +509,7 @@
$_query = $DB->query($query_raw);
$res=self::FormatDBValue($_query);
-
+
return $res;
}
@@ -585,20 +583,19 @@
$DB=Database::getInstance();
$res=array();
-
+ /* DEB Sub module add col */
+ self::GetExternalFieldsForFormat( self::$allfieldsexternal );
+
switch (self::$action) {
case 'listing':
global $languages_id;
-
- /* DEB Sub module add col */
- self::GetExternalFieldsForFormat( self::$allfieldsexternal );
-
-
+
while ($item = $_query->fetchAssoc()) {
$ord =array();
-
+
$item[0]=$item['id'];
$item[1]=tep_draw_checkbox_field('action_multi['.$item['id'].']','action_mutli_'.$item['id'],$item['id']);
+
foreach(self::$InitInfo['modele']['listing'] as $k=>$row){
if( ($value = self::FormatDBValueRow($k, $item)) && $value !=false )
$ord[$k]= $value;
Modified: trunk/catalog/admin/includes/modules/pages/currencies.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/currencies.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/currencies.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -33,7 +33,7 @@
/**
@var string file
*/
-// public static $Id;
+ public static $Id;
/**
@var array list code action module
*/
Modified: trunk/catalog/admin/includes/modules/pages/customers.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/customers.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/customers.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -660,8 +660,8 @@
if (!emailUtility::tep_validate_email($testobj->customers_email_address))
throw new Exception(ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
-// if(self::$Id > 0 && ! sqlcustomer::userTestNotExists($testobj->customers_email_address) )
-// throw new Exception(__('email address is already used') ) ;
+ if(self::$Id > 0 && ! sqlcustomer::userTestNotExists($testobj->customers_email_address) )
+ throw new Exception(__('email address is already used') ) ;
if (strlen($testobj->customers_telephone) < ENTRY_TELEPHONE_MIN_LENGTH)throw new Exception(__("Le numero de téléphone est trop court"));
Modified: trunk/catalog/admin/includes/modules/pages/held_orders.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/held_orders.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/held_orders.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -3,7 +3,7 @@
@licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
@package osCSS-2 <www http://www.oscss.org>
@version 2.2.0
- @date 28/12/2014, 22:33
+ @date 06/11/2013, 22:33
@author oscim <mail aur...@os...> <www http://www.oscim.fr>
@encode UTF-8
@file adminAccount.php
@@ -599,7 +599,14 @@
return MGabCont::CallGab('inline','display_view',__CLASS__);
}
+ /**
+ @brief return Filename
+ */
+ public static function GetFILENAME(){
+ return self::FILENAME;
+ }
+
}
?>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/modules/pages/newslettersModeles.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/newslettersModeles.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/newslettersModeles.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -37,7 +37,7 @@
/**
@var int current id
*/
-// public static $Id;
+ public static $Id;
/**
@var obj module newsletter
*/
@@ -61,19 +61,59 @@
public static function GetConf(){
global $languages_id;
-
+ self::$code=__CLASS__;
+// self::$datatype='newsletters_modeles';
+//
+//
+// self::$action=(isset($_REQUEST['action'])? $_REQUEST['action'] : 'listing' );
+// self::$Id=(isset($_REQUEST['cID'])? (int)$_REQUEST['cID'] : 0 );
+//
+// // aca
+// self::$modules=new AcaFactory(__CLASS__);
+// // Event
+// EventsHandlerActive::ActiveForClass(__CLASS__);
+// // instancie MLinkTo
+// MLinkTo::getInstance(self::$datatype);
+// // Set Name in MAster Gab
+// MGabCont::SetCurrentName(__CLASS__);
+// //
+// self::$languages = tep_get_languages();
+
self::PreLoad(__CLASS__, 'newsletters_modeles' , $languages_id);
+
+
+ /**
+ @remarks not load if not first init
+ */
+ if(!defined('JSONSTATMENT')) {
+ //! active datatable in ajax, precise les GET necessaire
+ define('JSONSTATMENT', 'ModTwo=true&mod=page&type='.self::$code);
+ //! detail item in ajax
+ define('AJAXSTATMENTDETAIL', 'mod=page&type='.self::$code);
+ }
$list_lg = array();
foreach(tep_get_languages() as $row)
$list_lg[] = array('id'=>$row['id'], 'text'=>$row['name']);
+ /**
+ @remarks define var execution sql in GetDBValue()
+ */
+// self::$InitInfo['adjust']=array(
+// 'languages_id'=>$languages_id,
+// 'page'=>1,
+// 'rowbyp'=>10,
+// 'sOrder'=>'',
+// 'sWhere'=>'',
+// );
+
/**
@remarks this define col theader title, and ajust html code
Just for Edit listing
*/
+// self::$allfields = array();
self::$allfields['nm.nmodele_id'] = array(
'sort'=>true,
@@ -84,21 +124,21 @@
'class'=>'tcenter',
'default'=>true,
);
- self::$allfields['nm.languages_id'] = array(
- 'sort'=>true,
- 'search'=>true,
- 'alias'=>'languages_id',
- 'text'=>__('newslettersmodeles table heading languages id'),
- 'width'=>'2%',
- 'class'=>'tcenter',
- 'default'=>true,
- 'edit'=>array(
- 'input_type'=>'select',
- 'input_size'=>'1',
- 'input_name'=>'languages_id',
- 'select_values'=>$list_lg,
- ),
- );
+// self::$allfields['nm.languages_id'] = array(
+// 'sort'=>true,
+// 'search'=>true,
+// 'alias'=>'languages_id',
+// 'text'=>__('newslettersmodeles table heading languages id'),
+// 'width'=>'2%',
+// 'class'=>'tcenter',
+// 'default'=>true,
+// 'edit'=>array(
+// 'input_type'=>'select',
+// 'input_size'=>'1',
+// 'input_name'=>'languages_id',
+// 'select_values'=>$list_lg,
+// ),
+// );
self::$allfields['nm.status'] = array(
'sort'=>true,
'search'=>true,
@@ -309,8 +349,9 @@
default:
parent::GenericAction();
- }
+ }
+
return self::$action;
}
@@ -461,8 +502,9 @@
$ord =array();
- $ord[0]=$item['id'];
+// $item[1]=tep_draw_checkbox_field('action_multi['.$item['id'].']','action_mutli_'.$item['id'],$item['id'],false, '','class="multi"');
+ $item[0]=$item['id'];
foreach(self::$InitInfo['modele']['listing'] as $k=>$row){
if( ($value = self::FormatDBValueRow($k, $item)) && $value !=false )
$ord[$k]= $value;
@@ -473,7 +515,10 @@
}
else $ord[$k]=$item[$k];
}
+
+
+
$res[]=$ord;
}
break;
@@ -532,6 +577,26 @@
+ /**
+ Nombre d'envoi a effectué
+ */
+// public function count_send(){
+// $DB=Database::getInstance();
+// $mail_query = $DB->query("SELECT COUNT(*) as count FROM " . TABLE_CUSTOMERS . " WHERE customers_newsletter = '1' ");
+// $mail = $mail_query->fetchAssoc();
+// return $mail['count'];
+// }
+
+ /**
+ Nombre d'envoi deja effetué
+ @a int nmodele_id
+ */
+// public static function count_sended_ok($nmodele_id, $code){
+// $DB=Database::getInstance();
+// $mail_query = $DB->query($sql="SELECT COUNT(*) AS count FROM ".TABLE_NEWSLETTERS_MODELES_SENT." WHERE nmodele_id = '" . $nmodele_id. "' AND module_type='".$code."' ");
+// $mail = $mail_query->fetchAssoc();
+// return $mail['count'];
+// }
}
?>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/modules/pages/orders.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/orders.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/orders.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -3,7 +3,7 @@
@licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
@package osCSS-2 <www http://www.oscss.org>
@version 2.2.0
- @date 28/12/2014, 10:36
+ @date 04/07/2013, 10:36
@author oscim <mail aur...@os...> <www http://www.oscim.fr>
@encode UTF-8
@file orders.php
@@ -15,7 +15,7 @@
require_once(DIR_FS_ADMIN . DIR_WS_CLASSES .'listeners/EventMessListener.php');
require_once(DIR_FS_ADMIN . DIR_WS_CLASSES .'listeners/EventNotificationListener.php');
-// error_reporting(E_ALL);
+
/**
@class orders
@brief manage orders, listing and edit status
@@ -34,7 +34,6 @@
,InterfacedTJsonS
// detail row in chidls
,InterfacedInnerHtml
-
// use filter put in RootListing link
// , RightToFilter
@@ -101,6 +100,8 @@
public function __construct() {
self::Clean();
self::GetConf();
+
+
}
/**
@@ -511,6 +512,7 @@
/// force encode for fdpf is in iso8859
header("Content-Type: text/html; charset=utf-8");
self::$orders_statuses = array_merge(tep_get_status_array('orders'),array(array('id'=>'','text'=>TEXT_NONE)));
+ self::$file_type_array= osCSS_pdf::get_module();
$pdf=osCSS_pdf::OutputInit($type);
$DF = new DatasFiles;
@@ -540,6 +542,8 @@
$pdf=osCSS_pdf::SaveEnd($file);
+ /// @remarks draw and exit;
+ // $pdf=osCSS_pdf::OutputEnd();
}
if(!isset($_GET['forceajax']))
tep_redirect(tep_href_link(self::FILENAME, 'cID='.$cID.'&action=edit'));
@@ -1112,7 +1116,7 @@
" LEFT JOIN " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id AND ot.class = 'ot_total' ) ".
" LEFT JOIN " . TABLE_ORDERS_PRODUCTS . " op on (op.orders_id = o.orders_id) ".
" LEFT JOIN " . TABLE_STATUS . " s ON(o.orders_status = s.status_id and s.status_type='orders' and s.language_id = '" . (int)$adjust->languages_id . "') ".
- " WHERE o.orders_type = 0 ".$adjust->sWhere.
+ " WHERE o.orders_type >= 0 ".$adjust->sWhere.
// " GROUP BY o.orders_id ".
" ORDER BY ".((!empty($adjust->sOrder)) ? $adjust->sOrder : 'o.orders_id DESC');
Modified: trunk/catalog/admin/includes/modules/pages/package.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/package.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/package.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -856,8 +856,7 @@
foreach(self::$list as $item){
foreach(self::tep_get_modele() as $k=>$v) $li[$k]=(string)$item->$k;
$li[0]=(int)$item->internalID;
- $li[1]=$item->ident;
- $li['status']=' '.self::get_item_status((string)$item->ident.'_'.(string)$item->level, $item);
+ $li['status']=self::get_item_status((string)$item->ident.'_'.(string)$item->level, $item);
$li['action']=self::get_item_action($item->ident,(int)$item->internalID,$item->url_src ,$item);
$res[]=$li;
}
Modified: trunk/catalog/admin/includes/modules/pages/products.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/products.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/products.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -680,14 +680,6 @@
'url'=>tep_href_link(FILENAME_FEEDS,'box=low_stock'),
);
- $boutons['listing'][]=array(
- 'type'=>'getLink',
- 'format'=>'button_nav',
- 'image'=>'',
- 'cssclass'=>'',
- 'title'=>__('@products image import'),
- 'url'=>tep_href_link(self::FILENAME, 'action=import'),
- );
if(isset($_SESSION['filters'][__CLASS__]['bystock']))
@@ -995,7 +987,7 @@
$typeID = ( (isset($_POST['products_virtual_type_id']) && (int)$_POST['products_virtual_type_id'] > 0 )? (int)tep_db_prepare_input($_POST['products_virtual_type_id']) : 1 );
- $products_id=sqlproduct::create(array('post'=>array('products_type'=>$typeID)) );
+ $products_id=sqlproduct::create(array('type'=>$typeID, 'language_id'=>$languages_id));
tep_redirect(tep_href_link(self::FILENAME, tep_get_all_get_params(array('action','cPath','cID'),false).'cID=' . $products_id.'&action=edit'));
break;
@@ -1068,192 +1060,7 @@
tep_redirect(tep_href_link(self::FILENAME, 'cPath=' . $categories_id . '&cID=' . $products_id.'&action=edit'));
break;
- case 'importfile':
-
- $modele = new StdClass;
- $modele->products_id = 0;
- $modele->products_ref = 1;
- $modele->products_model = 2;
- $modele->products_weight = 5;
- $modele->products_price = 6;
- $modele->products_images= 7;
- $modele->products_name = 3;
- $modele->products_title = 3;
- $modele->products_description = 4;
- $modele->linkto->categorie= 9;
- $modele->linkto->manufacturer= 8;
-
- $file = $_FILES['uploadedfile']['tmp_name'];
- $contenu = fread(fopen($file, "r"), filesize($file));
-// $contenu=preg_replace("#\b[\n|\r|\n\r)\b(?=\s[0-9])#", 'RLNRLNRLN', $contenu);
-
-
-// $contenu_array = explode("RLNRLNRLN",$contenu);
- $error = 0;
-
- $all = $keys =array();
- $attrib = array();
- $parent = $lastparent= 0;
-
- $K = 0;
- if (($handle = fopen($file, "r")) !== FALSE) {
- while (($row = fgetcsv($handle, 0, ",")) !== FALSE) {
- $num = count($row);
-
- // echap one line
- if($K > 0) {
- $end = false;
- $in = $row; //explode(',',$row);
-
-
-
-
- // base of product
- $array['sqlarray'] = array(
- //'id' => $in[0],//
- 'products_ref' => $in[$modele->products_ref], // IS UNIQUE
- 'products_model' => $in[$modele->products_model] ,
- 'products_weight' => $in[$modele->products_weight],
- 'products_price' => $in[$modele->products_price],
- 'products_tax_class_id' => 2, //$in[$modele->products_price],
- 'products_image' => $in[$modele->products_image],
- 'products_status' => 1
- );
- $array['sqlarray']['lg']['products_name'][$languages_id] = $in[$modele->products_name];
- $array['sqlarray']['lg']['products_description'][$languages_id] = $$in[$modele->products_description];
-
- foreach($modele->linkto as $link=>$valuelink)
- $array['sqlarray']['linkto'][$link][$in[ $modele->linkto->$link ] ] = $in[ $modele->linkto->$link ];
-
- $all[$in[1]] = $array;
-
-
-
- // attribute
- // color : 1 Taille : 2
-// $attrib[$in[1]][$in[2].$in[3]] = array(
-// 'options'=> array(
-// 1=>$in[2], // color
-// 2=>$in[3] // taille
-// ),
-// 'price'=> $in[13],
-// 'weight'=> $in[8],
-// 'url'=> $in[15],
-// 'image'=> $in[16]
-// );
-
-
-// print_r($all[$in[1]]);
-// print_r($attrib[$in[1]][$in[2].$in[3]]);
-// print_r($attrib[$in[1]]);
- }
-// }
- $K++;
- }
-
- fclose($handle);
- }
-// print_r($all);
-// exit;
-
-
- // loop for insert / update product line
- // specified for insert data in module prodcts and master table
- foreach( $all as $kid =>$row1) {
- $row1['post'] = $row1['sqlarray'];
-// print_r($row);
-
- if(!empty($row1['sqlarray']['products_ref'])) {
-// var_dump(sqlproduct::GetByRef($row['sqlarray']['products_ref']));
-// exit;
- if ( ($id = sqlproduct::GetByRef($row1['sqlarray']['products_ref'])) && $id > 0){
- $row1['id']=(int)$id;
- $ress=sqlproduct::update($row1);
- }
- else
- $id = sqlproduct::create($row1);
- }
-
-
- // loop for insert / update attribute
- // Create Option, value of option if no found
- // add attribute in product
- if(isset($attrib[$kid])) {
- sqlproductoptionvalue::delete( array('products_id'=>$id) );
-
- foreach( $attrib[$kid] as $row) {
-// print_r($row);
- foreach($row['options'] as $optid=>$optvaluekey) {
- // var_dump(( ($ovid= sqlproductoptionvalue::fetch(array('name'=> $optvaluekey,'language_id'=>$languages_id)) ) /*&& $ovid<=0 */));
- // search option value id
- $ovobj = sqlproductoptionvalue::fetch(array('name'=> $optvaluekey,'language_id'=>$languages_id)) ;
-
- if(!$ovobj) {
- // var_dump('icici');
- $ovid = sqlproductoptionvalue::create(array(
- 'language_id' => $languages_id,
- 'name' => $optvaluekey,
- 'thumbnail' => (($optid==1)? $row['image'] : '' )
- ));
- }
- else
- $ovid = $ovobj["products_options_values_id"];
-
-// $sql_data_array=array();
-// $sql_data_array['options_id']= $poID;
-// $sql_data_array['values_id']= $povID;
- if( sqlproductoptionvalue2option::fetch(array('options_id'=>$optid, 'values_id'=>$ovid)) == false ) {
-// echo 'add';
- sqlproductoptionvalue2option::create(array('options_id'=>$optid, 'values_id'=>$ovid));
- }
-
- // if(isset($option['id'])) $sql_data_array['products_options_values_id'] = $option['id'];
- // if(isset($option['language_id'])) $sql_data_array['language_id'] = $option['language_id'];
- // if(isset($option['name'])) $sql_data_array['products_options_values_name'] = $option['name'];
- // if(isset($option['thumbnail'])) $sql_data_array['products_options_values_thumbnail'] = $option['thumbnail'];
-
-// var_dump($optid, $optvaluekey);
- // exit;
- // $sql_data_array =array();
- $sql_data_array['products_id'] = $id;
- $sql_data_array['options_id'] = $optid;
- $sql_data_array['options_values_id'] = $ovid;
- if(isset($row['price'])) $sql_data_array['options_values_price'] = $row['price'];
- $sql_data_array['price_prefix'] = (isset($option['price_prefix']) ? $option['price_prefix'] : "+" );
- if(isset($option['products_options_sort_order'])) $sql_data_array['products_options_sort_order'] = $option['products_options_sort_order'];
-// if(isset($option['products_options_values_url'])) $sql_data_array['products_options_values_url'] = $option['products_options_values_url'];
- $sql_data_array['products_options_values_url'] = (($optid==1)? $row['url'] : '' );
- //
- //
- //
- if( ($pa=sqlproductattribute::fetch(array('products_id'=>$id, 'options_id'=> $optid, 'options_values_id'=>$ovid ), true) ) && $pd !=false){
- $sql_data_array['id'] = $pa->id;
- sqlproductattribute::update($sql_data_array);
- }
- else
- sqlproductattribute::create($sql_data_array);
- }
- }
- }
- }
-
-// print_r($all);
- exit;
-
-
-
- // trigger event
- EventsHandlerActive::Triggers(
- array(
- 'action'=>self::$action,
- 'called'=>self::GetClassDatatype()
- )
- );
-
-
- tep_redirect(tep_href_link(self::FILENAME, 'cPath=' . $categories_id . '&cID=' . $products_id.'&action=edit'));
- break;
default:
parent::GenericAction();
}
@@ -1598,10 +1405,9 @@
@param int $flag_type, peut être homis
@return true/false
*/
- public static function CheckClassProduct($string_class, $flag_type=1){
- $virtual_type=(!isset(self::$Info->type)?$flag_type :self::$Info->type);
+ public static function CheckClassProduct($string_class, $flag_type=''){
+ $virtual_type=(tep_not_null($flag_type)?$flag_type : self::$modules->type_flag);
$class = 'CFG_CLASS_VIRTUAL_TYPE_'.$virtual_type;
-
if(defined($class) && in_array($string_class, explode(';',constant($class)))) return false;
if(_cst_bool($string_class)) return false;
return true;
Modified: trunk/catalog/admin/includes/modules/pages/tax_classes.php
===================================================================
--- trunk/catalog/admin/includes/modules/pages/tax_classes.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/pages/tax_classes.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -3,30 +3,23 @@
@licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
@package osCSS-2 <www http://www.oscss.org>
@version 2.2.0
- @date 28/12/2014, 10:30
+ @date 10/10/2013, 10:30
@author oscim <mail aur...@os...> <www http://www.oscim.fr>
@encode UTF-8
@file tax_classes.php
@dir admin/includes/modules/pages/
*/
-require_once(DIR_FS_ADMIN . DIR_WS_CLASSES .'ModTreePage.php');
+require_once(DIR_FS_ADMIN . DIR_WS_CLASSES .'ModTwo.php');
-
/**
@class tax_classes
*/
class tax_classes
- extends ModTreePage
+ extends ModTwo /// new abstract class for nextgen module
implements
- InterfaceModule
-
- // base module config structure
- , ExtModConfig
- // global GetConf methode
- ,IntModTree
- // datatable and editable by ajax
- ,InterfacedTJsonS
- {
+ InterfaceModule,
+ /*IntModTwo, */ /// new interface module for nextgen module
+ ExtModConfig {
const FILENAME = FILENAME_TAX_CLASSES;
@@ -38,6 +31,10 @@
@var int current rates
*/
public static $sId;
+ /**
+ @var bool $dir_ok
+ */
+ public static $dir_ok;
/**
@@ -79,7 +76,7 @@
MGabCont::SetCurrentName(__CLASS__);
-
+
/**
@remarks define var execution sql in GetDBValue()
*/
@@ -561,6 +558,31 @@
+ public static function tep_get_list($page=1,$rowbyp=10,$sOrder='',$sWhere='',$options=''){
+ global $query_numrows;
+
+ /// @remarks force load conf
+ self::GetConf();
+
+ $res=array();
+
+ /**
+ @remarks adjust param for sql requete
+ */
+ self::$InitInfo['adjust']['page']=$page;
+ self::$InitInfo['adjust']['rowbyp']=$rowbyp;
+ self::$InitInfo['adjust']['sOrder'].=$sOrder;
+ self::$InitInfo['adjust']['sWhere'].=$sWhere;
+ self::$InitInfo['adjust']['options']=$options;
+
+ $res = self::GetDBValue();
+
+ self::$list= $query_numrows ;
+
+ return $res;
+ }
+
+
/** public static InterfacedTJsonS */
/**
@@ -568,7 +590,7 @@
@param $_query ressource db sql
@return array
*/
- protected static function FormatDBValue($_query){
+ private static function FormatDBValue($_query){
$DB=Database::getInstance();
$res=array();
@@ -580,22 +602,81 @@
while ($item = $_query->fetchAssoc()) {
foreach(self::$InitInfo['modele']['listing'] as $k=>$row)
- if( ($value = self::FormatDBValueRow($k, $item)) && $value !=false )
- $ord[$k]= $value;
+ if($k == 'action') $ord[$k]=self::ButtonRowsActions($item);
+ elseif($k == 'visible') $ord[$k]=self::RowStatus($item);
else $ord[$k]=$item[$k];
$res[]=$ord;
}
break;
- default:
- $res = parent::FormatDBValueDefault($_query);
+ default:
+ global $languages_id;
+
+ $ord =array();
+
+ if(is_object($_query)){
+ $res = new stdClass;
+ foreach($_query as $key=>$row) {
+ switch($key){
+ default:
+
+ if( ($new_r = self::GetEditFieldsDefine($key) ) && $new_r !=false ){
+ $new_r['input_value'] = $row;
+ $edit = 'edit_'.$key;
+ $res->$edit = new objectInfo($new_r);
+ }
+
+ $res->$key = $row;
+ }
+ }
+ }
+
}
return $res;
}
+ /**
+ @fn ButtonRowsActions($item)
+ @return string html
+ */
+ public static function ButtonRowsActions($item){
+ return sprintf(
+ CsrtAction::getFormat('row_action'),
+// sprintf(CsrtAction::getLink('row_action_right', ICON_FILE_DOWNLOAD, 'plus'), '', tep_href_link(self::FILENAME, 'cID=' . $item['tax_class_id'] . '&action=download') ,'' )
+''
+ ,
+ sprintf(CsrtAction::getLink('row_action_right', IMAGE_DELETE, 'edit'), '', tep_href_link(self::FILENAME, 'cID=' . $item['id'] . '&action=edit') ,'' ).
+ sprintf(CsrtAction::getLink('row_action_right', IMAGE_DELETE, 'delete'), 'fancy', tep_href_link(self::FILENAME, 'cID=' . $item['id'] . '&action=delete') ,'' )
+ );
+ }
+ /**
+ @brief return format html for row status
+ @param $product array restuts row product
+ @return string html
+ */
+ private static function RowStatus($item){
+ $exclude=array('action','pID','forceajax','type','class','function','funct', 'mod');
+ $query_s='action=setflag&cID=' . $item['id'].'&flag=';
+ return '<a class="ajaxinline" href="' . tep_href_link(self::FILENAME, tep_get_all_get_params($exclude).$query_s.(($item['visible'] == '1')? '0' : '1') ) . '">'.
+ sprintf(
+ CsrtAction::getFormat('row_flag'),
+ (int)$item['visible'],
+ ( ($item['visible'] == '1')? IMAGE_ICON_STATUS_GREEN : IMAGE_ICON_STATUS_RED)
+ ).
+ '</a>';
+ }
+
+
+ /**
+ @brief return Filename
+ */
+ public static function GetFILENAME(){
+ return self::FILENAME;
+ }
+
}
?>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/modules/products/desc_base.php
===================================================================
--- trunk/catalog/admin/includes/modules/products/desc_base.php 2015-10-15 16:58:20 UTC (rev 5272)
+++ trunk/catalog/admin/includes/modules/products/desc_base.php 2015-10-15 17:01:59 UTC (rev 5273)
@@ -80,6 +80,7 @@
public function GetConf($opt){
$array = array();
+
$conf = Config::getInstance();
$attach_tab = ( ($conf->GetConf( 'MODULE_ACAPRO_DESC_BASE_ATTACH_FIELDS_TABS' ) ===false) ? __CLASS__ : $conf->GetConf( 'MODULE_ACAPRO_DESC_BASE_ATTACH_FIELDS_TABS') ) ;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-10-15 16:58:22
|
Revision: 5272
http://sourceforge.net/p/oscss/svn/5272
Author: oscim
Date: 2015-10-15 16:58:20 +0000 (Thu, 15 Oct 2015)
Log Message:
-----------
Fix info
Modified Paths:
--------------
trunk/catalog/admin/includes/template/oscss/theme.xml
Modified: trunk/catalog/admin/includes/template/oscss/theme.xml
===================================================================
--- trunk/catalog/admin/includes/template/oscss/theme.xml 2015-10-15 16:57:15 UTC (rev 5271)
+++ trunk/catalog/admin/includes/template/oscss/theme.xml 2015-10-15 16:58:20 UTC (rev 5272)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<template>
<name>oscss</name>
- <version>1</version>
- <author>oscss</author>
+ <version>2</version>
+ <author>Oscss-Shop Team </author>
<desc>...</desc>
<thumb>oscss.png</thumb>
<ui_theme_admin>smoothness</ui_theme_admin>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-10-15 16:57:18
|
Revision: 5271
http://sourceforge.net/p/oscss/svn/5271
Author: oscim
Date: 2015-10-15 16:57:15 +0000 (Thu, 15 Oct 2015)
Log Message:
-----------
Remake/Adjust/fix template oscss in BO
Modified Paths:
--------------
trunk/catalog/admin/includes/template/oscss/css/less/header.less
trunk/catalog/admin/includes/template/oscss/css/less/styles.less
trunk/catalog/admin/includes/template/oscss/data/icon_set.xml
trunk/catalog/admin/includes/template/oscss/definition.less
trunk/catalog/admin/includes/template/oscss/footer-1.php
trunk/catalog/admin/includes/template/oscss/gabarit-1.php
trunk/catalog/admin/includes/template/oscss/languages/fr_FR.txt
trunk/catalog/admin/includes/template/oscss/stylesheet-1.css
Added Paths:
-----------
trunk/catalog/admin/includes/template/oscss/css/less/datatable.less
trunk/catalog/admin/includes/template/oscss/footer2-1.php
trunk/catalog/admin/includes/template/oscss/header-1.php
trunk/catalog/admin/includes/template/oscss/img/1/logo-oscss-FINAL.png
Added: trunk/catalog/admin/includes/template/oscss/css/less/datatable.less
===================================================================
--- trunk/catalog/admin/includes/template/oscss/css/less/datatable.less (rev 0)
+++ trunk/catalog/admin/includes/template/oscss/css/less/datatable.less 2015-10-15 16:57:15 UTC (rev 5271)
@@ -0,0 +1,498 @@
+/**
+ *
+ * Use var define in definition.less
+ * Use image based on /includes/javascript/jquery.dataTable
+ *
+ * @font_size
+ * @lineheight
+ *
+ * @color_012
+ * @bg_hover
+ * @bg_hover_txt
+ *
+ * @color_datatable_tr_th
+ * @color_datatable_tr_th_txt
+ *
+ * @bg_table_tr_odd
+ * @bg_table_tr_even
+ *
+ * @color_sorting base color for
+ *
+ * @color_split_active hover rows
+ * @color_split_active_text hover rows text
+ *
+ * @color_bg_gradient_base,
+ * @color_bg_gradient_eob,
+ * @color_bg_gradient_eon
+ *
+ * @color_bg_ext_datatable header and footer for dataTable
+ *
+ * @color_split
+ * @color_split_active
+ * @color_split_active_text
+ * @color_split_border_hover
+ */
+
+/**
+ * Dipslay all listing in array
+ */
+.dataTableBase,
+.dataTableSearch,
+.dataTable{
+ float:left;
+ width:100%;
+ border-width:0;
+ border:1px solid @color_012;
+ .rounded(5px);
+
+ a.button,
+ input[type=submit].button,
+ input[type=image].button,
+ button.button {
+ margin:0;
+ }
+
+
+ tr {
+ padding:0;
+ margin:0;
+
+ th{
+ background-color: @color_datatable_tr_th;
+ font-size:@font_size;
+ font-weight:bold;
+ text-align:center;
+ color: @color_datatable_tr_th_txt;
+ text-shadow:none;
+ min-height:( @lineheight * 1.6 );
+ height:( @lineheight * 1.6 );
+ cursor: pointer;
+ }
+
+
+ .sorting_asc {
+ background: @color_datatable_tr_th url("../../../includes/javascript/jquery.dataTables/sort_asc.png") no-repeat center right;
+ padding-right: 20px;
+ }
+
+ .sorting_desc {
+ background: @color_datatable_tr_th url("../../../includes/javascript/jquery.dataTables/sort_desc.png") no-repeat center right;
+ padding-right: 20px;
+ }
+
+ .sorting {
+ background: @color_datatable_tr_th url("../../../includes/javascript/jquery.dataTables/sort_both.png") no-repeat center right;
+ padding-right: 20px;
+ }
+ }
+
+
+ tbody{
+
+ // rollover rows for mouse
+ tr,
+ tr.odd,
+ tr.even{
+ border:none;
+ cursor:default;
+
+ .highlighted,
+ &:hover{
+ background-color: @bg_hover;
+ cursor: pointer;
+
+ td{
+ background-color: @bg_hover;
+ }
+ td,
+ td a {
+ color : @bg_hover_txt ;
+ }
+ }
+
+ td{
+ line-height:( @lineheight * 1.1 );
+ color: @datatable_color_txt;
+ padding: 2px;
+ font-size: @font_size;
+ cursor:default;
+
+ a{
+ text-decoration:none;
+ color: @datatable_color_txt;
+ }
+
+ /* Replace value by icon */
+ .edit-input-value .Val.img { display: block; height: 16px; margin: auto; width: 16px;}
+
+ .edit-input-value .Flag-0.txt,
+ .edit-input-value .Val-0.txt { display:none}
+ .edit-input-value .Flag-0.img{background:transparent url("../defaut/img/1/icon_status_red.gif") left top no-repeat}
+ .edit-input-value .Val-0.img { width: 10px; background:transparent url("../defaut/img/1/images/icons/icon_view_red.gif") left top no-repeat}
+
+ .edit-input-value .Flag-1.txt,
+ .edit-input-value .Val-1.txt { display:none}
+ .edit-input-value .Flag-1.img{background:transparent url("../defaut/img/1/icon_status_green.gif") left top no-repeat}
+ .edit-input-value .Val-1.img {width: 10px; background:transparent url("../defaut/img/1/images/icons/icon_view_green.gif") left top no-repeat}
+ }
+ .row_action {
+ min-width:100px;
+ text-align:right;
+ }
+
+ .row_action_large {
+ min-width:250px;
+ text-align:right;
+ }
+
+ .row_customers {
+ min-width:100px;
+ text-align:left;
+ }
+
+
+
+ .sorting_1{
+ background-color: ( @color_sorting + 50);
+ }
+ .sorting_1,
+ .sorting_1 a{
+ color : ( @color_sorting_text + 50);
+ }
+
+ .sorting_2{
+ background-color:( @color_sorting + 65);
+ }
+ .sorting_2,
+ .sorting_2 a{
+ color :( @color_sorting_text + 65);
+ }
+
+ .sorting_3{
+ background-color:( @color_sorting + 80);
+ }
+ .sorting_3,
+ .sorting_3 a{
+ color : (@color_sorting_text + 80);
+ }
+
+
+ }
+
+ .odd{
+ background-color: @bg_table_tr_odd;
+ }
+
+ .even{
+ background-color: @bg_table_tr_even;
+ }
+
+ .details {
+ background-color: #d1cfd0;
+ }
+ }
+
+ tfoot{
+
+ a.button,
+ select.button,
+ input.button,
+ button.button {
+ background:none;
+ border:none;
+ .box-shadow(0 0 0 rgba(0,0,0,0));
+ .rounded(0);
+
+ &:hover{
+ background:none;
+ border:none;
+ }
+ }
+
+ tr td input {width:80%;text-align:left;}
+ }
+}
+
+
+.dataTables_wrapper {
+ position: relative;
+ clear: both;
+ .bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon) ;
+ .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+
+ .paging_full_numbers{
+ .border-radius(5px,5px,5px,5px);
+ .box-shadow(0 0 5px @color_grey_oscss);
+ a{
+ display:inline-block;
+ padding: 6px 12px;
+ margin:0 0;
+ min-width:10px;
+ text-align:center;
+ border:1px solid #ffffff;
+ border-right:1px solid #dddddd;
+ background-color: #ffffff;
+ &.first {.border-radius(0px,0px,5px,5px);}
+ &.last { .border-radius(5px,5px,0px,0px); border-right:1px solid #ffffff;}
+ }
+
+
+ .paginate_button,
+ .paginate_active{
+ .border-radius(0px,0px,0px,0px);
+ //.box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+
+ &:hover{
+ border:1px solid @color_split_border_hover;
+ background:white;
+ }
+ }
+
+ .paginate_active{
+ color : @color_split_active_text;
+ background-color: @color_split_active;
+
+ &:hover{
+ cursor: not-allowed !important;
+ color : @color_split_active_text;
+ background-color: @color_split_active;
+ }
+ }
+ }
+
+ .top,
+ .bottom {
+ padding: 1px 10px;
+ background-color: @color_bg_ext_datatable;
+
+ .dataTables_length {
+// clear: both;
+ float: left;
+ width: 40%;
+
+ form label {
+ padding:0;
+ margin:0;
+ }
+ }
+
+ .dataTables_paginate {
+ float: right;
+ text-align: right;
+ padding-top: 0px;
+ }
+
+ .dataTables_filter {
+ width: 50%;
+ float: right;
+ text-align: right;
+ }
+ }
+
+ .top{
+ .border-radius( 5px,0, 0, 5px);
+
+
+ .dataTables_filter {
+ clear: both;
+ position: relative;
+ right: 0;
+ text-align: right;
+ margin-bottom: 0;
+ }
+
+ .dataTables_paginate {
+ float: right;
+ text-align: right;
+ padding-top: 0px;
+ margin-bottom: 5px;
+ margin-left: 80px;
+ }
+ }
+
+ .bottom {
+ padding: 5px 10px;
+ .border-radius( 0, 5px, 5px, 0);
+
+ .dataTables_info {
+ clear:both;
+ }
+ }
+}
+
+
+/* Pagination */
+.paging_full_numbers{
+ width: auto;
+}
+
+.paging_full_numbers span.paginate_button,
+.paging_full_numbers span.paginate_active {
+ border:1px solid @color_split_border_hover!important;
+ padding: 6px 12px;
+ margin: 0;
+ cursor: pointer;
+
+ .border-radius(0px,0px,0px,0px);
+ //.box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+}
+
+
+
+.paging_full_numbers .fg-button {
+ padding: 2px 6px;
+ cursor: pointer;
+}
+
+
+.fg-toolbar {
+ padding: 5px;
+}
+
+.dataTables_paginate {
+ width: auto;
+}
+
+
+
+
+
+
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * DataTables features
+ */
+
+
+
+.dataTables_processing {
+ position: absolute;
+ top: 0px;
+ left: 50%;
+ width: 250px;
+ margin-left: -125px;
+ border: 1px solid #ddd;
+ text-align: center;
+ color: #999;
+ font-size: 11px;
+ padding: 2px 0;
+}
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Misc
+ */
+
+
+
+.dataTables_empty {
+ text-align: center;
+}
+
+
+
+.DTTT_container {
+ padding: 3px 0 3px 3px;
+ border: 1px solid #d0d0d0;
+ background-color: #f0f0f0;
+ float: right;
+ margin-bottom: 0;
+}
+
+.TableTools_button {
+ position: relative;
+ float: left;
+ margin-right: 3px;
+}
+
+/* Buttons are cunning border-box sizing - we can't just use that for A and DIV due to IE6/7 */
+button.DTTT_button {
+ height: 30px;
+ padding: 3px 8px;
+}
+
+.DTTT_button embed {
+ outline: none;
+}
+
+button.DTTT_button:hover,
+div.DTTT_button:hover,
+a.DTTT_button:hover {
+ border: 1px solid #666;
+ text-decoration: none !important;
+
+ -webkit-box-shadow: 1px 1px 3px #999;
+ -moz-box-shadow: 1px 1px 3px #999;
+ -ms-box-shadow: 1px 1px 3px #999;
+ -o-box-shadow: 1px 1px 3px #999;
+ box-shadow: 1px 1px 3px #999;
+
+ background: #f3f3f3; /* Old browsers */
+ background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */
+ background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */
+ background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */
+ background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
+}
+
+button.DTTT_disabled,
+div.DTTT_disabled,
+a.DTTT_disabled {
+ color: #999;
+ border: 1px solid #d0d0d0;
+
+ background: #ffffff; /* Old browsers */
+ background: -webkit-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* FF3.6+ */
+ background: -ms-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* IE10+ */
+ background: -o-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Opera 11.10+ */
+ background: linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fafafa',GradientType=0 ); /* IE6-9 */
+}
+
+
+
+.DTTT_print_info {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ width: 400px;
+ height: 150px;
+ margin-left: -200px;
+ margin-top: -75px;
+ text-align: center;
+ color: #333;
+ padding: 10px 30px;
+
+ background: #ffffff; /* Old browsers */
+ background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */
+ background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */
+ background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */
+ background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */
+
+ opacity: 0.9;
+
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
+}
+
+.DTTT_print_info h6 {
+ font-weight: normal;
+ font-size: 28px;
+ line-height: 28px;
+ margin: 1em;
+}
+
+.DTTT_print_info p {
+ font-size: 14px;
+ line-height: 20px;
+}
Modified: trunk/catalog/admin/includes/template/oscss/css/less/header.less
===================================================================
--- trunk/catalog/admin/includes/template/oscss/css/less/header.less 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/css/less/header.less 2015-10-15 16:57:15 UTC (rev 5271)
@@ -2,29 +2,30 @@
*/
header#header {
- background:@header_base_bg;
- min-width:@display_max_width;
- width:@display_width ;
+ background:@header_info_bg;
+ width:@navbar-width ;
margin:0 0;
position:fixed;
+ left: 0;
+ height: 100%;
z-index:10;
div#headInfos {
display:inline-block;
- height:25px;
+ //height:25px;
margin:0;
padding:0;
width:100%;
color:@color_011;
background:@header_info_bg;
- h1 {display:inline; margin:0 2px; padding:0; line-height:25px;}
- h2 {display:inline; line-height:25px; color:#FFFFFF; vertical-align:top;}
+ h1 {display:block; margin:10px 0 0 0 ; padding:0; line-height:25px;}
+ h2 {display:block; line-height:25px; color:@color_grey_oscss;font-size: 10px;text-align: center;font-weight: normal;}
- a,
- span{padding-right:1em; color:@color_011; text-decoration:none; line-height:25px; vertical-align:top;float:right;}
- a:hover{text-decoration:underline;}
+ span{display: none;}
+ a{ display: block; padding: 3px 0; color: white;text-decoration: none;text-align: center;}
+ a:hover{text-decoration: underline;}
}
}
@@ -33,8 +34,7 @@
* */
nav {
background:transparent ;
- height:(@lineheight * 1.55);
- border-top: 1px solid @nav_border;
+ //border-top: 1px solid @nav_border;
a,
a:link,
@@ -49,7 +49,8 @@
text-decoration:none;
height:(@lineheight * 1.1);
text-align:center;
- font:normal @font_size Verdana, Arial, sans-serif;
+ font: normal @font_size Verdana, Arial, sans-serif;
+ font-size:(@font_size * 1.5);
text-shadow: 0 1px 0 @nav_master_link_hover_shadow;
&:link,
@@ -58,134 +59,251 @@
}
&:hover {
- color:@nav_master_link_hover;
- text-shadow: 0 1px 0 @nav_master_link_hover_shadow;
+ color:@color_grey_oscss;
+ text-shadow: 0 1px 2px @nav_master_link_hover_shadow;
text-decoration:none;
}
}
.disabled{
- display:none;
+ color:none;
&:hover { display:none;}
}
- .ssmenu a {
- color: @submenu_link;
- padding:(@padding_base * 0.2) 0 (@padding_base * 0.2) (@padding_base * 0.4);
- text-decoration:none;
- line-height:(@lineheight * 1.1);
- border:none;
- text-align:left;
-
- &:hover {
- background-color:@submenu_bg_hover;
- color:@submenu_link_hover ;
- text-shadow: 0 1px 0 @submenu_link_hover_shadow;
- text-decoration:none;
- width:88%;
- }
- }
+
- ul{
- list-style:none;
-
- .ssmenu {
- margin:0 1px 1px 0;
- background:@submenu_bg;
-
- .sub{
- &:after{ content: " >>"; }
- }
- .ssmenu{
- position:absolute;
- top:-1px;
- left:180px;
- display:none;
- z-index:15;
-
- .sub{
- &:after{ content: " >>"; }
- }
- }
- }
-
- li{
- position:relative;
- float:left;
- padding: 0 5px;
- height:(@lineheight * 1.55);
-
- &:hover ul {
- display:block;
- }
-
- ul{
- position:absolute;
- top:(@lineheight * 1.55);
- left:0;
- display:none;
- z-index:10;
-
- li{
- float:none;
- width:200px;
- }
- }
- }
-
- .ssmenu li:hover ul.ssmenu,
- .ssmenu li ul.ssmenu li:hover ul.ssmenu{ display:block }
-
- .ssmenu li ul.ssmenu,
- .ssmenu li ul.ssmenu li ul.ssmenu{ display:none; }
- }
- ul.fleft{
- .gradient( @color_menu_nav_cl_1, @color_menu_nav_cl_2 , @color_menu_nav_cl_3) ;
-
- a{
- padding-top:4px;
- padding-left: 20px;
- }
- }
+ ul.menu_left{
+ float: none;
+ background-color:@header_info_bg;
+ &>li{
+ display: block;
+ position: relative;
+ .disabled {
+ display: none;
+ }
+ &>a {
+ display: block;
+ border-right: 5px solid @header_info_bg;
+ height: (@lineheight * 4);
+ line-height: (@lineheight * 4);
+ width: inherit;
+ padding: 0 0 0 20px;
+ text-shadow: 0px 0px 2.5px #fff;
+ color: transparent;
+ font-size:16px;
+ text-transform: uppercase;
+ text-align: left;
+ .transition(0.2s,ease-out);
+ &:before {
+ .transition(0.2s,ease-out);
+ color: white;
+ text-shadow: none;
+ font-size:40px;
+ vertical-align: middle;
+ display: inline-block;
+ text-align: center;
+ width: 60px;
+ }
+ &:after{
+ .transition(0.2s,ease-out);
+ content:' ';
+ position: absolute;
+ left: calc(@navbar-width - 22.3px);
+ top: 22px;
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 10px 17.3px 10px 0;
+ border-color: transparent @header_info_bg transparent transparent;
+ line-height: 0px;
+ filter: progid:DXImageTransform.Microsoft.Chroma(color='@header_info_bg');
+ }
+ }
+ & ul {
+ visibility: hidden;
+ .opacity(0);
+ .transition(0.2s,ease-out);
+ position: absolute;
+ left: 100% ;
+ top: 0;
+ background-color: white;
+ .box-shadow(0 0 7px @color_grey_oscss);
+ z-index:-1;
+ & li {
+ position: relative;
+ display: block;
+ & a {
+ .transition(0.2s,ease-out);
+ border-right: 3px solid white;
+ position: relative;
+ display: block;
+ padding: 10px 15px 10px 10px;
+ height: (@lineheight * 1.2);
+ line-height: (@lineheight * 1.2);
+ font-size:13px;
+ text-align: left;
+ color: @color_grey_oscss;
+ white-space: nowrap;
+ &:before {
+ .transition(0.2s,ease-out);
+ font-size:(@lineheight * 1.5);
+ display: inline-block;
+ text-align: center;
+ vertical-align: middle;
+ width: 25px;
+ margin-right: 10px;
+ }
+ &.sub:after{
+ content:' \f0da';
+ font-family: FontAwesome;
+ font-size: 20px;
+ vertical-align: top;
+ vertical-align: text-top;
+ }
+ }
+
+ &:hover {
+ &:hover>ul {
+ visibility: visible;
+ .opacity(1);
+ }
+ &>a{
+ color: @color_blue_oscss;
+ border-right: 3px solid @color_blue_oscss;
+ background-color: #eeeeee;
+ padding-right:10px;
+ &:before {margin-right: 15px;}
+ }
+ }
+ }
+ }
+ &:hover>ul {
+ visibility: visible;
+ .opacity(1);
+ }
+ &:hover>a {
+ background-color: #eeeeee;
+ color: @color_grey_oscss;
+ border-right: 5px solid @color_blue_oscss;
+ text-shadow: 0 1px 2px @nav_master_link_hover_shadow;
+ &:before {
+ color: @color_grey_oscss;
+ }
+ &:after {
+ border-color: transparent @color_blue_oscss transparent transparent;
+ filter: progid:DXImageTransform.Microsoft.Chroma(color='@color_blue_oscss');
+ }
+ }
+ }
+ }
- form{
- margin:0;
- padding:0;
- }
+
- /* Switcher */
- p.themeSwitcher {
- float:right;
- margin:0;
- padding:0 1em 0 0;
- text-align:right;
- color:@color_011;
-
- select {
- margin:2px;
- padding:0;
- vertical-align:middle;
- width:100px;
-
- option{
- display:block;
- color:@color_013;
- font-size:(@font_size *0.9);
- }
- }
- }
+
}
+/* menu supérieur */
+ul.menu_top{
+ background-color:@color_grey_oscss;
+ color:#ffffff;
+ position: fixed;
+ top: 0;
+ right:0;
+ width: 100%;
+ padding-left: @navbar-width;
+ display: block;
+ height: @top_menu_height;
+ z-index: 9;
+ text-align: right;
+ &>li {
+ display: inline-block;
+ vertical-align: middle;
+ &>a {
+ display: block;
+ padding: 0 10px;
+ color: inherit;
+ height: @top_menu_height;
+ line-height: @top_menu_height;
+ vertical-align: middle;
+ text-decoration: none;
+ .transition(0.2s,ease-out);
+ &:hover {
+ background-color:black;
+ }
+ .badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 1;
+ color: @color_grey_oscss;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: text-bottom;
+ background-color:#ffffff;
+ border-radius: 10px;
+ }
+ }
+ div.bookmarks {
+ height: @top_menu_height;
+ line-height: @top_menu_height;
+ padding: 0 10px;
+ display: inline-block;
+ vertical-align: middle;
+ position: relative;
+ &:hover {
+ background-color: black;
+ ul.dropdown{
+ visibility: visible;
+ .opacity(1);
+ }
+ }
+ ul.dropdown{
+ visibility: hidden;
+ .opacity(0);
+ .transition(0.2s,ease-out);
+ background-color: black;
+ position: absolute;
+ left: 0;
+ display: block;
+ margin:0; padding: 0;
+ li {margin:0; padding: 0;}
+ a {display: block; color: inherit;text-decoration: none;white-space: nowrap;padding: 0 10px;text-align: left;.transition(0.2s,ease-out);
+ &:hover { background-color: @color_grey_oscss;}}
+ }
+ }
+ }
+ form{
+ margin:0;
+ padding:0;
+ }
+ /* Switcher */
+ p.themeSwitcher {
+
+ margin:0;
+ padding:0 1em 0 0;
+ select {
+ margin: 0 2px;
+ padding:0;
+ vertical-align:middle;
+ width:100px;
+
+ option{
+ display:block;
+ color:@color_013;
+ font-size:(@font_size *0.9);
+ }
+ }
+ }
+}
/* user bar */
div#user {
background:@menu_user_bg ;
- border-top: 1px solid @menu_user_border;
- padding-right:10px;
- height:25px;
ul#MenuExts{
Modified: trunk/catalog/admin/includes/template/oscss/css/less/styles.less
===================================================================
--- trunk/catalog/admin/includes/template/oscss/css/less/styles.less 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/css/less/styles.less 2015-10-15 16:57:15 UTC (rev 5271)
@@ -72,6 +72,7 @@
padding: @padding_base 0 @padding_base (@padding_base * 1.2);
text-shadow: 0 1px 1px @title_h3_color_shadow ;
}
+h3.main-title , .page > h3{ font-size: (@font_size * 3);}
h4 { font-size: @font_size ;text-shadow:0 1px 0 #fff;}
h5 { font-size: @font_size ;text-shadow:0 1px 0 #fff;}
p {padding:1em;}
@@ -224,8 +225,8 @@
body {
- background:#faf9f7 url("img/1/body.jpg") left -80px repeat-x;
- background-attachment:fixed;
+ //background:#faf9f7 url("img/1/body.jpg") left -80px repeat-x;
+ //background-attachment:fixed;
font: normal @font_size Verdana, Arial, sans-serif;
}
@@ -261,7 +262,8 @@
// }
div#glob {
- width:100%;
+ width:"calc(100% - @navbar-width)";
+ padding-left:@navbar-width;
z-index:10;
height:100%;
@@ -270,11 +272,8 @@
div#central{
position:relative;
padding:10px 5px;
- top:79px;
+ top:@top_menu_height;
margin-bottom: 79px;
- border-left: 1px solid black;
- border-right: 1px solid black;
- border-bottom: 1px solid black;
background:@color_011;
div.box_uniq {
@@ -298,8 +297,7 @@
}
- div#center,
- div#bas {
+ div#center {
margin: 0 auto;
position: relative;
min-width:@display_max_width;
@@ -309,26 +307,31 @@
div#bas {
// margin-top:8em;
clear:both;
- height:25px;
- background:@bas_bg;
+ height:30px;
+ background:#676767;
color:@bas_bg_txt;
-
+ padding-left:@navbar-width;
+ text-align: center;
a,
a:link,
a:visited {
text-shadow : none;
- padding: 4px 25px;
+ text-decoration: none;
+ padding: 2px 0px 0px 25px;
color:@color_011;
+ display: inline-block;
+ &:hover{color:@color_blue_oscss;}
}
}
footer {
- background: @footer_bg;
- clear:both;width:100%;
+ background: @header_info_bg;
+ color: white;
+ clear:both;
text-align:center;
- color:@footer_bg_txt;
-
+ padding-left: @navbar-width ;
+ min-height: 65px;
a,
a:link,
a:visited {
@@ -339,6 +342,7 @@
text-decoration: underline;
}
}
+ #help_link {float: right;padding: 10px;display: block;color:#444444; &:hover{color: white;} .transition(0.2s, ease-out)}
}
@@ -360,14 +364,15 @@
color:@color_011;
vertical-align:middle;
border:1px solid #fff;
- height: ( @lineheight * 1.6);
- line-height: 25px;
+ //height: ( @lineheight * 1.6);
+ //line-height: 25px;
margin:8px 20px;
text-shadow: none;
+ font-size: 14px;
.rounded(5px);
.border-radius(5px,5px,5px,5px);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
}
select.button option{
color:@color_015;
@@ -375,15 +380,15 @@
input[type=image].button {
float:left;
- height:( @lineheight * 1.3);
+ //height:( @lineheight * 1.3);
width:18px;
}
input.button,
- button.button{font-size:@font_size; background:#ccc;padding:2px 5px; }
+ button.button{font-size:@font_size; background:#ccc;padding:10px 20px; }
- a.button{ padding:2px 5px; margin:10px 20px ;text-decoration:none; height:( @lineheight * 1.3) ; line-height:( @lineheight * 1.3);}
+ a.button{ padding:10px 20px; margin:10px 20px ;text-decoration:none;}
a.button:hover{color:@color_011;text-decoration:none; }
a.button,
@@ -470,21 +475,23 @@
*/
.widget{
float: left;
- margin: ( @margin * 2) ( @margin *0.5) ( @margin * 2) ( @margin *0.5);
+ overflow: hidden;
+ margin: ( @margin * 4) ( @margin *0.5) ( @margin * 2) ( @margin *0.5);
width: (100% - (@margin * 1) );
.rounded(5px);
- .bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ //.bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon);
+ .box-shadow(0 0 5px @color_grey_oscss);
h3{
color: @color_widget_title;
clear: both;
float:none;
- margin-bottom:@margin;
- padding:5px 0 5px 5px;
- .rounded(5px);
- .bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon);
-
+ margin-top:0;
+ margin-bottom:@margin * 2;
+ padding:10px 0 10px 20px;
+ .border-radius(5px, 0, 0, 5px );
+ //.bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon);
+ .box-shadow(0 0 5px @color_grey_oscss);
a{
color: @color_widget_title;
text-decoration:none;
@@ -557,7 +564,7 @@
.border-radius(5px);
.rounded(5px);
.bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
}
@@ -583,7 +590,7 @@
margin: 1em 0 ;
width:100%;
.bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon) ;
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
.border-radius( 5px, 5px, 5px, 5px);
.rounded(5px);
@@ -656,7 +663,7 @@
padding:0;
width:100%;
.border-radius(5px,5px,5px,5px);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
select#cPath {
margin:0;
@@ -685,7 +692,7 @@
.border-radius(5px);
.rounded(5px);
.bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
}
.box_uniq.block_form{
@@ -727,7 +734,7 @@
background:#c9c9c9;
.border-radius(5px,5px,5px,5px);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
}
@@ -756,7 +763,7 @@
.border-radius(5px);
.rounded(5px);
.bw-gradient( @color_bg_gradient_base, @color_bg_gradient_eob, @color_bg_gradient_eon);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
}
.box_uniq.block_form{
@@ -779,7 +786,7 @@
.block {
background:#c9c9c9;
.border-radius(5px,5px,5px,5px);
- .box-shadow(2px 5px 3px rgba(0,0,0,0.5));
+ .box-shadow(0 0 3px rgba(0,0,0,0.5));
h4{
@@ -1002,7 +1009,7 @@
position: relative;
top: 1px;
margin: 0 (@margin * 1.5) 0 0;
- padding: 0;
+ padding: 10px 5px;
white-space: nowrap;
a {
@@ -1017,7 +1024,7 @@
.ui-tabs-selected {
margin-bottom: 0;
- padding-bottom: 1px;
+ padding-bottom: 11px;
cursor: not-drop;
a{
Modified: trunk/catalog/admin/includes/template/oscss/data/icon_set.xml
===================================================================
--- trunk/catalog/admin/includes/template/oscss/data/icon_set.xml 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/data/icon_set.xml 2015-10-15 16:57:15 UTC (rev 5271)
@@ -83,7 +83,6 @@
<at_icon_arrow>icon_arrow.png</at_icon_arrow>
<at_icon_load>icon_load.png</at_icon_load>
<at_icon_save>icon_save.png</at_icon_save>
- <at_icon_download>icon_download.png</at_icon_download>
</icon>
</img>
Modified: trunk/catalog/admin/includes/template/oscss/definition.less
===================================================================
--- trunk/catalog/admin/includes/template/oscss/definition.less 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/definition.less 2015-10-15 16:57:15 UTC (rev 5271)
@@ -10,7 +10,7 @@
/* define color generic , used in next define */
// color
-@color_010 : #78222F;
+@color_010 : @color_blue_oscss;
@color_011 : #FFFFFF;
@color_012 : #ACAAAC;
@color_013 : #303030;
@@ -19,9 +19,9 @@
@color_016 : #3F3F3F;
// gardient red
-@color_020 : #AE0405 ;
-@color_021 : #AE0405 ;
-@color_022 : #FD3841 ;
+@color_020 : @color_blue_oscss ;
+@color_021 : @color_blue_oscss ;
+@color_022 : @color_blue_oscss ;
@@ -29,7 +29,7 @@
/* base dimension */
@display_max_width : 900px;
-@display_width : 90% ;
+@display_width : 100% ;
/* Normal Definition */
@margin: 0.2em;
@@ -45,7 +45,8 @@
// header block
@header_base_bg :@color_015 ;
-@header_info_bg : @color_015 ;
+@header_info_bg : #333333 ;
+@top_menu_height: 40px;
// menu user
@menu_user_bg : #303030;
@menu_user_border : #3F3F3F ;
@@ -61,10 +62,13 @@
@color_warning : #FBE3E1 ;
@color_success : #A1F7C2 ;
@color_notice : #ECFF9C ;
-
+@color_blue_oscss : #4f8ecb;
+@color_grey_oscss : #676767;
+@color_gray_oscss : @color_grey_oscss;
// General header
// nav
+@navbar-width: 240px;
@nav_border : @color_011;
@nav_master_link : @color_011;
@nav_master_link_hover : #000000;
@@ -158,7 +162,7 @@
@color_split_active_text : #FFFFFF;
@color_split_border_hover : @color_010;
-// FORM
+//Â FORM
@bg_input : @color_011;
@bg_input_border : @color_012;
@bg_input_hover : #F0F0F0;
@@ -188,13 +192,8 @@
// Load generic element and style
@import "../defaut/css/less/element.less";
@import "../defaut/css/less/forms.less";
-@import "../defaut/css/less/datatable.less";
+@import "css/less/datatable.less";
@import "css/less/header.less";
@import "css/less/styles.less";
-
-
-body {
- background:#faf9f7 url("../oscss/img/1/body.jpg") left -80px repeat-x;
-}
Modified: trunk/catalog/admin/includes/template/oscss/footer-1.php
===================================================================
--- trunk/catalog/admin/includes/template/oscss/footer-1.php 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/footer-1.php 2015-10-15 16:57:15 UTC (rev 5271)
@@ -7,9 +7,26 @@
@date 05/01/11, 17:14
@author oscim <mail aur...@os...> <www http://www.oscim.fr>
@encode UTF-8
-*/
-echo '<a href="http://www.oscss.org" class="menuBoxContentLink fleft oscss">' . HEADER_TITLE_SUPPORT_SITE . '</a>';
-echo '<a href="http://forums.oscss.org" class="menuBoxContentLink fleft oscss">Forum osCSS</a>';
+ */
?>
-<a class="menuBoxContentLink fleft oscim" href="http://www.oscim.fr">template by oscim</a>
-<br style="clear:both;" />
+Réagissez:
+<a href="https://facebook.com/oscss.org" target="_blank">
+ <span class="fa-stack fa-lg">
+ <i class="fa fa-square-o fa-stack-2x"></i>
+ <i class="fa fa-facebook fa-stack-1x"></i>
+ </span>Facebook</a>
+<a href="https://twitter.com/osCSS" target="_blank">
+ <span class="fa-stack fa-lg">
+ <i class="fa fa-square-o fa-stack-2x"></i>
+ <i class="fa fa-twitter fa-stack-1x"></i>
+ </span>Tweeter</a>
+<a href="http://forums.oscss.org/forum.html" target="_blank">
+ <span class="fa-stack fa-lg">
+ <i class="fa fa-square-o fa-stack-2x"></i>
+ <i class="fa fa-users fa-stack-1x"></i>
+ </span>Forum</a>
+<a href="https://plus.google.com/107698144587463763937/posts" target="_blank">
+ <span class="fa-stack fa-lg">
+ <i class="fa fa-square-o fa-stack-2x"></i>
+ <i class="fa fa-google-plus fa-stack-1x"></i>
+ </span>Google +</a>
\ No newline at end of file
Added: trunk/catalog/admin/includes/template/oscss/footer2-1.php
===================================================================
--- trunk/catalog/admin/includes/template/oscss/footer2-1.php (rev 0)
+++ trunk/catalog/admin/includes/template/oscss/footer2-1.php 2015-10-15 16:57:15 UTC (rev 5271)
@@ -0,0 +1,32 @@
+<?php
+/**
+ @licence GPL 2005-2009 The osCSS developers - osCSS Open Source E-commerce
+ @package oscss-2 <www http://www.oscss.org>
+ @version Rc-3
+ @date 28/03/10, 17:16
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ */
+?>
+<a id="help_link" href="http://doc.oscss.org/" title="<?= __("Accéder à l'aide") ?>" target="_blank">
+ <span class="fa-stack fa-2x fa-lg">
+ <i class="fa fa-circle-o fa-stack-2x"></i>
+ <i class="fa fa-info fa-stack-1x"></i>
+ </span>
+</a>
+<div id="headInfos">
+</div>
+<div id="author">
+ <h2>Template by <a href="https://twitter.com/osCSS">osCSS Team</a></h2>
+</div>
+<script>
+ function init_resize (ajustement) {
+ ajustement = typeof ajustement === "number" ? ajustement : 59;
+ window_height = $(window).height();
+ used_height = $('#glob .menu_top').height() + $('#bas').height() + $('footer').height();
+ console.log( ajustement);
+ $('#central').css('min-height', window_height - used_height - ajustement);
+ };
+ init_resize(59); // ajustement different car less pas encore chargé !!!!!
+ $(window).resize(init_resize);
+</script>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/template/oscss/gabarit-1.php
===================================================================
--- trunk/catalog/admin/includes/template/oscss/gabarit-1.php 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/gabarit-1.php 2015-10-15 16:57:15 UTC (rev 5271)
@@ -7,110 +7,127 @@
@date 06/11/13, 23:53
@author oscim <mail aur...@os...> <www http://www.oscim.fr>
@encode UTF-8
-*/
- /** Prechargement */
- @include(DIR_WS_INCLUDES . 'content/'.$page_admin.'.top.inc');
+ */
+/** Prechargement */
+@include(DIR_WS_INCLUDES . 'content/' . $page_admin . '.top.inc');
// require(DIR_WS_TEMPLATE.'inc/lib.template.php');
- if (($init_theme=tep_test_gab_ele('inc/lib.template')) !=false) require($init_theme);
- if (($init_theme=tep_test_gab_ele('inc/init_theme')) !=false) require($init_theme);
+if (($init_theme = tep_test_gab_ele('inc/lib.template')) != false)
+ require($init_theme);
+if (($init_theme = tep_test_gab_ele('inc/init_theme')) != false)
+ require($init_theme);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php echo HTML_PARAMS; ?> >
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>" />
-<title><?php echo $page_admin.' | '.TITLE; ?></title>
-<base href="<?php echo tep_get_http().DIR_WS_ADMIN ?>" />
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>" />
+ <title><?php echo $page_admin . ' | ' . TITLE; ?></title>
+ <base href="<?php echo tep_get_http() . DIR_WS_ADMIN ?>" />
-<?php if(OSCSS_DEBUG==true): ?>
- <script type="text/javascript">
- var less = {
- env:"development",
- dumpLineNumbers:'mediaquery'
- };
- </script>
-<?php endif; ?>
+<?php if (OSCSS_DEBUG == true): ?>
+ <script type="text/javascript">
+ var less = {
+ env: "development",
+ dumpLineNumbers: 'mediaquery'
+ };
+ </script>
+ <?php endif; ?>
-<?php
- /** les structure */
- if (($stylesheet=tep_test_gab_ele('definition','less')) !=false) tep_include_file ($stylesheet,true);
+ <?php
+ /** les structure */
+ if (($stylesheet = tep_test_gab_ele('definition', 'less')) != false)
+ tep_include_file($stylesheet, true);
- tep_include_file (DIR_WS_INCLUDES."javascript/less-1.3.3.min.js",true);
+ tep_include_file(DIR_WS_INCLUDES . "javascript/less-1.3.3.min.js", true);
- /** Appel des css */
- if (($stylesheet=tep_test_gab_ele('stylesheet','css')) !=false) tep_include_file ($stylesheet,true);
- /** Fichier header systheme */
- require(DIR_FS_ADMIN.DIR_WS_INCLUDES . 'header.php');
- /** Appel des js */
- tep_include_file (DIR_WS_TEMPLATE."inc/lib_general-1.js",true);
- @include( DIR_WS_INCLUDES . "content/".$page_admin.".header.inc");
+ /** Appel des css */
+ if (($stylesheet = tep_test_gab_ele('stylesheet', 'css')) != false)
+ tep_include_file($stylesheet, true);
+ /** Fichier header systheme */
+ require(DIR_FS_ADMIN . DIR_WS_INCLUDES . 'header.php');
+ /** Appel des js */
+ tep_include_file(DIR_WS_TEMPLATE . "inc/lib_general-1.js", true);
+ @include( DIR_WS_INCLUDES . "content/" . $page_admin . ".header.inc");
+ ?>
+ </head>
+ <body class="<?php echo $page_admin; ?>">
+ <div id="glob">
+ <div id="center">
+ <!-- header //-->
+ <header id="header">
+ <?php if (($header = tep_test_gab_ele('header')) != false) require($header); ?>
- ?>
-</head>
-<body class="<?php echo $page_admin; ?>">
-<div id="glob">
-<div id="center">
- <!-- header //-->
- <header id="header">
- <?php if (($header=tep_test_gab_ele('header')) !=false) require($header); ?>
+ <nav>
+ <!-- menubar //-->
+ <?php
+ $menu_link = '<ul id="menutitre" class="menu_left">' . "\n";
+ $menu_link .=$menu->cstr();
+ $menu_link .= '</ul>' . "\n";
+ echo $menu_link;
+ ?>
- <nav>
- <!-- menubar //-->
- <?php
- $menu_link = '<ul id="menutitre" class="fleft">'."\n";
- $menu_link .=$menu->cstr();
- $menu_link .= '</ul>'."\n";
- echo $menu_link;?>
- <ul class="fright">
- <li class="inline"><?php echo tep_draw_form('menubookmark', 'index.php', '', 'get') ?><p class="themeSwitcher"><?php echo __('recently viewed') ?><?php echo tep_draw_pull_down_menu('page_admin',$Bookmark, '' , '') ?></p></form></li>
+ </nav>
+ <!-- menubar_eof //-->
- <li class="userName inline"><?php printf( CsrtAction::getLink('button_action' , HEADER_TITLE_ACCOUNT.' '.$login_firstname, 'myaccount'), 'buttonimg', tep_href_link(FILENAME_ADMIN_ACCOUNT, '', 'NONSSL'),'' ) ?></li>
- <li class="account inline"><?php printf( CsrtAction::getLink('button_action' , HEADER_TITLE_LOGOFF, 'logoff'), 'buttonimg', tep_href_link(FILENAME_LOGOFF, '', 'NONSSL'),'' ) ?></li>
- </ul>
- </nav>
+ <div id="user">
+ <?php if ($generic_modules->_show_menu() != false) : ?>
+ <ul id="MenuExts">
+ <?php echo $generic_modules->_show_menu();/** Appel des menu specifique au module ACA . Tous module chargé epeut inétegrer des blocks au menu */ ?>
+ </ul>
+<?php endif; ?>
+ </div>
+ </header>
+ <ul class="menu_top">
+ <li class="">
+ <div class="bookmarks"><?php echo __('Favoris') ?>
+ <ul class="dropdown">
+ <li><a href="<?= tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') ?>?page_admin=index"><?= __('Tableau de bord');?></a></li>
+ <li><a href="<?= tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') ?>?page_admin=categories"><?= __('Categories');?></a></li>
+ <li><a href="<?= tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') ?>?page_admin=products"><?= __('Produits');?></a></li>
+ <li><a href="<?= tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') ?>?page_admin=customers"><?= __('Client/membres');?></a></li>
+ </ul>
+ </div>
+ </li>
+ <li class=""><a href="<?php echo tep_href_link(FILENAME_USERSNOTIF, '', 'NONSSL') ?>" class="messages"><?php echo __('notifications') ?> <span class="badge"><?php echo CountNotif() ?></span></a></li>
+ <li class="userName">
+ <a title="<?= HEADER_TITLE_ACCOUNT . ' ' . $login_firstname ?>" href="<?= tep_href_link(FILENAME_ADMIN_ACCOUNT, '', 'NONSSL') ?>"><i class="fa fa-user fa-2x"></i></a>
+ </li>
+ <li class="account">
+ <a title="<?= HEADER_TITLE_LOGOFF ?>" href="<?= tep_href_link(FILENAME_LOGOFF, '', 'NONSSL') ?>"><i class="fa fa-power-off fa-2x"></i></a>
+ </li>
+ </ul>
+ <!-- header_eof //-->
- <!-- menubar_eof //-->
+ <!-- central //-->
+ <div id="central" class="<?php echo $page_admin; ?>">
+ <!-- return_erreur //-->
+ <?php if ($messageStack->size > 0) echo $messageStack->output(); ?>
+ <!-- return_erreur_eof //-->
- <div id="user">
- <?php if ($generic_modules->_show_menu() != false) : ?>
- <ul id="MenuExts">
- <?php echo $generic_modules->_show_menu(); /** Appel des menu specifique au module ACA . Tous module chargé epeut inétegrer des bock au menu */ ?>
- </ul>
- <?php endif; ?>
- </div>
- </header>
- <!-- header_eof //-->
+ <?php if (!include(DIR_WS_INCLUDES . 'content/' . $page_admin . '.central.inc')) print ERR_404; ?>
- <!-- central //-->
- <div id="central" class="<?php echo $page_admin; ?>">
- <!-- return_erreur //-->
- <?php if ($messageStack->size > 0) echo $messageStack->output(); ?>
- <!-- return_erreur_eof //-->
+ <?php if (isset($_GET['origin'])) : ?>
+ <div class="button_nav">
+ <?php echo ' <a class="button" href="' . tep_href_link(basename($_GET['origin']), strchr('?', $_GET['origin'])) . '">' . IMAGE_BACK . '</a>'; ?>
+ </div>
+<?php endif; ?>
+ <div class="separator" ></div>
+ </div>
+ <!-- central_eof //-->
- <?php if(!include(DIR_WS_INCLUDES . 'content/'.$page_admin.'.central.inc')) print ERR_404; ?>
+ <div class="separator" ></div>
- <?php if(isset($_GET['origin'])) : ?>
- <div class="button_nav">
- <?php echo ' <a class="button" href="' . tep_href_link(basename($_GET['origin']), strchr('?',$_GET['origin'])) .'">' .IMAGE_BACK . '</a>'; ?>
- </div>
- <?php endif; ?>
- <div class="separator" ></div>
- </div>
- <!-- central_eof //-->
- <div class="separator" ></div>
-
-
-<div class="separator" ></div>
-</div>
-</div>
- <!-- footer_gabarit_eof //-->
- <div id="bas">
- <?php if (($footer=tep_test_gab_ele('footer')) !=false) require($footer); ?>
- </div>
- <!-- footer_gabarit_eof //-->
- <!-- footer //-->
- <footer>
- <?php require(DIR_FS_ADMIN.DIR_WS_INCLUDES . 'footer.php'); ?>
- </footer>
- <!-- footer_eof //-->
+ <div class="separator" ></div>
+ </div>
+ </div>
+ <!-- footer_gabarit_eof //-->
+ <div id="bas">
+ <?php if (($footer = tep_test_gab_ele('footer')) != false) require($footer); ?>
+ </div>
+ <!-- footer_gabarit_eof //-->
+ <!-- footer //-->
+ <footer>
+<?php require(DIR_WS_TEMPLATE . 'footer2-1.php'); ?>
+ </footer>
+ <!-- footer_eof //-->
Added: trunk/catalog/admin/includes/template/oscss/header-1.php
===================================================================
--- trunk/catalog/admin/includes/template/oscss/header-1.php (rev 0)
+++ trunk/catalog/admin/includes/template/oscss/header-1.php 2015-10-15 16:57:15 UTC (rev 5271)
@@ -0,0 +1,26 @@
+<?php
+/**
+ @licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 21/03/11, 13:59
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file header-1.php
+ @dir admin/includes/templates/defaut/
+*/
+$class_widget="adminBlock";
+?>
+<div id="headInfos">
+ <h1><?php echo tep_image(DIR_WS_TEMPLATE . 'img/1/logo-oscss-FINAL.png', 'osCSS'); ?></h1>
+ <h2><?php echo __('Version').' '. PROJECT_VERSION ;?></h2>
+ <a href="<?php echo tep_catalog_href_link() ?>" target="_blank"><?php echo HEADER_TITLE_ONLINE_CATALOG ;?></a><span> | </span>
+ <?php if($sess !=0) : ?>
+ <a href="<?php echo tep_href_link('', 'mode_menu=0', 'NONSSL') ?>" class="messages"><?php echo __('Admin menu') ?></a><span> | </span>
+ <?php elseif($sess !=1) : ?>
+ <a href="<?php echo tep_href_link('', 'mode_menu=1', 'NONSSL') ?>" class="messages"><?php echo __('Buyer menu') ?></a><span> | </span>
+ <?php endif; ?>
+</div>
+<?php load_widget_context(); ?>
+
Added: trunk/catalog/admin/includes/template/oscss/img/1/logo-oscss-FINAL.png
===================================================================
(Binary files differ)
Index: trunk/catalog/admin/includes/template/oscss/img/1/logo-oscss-FINAL.png
===================================================================
--- trunk/catalog/admin/includes/template/oscss/img/1/logo-oscss-FINAL.png 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/img/1/logo-oscss-FINAL.png 2015-10-15 16:57:15 UTC (rev 5271)
Property changes on: trunk/catalog/admin/includes/template/oscss/img/1/logo-oscss-FINAL.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/catalog/admin/includes/template/oscss/languages/fr_FR.txt
===================================================================
--- trunk/catalog/admin/includes/template/oscss/languages/fr_FR.txt 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/languages/fr_FR.txt 2015-10-15 16:57:15 UTC (rev 5271)
@@ -16,6 +16,11 @@
$lang['recently viewed']='Récement vu';
/* dbl menu */
-$lang['Admin menu']='Administration';
-$lang['Buyer menu']='Gestion';
+$lang['Admin menu']='Passer au menu administration';
+$lang['Buyer menu']='Passer au menu gestion';
+
+
+$lang['Version']='Version';
+$lang['notifications']='Notifications';
+$lang['Favoris']='Favoris <i class="fa fa-chevron-down"></i>';
?>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/template/oscss/stylesheet-1.css
===================================================================
--- trunk/catalog/admin/includes/template/oscss/stylesheet-1.css 2015-10-15 16:49:16 UTC (rev 5270)
+++ trunk/catalog/admin/includes/template/oscss/stylesheet-1.css 2015-10-15 16:57:15 UTC (rev 5271)
@@ -9,17 +9,17 @@
*/
button.DTTT_button, div.DTTT_button, a.DTTT_button {
- background: -moz-linear-gradient(center top , #FFFFFF 0%, #F3F3F3 89%, #F9F9F9 100%) repeat scroll 0 0 transparent;
- border: 1px solid #999999;
- border-radius: 2px 2px 2px 2px;
- box-shadow: 1px 1px 3px #CCCCCC;
- color: black !important;
- cursor: pointer;
- float: left;
- font-size: 0.88em;
- margin-right: 3px;
- padding: 5px 8px;
- position: relative;
+ background: -moz-linear-gradient(center top , #FFFFFF 0%, #F3F3F3 89%, #F9F9F9 100%) repeat scroll 0 0 transparent;
+ border: 1px solid #999999;
+ border-radius: 2px 2px 2px 2px;
+ box-shadow: 1px 1px 3px #CCCCCC;
+ color: black !important;
+ cursor: pointer;
+ float: left;
+ font-size: 0.88em;
+ margin-right: 3px;
+ padding: 5px 8px;
+ position: relative;
}
/* logo link partenaires */
#bas .oscommerce { background: transparent url(img/1/oscss.png) 0px 2px no-repeat; text-decoration:none; }
@@ -27,12 +27,12 @@
#bas .oscim { background: transparent url(img/1/ico_oscim_20.png) 0px 2px no-repeat; text-decoration:none; }
#screenshot{
- position:absolute;
- border:1px solid #ccc;
- background:#333;
- padding:5px;
- display:none;
- color:#fff;
+ position:absolute;
+ border:1px solid #ccc;
+ background:#333;
+ padding:5px;
+ display:none;
+ color:#fff;
}
/* Structure */
@@ -62,19 +62,19 @@
/* page specifique*/
- /* widjet homePage */
- #homestats { background:transparent url(../../../images/stats.gif) bottom right no-repeat; }
- #homestats dd {margin-left: 14em; padding: 3px; margin-bottom: 5px; line-height: 1.5em}
- #homestats dt {float:left; width: 13em; padding: 3px; line-height: 1.5em; text-align:right; font-weight:bold;}
- #homestats dl {padding: 5px 0 10px 5px;}
+/* widjet homePage */
+#homestats { background:transparent url(../../../images/stats.gif) bottom right no-repeat; }
+#homestats dd {margin-left: 14em; padding: 3px; margin-bottom: 5px; line-height: 1.5em}
+#homestats dt {float:left; width: 13em; padding: 3px; line-height: 1.5em; text-align:right; font-weight:bold;}
+#homestats dl {padding: 5px 0 10px 5px;}
- #homeNews { background:transparent url(img/1/header_feed.png) bottom right no-repeat; }
- #homeNews dl {padding: 5px 0 10px 5px;}
- #homeNews dt {padding: 3px; font-size:12px; font-weight:bold;}
- #homeNews dt span.date {font-size:9px; color:gray;}
- #homeNews dd {padding: 3px; margin-bottom: 5px;}
- #homeNews dt a {text-decoration:none; color:#545683;}
- #homeNews dt a:hover {color:#9D9FBF;}
+#homeNews { background:transparent url(img/1/header_feed.png) bottom right no-repeat; }
+#homeNews dl {padding: 5px 0 10px 5px;}
+#homeNews dt {padding: 3px; font-size:12px; font-weight:bold;}
+#homeNews dt span.date {font-size:9px; color:gray;}
+#homeNews dd {padding: 3px; margin-bottom: 5px;}
+#homeNews dt a {text-decoration:none; color:#545683;}
+#homeNews dt a:hover {color:#9D9FBF;}
/* statistqiue et rapport*/
table.dataTable.stat.stock tr {margin:2px; position:relative }
@@ -122,109 +122,124 @@
/* MEnu ADmin Habillage icone */
-a.menuBoxContentLink{ background: transparent url(img/1/config.png) 0px 2px no-repeat; text-decoration:none;text-shadow: 0 1px 0 #ae0405;margin-left:1em;}
-a.menuBoxContentLink.configuration { background-image: url(img/1/config.png); }
-a.menuBoxContentLink.config_1 { background-image: url(img/1/home.png); }
+a.menuBoxContentLink{text-decoration:none;text-shadow: 0 1px 0 #ae0405;}
+a.menuBoxContentLink:before { content: '\f0ad ';font-family: FontAwesome;}
+a.menuBoxContentLink.configuration:before { content: ''; }
+a.menuBoxContentLink.config_1:before { content: ''; }
a.menuBoxContentLink.config_2,
-a.menuBoxContentLink.config_3 { background-image: url(img/1/credit.png); }
-a.menuBoxContentLink.config_4 { background-image: url(img/1/photography.png); }
-a.menuBoxContentLink.config_5{ background-image: url(img/1/user.png); }
-a.menuBoxContentLink.config_6 { background-image: url(img/1/product.png) ;}
-a.menuBoxContentLink.config_61 { background-image: url(img/1/product.png) ;}
-a.menuBoxContentLink.config_62 {background-image: url(img/1/product.png); }
-a.menuBoxContentLink.config_63 {background-image: url(img/1/product.png); }
-a.menuBoxContentLink.config_7 { background-image: url(img/1/shipping.png) ;}
-a.menuBoxContentLink.config_8 { background-image: url(img/1/finished-work.png) ; }
-a.menuBoxContentLink.config_9 { background-image: url(img/1/limited-edition.png) ; }
-a.menuBoxContentLink.config_10 { background-image: url(img/1/old-versions.png) ; }
-a.menuBoxContentLink.config_11 { background-image: url(img/1/attributes.png) ; }
-a.menuBoxContentLink.config_12 { background-image: url(img/1/contact.png) ; }
-a.menuBoxContentLink.config_13 { background-image: url(img/1/process.png) ; }
-a.menuBoxContentLink.config_14 { background-image: url(img/1/business-contact.png); }
-a.menuBoxContentLink.config_15 { background-image: url(img/1/login.png) ; }
-a.menuBoxContentLink.config_16 { background-image: url(img/1/bookmark.png) ; }
-a.menuBoxContentLink.config_17{ background-image: url(img/1/communication.png) ; }
-a.menuBoxContentLink.config_19{ background-image: url(img/1/phone.png) ; }
-a.menuBoxContentLink.config_21{ background-image: url(img/1/product-1.png) ; }
-a.menuBoxContentLink.quick_update { background-image: url(img/1/refresh.png) ; }
-a.menuBoxContentLink.config_20 { background-image: url(img/1/future-projects.png) ; }
-a.menuBoxContentLink.config_22 { background-image: url(img/1/finished-work.png) ; }
-a.menuBoxContentLink.config_24 { background-image: url(img/1/product-design.png) ; }
-a.menuBoxContentLink.config_25 { background-image: url(img/1/star.png) ; }
-a.menuBoxContentLink.config_27 { background-image: url(img/1/consulting.png) ; }
-a.menuBoxContentLink.config_28 { background-image: url(img/1/my-account.png) ; }
-a.menuBoxContentLink.config_29 { background-image: url(img/1/graphic-design.png) ; }
-a.menuBoxContentLink.config_30 { background-image: url(img/1/lightbulb.png) ; }
-a.menuBoxContentLink.config_31 { background-image: url(img/1/flag.png) ; }
-a.menuBoxContentLink.return { background-image: url(img/1/suppliers.png) ; }
-a.menuBoxContentLink.config_32 { background-image: url(img/1/showreel.png) ; }
-a.menuBoxContentLink.config_33 { background-image: url(img/1/tag.png) ; }
-a.menuBoxContentLink.config_34 { background-image: url(img/1/ticket.png) ; }
-a.menuBoxContentLink.config_100 { background-image: url(img/1/drawings.png); }
-a.menuBoxContentLink.config_110 { background-image: url(img/1/settings.png) ; }
-a.menuBoxContentLink.config_120 { background-image: url(img/1/plus.png) ; }
-a.menuBoxContentLink.config_126 { background-image: url(img/1/consulting.png) ; }
-a.menuBoxContentLink.config_127 { background-image: url(img/1/billing.png) ; }
-a.menuBoxContentLink.administrator { background-image: url(img/1/user.png) ; }
-a.menuBoxContentLink.taxes_in_zone { background-image: url(img/1/freelance.png) ; }
-a.menuBoxContentLink.templates { background-image: url(img/1/illustration.png) ; }
-a.menuBoxContentLink.nav { background-image: url(img/1/category.png) ; }
-a.menuBoxContentLink.language { background-image: url(img/1/world.png) ;}
-a.menuBoxContentLink.languages { background-image: url(img/1/milestone.png) ; }
-a.menuBoxContentLink.countries { background-image: url(img/1/flag.png) ; }
-a.menuBoxContentLink.taxes_zone { background-image: url(img/1/address.png) ; }
-a.menuBoxContentLink.taxes_geo_zone { background-image: url(img/1/world.png) ; }
-a.menuBoxContentLink.taxes_classes { background-image: url(img/1/bank.png) ;}
-a.menuBoxContentLink.taxes_rates { background-image: url(img/1/billing.png) ; }
-a.menuBoxContentLink.currencies { background-image: url(img/1/payment-card.png) ; }
+a.menuBoxContentLink.config_3:before { content: ''; }
+a.menuBoxContentLink.config_4:before { content: ''; }
+a.menuBoxContentLink.config_5:before { content: '';}
+a.menuBoxContentLink.config_6:before { content: '';}
+a.menuBoxContentLink.config_61:before { content: '';}
+a.menuBoxContentLink.config_62:before { content: ''; }
+a.menuBoxContentLink.config_63:before { content: ''; }
+a.menuBoxContentLink.config_7:before { content: '';}
+a.menuBoxContentLink.config_8:before { content: ''; }
+a.menuBoxContentLink.config_9:before { content: ''; }
+a.menuBoxContentLink.config_10:before { content: ''; }
+a.menuBoxContentLink.config_11:before { content: ''; }
+a.menuBoxContentLink.config_12:before { content: ''; }
+a.menuBoxContentLink.config_13:before { content: ''; }
+a.menuBoxContentLink.config_14:before { content: ''; }
+a.menuBoxContentLink.config_15:before { content: ''; }
+a.menuBoxContentLink.config_16:before { content: ''; }
+a.menuBoxContentLink.config_17:before { content: ''; }
+a.menuBoxContentLink.config_19:before { content: ''; }
+a.menuB...
[truncated message content] |
|
From: <os...@us...> - 2015-10-15 16:49:19
|
Revision: 5270
http://sourceforge.net/p/oscss/svn/5270
Author: oscim
Date: 2015-10-15 16:49:16 +0000 (Thu, 15 Oct 2015)
Log Message:
-----------
Add font
Added Paths:
-----------
trunk/catalog/admin/includes/template/oscss/fonts/
trunk/catalog/admin/includes/template/oscss/fonts/FontAwesome.otf
trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.eot
trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.svg
trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.ttf
trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.woff
trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.woff2
Added: trunk/catalog/admin/includes/template/oscss/fonts/FontAwesome.otf
===================================================================
(Binary files differ)
Index: trunk/catalog/admin/includes/template/oscss/fonts/FontAwesome.otf
===================================================================
--- trunk/catalog/admin/includes/template/oscss/fonts/FontAwesome.otf 2015-10-15 14:27:50 UTC (rev 5269)
+++ trunk/catalog/admin/includes/template/oscss/fonts/FontAwesome.otf 2015-10-15 16:49:16 UTC (rev 5270)
Property changes on: trunk/catalog/admin/includes/template/oscss/fonts/FontAwesome.otf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.eot
===================================================================
(Binary files differ)
Index: trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.eot
===================================================================
--- trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.eot 2015-10-15 14:27:50 UTC (rev 5269)
+++ trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.eot 2015-10-15 16:49:16 UTC (rev 5270)
Property changes on: trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.eot
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.svg
===================================================================
--- trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.svg (rev 0)
+++ trunk/catalog/admin/includes/template/oscss/fonts/fontawesome-webfont.svg 2015-10-15 16:49:16 UTC (rev 5270)
@@ -0,0 +1,640 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata></metadata>
+<defs>
+<font id="fontawesomeregular" horiz-adv-x="1536" >
+<font-face units-per-em="1792" ascent="1536" descent="-256" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode=" " horiz-adv-x="448" />
+<glyph unicode="	" horiz-adv-x="448" />
+<glyph unicode=" " horiz-adv-x="448" />
+<glyph unicode="¨" horiz-adv-x="1792" />
+<glyph unicode="©" horiz-adv-x="1792" />
+<glyph unicode="®" horiz-adv-x="1792" />
+<glyph unicode="´" horiz-adv-x="1792" />
+<glyph unicode="Æ" horiz-adv-x="1792" />
+<glyph unicode="Ø" horiz-adv-x="1792" />
+<glyph unicode=" " horiz-adv-x="768" />
+<glyph unicode=" " horiz-adv-x="1537" />
+<glyph unicode=" " horiz-adv-x="768" />
+<glyph unicode=" " horiz-adv-x="1537" />
+<glyph unicode=" " horiz-adv-x="512" />
+<glyph unicode=" " horiz-adv-x="384" />
+<glyph unicode=" " horiz-adv-x="256" />
+<glyph unicode=" " horiz-adv-x="256" />
+<glyph unicode=" " horiz-adv-x="192" />
+<glyph unicode=" " horiz-adv-x="307" />
+<glyph unicode=" " horiz-adv-x="85" />
+<glyph unicode=" " horiz-adv-x="307" />
+<glyph unicode=" " horiz-adv-x="384" />
+<glyph unicode="™" horiz-adv-x="1792" />
+<glyph unicode="∞" horiz-adv-x="1792" />
+<glyph unicode="≠" horiz-adv-x="1792" />
+<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+<glyph unicode="" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+<glyph unicode="" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
+<glyph unicode="" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+<glyph unicode="" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+<glyph unicode="" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
+<glyph unicode="" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+<glyph unicode="" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
+<glyph unicode="" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+<glyph unicode="" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
+<glyph unicode="" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+<glyph unicode="" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+<glyph unicode="" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+<glyph unicode="" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+<glyph unicode="" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+<glyph unicode="" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+<glyph unicode="" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+<glyph unicode="" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+<glyph unicode="" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
+<glyph unicode="" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+<glyph unicode="" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+<glyph unicode="" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+<glyph unicode="" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
+<glyph unicode="" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+<glyph unicode="" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+<glyph unicode="" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+<glyph unicode="" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+<glyph unicode="" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+<glyph unicode="" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
+<glyph unicode="" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+<glyph unicode="" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+<glyph unicode="" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+<glyph unicode="" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+<glyph unicode="" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
+<glyph unicode="" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+<glyph unicode="" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v...
[truncated message content] |
|
From: <os...@us...> - 2015-10-15 14:27:52
|
Revision: 5269
http://sourceforge.net/p/oscss/svn/5269
Author: oscim
Date: 2015-10-15 14:27:50 +0000 (Thu, 15 Oct 2015)
Log Message:
-----------
Fix
Modified Paths:
--------------
trunk/catalog/admin/includes/languages/fr_FR/boxes/01_configuration.php
Modified: trunk/catalog/admin/includes/languages/fr_FR/boxes/01_configuration.php
===================================================================
--- trunk/catalog/admin/includes/languages/fr_FR/boxes/01_configuration.php 2015-04-08 07:51:59 UTC (rev 5268)
+++ trunk/catalog/admin/includes/languages/fr_FR/boxes/01_configuration.php 2015-10-15 14:27:50 UTC (rev 5269)
@@ -47,25 +47,32 @@
define('BOX_HEADING_CONF_CONFIG_COMM',"Configuration commerciale" );
define('BOX_HEADING_CONF_OPTION_CATALOG',"Options du catalogue" );
define('BOX_HEADING_CONF_STOCK',"Stock" );
+
define('BOX_HEADING_CONF_OPTION_PRODUCTS',"Option des produits" );
define('BOX_HEADING_CONF_CONFIG_PRODUCTS',"Configuration des produits" );
define('BOX_HEADING_CONF_DOWNLOADS',"Téléchargements" );
define('BOX_HEADING_CONF_BOX_CONFIGURATION_PRODUCTS_EXTRA_FIELDS',"Produits extra" );
define('BOX_HEADING_CONF_NEW_PRODUCTS',"Nouveaux produits" );
+
define('BOX_HEADING_CONF_OPTION_CUSTOMERS',"Option des utilisateurs" );
define('BOX_HEADING_CONF_CONFIG_CUSTOMERS',"Configuration des comptes clients" );
define('BOX_HEADING_CONF_BOX_CONFIGURATION_EXTRA_FIELDS',"Clients extra" );
define('BOX_HEADING_CONF_MEMBRES_DETAIL',"Membre détail" );
define('BOX_HEADING_CONF_BOX_EXTRA_FIELDS_ADDRESS_BOOK',"Carnet d'addresse extra" );
+
define('BOX_HEADING_CONF_OPTION_ORDERS',"Option des commandes" );
define('BOX_HEADING_CONF_CONFIGURATION_ORDERS',"Configuration commandes" );
define('BOX_HEADING_CONF_EXPEDITION_EMBALLAGE',"Expédition/Emballage" );
define('BOX_HEADING_CONF_PAYMENT',"Gestion des paiments" );
+ define('BOX_HEADING_CONF_CONFIGURATION_ORDERS_EXTRA',"Extra des commandes" );
+
define('BOX_HEADING_CONF_OPTION_CONTENT',"Option des Pages Cms" );
define('BOX_HEADING_CONF_CONFIG_CONTENT',"Configuration" );
define('BOX_HEADING_CONF_BOX_EXTRA_FIELDS_CONTENT',"Page Cms Extra" );
+
define('BOX_HEADING_CONF_OPTION_CATEGORIE',"Option des Categories" );
define('BOX_HEADING_CONF_CONFIG_CATEGORIE',"Configuration" );
+ define('BOX_HEADING_CONF_BOX_CONFIGURATION_CATEGORIE_EXTRA_FIELDS',"Extra des Categories" );
define('BOX_HEADING_CONF_VIEW_SYSINFO',"info. systeme" );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-08 07:52:01
|
Revision: 5268
http://sourceforge.net/p/oscss/svn/5268
Author: oscim
Date: 2015-04-08 07:51:59 +0000 (Wed, 08 Apr 2015)
Log Message:
-----------
Fix
Modified Paths:
--------------
trunk/catalog/admin/includes/gabarit/products/stock.listing.gab
trunk/catalog/common/classes/cart/CartStockageCustomer.class.php
Modified: trunk/catalog/admin/includes/gabarit/products/stock.listing.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/products/stock.listing.gab 2015-04-07 09:14:52 UTC (rev 5267)
+++ trunk/catalog/admin/includes/gabarit/products/stock.listing.gab 2015-04-08 07:51:59 UTC (rev 5268)
@@ -53,7 +53,7 @@
? sprintf(CsrtAction::getLink('row_action_right', __('txt stock') , 'stock'), 'fancyView', tep_href_link(FILENAME_STOCK, 'product_id=' . $row['products_id'].'&origin='.FILENAME_STOCK) ,'' )
: ''
).
- sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(FILENAME_PRODUCTS, 'pID=' . $row['products_id'] . '&action=edit') ,'' )
+ sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(FILENAME_PRODUCTS, 'cID=' . $row['products_id'] . '&action=edit') ,'' )
);
?></td>
@@ -71,12 +71,12 @@
printf(
CsrtAction::getFormat('row_action'),
'' ,
- sprintf(CsrtAction::getLink('row_action_right', __('image view public') , 'publiclink'), '', tep_catalog_href_link('index.php', 'id=' . $row['products_id'],'SSL', true, 'forceview') ,' target="blank" ' ).
+ sprintf(CsrtAction::getLink('row_action_right', __('image view public') , 'publiclink'), '', tep_catalog_href_link('index.php', 'products_id=' . $row['products_id'],'SSL', true, 'forceview') ,' target="blank" ' ).
((_cst_bool('STOCK_CHECK'))
? sprintf(CsrtAction::getLink('row_action_right', __('txt stock') , 'stock'), 'fancyView', tep_href_link(FILENAME_STOCK, 'product_id=' . $row['products_id'].'&origin='.FILENAME_STOCK) ,'' )
: ''
).
- sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(FILENAME_PRODUCTS, 'pID=' . $row['products_id'] . '&action=edit'.'&origin='.FILENAME_STOCK) ,'' )
+ sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(FILENAME_PRODUCTS, 'cID=' . $row['products_id'] . '&action=edit'.'&origin='.FILENAME_STOCK) ,'' )
);
?></td>
Modified: trunk/catalog/common/classes/cart/CartStockageCustomer.class.php
===================================================================
--- trunk/catalog/common/classes/cart/CartStockageCustomer.class.php 2015-04-07 09:14:52 UTC (rev 5267)
+++ trunk/catalog/common/classes/cart/CartStockageCustomer.class.php 2015-04-08 07:51:59 UTC (rev 5268)
@@ -54,8 +54,7 @@
$special_class = $list[2];
$parent_id = $list[3];
$grp_line = $list[4];
-// print_r($list);
-// exit;
+
$DB = Database::getInstance();
if($this->Isloggued()) {
$res = $DB->query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, parent_id, customers_basket_quantity, customers_basket_date_added, grp_line) values ('" . (int)$_SESSION['customer_id'] . "', '" . tep_db_input($products_id_string) . "', '" . tep_db_input($parent_id) . "', '" . $qty . "', '" . date('Ymd') . "', '".$grp_line."')");
@@ -198,12 +197,7 @@
if(isset($list[0]) && !empty($list[0])){
$products_id_string = @$list[0];
-// preg_match('#(.*)____#i', $products_id_string, $match);
- // print_r($match); exit;
- // $option = @$list[1];
- // $value = @$list[2];
-
if($products_id_string ) {
$sql .= " AND products_id = '".$products_id_string."' ";
}
@@ -216,12 +210,13 @@
}
$sql .= " ORDER BY grp_line ASC, parent_id ASC ";
-// echo $sql;
+
$DB = Database::getInstance();
$products_query = $DB->query($sql);
-// print_r($products_query->fetchAllAssoc());
-// exit;
+
$list = array();
+
+ if($products_query!=false && $products_query->__get('numRows'))
foreach($products_query->fetchAllAssoc() as $products) {
if( tep_get_prid($products['products_id']) == $products['products_id'] )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 09:15:04
|
Revision: 5267
http://sourceforge.net/p/oscss/svn/5267
Author: oscim
Date: 2015-04-07 09:14:52 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Fix redirect 403
Modified Paths:
--------------
trunk/catalog/install/includes/modele/admin_htaccess.txt
Modified: trunk/catalog/install/includes/modele/admin_htaccess.txt
===================================================================
--- trunk/catalog/install/includes/modele/admin_htaccess.txt 2015-04-07 08:19:41 UTC (rev 5266)
+++ trunk/catalog/install/includes/modele/admin_htaccess.txt 2015-04-07 09:14:52 UTC (rev 5267)
@@ -46,7 +46,7 @@
RewriteRule ([0-9A-Za-z_&=-]*)(.php)?(.*)$ index.php?page_admin=$1&%{QUERY_STRING} [L]
ErrorDocument 401 /
ErrorDocument 402 /
- ErrorDocument 403 /
+ ErrorDocument 403 /admin/forbiden.php
ErrorDocument 404 /
ErrorDocument 500 /
</IfModule>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:19:43
|
Revision: 5266
http://sourceforge.net/p/oscss/svn/5266
Author: oscim
Date: 2015-04-07 08:19:41 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Next (Add support of quotation in process orders)
Added Paths:
-----------
trunk/extensions/QUOTATION_stable/catalog/admin/includes/languages/fr_FR/modules/quotation.txt
Added: trunk/extensions/QUOTATION_stable/catalog/admin/includes/languages/fr_FR/modules/quotation.txt
===================================================================
--- trunk/extensions/QUOTATION_stable/catalog/admin/includes/languages/fr_FR/modules/quotation.txt (rev 0)
+++ trunk/extensions/QUOTATION_stable/catalog/admin/includes/languages/fr_FR/modules/quotation.txt 2015-04-07 08:19:41 UTC (rev 5266)
@@ -0,0 +1,64 @@
+<?php
+/**
+ @licence GPL 2005-2013 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.1.2
+ @date 06/11/2013, 15:00
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+*/
+
+
+/* Listing */
+ /* title */
+ $lang['heading title quotation']="Devis" ;
+
+ /* entry */
+ $lang['@quotation table heading date purchased']="Enregsitré le" ;
+ $lang['@quotation table heading action']="Action" ;
+
+ /* bouton */
+ $lang['image recup help order']="transformer en commande" ;
+
+ /* detail rowpage */
+ $lang['entry customer']="Client " ;
+ $lang['entry shipping address']="Adresse livraison" ;
+ $lang['entry billing address']="Adresse facturation" ;
+
+ $lang['entry telephone number']="téléphone: " ;
+ $lang['entry email address']="Email: " ;
+ $lang['entry ip']="ip: " ;
+ $lang['entry payment method']="paiement: " ;
+
+ $lang['table heading products']="Produits " ;
+ $lang['table heading customers']="Client " ;
+ $lang['table heading order total']="Total" ;
+ $lang['table heading date purchased']="date" ;
+ $lang['table heading products model']="Modèle " ;
+ $lang['table heading tax']="% taxe " ;
+ $lang['table heading price excluding tax']="HT " ;
+ $lang['table heading price including tax']="TTC " ;
+ $lang['table heading total excluding tax']="tot HT " ;
+ $lang['table heading total including tax']="tot TTC " ;
+
+
+/* Replace */
+ /* title */
+ $lang['text info heading confirm order']="Replacer cet ordre dans les commandes" ;
+ /* text */
+ $lang['text info confirm intro']="Êtes-vous sûr de vouloir valider cette pré-commande, et la basculer dans la liste des commandes à traiter" ;
+
+
+
+
+ $lang['@quotation tab data']="Description" ;
+ $lang['@quotation tab details']="Produits" ;
+
+
+// $lang['heading title explain']="Cet espace vous permet de tracer les clients (déjà enregistrés) qui ont entamés une commande sans la finaliser. Vous pouvez ainsi choisir de les relancer ! " ;
+$lang['ERROR_ORDER_DOES_NOT_EXIST']="Erreur : La commande n'existe pas." ;
+$lang['SUCCESS_ORDER_UPDATED']="Succès : La commande est mise à jour avec succès" ;
+$lang['SUCCESS_HELD_ORDER_UPDATED']="Succès : La commande est mise à jour avec succès et basculée dans les commandes" ;
+$lang['WARNING_ORDER_NOT_UPDATED']="Attention : Aucune modification n'a été effectuée. La commande n'a pas été mise à jour." ;
+?>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:18:55
|
Revision: 5265
http://sourceforge.net/p/oscss/svn/5265
Author: oscim
Date: 2015-04-07 08:18:53 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Next (Add support of quotation in process orders)
Added Paths:
-----------
trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/display_view.edit.gab
trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.generic.gab
trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.product.gab
trunk/extensions/QUOTATION_stable/catalog/admin/includes/languages/fr_FR/modules/
trunk/extensions/QUOTATION_stable/catalog/admin/includes/modules/pages/quotation.php
Added: trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/display_view.edit.gab
===================================================================
--- trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/display_view.edit.gab (rev 0)
+++ trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/display_view.edit.gab 2015-04-07 08:18:53 UTC (rev 5265)
@@ -0,0 +1,152 @@
+<?php
+/**
+ @licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 05/11/2013, 11:35
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file display_view.edit.gab
+ @dir admin/includes/gabarit/orders/
+*/
+global $price, $current_theme;
+$page= MGabCont::CallSt('GetClassName');
+
+?>
+
+<h3><?php echo sprintf(__('@orders heading edit num %s ref %s'),quotation::$Info->info['orders_id'] , quotation::$Info->info['orders_ref'] ) ; ?></h3>
+
+<div class="box_uniq main-orders">
+
+ <div id="tabs">
+ <ul>
+ <?php $g = 0; foreach($page::GetListTabs() as $objTabs ): $g++; ?>
+ <li><a href="#tabs-<?php echo $g ?>"><?php echo $objTabs->GetTitle(); ?></a></li>
+ <?php endforeach; ?>
+ </ul>
+
+
+ <div class="box_uniq">
+ <?php $g = 0; foreach($page::GetListTabs() as $objTabs ): $g++; ?>
+ <div id="tabs-<?php echo $g ?>" class="tabPage">
+ <div class="block_form">
+ <?php echo $objTabs->GetContent(); ?>
+ </div>
+ </div>
+ <?php endforeach; ?>
+ <div class="separator"></div>
+ </div>
+
+
+
+ <div class="main-orders master">
+ <div class="main-orders block fleft w_50 padd_w">
+
+ <div class="block_field fleft w_50" >
+ <h4><?php echo __('legend contact customers'); ?></h4>
+ <p class="clear block_input">
+ <strong><?php echo __('entry telephone number'); ?></strong><?php echo quotation::$Info->customer['telephone']; ?>
+ <br />
+
+ <strong><?php echo __('entry email address'); ?></strong><?php echo '<a href="' .tep_href_link( FILENAME_MAIL , 'cus...@os...'.quotation::$Info->customer['email_address'].'&origin='. quotation::FILENAME .'&origin_id='.quotation::$Info->info['orders_id']). '">' . quotation::$Info->customer['email_address']. '</a>'; ?>
+ <br />
+
+ <strong><?php echo __('entry ip'); ?></strong><?php echo quotation::$Info->info['ip_address']; ?>
+ </p>
+ </div>
+ </div>
+
+ <?php
+ /**
+ DRAW BLOCK DOCS EXISTS OR LINK PDF CREATE
+ */
+ $datadocs=new DatasFiles; ?>
+ <div class="main-orders block fleft w_50 padd_w">
+ <h4><?php echo __('heading documents') ?></h4>
+
+ <table class="main-orders docs">
+ <thead>
+ <tr>
+ <th><?php echo __('order table pdf heading file') ?></th>
+ <th><?php echo __('order table pdf heading weight') ?></th>
+ <th><?php echo __('order table pdf heading date') ?></th>
+ <th> </th>
+ </tr>
+ </thead>
+
+
+ <tr>
+ <th colspan="3"><?php echo IMAGE_ORDERS_PACKINGSLIP ?></th>
+ <th></th>
+ </tr>
+
+ <?php if(( $filepath=$datadocs->GetDoc('packingslip', quotation::$Id)) && file_exists($filepath)): ?>
+ <tr>
+ <td><a href="<?php echo tep_href_link('document.php', 'mod=packingslip&id='.quotation::$Id) ?>"><?php echo quotation::$Info->info['orders_ref'] ?></a></td>
+ <td><?php echo round((filesize($filepath)/1000),1).' Ko' ; ?></td>
+ <td><?php echo tep_datetime_short(date('Y-m-d H:i:s',filemtime($filepath))) ; ?></td>
+ <td><?php echo sprintf(CsrtAction::getLink('row_action_right', IMAGE_DELETE, 'trash'), '', tep_href_link(quotation::FILENAME, 'file_type=packingslip&action=deletefile&id='.quotation::$Id.'&cID='.quotation::$Id) ,'' ) ; ?></td>
+ </tr>
+ <?php elseif(_cst_bool('USE_LOCAL_GENERAT_PDF')): ?>
+ <tr>
+ <td colspan="3"> </td>
+ <td><?php echo '<a class="button" href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('page_admin','action')).'action=pdf&forceview=pdf&file_type=packingslip&id='. quotation::$Id) . '" >' . __('pdf generate') . '</a>' ; ?> </td>
+ </tr>
+ <?php endif; ?>
+
+
+ <tr>
+ <th colspan="3"><?php echo __('image orders delivery') ?></th>
+ <th></th>
+ </tr>
+
+ <?php $i = 0; if(quotation::$Info->allshipping !=false) foreach (quotation::$Info->allshipping as $ashipping): $i++; ?>
+ <?php if(isset($ashipping->row_id)): ?>
+ <?php if(( $filepath=$datadocs->GetDoc('delivery', $ashipping->row_id)) && file_exists($filepath)): ?>
+ <tr>
+ <td><a href="<?php echo tep_href_link('document.php', 'mod=delivery&id='.$ashipping->row_id) ?>"><?php echo $ashipping->shipping_ref ?></a></td>
+ <td><?php echo round((filesize($filepath)/1000),1).' Ko' ; ?></td>
+ <td><?php echo tep_datetime_short(date('Y-m-d H:i:s',filemtime($filepath))) ; ?></td>
+ <td><?php echo sprintf(CsrtAction::getLink('row_action_right', IMAGE_DELETE, 'trash'), '', tep_href_link(quotation::FILENAME, 'file_type=delivery&action=deletefile&id='.$ashipping->row_id.'&cID='.quotation::$Id) ,'' ) ; ?></td>
+ </tr>
+ <?php elseif(_cst_bool('USE_LOCAL_GENERAT_PDF')): ?>
+ <tr>
+ <td colspan="3"> </td>
+ <td><?php echo '<a class="button" href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('page_admin','action')).'action=pdf&forceview=pdf&file_type=delivery&id='.$ashipping->row_id) . '" >' . __('pdf generate') . '</a>' ; ?> </td>
+ </tr>
+ <?php endif; ?>
+ <?php endif; ?>
+ <?php endforeach ?>
+
+
+ <tr>
+ <th colspan="3"><?php echo IMAGE_ORDERS_INVOICE ?></th>
+ <th> </th>
+ </tr>
+
+ <?php if(( $filepath=$datadocs->GetDoc('invoices', quotation::$Id)) && file_exists($filepath)): ?>
+ <tr>
+ <td><a href="<?php echo tep_href_link('document.php', 'mod=invoice&id='.quotation::$Id) ?>"><?php echo quotation::$Info->info['facture_ref'] ?></a></td>
+ <td><?php echo round((filesize($filepath)/1000),1).' Ko' ; ?></td>
+ <td><?php echo tep_datetime_short(date('Y-m-d H:i:s',filemtime($filepath))) ; ?></td>
+ <td><?php echo sprintf(CsrtAction::getLink('row_action_right', IMAGE_DELETE, 'trash'), '', tep_href_link(quotation::FILENAME, 'file_type=invoice&action=deletefile&id='.quotation::$Id.'&cID='.quotation::$Id) ,'' ) ; ?></td>
+ </tr>
+ <?php elseif(_cst_bool('USE_LOCAL_GENERAT_PDF')): ?>
+ <tr>
+ <td colspan="3"> </td>
+ <td><?php echo '<a class="button" href="' . tep_href_link(quotation::FILENAME , tep_get_all_get_params(array('page_admin','action','forceview')).'action=pdf&forceview=pdf&file_type=invoice&id='.quotation::$Id) . '">' . __('pdf generate') . '</a>' ; ?></td>
+ </tr>
+ <?php endif; ?>
+
+ </table>
+ </div>
+
+
+
+ <div class="button_nav">
+ <?php echo tep_js_back(tep_href_link(quotation::FILENAME), IMAGE_CANCEL);?>
+ </div>
+
+
+</div>
Added: trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.generic.gab
===================================================================
--- trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.generic.gab (rev 0)
+++ trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.generic.gab 2015-04-07 08:18:53 UTC (rev 5265)
@@ -0,0 +1,299 @@
+<?php
+/**
+ @licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 05/11/2013, 11:35
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file edit.tab.generic.gab
+ @dir admin/includes/gabarit/quotation/
+*/
+global $price, $current_theme;
+
+
+?>
+
+<!-- DRAW DETAIL CUSTOMERS -->
+ <div class="box_uniq block_form">
+ <fieldset class="block_field fleft w_50" >
+ <legend class="Ctrtirroir"><?php echo __('entry customer'); ?></legend>
+ <p class="block_input tirroir">
+ <?php echo tep_address_format(quotation::$Info->customer['format_id'], quotation::$Info->customer, 1, '', '<br />'); ?><br />
+ </p>
+ </fieldset>
+
+ <fieldset class="block_field fleft w_50" >
+ <legend class="Ctrtirroir"><?php echo __('legend contact customers'); ?></legend>
+ <p class="block_input tirroir">
+ <strong><?php echo __('entry telephone number'); ?></strong><?php echo quotation::$Info->customer['telephone']; ?>
+ <br />
+
+ <strong><?php echo __('entry email address'); ?></strong><?php echo '<a href="mailto:' . quotation::$Info->customer['email_address'] . '">' . quotation::$Info->customer['email_address'] . '</a>'; ?>
+ <br />
+
+ <strong><?php echo __('entry ip'); ?></strong><?php echo quotation::$Info->info['ip_address']; ?>
+ </p>
+ </fieldset>
+
+ </div>
+
+<!-- DRAW ADRESS SHIPING / BILLING -->
+
+ <?php /** Billing Address */ ?>
+ <div class="box_uniq block_form">
+
+ <fieldset class="block_field fleft w_50" >
+
+ <legend>
+ <?php echo __('entry billing address'); ?>
+ <?php if( !in_array(quotation::$Info->info['quotation_status_id'], array(DEFAULT_ORDERS_STATUS_COMPLETED, DEFAULT_ORDERS_STATUS_ANNULATE ) ) ): ?>
+ <span class="row_action">
+ <?php echo sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(quotation::FILENAME, 'action=edit&cID='.quotation::$Id. '&address=billing') ,'' ) ?>
+ </span>
+ <?php endif; ?>
+ </legend>
+
+ <div class="block_input">
+ <?php if(!isset($_REQUEST['address']) || ( isset($_REQUEST['address']) && $_REQUEST['address'] !='billing' ) ): ?>
+ <?php echo tep_address_format(quotation::$Info->billing['format_id'], quotation::$Info->billing, 1, '', '<br />'); ?>
+ <?php else: ?>
+
+
+ <?php echo tep_draw_form('add_deliv', quotation::FILENAME,'cID='.quotation::$Id.'&action=address&address=billing', 'post', ' class="block_form"'); ?>
+
+ <?php if(_cst_bool('ACCOUNT_COMPANY')): ?>
+ <?php echo tep_draw_input_field('address[company]','company', quotation::$Info->billing['company']) ; ?>
+ <?php endif; ?>
+
+ <?php echo tep_draw_input_field('address[name]','name', quotation::$Info->billing['name'] ); ?>
+
+ <?php echo tep_draw_input_field('address[street_address]','street_address', quotation::$Info->billing['street_address']) ; ?>
+
+ <?php echo tep_draw_input_field('address[suburb]','suburb', quotation::$Info->billing['suburb']) ; ?>
+
+ <?php echo tep_draw_input_field('address[postcode]','postcode', quotation::$Info->billing['postcode']) ; ?>
+
+ <?php echo tep_draw_input_field('address[city]','city', quotation::$Info->billing['city']) ; ?>
+
+ <?php echo tep_draw_pull_down_menu('address[country]', worldUtility::get_countries(), worldUtility::GetCountryIdByName(quotation::$Info->billing['country']) ) ; ?>
+
+ <?php if(_cst_bool('ACCOUNT_STATE')): ?>
+ <?php echo tep_draw_input_field('address[state]','state', quotation::$Info->billing['state']) ; ?>
+ <?php endif; ?>
+
+
+ <div class="button_nav">
+ <?php echo tep_js_back(tep_href_link(quotation::FILENAME, tep_get_all_get_params(array('address')) ), IMAGE_CANCEL);?>
+ <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?>
+ </div>
+
+ </form>
+ <?php endif; ?>
+ </div>
+ </fieldset>
+
+ <?php /** Shipping address */ ?>
+ <fieldset class="block_field fleft w_50 " >
+ <legend>
+ <?php echo __('entry shipping address'); ?>
+
+ <?php if( !in_array(quotation::$Info->info['quotation_status_id'], array(DEFAULT_ORDERS_STATUS_COMPLETED, DEFAULT_ORDERS_STATUS_ANNULATE ) ) ): ?>
+ <?php if(isset(quotation::$Info->delivery['street_address'])): ?>
+ <span class="row_action">
+ <?php echo sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(quotation::FILENAME, 'action=edit&cID='.quotation::$Id . '&address=delivery') ,'' ) ?>
+ </span>
+ <?php endif; ?>
+ <?php endif; ?>
+ </legend>
+
+ <?php if(isset(quotation::$Info->delivery['street_address'])): ?>
+ <div class="block_input">
+ <?php if(!isset($_REQUEST['address']) || ( isset($_REQUEST['address']) && $_REQUEST['address'] !='delivery' ) ): ?>
+ <?php echo tep_address_format(quotation::$Info->delivery['format_id'], quotation::$Info->delivery, 1, '', '<br />'); ?>
+ <?php else: ?>
+
+
+ <?php echo tep_draw_form('add_ship', quotation::FILENAME,'cID='.quotation::$Id.'&action=address&address=delivery', 'post', ' class="block_form"'); ?>
+ <ul>
+ <li>
+ <label for ="notify"><?php echo __('entry shipping address actived'); ?></label>
+ <?php echo tep_draw_checkbox_field('address[activate]', '', '', (!empty(quotation::$Info->delivery['name']) ? true :false) ); ?>
+ </li>
+
+ <?php if(_cst_bool('ACCOUNT_COMPANY')): ?>
+ <li><?php echo tep_draw_input_field('address[company]','company', quotation::$Info->delivery['company']) ; ?></li>
+ <?php endif; ?>
+
+ <li><?php echo tep_draw_input_field('address[name]','name', quotation::$Info->delivery['name'] ); ?></li>
+
+ <li><?php echo tep_draw_input_field('address[street_address]','street_address', quotation::$Info->delivery['street_address']) ; ?></li>
+
+ <li><?php echo tep_draw_input_field('address[suburb]','suburb', quotation::$Info->delivery['suburb']) ; ?></li>
+
+ <li><?php echo tep_draw_input_field('address[postcode]','postcode', quotation::$Info->delivery['postcode']) ; ?></li>
+
+ <li><?php echo tep_draw_input_field('address[city]','city', quotation::$Info->delivery['city']) ; ?></li>
+
+ <li><?php echo tep_draw_pull_down_menu('address[country]', worldUtility::get_countries(), worldUtility::GetCountryIdByName(quotation::$Info->delivery['country']) ) ; ?></li>
+
+ <?php if(_cst_bool('ACCOUNT_STATE')): ?>
+ <li><?php echo tep_draw_input_field('address[state]','state', quotation::$Info->delivery['state']) ; ?></li>
+ <?php endif; ?>
+
+ </ul>
+
+ <div class="button_nav">
+ <?php echo tep_js_back(tep_href_link(quotation::FILENAME, tep_get_all_get_params(array('address')) ), IMAGE_CANCEL);?>
+ <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?>
+ </div>
+
+ </form>
+ <?php endif; ?>
+ </div>
+ <?php endif; ?>
+
+ </fieldset>
+ </div>
+
+<!-- DRAW METHOD SHIPING / BILLING -->
+
+
+ <?php /** Payment Methode */ ?>
+ <div class="box_uniq block_form">
+ <fieldset class="block_field fleft w_50 ">
+ <legend><?php echo __('entry payment method'); ?>
+ <?php if( !in_array(quotation::$Info->info['quotation_status_id'], array(DEFAULT_ORDERS_STATUS_COMPLETED, DEFAULT_ORDERS_STATUS_ANNULATE ) ) ): ?>
+ <span class="row_action">
+ <?php echo sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(quotation::FILENAME, 'action=edit&cID='.quotation::$Id . '&mod=payment') ,'' ) ?>
+ </span>
+ <?php endif; ?>
+ </legend>
+ <div class="block_input">
+
+ <?php if(!isset($_REQUEST['mod']) || ( isset($_REQUEST['mod']) && $_REQUEST['mod'] !='payment' ) ): ?>
+ <?php echo quotation::$Info->info['payment_method'] ; ?>
+ <?php /*echo quotation::$Info->mod['class_payment'] ;*/ ?>
+
+ <div id="modPay">
+ <?php echo quotation::ViewMod('payment', quotation::$Info->mod['class_payment']) ?>
+ </div>
+
+ <?php else: ?>
+ <?php echo tep_draw_form('mod_pay', quotation::FILENAME,'cID='.quotation::$Id.'&action=mod&mod=payment', 'post', ' class="block_form"'); ?>
+
+ <?php echo tep_draw_pull_down_menu('mod[payment]', quotation::PrepaPullDownType('payment'), quotation::$Info->mod['class_payment'] , '') ; ?>
+
+ <div id="modPay">
+ <?php echo quotation::EditMod('payment', quotation::$Info->mod['class_payment']) ?>
+ </div>
+
+ <div class="button_nav">
+ <?php echo tep_js_back(tep_href_link(quotation::FILENAME, tep_get_all_get_params(array('mod')) ), IMAGE_CANCEL);?>
+ <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?>
+ </div>
+ </form>
+ <?php endif; ?>
+ </div>
+ </fieldset>
+
+
+ <?php /** Shipping Methode */ ?>
+ <?php if(isset(quotation::$Info->delivery['street_address'])): ?>
+ <fieldset class="block_field fleft w_50 ">
+ <legend><?php echo __('entry shipping method'); ?>
+ <?php if( !in_array(quotation::$Info->info['quotation_status_id'], array(DEFAULT_ORDERS_STATUS_COMPLETED, DEFAULT_ORDERS_STATUS_ANNULATE ) ) ): ?>
+ <span class="row_action">
+ <?php echo sprintf(CsrtAction::getLink('row_action_right', IMAGE_EDIT, 'edit'), '', tep_href_link(quotation::FILENAME, 'action=edit&cID='.quotation::$Id . '&mod=shipping') ,'' ) ?>
+ </span>
+ <?php endif; ?>
+ </legend>
+ <div class="block_input">
+ <?php if(!isset($_REQUEST['mod']) || ( isset($_REQUEST['mod']) && $_REQUEST['mod'] !='shipping' ) ): ?>
+ <?php //echo quotation::GetTitle('shipping',quotation::$Info->mod['class_shipping']) ; ?>
+
+ <div id="modPay">
+ <?php echo quotation::ViewMod('shipping', quotation::$Info->mod['class_shipping']) ?>
+ </div>
+
+ <?php else: ?>
+ <?php echo tep_draw_form('mod_pay', quotation::FILENAME,'cID='.quotation::$Id.'&action=mod&mod=shipping', 'post', ' class="block_form"'); ?>
+
+ <?php echo tep_draw_pull_down_menu('mod[shipping]', quotation::PrepaPullDownType('shipping'), quotation::$Info->mod['class_shipping'] , '') ; ?>
+
+ <div id="modShip">
+ <?php echo quotation::EditMod('shipping', quotation::$Info->mod['class_shipping']) ?>
+ </div>
+
+ <div class="button_nav">
+ <?php echo tep_js_back(tep_href_link(quotation::FILENAME, tep_get_all_get_params(array('mod')) ), IMAGE_CANCEL);?>
+ <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?>
+ </div>
+ </form>
+ <?php endif; ?>
+ </div>
+ </fieldset>
+ <?php endif; ?>
+ </div>
+
+
+ <div class="box_uniq block_form">
+
+ <table class="main-quotation history padd_w">
+ <thead>
+ <tr>
+ <th width="15%"><?php echo __('table heading date added'); ?></th>
+ <th class="tcenter" width="10%"><?php echo __('table heading customer notified'); ?></th>
+ <th class="tcenter" width="10%"><?php echo __('table heading status'); ?></th>
+ <th><?php echo __('table heading comments'); ?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ if( !is_array(quotation::$Info->lasthistory)): echo '<tr>' . "\n" . '<td colspan="5">' . __('text no order history') . '</td>' . "\n" . '</tr>' . "\n";
+ else : ?>
+ <tr>
+ <td class="tcenter"><?php echo quotation::$Info->lasthistory['date_added']; ?></td>
+ <td class="tcenter"><?php echo quotation::$Info->lasthistory['customer_notified']; ?></td>
+ <td class="tcenter" style="width:40px; background:<?php echo quotation::$Info->lasthistory['color'] ?> url('includes/template/<?php echo $current_theme ?>/img/<?php echo $_SESSION['login_groups_id'] ?>/bg_graph.png') bottom left repeat-y;"><?php echo quotation::$Info->lasthistory['quotation_status']; ?></td>
+ <td><?php echo unhtmlentities(quotation::$Info->lasthistory['comments']); ?></td>
+ </tr>
+ <?php endif; ?>
+ </tbody>
+ </table>
+ </div>
+
+ <?php if( !in_array(quotation::$Info->info['quotation_status_id'], array(DEFAULT_ORDERS_STATUS_COMPLETED, DEFAULT_ORDERS_STATUS_ANNULATE ) ) ): ?>
+ <?php /*if(quotation::$update) :*/?>
+<!-- DRAW FORM UPDATE BLOCK -->
+ <?php echo tep_draw_form('status_form', quotation::FILENAME,'cID='.quotation::$Id.'&action=update_order', 'post', ' class="block_form"'); ?>
+ <fieldset class="block_field">
+ <legend><?php echo __('legend update order history'); ?></legend>
+
+ <p class="block_input">
+ <label for="status"><?php echo __('entry status'); ?></label>
+ <?php echo tep_draw_pull_down_menu('status', quotation::$quotation_statuses, quotation::$Info->info['orders_status']); ?>
+ </p>
+
+ <p class="block_input inline">
+ <label for ="notify"><?php echo __('entry notify customer'); ?></label>
+ <?php echo tep_draw_checkbox_field('notify', '', '', true); ?>
+ </p>
+
+ <fieldset id="cont_comments" class="block_field">
+ <legend class="Ctrtirroir" ><?php echo __('table heading comments'); ?></legend>
+ <div class="block_input tirroir">
+ <?php echo tep_draw_textarea_field('comments', '', '30', '5', '','style="width:100%"'); ?>
+ </div>
+ <br /><br />
+ </fieldset>
+
+ <div class="button_nav">
+ <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?>
+ </div>
+ </fieldset>
+ </form>
+ <?php /*endif;*/ ?>
+ <?php endif; ?>
+ </div>
Added: trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.product.gab
===================================================================
--- trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.product.gab (rev 0)
+++ trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/edit.tab.product.gab 2015-04-07 08:18:53 UTC (rev 5265)
@@ -0,0 +1,150 @@
+<?php
+/**
+ @licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 05/11/2013, 11:35
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file edit.tab.detail.gab
+ @dir admin/includes/gabarit/quotation/
+*/
+global $price, $current_theme;
+
+
+?>
+
+ <?php echo tep_draw_form('status_form', quotation::FILENAME,'cID='.quotation::$Id.'&action=update_product', 'post', ' class="block_form"'); ?>
+ <div class="edit">
+ <table class="dataTableBase quotation">
+ <thead>
+ <tr>
+ <?php if(_cst_bool('MODULE_ACCOUNT_RETURN_PRODUCTS_STATUS')): ?>
+ <th><?php echo __('table heading return'); ?></th>
+ <?php endif; ?>
+ <th></th>
+ <th><?php echo __('table heading id'); ?></th>
+ <th><?php echo __('table heading products'); ?></th>
+ <th><?php echo __('table heading products model'); ?></th>
+
+
+ <th><?php echo __('table heading price excluding tax'); ?></th>
+ <th><?php echo __('table heading price including tax'); ?></th>
+ <th><?php echo __('table heading tax'); ?></th>
+ <th><?php echo __('table heading quantity'); ?></th>
+ <th><?php echo __('table heading total excluding tax'); ?></th>
+ <th><?php echo __('table heading total including tax'); ?></th>
+ </tr>
+ </thead>
+ <tbody>
+
+ <?php for ($i=0, $n=sizeof(quotation::$Info->products); $i<$n; $i++): $prod = quotation::$Info->products[$i] ; ?>
+ <tr>
+
+ <td class="tcenter"><?php echo (($prod['parent_id'] =='0' )? '' : $prod['parent_id'] ) ?></td>
+
+ <?php if(_cst_bool('MODULE_ACCOUNT_RETURN_PRODUCTS_STATUS')): ?>
+ <td><?php
+ //BEGIN RMA MODULE
+ $returns_check_query = tep_db_query("SELECT r.rma_value, rp.products_id FROM " . TABLE_RETURNS . " r, " . TABLE_RETURNS_PRODUCTS_DATA . " rp where r.returns_id = rp.returns_id and r.order_id = '" . quotation::$Id . "' and rp.products_id = '" . $prod['id'] . "' ");
+ if (!tep_db_num_rows($returns_check_query)){
+
+ if ($prod['return'] != '1') {
+ $return_link = '<a href="' . tep_href_link(FILENAME_RETURN_PRODUCT, 'order_id=' . quotation::$Id . '&products_id=' . ($prod['id']), 'NONSSL') . '">' . tep_image(DIR_WS_ICONS .'icon_rma_return.png', TEXT_SHEDULE_RETURN ).'</a>';
+ }
+ // if (quotation::$Infos_status !=DEFAULT_ORDERS_STATUS_COMPLETED ) $return_link = '';
+ } else {
+ $returns = tep_db_fetch_array($returns_check_query);
+ $return_link = '<a href=' . tep_href_link(FILENAME_RETURNS, 'cID=' . $returns['rma_value']) . '><font color=red><b><i>Returns</b></i></font></a>';
+ }
+ echo $return_link; ?>
+ </td>
+ <?php endif; ?>
+ <td class="tcenter">
+ <?php echo tep_draw_hidden_field('productId['.$i.']','productId_'.$i, $prod['id'], ' data-rowid="'.$i.'" class="cartOrder" ') ; ?>
+ <strong>
+ <a href="<?php echo tep_href_link(FILENAME_PRODUCTS, 'action=edit&pID='.$prod['id']) ?>"><?php echo (($prod['parent_id'] =='0' )? '' : ' ' ).$prod['id'] ?></a>
+ </strong>
+ </td>
+ <td class="tleft">
+ <span class="fleft">
+ <a href="#" class="screenshot" rel="<?php echo tep_href_link('document.php', 'mod=img&typ=product&w=200&h=200&id='.$prod['id']) ?>">
+ <?php echo (($prod['parent_id'] =='0' )? '' : ' ' ).$prod['name'] ?>
+ </a>
+ </span>
+ <span><?php echo tep_draw_attribute_products($prod['attributes'],$prod['qty'], quotation::$Info->info['currency'], quotation::$Info->info['currency_value']); ?></span>
+ </td>
+ <td class="tcenter"><?php echo $prod['model'] ?></td>
+ <td class="tright">
+ <?php if($prod['parent_id'] =='0' ) :?>
+ <?php echo $price->format($prod['final_price'], true, quotation::$Info->info['currency'], quotation::$Info->info['currency_value']) ?>
+ <?php else: ?>
+
+ <?php endif; ?>
+ </td>
+
+<!-- <td class="tright"><?php echo tep_draw_input_field('productFinalPrice['.$i.']','productFinalPrice_'.$i, $prod['final_price'], ' data-rowid="'.$i.'" class="cartOrder" ') ; ?></td> -->
+
+ <td class="tright">
+ <?php if($prod['parent_id'] =='0' ) :?>
+ <?php echo $price->format(tep_add_tax($prod['final_price'], $prod['tax']), true, quotation::$Info->info['currency'], quotation::$Info->info['currency_value']) ?>
+ <?php else: ?>
+
+ <?php endif; ?>
+ </td>
+ <td class="tcenter">
+ <?php if($prod['parent_id'] =='0' ) :?>
+ <?php echo tep_display_tax_value($prod['tax']) . '%' ?>
+ <?php else: ?>
+
+ <?php endif; ?>
+ </td>
+ <td class="tcenter">
+ <?php if($prod['parent_id'] =='0' ) :?>
+ <?php echo $prod['qty'] ?>
+ <?php else: ?>
+
+ <?php endif; ?>
+ </td>
+ <td class="tright">
+ <?php if($prod['parent_id'] =='0' ) :?>
+ <?php echo $price->format($prod['final_price'] * $prod['qty'], true, quotation::$Info->info['currency'], quotation::$Info->info['currency_value']) ?>
+ <?php else: ?>
+
+ <?php endif; ?>
+ </td>
+ <td class="tright">
+ <?php if($prod['parent_id'] =='0' ) :?>
+ <?php echo $price->format(tep_add_tax($prod['final_price'], $prod['tax']) * $prod['qty'], true, quotation::$Info->info['currency'], quotation::$Info->info['currency_value']) ?>
+ <?php else: ?>
+
+ <?php endif; ?>
+ </td>
+ </tr>
+ <?php endfor; ?>
+
+ <!-- Block Total -->
+ <?php for ($i = 0, $n = sizeof(quotation::$Info->totals); $i < $n; $i++) { ?>
+ <tr>
+ <?php if(_cst_bool('MODULE_ACCOUNT_RETURN_PRODUCTS_STATUS')): ?>
+ <td> </td>
+ <?php endif; ?>
+ <td colspan="9" class="tright"><?php echo quotation::$Info->totals[$i]['title'] ?></td>
+ <td class="tright"><?php echo quotation::$Info->totals[$i]['text'] ?></td>
+ </tr>
+ <?php } ?>
+ <!-- Block Total eof-->
+
+ </tbody>
+ </table>
+ <?php if( !in_array(quotation::$Info->info['quotation_status_id'], array(DEFAULT_ORDERS_STATUS_COMPLETED, DEFAULT_ORDERS_STATUS_ANNULATE ) ) ): ?>
+ <div class="button_nav">
+ <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?>
+ </div>
+ <?php endif; ?>
+ </fieldset>
+ <br class="clear" />
+ </div>
+ </form>
+
Added: trunk/extensions/QUOTATION_stable/catalog/admin/includes/modules/pages/quotation.php
===================================================================
--- trunk/extensions/QUOTATION_stable/catalog/admin/includes/modules/pages/quotation.php (rev 0)
+++ trunk/extensions/QUOTATION_stable/catalog/admin/includes/modules/pages/quotation.php 2015-04-07 08:18:53 UTC (rev 5265)
@@ -0,0 +1,843 @@
+<?php if (!defined('HTTP_SERVER')) die('You can not access this file directly!');
+/**
+ @licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 06/11/2013, 22:33
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file adminAccount.php
+ @dir admin/includes/modules/pages/
+*/
+
+require_once(dirname(__FILE__).'/orders.php');
+
+/**
+ @class quotation
+ @extends orders
+*/
+class quotation
+ extends orders
+ {
+
+ const FILENAME = FILENAME_QUOTATION;
+
+ /**
+ @var Type of order
+ col type in table order
+ */
+ const TYPEOFORDER = 2;
+ /**
+ @var object detail commande , retour object class order
+ */
+ public static $order;
+ /**
+ @var array $quotation_status_array
+ */
+ public static $quotation_status_array=array();
+ /**
+ @var array $quotation_statuses
+ */
+ public static $quotation_statuses=array();
+
+ /**
+ @var integre current id
+ */
+ public static $Id;
+
+ /**
+ class constructor
+ */
+ public function __construct() {
+
+ global $language;
+ $oscss=oscss_cstr::getInstance();
+ $oscss->pile_file_lang(DIR_FS_ADMIN.DIR_WS_LANGUAGES.'/'.$language.'/Order.txt');
+
+
+ self::GetConf();
+ }
+ /**
+ @brief Load , adjust and define var environement exe for module
+ Is use in module and class abstract for init value config this module
+ */
+ public static function GetConf(){
+ global $languages_id;
+
+ self::$code=__CLASS__;
+ self::$datatype=__CLASS__;
+
+ self::$action=(isset($_REQUEST['action'])? (string)$_REQUEST['action'] : 'listing' );
+ self::$Id=(isset($_REQUEST['cID'])? $_REQUEST['cID'] : '' );
+ if(empty(self::$Id))
+ self::$Id=(isset($_REQUEST['oID'])? $_REQUEST['oID'] : '' );
+
+
+ /**
+ @remarks define var execution sql in GetDBValue()
+ */
+ if( !isset(self::$InitInfo['adjust']) )
+ self::$InitInfo['adjust']=array(
+ 'languages_id'=>$languages_id,
+ 'page'=>1,
+ 'rowbyp'=>10,
+ 'sOrder'=>'',
+ 'sWhere'=>'',
+ );
+
+ MGabCont::SetCurrentName(__CLASS__);
+
+ /**
+ @remarks not load if not first init
+ */
+ if(!defined('JSONSTATMENT')){
+ //! active datatable in ajax, precise les GET necessaire
+ define('JSONSTATMENT', 'ModTwo=true&mod=page&type='.self::$code.
+ (isset(parent::$action)?'&action='.parent::$action : '' ).
+ (isset(self::$Id)?'&oID='.self::$Id : '' )
+ );
+
+ //! detail item in ajax
+ define('AJAXSTATMENTDETAIL', 'mod=page&type='.self::$code);
+ }
+
+
+
+ $DB=Database::getInstance();
+ self::$quotation_statuses=array();
+ $quotation_status_query = $DB->query("select status_id, status_name from " . TABLE_STATUS . " where status_type='quotation' and language_id = '" . (int)$languages_id . "'");
+ while ($quotation_status = $quotation_status_query->fetchAssoc()) {
+ self::$quotation_statuses[] = array('id' => $quotation_status['status_id'], 'text' => $quotation_status['status_name']);
+ self::$quotation_status_array[$quotation_status['status_id']] = $quotation_status['status_name'];
+ }
+
+
+ /**
+ @remarks this define col theader title, and ajust html code
+ Just for Edit listing
+ */
+ self::$allfields = array(
+ 'o.orders_id' => array(
+ 'sort'=>true,
+ 'alias'=>'id',
+ 'text'=>__('orders table heading order id'),
+ 'width'=>'2%',
+ 'class'=>'tcenter',
+ 'default'=>true,
+ ),
+ 'o.customers_id' => array(
+ 'sort'=>true,
+ 'text'=> __('orders table heading customers'),
+ 'width'=>'20%',
+ 'class'=>'tleft',
+ 'default'=>true,
+ ),
+
+ 'ot.text' => array(
+ 'sort'=>true,
+ 'alias'=>'order_total',
+ 'text'=>__('orders table heading order total'),
+ 'default'=>true,
+ 'class'=>'tright',
+ ),
+ 'o.currency' => array(
+ 'sort'=>true,
+ 'text'=>__('orders table heading currency'),
+ 'default'=>true,
+ 'class'=>'tcenter',
+ ),
+ 's.status_name' =>array(
+ 'sort'=>true,
+ 'alias'=>'orders_status_name',
+ 'text'=> __('orders table heading status'),
+ 'width'=>'10%',
+ 'class'=>'tleft',
+ 'default'=>true,
+ ),
+ 'o.date_purchased' => array(
+ 'sort'=>true,
+ 'text'=>__('@quotation table heading date purchased'),
+ 'width'=>'10%',
+ 'class'=>'tcenter',
+ 'default'=>true,
+ ),
+ 'o.last_modified' => array(
+ 'sort'=>true,
+ 'text'=>__('orders table heading last modified'),
+ 'width'=>'10%',
+ 'class'=>'tcenter',
+ ),
+ 'o.payment_method' => array(
+ 'sort'=>true,
+ 'text'=>__('orders table heading payment'),
+ 'width'=>'12%',
+ 'class'=>'tcenter',
+ ),
+ 'o.ip_address' => array(
+ 'sort'=>true,
+ 'text'=> __('orders table heading ip_address'),
+ 'width'=>'10%',
+ 'class'=>'tcenter',
+ 'default'=>true,
+ ),
+ 'o.total_weight' => array(
+ 'sort'=>true,
+ 'text'=> __('orders table heading total_weight'),
+ 'width'=>'10%',
+ 'class'=>'tright',
+ 'default'=>true,
+ ),
+ 'o.class_payment' => array(
+ 'sort'=>true,
+ 'text'=> __('orders table heading class_payment'),
+ 'width'=>'10%',
+ 'class'=>'tcenter',
+ 'default'=>true,
+ ),
+ 'o.class_shipping' => array(
+ 'sort'=>true,
+ 'text'=> __('orders table heading class_shipping'),
+ 'width'=>'10%',
+ 'class'=>'tcenter',
+ 'default'=>true,
+ ),
+ );
+
+
+ /// @remarks min fields and not view directly colonne fields
+ $listfield = 'o.orders_id , o.orders_ref, o.orders_prefix, o.facture_id, o.facture_ref, s.status_color as orders_status_color,';
+
+ /// @remarks Active forms filter
+ $mutli=array();
+// $mutli[] = '<span class="fleft">'.__('action multiple') . ' ' . tep_draw_pull_down_menu('status_multi', array_merge(array(array('id' => '', 'text' => __('text action multiple orders'))), orders::$quotation_statuses) ) . __('export: ') . tep_draw_pull_down_menu('modeexport', orders::$export->mode ).'</span> <span class="fleft" style="margin-left:50px;"> '. tep_image_submit('button_confirm.gif', IMAGE_CONFIRM, '' ).'</span>' ;
+
+ /**
+ @remarks Active forms filter
+ @note
+ array[
+ // For normalised filter define on method ConvertInitVar
+ generic =>
+ array (
+ 'string'
+ // , ....
+ );
+ mod =>
+ array(
+ 'title'=>__('@products filter tab manufacturer'),
+ 'content'=>tep_get_include_contents('manufacturers/filter.manufacturer'),
+ )
+ ]
+ */
+ $tab = array();
+ $tab['mod'][]=array(
+ 'title'=>__('orders filter tab clause'),
+ 'content'=>tep_get_include_contents('orders/filter.clause'),
+ );
+ $tab['mod'][]=array(
+ 'title'=>__('orders filter products tab clause'),
+ 'content'=>tep_get_include_contents(__CLASS__.'/filter.products'),
+ );
+ /**
+ @remarks this define menu master module in page
+ @note use $boutons[action][] = array(params)
+
+ params :
+ 'type'=>'getLink',
+ 'format'=>'button_nav',
+ 'image'=>'',
+ 'cssclass'=>'button',
+ 'title'=>__('image create new content'),
+ 'url'=>tep_href_link(self::FILENAME, 'action=new'),
+ */
+ $boutons = array();
+
+
+
+ /**
+ @remarks filter based on date_purchased orders
+ */
+ if(self::$view =='thisday'){
+ $_SESSION['filters'][__CLASS__]['dates']['start'] = date('Y-m-d');
+ $_SESSION['filters'][__CLASS__]['dates']['end'] = date('Y-m-d');
+ }
+ elseif(self::$view =='thisweek'){
+ $_SESSION['filters'][__CLASS__]['dates']['start'] = date('Y-m-d', time() - (7 * 24 * 3600));
+ $_SESSION['filters'][__CLASS__]['dates']['end'] = date('Y-m-d');
+ }
+
+ if(isset($_SESSION['filters'][__CLASS__]['dates']['start']))
+ $_SESSION['filters']['dates']['start'] = $_SESSION['filters'][__CLASS__]['dates']['start'].' 00:00:00';
+ else
+ $_SESSION['filters']['dates']['start'] = date('Y-m-d', time() - 7 * 24 * 60).' 00:00:00';
+
+ if(isset($_SESSION['filters'][__CLASS__]['dates']['end']))
+ $_SESSION['filters']['dates']['end'] = $_SESSION['filters'][__CLASS__]['dates']['end'].' 23:59:59';
+ else
+ $_SESSION['filters']['dates']['end'] = date('Y-m-d').' 23:59:59';
+
+ if(tep_not_null($_SESSION['filters']['dates']['start']))
+ self::$InitInfo['adjust']['sWhere'] .=" AND date_purchased >= '".tep_db_input($_SESSION['filters']['dates']['start'])."'";
+ if(tep_not_null($_SESSION['filters']['dates']['end']))
+ self::$InitInfo['adjust']['sWhere'] .=" AND date_purchased <= '".tep_db_input($_SESSION['filters']['dates']['end'])."'";
+
+
+
+ if(isset($_SESSION['filters'][__CLASS__]['products']))
+ self::$InitInfo['adjust']['sWhere'] .=" AND op.products_id= '".tep_db_input($_SESSION['filters'][__CLASS__]['products'])."'";
+
+
+
+ /**
+ Call Base Init and construct $InitInfo for process Filter
+ $listfield string list row in db
+ $mutli array action multiple
+ $filter array put list off activate tab filter
+ $boutons array
+ */
+ self::ConvertInitVar( $listfield, $mutli, $tab, $boutons);
+
+
+ global $oscss;
+ $oscss->_add_ext(BO_WISIWYG_SELECTED,'editeur/');
+ echo $oscss->_call(BO_WISIWYG_SELECTED,'_top','comments','800','400');
+
+ return true;
+ }
+
+
+
+
+ public function check_action($actions){
+ global $messageStack;
+ self::$action=$actions;
+ $DB=Database::getInstance();
+ switch (self::$action) {
+
+ /**
+ @remarks specific save in session value filters
+ */
+ case 'filters':
+ /*
+ Call Prev Process
+ */
+ self::actionFilter();
+
+
+ // date order
+ if(isset($_POST['filters']['dates']) ){
+ if( tep_not_null($_POST['filters']['dates']['start']))
+ $_SESSION['filters'][__CLASS__]['dates']['start'] = tep_date_raw(tep_db_prepare_input($_POST['filters']['dates']['start']));
+ if(tep_not_null($_POST['filters']['dates']['end']))
+ $_SESSION['filters'][__CLASS__]['dates']['end'] = tep_date_raw(tep_db_prepare_input($_POST['filters']['dates']['end']));
+ }
+
+
+ if(isset($_POST['filters']['products']) && $_POST['filters']['products'] > 0)
+ $_SESSION['filters'][__CLASS__]['products'] = tep_db_prepare_input($_POST['filters']['products']);
+ else
+ unset($_SESSION['filters'][__CLASS__]['products']);
+
+ tep_redirect(tep_href_link(self::FILENAME));
+ break;
+
+
+ case 'multi':
+ $res=array();
+ /**
+ Action mutliple
+ */
+ $status = tep_db_prepare_input(@$_POST['status_multi']);
+ $notify_comments = (isset($_POST['notify_comments'])) ? tep_db_prepare_input($_POST['notify_comments']) : '';
+ $notify =(isset($_POST['notify'])) ? tep_db_prepare_input($_POST['notify']): '';
+ $comments= (isset($_POST['comments'])) ? tep_db_prepare_input($_POST['comments']) :'';
+ if(isset($_POST['action_multi']) && is_array($_POST['action_multi']) ) {
+ if(isset($_POST['status_multi'])){
+ foreach($_POST['action_multi'] as $Id )
+ if (up_status_order($Id, array('status'=>$status,'comments'=>'', 'notify'=>$notify, 'notify_comments'=>$notify_comments , 'comments'=> $comments) ) ) $res[]=true;
+ else $res[]=false;
+ }
+ }
+
+ if (in_array(false,$res)) $messageStack->add_session(__('success order updated'), 'success');
+ else $messageStack->add_session(__('warning order not updated'), 'warning');
+
+ tep_redirect(tep_href_link(self::FILENAME));
+ break;
+
+ case 'update_product':
+ $Id = tep_db_prepare_input(self::$Id);
+
+
+ $res= sqlorder::fetch(array('id'=>self::$Id));
+// print_r($res);
+ foreach($_POST['productId'] as $linerow => $row) {
+//
+// $px_ht = $_POST['productFinalPrice'][$linerow];
+// $qty = $_POST['productTotHt'][$linerow];
+// $qty = $_POST['productQty'][$linerow];
+//
+// var_dump($linerow);
+ print_r($res->products[$linerow] );
+ $tmp = $res->products[$linerow];
+
+ $tmp['final_price'] = $_POST['productTotHt'][$linerow];
+ $tmp['qty'] = $_POST['productQty'][$linerow];
+ $res->products[$linerow] = $tmp;
+//
+
+// print_r($res->products[$linerow] );
+ }
+
+ sqlorder::update(array('id'=>$Id, 'products'=>$res->products ));
+// exit;
+
+ tep_redirect(tep_href_link(self::FILENAME, 'action=edit&cID='.$Id));
+ break;
+
+ case 'update_order':
+ $Id = tep_db_prepare_input(self::$Id);
+ $status = tep_db_prepare_input($_POST['status']);
+ $comments = tep_db_prepare_input($_POST['comments']);
+
+ $order_updated = false;
+ $check_status_query = $DB->query($sql ="select customers_name, customers_email_address, orders_status, date_purchased, ip_address from " . TABLE_ORDERS . " where orders_type='".TYPEOFORDER."' AND orders_id = '" . (int)$Id . "'");
+// echo $sql;
+ $check_status = $check_status_query->fetchAssoc();
+ if ($check_status['orders_status'] != $status || tep_not_null($comments)) {
+// $DB->query("update " . TABLE_ORDERS . " set orders_status = '" . tep_db_input($status) . "', last_modified = now() where orders_id = '" . (int)$Id . "'");
+
+ sqlorder::update(array('id'=>$Id,'status'=>tep_db_input($status),'type'=>'2' ));
+// var_dump(__file__);
+// exit;
+ $customer_notified = '0';
+ if (isset($_POST['notify']) && ($_POST['notify'] == 'on')) {
+ $notify_comments = '';
+ if (isset($_POST['notify_comments']) && ($_POST['notify_comments'] == 'on')) {
+ $notify_comments = sprintf(EMAIL_TEXT_COMMENTS_UPDATE, $comments) . "\n\n";
+ }
+
+ $myarray = array(
+ 'email_use_html'=>(($_POST['p_format'] == 'HTML')?true:false),
+ 'mail_sent_to'=>$mail_sent_to,
+ 'from'=>$from,
+ '_oID'=>$Id,
+ '_oLinks'=>tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $Id, 'SSL') ,
+ 'date_purchased'=>tep_date_long($check_status['date_purchased']),
+ 'notify_comments'=>$notify_comments,
+ '_ostatus'=>$quotation_status_array[$status],
+ 'subject'=>$subject,
+ 'message'=>$content
+ );
+
+ $message_final=tep_post_prepare_email("quotation.tpl",$language,$myarray);
+
+ if ( tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT, $message_final, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS) !=false) $err=true;
+ else $err=false;
+ }
+
+ if(!$err) $DB->query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$Id . "', '" . tep_db_input($status) . "', now(), '" . $customer_notified . "', '" . tep_db_input($comments) . "')");
+
+ $order_updated = true;
+ }
+
+ if ($order_updated) {
+ $messageStack->add_session(SUCCESS_ORDER_UPDATED, 'success');
+ } else {
+ $messageStack->add_session(WARNING_ORDER_NOT_UPDATED, 'warning');
+ }
+
+ tep_redirect(tep_href_link(self::FILENAME) );
+ break;
+
+
+ /**
+ @remarks transforme held_order to order
+ */
+ case 'confirm_order':
+ if( (int)self::$Id > 0){
+ if( sqlorder::update(array('id'=>self::$Id,'type'=>'0')) )
+ $messageStack->add_session(__('success held order updated'), 'success');
+ }
+
+ tep_redirect(tep_href_link(self::FILENAME));
+ break;
+
+ /**
+ @remarks suppression de la pre-commande
+ */
+ case 'deleteconfirm':
+ $Id = tep_db_prepare_input($_GET['oID']);
+
+ if( (int)self::$Id > 0){
+ sqlorder::delete(array('id'=>$Id));
+ }
+ tep_redirect(tep_href_link(self::FILENAME));
+ break;
+
+ }
+
+ return self::$action;
+ }
+
+// public function get_header(){ return false; }
+
+ /**
+ @fn adminUsers::GetDBValue();
+ @brief return DB value adapted for current action
+ Use self::action for determine switch
+ @return
+ */
+ public static function GetDBValue(){
+
+ $DB= Database::getInstance();
+
+ switch (self::$action) {
+
+ case 'delete':
+// case 'recup_order':
+ if( (int)self::$Id > 0) {
+ $res = sqlorder::fetch(array('id'=>self::$Id ), true);
+ }
+ else{
+ $res = sqlorder::Specimen(true);
+ }
+
+ $res= self::FormatDBValue($res);
+
+ return $res;
+ break;
+
+
+// case 'delete';
+ case 'edit':
+
+// $cart = new shoppingCart();
+// print_r($cart);
+// exit;
+
+ $activ_add = array();
+// if(!$res)
+
+ $res= sqlorder::fetch(array('id'=>self::$Id));
+
+ if(!$res)
+ die('no load');
+
+ $res->history= self::load_status_history((int)self::$Id);
+ $res->lasthistory=$res->history[0];
+
+ $res->service = array();
+ $res->pshipping = array();
+ $pdt_db_arr = array();
+
+ /**
+ @brief loop for adjust rows products No physical (contract/abonnement/service) And physical product for shipping
+ */
+ foreach($res->products as $rows){
+ $pdt_db_arr[$rows['rowid']] = $rows;
+
+ $key_attrib='';
+ $light_attrib = array();
+
+ if(isset($rows['attributes']) && is_array($rows['attributes']))
+ foreach($rows['attributes'] as $attrib){
+ $key_attrib .= $attrib['option_id'].'-'.$attrib['value_id'].',';
+ $light_attrib[$attrib['option_id']] = $attrib['value_id'];
+ }
+
+ if(strlen($key_attrib)> 0)
+ $key_attrib = substr($key_attrib,0,-1);
+
+ /// No physical
+ if(in_array($rows['type'], explode(',', TYPE_VIRTUAL_PRODUCTS)) ){
+
+ $sql="SELECT cc.* ".
+ " FROM ".TABLE_SERVICES." cc ".
+ " WHERE cc.customers_id = '" . (int)$res->customer['id'] . "' AND cc.orders_id = '".(int)self::$Id ."' AND cc.orders_products_id = '".$rows['id']."' ".
+ " ORDER BY row_id DESC";
+
+ $_query2 = $DB->query($sql);
+
+ foreach($_query2->fetchAllAssoc() as $result){
+ $result['status_html']= self::GetServiceStatus($result, false);
+ $result['auto_retry_html']= self::GetServiceAutoRetry($result, false);
+ $res->service[]=new objectInfo(array_merge($rows,$result));
+ }
+ }
+
+ /// physical
+ else {
+
+ $sql="SELECT cp.orders_products_id as products_id , cp.orders_products_attributes as key_attrib ,SUM(cp.qt_expedie) as qt , cc.status ".
+ " FROM ".TABLE_SHIPPING." cc ".
+ " LEFT JOIN ".TABLE_SHIPPING_PRODUCTS." cp ON (cc.row_id = cp.shipping_id) ".
+ " WHERE cc.orders_id = '".(int)self::$Id ."' AND cp.orders_products_id = '".$rows['rowid']."' AND cp.orders_products_attributes ='".$key_attrib."' ".
+ " GROUP BY orders_products_id ";
+ " ORDER BY row_id DESC";
+
+ $_query2 = $DB->query($sql);
+
+ $qt = 0;
+ if($_query2->__get('numRows')){
+ foreach($_query2->fetchAllAssoc() as $result){
+ $qt = (int)$result['qt'];
+ $result['qt_expedie'] = $qt;
+ $result['qt_orders'] = $rows['qty'];
+ $result['attrib'] = $light_attrib;
+ $robj = new objectInfo(array_merge($rows,$result));
+ $activ_add[] = ( ( (int)$rows['qty'] <= $qt) ? false : true );
+ $res->pshipping[]=$robj;
+ }
+ }
+ else{
+ $rows['qt_expedie'] = 0;
+ $result['qt_orders'] = $rows['qty'];
+ $result['key_attrib'] = $key_attrib;
+ $result['attrib'] = $light_attrib;
+ $res->pshipping[]=new objectInfo(array_merge($rows,$result));
+ $activ_add[] = true;
+ }
+ }
+ }
+
+ $result4 = sqlshipping::fetch(array('orders_id'=>(int)self::$Id ), true);
+
+ if(!$result4)
+ $res->allshipping = false;
+ elseif(is_array($result4))
+ $res->allshipping = $result4;
+ else
+ $res->allshipping[] = $result4;
+
+ /*
+ Display block in html content
+ */
+ $res->display_service = (count($res->service) <= 0 )? false : true;
+ $res->display_shipping = (count($res->pshipping) <= 0 )? false : true;
+ $res->display_shipping_add = (in_array(true, $activ_add))? true : false;
+
+ $res->prd_db_byid = $pdt_db_arr;
+
+// die('no load');
+ return $res;
+ break;
+
+ case 'listing':
+ default:
+
+ /**
+ @remarks retrun object load one inventaire
+ */
+ global $query_numrows, $languages_id;
+ $adjust=new objectInfo(self::$InitInfo['adjust']);
+
+
+ /**
+ @remarks replace id by name col
+ */
+ if(!empty($adjust->sWhere)) {
+
+ foreach(self::$allfields as $key=>$row){
+ if(is_array($row) && isset($row['alias']) ){
+ $k[] = '#[(]'.$row['alias'].'[)]#i';
+ $k[] = '# '.$row['alias'].' #i';
+ $k[] = '# \.'.$row['alias'].'#i';
+
+ $v[] = '('.$key.')';
+ $v[] = ' '.$key.' ';
+ $v[] = '.'.$key.' ';
+ }
+ }
+
+ if(isset($k))
+ $adjust->sWhere = preg_replace($k,$v, $adjust->sWhere);
+ }
+
+ $query_raw = "SELECT DISTINCT ".$adjust->listfields.
+ " FROM " . TABLE_ORDERS . " o ".
+ " LEFT JOIN " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id) ".
+ " LEFT JOIN " . TABLE_ORDERS_PRODUCTS . " op on (op.orders_id = o.orders_id) ".
+ " LEFT JOIN " . TABLE_STATUS . " s ON(o.orders_status = s.status_id and s.status_type='quotation' and s.language_id = '" . (int)$adjust->languages_id . "') ".
+ " WHERE o.orders_type ='".self::TYPEOFORDER."' AND ot.class = 'ot_total' ".$adjust->sWhere.
+ " ORDER BY ".((!empty($adjust->sOrder)) ? $adjust->sOrder : 'o.orders_id DESC');
+// echo $query_raw;
+// exit ;
+ $_split = new splitPageResults($adjust->page, $adjust->rowbyp, $query_raw, $query_numrows);
+
+ $_query = $DB->query($query_raw);
+
+ $res=self::FormatDBValue($_query);
+
+ return $res;
+ }
+ }
+
+
+
+ public function display_view(){
+ $action=self::$action;
+ $MG = false;
+// echo self::$action;
+ switch (self::$action) {
+// case 'delete':
+// $MG = true;
+// case 'recup_order':
+// self::$Info=self::GetDBValue();
+// break;
+//
+// case 'confirm_order':
+// tep_confirm_held_order(self::$Id);
+// return ;
+// break;
+
+ case 'delete':
+ case 'copy_to':
+ $MG= false;
+// if(!self::test_cID((int)self::$Id))
+ break;
+
+
+ case 'edit':
+ $MG= false;
+
+ self::$Info=self::GetDBValue();
+
+
+
+ self::AddTabs( new TabsListeners(
+ __('@'.__CLASS__.' tab data') ,
+ MGabCont::CallGab('generic','edit.tab',__CLASS__)
+ ) );
+
+
+ self::AddTabs( new TabsListeners(
+ __('@'.__CLASS__.' tab details') ,
+ MGabCont::CallGab('product','edit.tab',__CLASS__)
+ ) );
+
+
+// $tab = new TabsListeners(
+// __('@'.__CLASS__.' tab history') ,
+// MGabCont::CallGab('history','edit.tab',__CLASS__)
+// );
+//
+// self::AddTabs( $tab );
+
+// if(orders::$Info->display_shipping ){
+// $tab = new TabsListeners(
+// __('@'.__CLASS__.' tab shipping') ,
+// MGabCont::CallGab('shipping','edit.tab',__CLASS__)
+// );
+//
+// self::AddTabs( $tab );
+// }
+
+// if(orders::$Info->display_service) {
+// $tab = new TabsListeners(
+// __('@'.__CLASS__.' tab service') ,
+// MGabCont::CallGab('service','edit.tab',__CLASS__)
+// );
+//
+// self::AddTabs( $tab );
+// }
+
+ ModTreePage::GenericDisplay($action);
+
+// break;
+ break;
+
+ default:
+ $MG = true;
+ self::$list=self::tep_get_list();
+
+// if(empty(self::$action))
+ $action='listing';
+ }
+// var_dump($MG);
+ /// use master gabarit
+ if($MG)
+ return MGabCont::CallGab($action,__FUNCTION__,self::MASTER);
+ else
+ return MGabCont::CallGab($action,__FUNCTION__,__CLASS__);
+
+// die('no load');
+ }
+
+
+
+/** Iterne public module */
+
+
+
+ public static function ButtonRowsActions($orders){
+ return parent::GenericRowsActions($orders, 'ed', '', '');
+// }
+// return sprintf(
+// CsrtAction::getFormat('row_action'),
+// '' ,
+// sprintf(CsrtAction::getLink('row_action_right', __('image recup help order'), 'heldorder'), 'fancy', tep_href_link(self::FILENAME, 'oID=' . $orders['oID'] . '&action=recup_order') ,'' ).
+// sprintf(CsrtAction::getLink('row_action_right', IMAGE_DELETE, 'delete'), 'fancy', tep_href_link(self::FILENAME, 'oID=' . $orders['oID'] . '&action=delete') ,'' )
+// );
+ }
+
+ /**
+ @brief format db value for display page
+ @param $_query ressource db sql
+ @return array
+ */
+ protected static function FormatDBValue($_query){
+ $DB=Database::getInstance();
+ $datadocs=new DatasFiles;
+ $res=array();
+
+ switch (self::$action) {
+ case 'listing':
+ while ($orders = $_query->fetchAssoc()) {
+
+ $orders['oID']=$orders['orders_id'];
+ $orders[1]=tep_draw_checkbox_field('action_multi['.$orders['orders_id'].']','action_mutli_'.$orders['orders_id'],$orders['orders_id'], '','',' class="multi" ');
+
+ foreach(self::$InitInfo['modele']['listing'] as $k=>$row){
+ if( ($value = self::FormatDBValueRow($k, $orders)) && $value !=false )
+ $ord[$k]= $value;
+ elseif($k == 'order_total') $ord[$k]=strip_tags($orders['order_total']);
+ elseif($k == 'customers_id') $ord[$k]=tep_customers_row_action($orders['customers_id'], array('origin'=>self::FILENAME));
+ elseif($k == 'date_purchased') $ord[$k]=tep_datetime_short($orders['date_purchased']);
+ elseif($k == 'last_modified') $ord[$k]=tep_datetime_short($orders['last_modified']);
+ elseif($k == 'orders_status_name')
+ $ord[$k]=sprintf( CsrtAction::getFormat('type_color'), " border-left: 15px solid ".$orders['orders_status_color'], $orders['orders_status_name'] );
+ else $ord[$k]=$orders[$k];
+ }
+
+ $ord[0]=$orders['orders_id'];
+ $res[]=$ord;
+ }
+ break;
+
+ default:
+ $res = parent::FormatDBValueDefault($_query);
+ }
+
+ return $res;
+ }
+
+ /** static InterfacedInnerHtml */
+
+ public static function detail_row_page($id){
+ include(DIR_WS_FUNCTIONS.'lib.orders.php');
+ self::$order=new order((int)$id, '');
+
+ return MGabCont::CallGab('inline','display_view',__CLASS__);
+ }
+
+ /**
+ @brief return Filename
+ */
+ public static function GetFILENAME(){
+ return self::FILENAME;
+ }
+
+
+}
+
+?>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:18:05
|
Revision: 5264
http://sourceforge.net/p/oscss/svn/5264
Author: oscim
Date: 2015-04-07 08:18:04 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Next (Add support of quotation in process orders)
Added Paths:
-----------
trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/quotation/
trunk/extensions/QUOTATION_stable/catalog/admin/includes/languages/fr_FR/
trunk/extensions/QUOTATION_stable/catalog/admin/includes/modules/pages/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:17:35
|
Revision: 5263
http://sourceforge.net/p/oscss/svn/5263
Author: oscim
Date: 2015-04-07 08:17:24 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Next (Add support of quotation in process orders)
Added Paths:
-----------
trunk/extensions/QUOTATION_stable/catalog/admin/includes/gabarit/
trunk/extensions/QUOTATION_stable/catalog/admin/includes/languages/
trunk/extensions/QUOTATION_stable/catalog/admin/includes/modules/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:17:04
|
Revision: 5262
http://sourceforge.net/p/oscss/svn/5262
Author: oscim
Date: 2015-04-07 08:16:57 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Next (Add support of quotation in process orders)
Added Paths:
-----------
trunk/extensions/QUOTATION_stable/catalog/admin/includes/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:16:33
|
Revision: 5261
http://sourceforge.net/p/oscss/svn/5261
Author: oscim
Date: 2015-04-07 08:16:32 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Next (Add support of quotation in process orders)
Added Paths:
-----------
trunk/extensions/QUOTATION_stable/catalog/admin/
trunk/extensions/QUOTATION_stable/catalog/includes/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:15:05
|
Revision: 5260
http://sourceforge.net/p/oscss/svn/5260
Author: oscim
Date: 2015-04-07 08:14:57 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Add support of quotation in process orders
Added Paths:
-----------
trunk/extensions/QUOTATION_stable/
trunk/extensions/QUOTATION_stable/catalog/
trunk/extensions/QUOTATION_stable/install.xml
Added: trunk/extensions/QUOTATION_stable/install.xml
===================================================================
--- trunk/extensions/QUOTATION_stable/install.xml (rev 0)
+++ trunk/extensions/QUOTATION_stable/install.xml 2015-04-07 08:14:57 UTC (rev 5260)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<contrib>
+ <description>
+ <details contrib_ref="" forum_ref="" contrib_type="" status="0" last_update="2015-04-07" />
+ <author_pkg>www.oscim.com</author_pkg>
+ <comments><![CDATA[]]> </comments>
+ <credits>oscim</credits>
+ <version>1.0</version>
+ <post_install><![CDATA[]]> </post_install>
+ </description>
+
+ <perms>
+ <page name="quotation.php" action="edit,view,delete"></page>
+ </perms>
+
+ <addfile>
+ <file name="admin/includes/modules/pages/quotation.php" />
+
+ <file name="includes/gabarit/quotation/display_view.edit.gab" />
+ <file name="includes/gabarit/quotation/edit.tab.generic.gab" />
+ <file name="includes/gabarit/quotation/edit.tab.product.gab" />
+ </addfile>
+
+ <addfilelg>
+ <file name="admin/includes/languages/%LANGUAGE%/modules/pages/quotation.txt" lgref="fr_FR"/>
+
+ </addfilelg>
+
+ <add2end>
+ <file name="admin/includes/boxes/09_commercial.php" />
+ <add type="php">
+ <![CDATA[ $tabl_link[]= array(FILENAME_QUOTATION, 'BOX_CUSTOMERS_QUOTATION', 'quotation',@$img['quotation']); ]]>
+ </add>
+ </add2end>
+
+</contrib>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-04-07 08:13:21
|
Revision: 5259
http://sourceforge.net/p/oscss/svn/5259
Author: oscim
Date: 2015-04-07 08:13:07 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Fix
Add support composed product in cart
Modified Paths:
--------------
trunk/catalog/common/classes/FieldsDisplay.php
trunk/catalog/common/classes/addressUtility.php
trunk/catalog/common/classes/cart/CartListener.class.php
trunk/catalog/common/classes/cart/CartStockage.class.php
trunk/catalog/common/classes/cart/CartStockageCustomer.class.php
trunk/catalog/common/classes/datatype_drivers/Data_categorie.php
trunk/catalog/common/classes/datatype_drivers/Data_product.php
trunk/catalog/common/classes/formUtility.php
trunk/catalog/common/classes/order.php
trunk/catalog/common/classes/price.php
trunk/catalog/common/classes/shoppingCart.php
trunk/catalog/includes/application_top.php
trunk/catalog/includes/classes/ModPublicOneShipping.php
trunk/catalog/includes/classes/checkout_process.php
trunk/catalog/includes/classes/core_page/customer.php
trunk/catalog/includes/classes/core_page/listing.php
trunk/catalog/includes/classes/drivers/data/categorie.php
trunk/catalog/includes/classes/drivers/data/product.php
trunk/catalog/includes/classes/pad_base.php
trunk/catalog/includes/classes/shopping_cart_action.php
trunk/catalog/includes/functions/general.php
trunk/catalog/includes/languages/fr_FR/modules/shipping/mzmt.txt
trunk/catalog/includes/modules/account/history.php
trunk/catalog/includes/modules/listing_cat.php
trunk/catalog/includes/modules/listing_catchild_and_product.php
trunk/catalog/includes/modules/new_products.php
trunk/catalog/includes/modules/shipping/free.php
trunk/catalog/includes/modules/shipping/mzmt.php
trunk/catalog/templates/defaut/includes/boxes/whats_new.php
trunk/catalog/templates/defaut/includes/content/index_listing.php
trunk/catalog/templates/defaut/includes/content/product_info.php
trunk/catalog/templates/defaut/includes/gabarit/checkout/confirmation.gab
trunk/catalog/templates/defaut/includes/gabarit/checkout/shipping.method.gab
trunk/catalog/templates/defaut/includes/gabarit/pages/shopping_cart.gab
trunk/catalog/templates/defaut/includes/triggers/cart_line.inc
trunk/catalog/templates/defaut/includes/triggers/cart_line_delete.inc
Added Paths:
-----------
trunk/catalog/admin/includes/gabarit/categories/categories_extra/display_edit.edit.gab
trunk/catalog/admin/includes/languages/fr_FR/modules/categories/categories_extra.txt
trunk/catalog/admin/includes/languages/fr_FR/modules/shipping/mzmt.txt
trunk/catalog/templates/defaut/css/images/
trunk/catalog/templates/defaut/includes/gabarit/account/history_quotation/
Added: trunk/catalog/admin/includes/gabarit/categories/categories_extra/display_edit.edit.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/categories/categories_extra/display_edit.edit.gab (rev 0)
+++ trunk/catalog/admin/includes/gabarit/categories/categories_extra/display_edit.edit.gab 2015-04-07 08:13:07 UTC (rev 5259)
@@ -0,0 +1,21 @@
+<?php
+/**
+ @licence GPL 2005-2013 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.1.1
+ @date 28/02/2012, 18:12
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+*/
+global $languages_id;
+
+// var_dump(categories::$Id,$languages_id);
+?>
+
+<div class="block_input">
+ <fieldset class="block_field">
+<!-- <legend><?php //echo __('@products_extra category extra fields') ?></legend> -->
+ <?php echo categories_extra::get_extra_fields(categories::$Id,$languages_id) ?>
+ </fieldset>
+</div>
Added: trunk/catalog/admin/includes/languages/fr_FR/modules/categories/categories_extra.txt
===================================================================
--- trunk/catalog/admin/includes/languages/fr_FR/modules/categories/categories_extra.txt (rev 0)
+++ trunk/catalog/admin/includes/languages/fr_FR/modules/categories/categories_extra.txt 2015-04-07 08:13:07 UTC (rev 5259)
@@ -0,0 +1,13 @@
+<?php
+/**
+ @licence GPL 2005-2013 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.1.1
+ @date 21/06/2012, 23:13
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @sub-package desc_base
+*/
+$lang['@categories_extra edit tab']="Champs suppl" ;
+?>
\ No newline at end of file
Added: trunk/catalog/admin/includes/languages/fr_FR/modules/shipping/mzmt.txt
===================================================================
--- trunk/catalog/admin/includes/languages/fr_FR/modules/shipping/mzmt.txt (rev 0)
+++ trunk/catalog/admin/includes/languages/fr_FR/modules/shipping/mzmt.txt 2015-04-07 08:13:07 UTC (rev 5259)
@@ -0,0 +1,90 @@
+<?php
+/**
+ @licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 23/07/2010, 15:22
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file geozone.txt
+ @dir /includes/languages/fr_FR/shipping/
+*/
+
+
+$lang['module shipping text mzmt title']="MultiGeoZone MultiTable" ;
+$lang['module shipping mzmt text description']="Multiple geo zone shipping with multiple tables to each geo zone." ;
+
+/**
+ Ajouter autant d'entree que de zone et de table
+*/
+// titre transporteur zone 1
+$lang['module shipping mzmt geozone 1 text title']="MZMT zone 1 " ;
+ // detail table price
+ $lang['module shipping mzmt geozone 1 table 1 text way']="MZMT geozone 1 table 1 " ;
+ $lang['module shipping mzmt geozone 1 table 2 text way']="MZMT geozone 1 table 2 " ;
+ $lang['module shipping mzmt geozone 1 table 3 text way']="MZMT geozone 1 table 3" ;
+
+// titre transporteur zone 2
+$lang['module shipping mzmt geozone 2 text title']="MZMT zone 2 " ;
+ // detail table price
+ $lang['module shipping mzmt geozone 2 table 1 text way']="MZMT geozone 2 table 1 " ;
+ $lang['module shipping mzmt geozone 2 table 2 text way']="MZMT geozone 2 table 2 " ;
+ $lang['module shipping mzmt geozone 2 table 3 text way']="MZMT geozone 2 table 3" ;
+
+// titre transporteur zone 2
+$lang['module shipping mzmt geozone 3 text title']="MZMT zone 3 " ;
+ // detail table price
+ $lang['module shipping mzmt geozone 2 table 1 text way']="MZMT geozone 2 table 1 " ;
+ $lang['module shipping mzmt geozone 2 table 2 text way']="MZMT geozone 2 table 2 " ;
+ $lang['module shipping mzmt geozone 2 table 3 text way']="MZMT geozone 2 table 3" ;
+
+
+
+
+/** Specifique BO */
+$lang['tax class']="Appliquer une taxe" ;
+$lang['use the following tax class on the shipping fee.']="Appliquer une taxe lors de l'uitilisation de ce module" ;
+
+$lang['sort order']="Ordre de tri" ;
+$lang['sort order of display.']="Ordre de tri, si plusieur module" ;
+$lang['number geozones']="Nombre de zone de livraison" ;
+$lang['use the following tax class on the shipping fee.']="Nombre de zone de livraison à mettre en place, attention cette action reinitialise le module" ;
+
+
+
+
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_ID_S'] = "Zone (1) - Appliquer une taxe";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_ID_L'] = "Appliquer une taxe lors de l'uitilisation de ce module.";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_MODE_S'] = "Zone (1) - Mode de calcul";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_MODE_L'] = "";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_HANDLING_S'] = "Zone (1) - Frais Fixe";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_HANDLING_L'] = "";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_ICON_S'] = "Zone (1) - Icone";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_ICON_L'] = "";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_TABLE_1_S'] = "Zone (1) - Table de tarif (1)";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_TABLE_1_L'] = "";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_TABLE_2_S'] = "Zone (1) - Table de tarif (2)";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_1_TABLE_2_L'] = "";
+
+
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_2_ID_S'] = "Zone (2) - Appliquer une taxe";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_2_ID_L'] = "Appliquer une taxe lors de l'uitilisation de ce module.";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_2_MODE_S'] = "Zone (2) - Mode de calcul";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_2_MODE_L'] = "";
+
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_3_ID_S'] = "Zone (3) - Appliquer une taxe";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_3_ID_L'] = "Appliquer une taxe lors de l'uitilisation de ce module.";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_3_MODE_S'] = "Zone (3) - Mode de calcul";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_3_MODE_L'] = "";
+
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_4_ID_S'] = "Zone (4) - Appliquer une taxe";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_4_ID_L'] = "Appliquer une taxe lors de l'uitilisation de ce module.";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_4_MODE_S'] = "Zone (4) - Mode de calcul";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_4_MODE_L'] = "";
+
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_5_ID_S'] = "Zone (5) - Appliquer une taxe";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_5_ID_L'] = "Appliquer une taxe lors de l'uitilisation de ce module.";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_5_MODE_S'] = "Zone (5) - Mode de calcul";
+$lang['MODULE_SHIPPING_MZMT_GEOZONE_5_MODE_L'] = "";
+?>
\ No newline at end of file
Modified: trunk/catalog/common/classes/FieldsDisplay.php
===================================================================
--- trunk/catalog/common/classes/FieldsDisplay.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/FieldsDisplay.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -57,6 +57,8 @@
6 => 'select_multi',
7 => 'checkbox_multi',
// 8 => 'textarea_advanced',
+ 9 => 'local_file',
+ 10 => 'remote_file'
);
/**
@var label format
Modified: trunk/catalog/common/classes/addressUtility.php
===================================================================
--- trunk/catalog/common/classes/addressUtility.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/addressUtility.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -78,7 +78,7 @@
@param $boln
@param $eoln
*/
- function FormatAddress($address_format_id, $address, $html, $boln, $eoln) {
+ public static function FormatAddress($address_format_id, $address, $html, $boln, $eoln) {
if(!is_array($address) && !is_object($address) )
@@ -94,6 +94,9 @@
elseif(is_object($address))
$obj = $address;
+
+ $company = '';
+ $personnal ='';
if ($html) {
// HTML Mode
@@ -117,7 +120,7 @@
// print_r($obj);
if ( _cst_bool('ACCOUNT_COMPANY')){
$company = tep_output_string_protected($obj->company);
- if(isset($obj->extra ) ){
+ if(isset($obj->extra ) && is_array($obj->extra) ){
foreach($obj->extra as $row)
if($row->epf_class =='company')
$company .= $cr.tep_output_string_protected($row->value) ;
@@ -132,7 +135,7 @@
$personnal .= ( (isset($obj->firstname) && tep_not_null($obj->firstname) && isset($obj->lastname) && tep_not_null($obj->lastname)) ? ' ' : '' );
$personnal .= ( (isset($obj->lastname) && tep_not_null($obj->lastname)) ? tep_output_string_protected($obj->lastname) : '' );
}
- if(isset($obj->extra ) ){
+ if(isset($obj->extra ) && is_array($obj->extra) ){
foreach($obj->extra as $row)
if($row->epf_class =='personnal')
$personnal .= $cr.tep_output_string_protected($row->value) ;
@@ -142,7 +145,7 @@
$streets = tep_output_string_protected($obj->street_address);
$streets .=( (isset($obj->suburb) && tep_not_null($obj->suburb)) ? $cr.tep_output_string_protected($obj->suburb) : '' );
- if(isset($obj->extra ) ){
+ if(isset($obj->extra ) && is_array($obj->extra) ){
foreach($obj->extra as $row)
if($row->epf_class =='address')
$streets .= $cr.tep_output_string_protected($row->value) ;
@@ -170,11 +173,10 @@
if ($state != '') $statecomma = $state . ', ';
+
$fmt = $address_format['format'];
eval("\$string = \"$fmt\";");
-
-
return $string;
}
Modified: trunk/catalog/common/classes/cart/CartListener.class.php
===================================================================
--- trunk/catalog/common/classes/cart/CartListener.class.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/cart/CartListener.class.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -13,7 +13,7 @@
/**
@interface CartSession
- @brief structure for class stoackage session value cart
+ @brief structure for class stockage session value cart
*/
Class CartListener{
/**
Modified: trunk/catalog/common/classes/cart/CartStockage.class.php
===================================================================
--- trunk/catalog/common/classes/cart/CartStockage.class.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/cart/CartStockage.class.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -36,7 +36,9 @@
if (!isset($_SESSION[$this->_namespace])) {
$_SESSION[$this->_namespace] = array();
}
- $this->content = &$_SESSION[$this->_namespace];
+ $this->content = $_SESSION[$this->_namespace];
+
+// print_r($this->content); exit;
}
/**
@@ -45,6 +47,7 @@
@return no return
*/
private function FixSession(){
+
$_SESSION[$this->_namespace] = $this->content;
}
@@ -60,20 +63,66 @@
$args = func_get_args();
$list = $args[0];
+// $return = array();
+// print_r($list);
if( count($list) > 0 ) {
- $products_id_string = @$list[0];
- $option = @$list[1];
+ $_id_string = @$list[0];
+ $row_id = @$list[1];
$value = @$list[2];
- if($products_id_string && isset($this->content[$products_id_string])) {
- if( $option !=null ){
- if( isset($this->content[$products_id_string]['attributes'][$option]) )
- return $this->content[$products_id_string];
- else
+ if($_id_string){
+
+// $objPidFormat = new CartPidFormat();
+// $objPidFormat->SetIdString($_id_string);
+//
+// $pid = $objPidFormat->GetId();
+
+ preg_match('#^(.*)____#i', $_id_string, $match);
+
+ if(isset($match[1]))
+ $products_id_string = substr($_id_string, strlen($match[1]) + 4 );
+
+ if( isset($this->content[$_id_string]) ) {
+
+ if(isset($match[1]) && $this->content[$_id_string]['parent_id'] != isset($match[1]) )
return false;
+ elseif( !isset($match[1]) && $this->content[$_id_string]['parent_id'] > 0 )
+ return false;
+
+
+ if( $option !=null ){
+ if( isset($this->content[$_id_string]['attributes'][$option]) )
+ return array( $_id_string =>$this->content[$_id_string]);
+ else
+ return false;
+ }
+
+ return array( $_id_string =>$this->content[$_id_string]);
}
+ else
+ return false;
+ }
+ elseif($row_id){
+
+ if( isset($this->content[$row_id]) ) {
- return $this->content[$products_id_string];
+ if(isset($match[1]) && $this->content[$row_id]['parent_id'] != isset($match[1]) )
+ return false;
+ elseif( !isset($match[1]) && $this->content[$row_id]['parent_id'] > 0 )
+ return false;
+
+
+ if( $option !=null ){
+ if( isset($this->content[$row_id]['attributes'][$option]) )
+ return array( $row_id =>$this->content[$row_id]);
+ else
+ return false;
+ }
+
+ return array( $row_id =>$this->content[$row_id]);
+ }
+ else
+ return false;
}
else
return false;
@@ -87,6 +136,7 @@
@param $products_id_string int
@param $qty int
@param $special_class string
+ @param parent_id rowid of parent
*/
public function Set(/*$products_id_string, $qty, $special_class*/){
$args = func_get_args();
@@ -95,10 +145,21 @@
$products_id_string = $list[0];
$qty = $list[1];
$special_class = $list[2];
+ $parent_id = $list[3];
+ $grp_line = $list[4];
+
- $this->content[$products_id_string] = array('qty' => $qty);
-
+// var_dump($products_id_string); exit;
+ $this->content[$products_id_string]['pid'] = substr($products_id_string, strlen($parent_id)+4 ) ;
+ $this->content[$products_id_string]['qty'] = $qty;
+ $this->content[$products_id_string]['special_class'] = $special_class;
+ $this->content[$products_id_string]['parent_id'] = $parent_id;
+ $this->content[$products_id_string]['grp_line'] = (int)$grp_line;
+ $this->content[$products_id_string]['row_id'] = $products_id_string;
+// var_dump($this->content[$products_id_string]); exit;
$this->FixSession();
+
+ return $products_id_string;
}
/**
@@ -110,7 +171,6 @@
public function SetAttribute(/*$products_id_string, $option, $value, $attr_value*/){
$args = func_get_args();
$list = $args[0];
-
$products_id_string = $list[0];
$option = $list[1];
$value = $list[2];
@@ -118,6 +178,7 @@
$this->content[$products_id_string]['attributes'][$option] = $value;
$this->content[$products_id_string]['attributes_values'][$option] = $attr_value;
+
$this->FixSession();
}
@@ -136,6 +197,8 @@
$this->content[$products_id_string]['qty'] += $qty;
$this->FixSession();
+
+ return $products_id_string;
}
/**
@@ -166,6 +229,10 @@
$products_id_string = $list[0];
+ foreach($this->content as $id=>$row)
+ if($row['parent_id'] == $products_id_string)
+ unset($this->content[$id]);
+
unset($this->content[$products_id_string]);
$this->FixSession();
@@ -175,7 +242,7 @@
*/
public function Clean(){
$this->content = array();
-
+
$this->FixSession();
}
Modified: trunk/catalog/common/classes/cart/CartStockageCustomer.class.php
===================================================================
--- trunk/catalog/common/classes/cart/CartStockageCustomer.class.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/cart/CartStockageCustomer.class.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -33,7 +33,7 @@
if (!isset($_SESSION[$this->_namespace])) {
$_SESSION[$this->_namespace] = $this->Get();
}
-
+
$this->content = $_SESSION[$this->_namespace];
}
@@ -47,12 +47,23 @@
public function Set(/* $products_id_string, $qty, $special_class */){
$args = func_get_args();
$list = $args[0];
+
+
$products_id_string = $list[0];
$qty = $list[1];
$special_class = $list[2];
+ $parent_id = $list[3];
+ $grp_line = $list[4];
+// print_r($list);
+// exit;
+ $DB = Database::getInstance();
+ if($this->Isloggued()) {
+ $res = $DB->query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, parent_id, customers_basket_quantity, customers_basket_date_added, grp_line) values ('" . (int)$_SESSION['customer_id'] . "', '" . tep_db_input($products_id_string) . "', '" . tep_db_input($parent_id) . "', '" . $qty . "', '" . date('Ymd') . "', '".$grp_line."')");
- if($this->Isloggued())
- tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, customers_basket_quantity, customers_basket_date_added) values ('" . (int)$_SESSION['customer_id'] . "', '" . tep_db_input($products_id_string) . "', '" . $qty . "', '" . date('Ymd') . "')");
+ return $res->__get('insertId');
+ }
+
+ return false;
}
/**
@@ -63,6 +74,7 @@
*/
public function SetAttribute(/*$products_id_string, $option, $value, $attr_value*/){
$args = func_get_args();
+// print_r($args);
$list = $args[0];
$products_id_string = $list[0];
$option = $list[1];
@@ -70,7 +82,7 @@
$attr_value = $list[3];
if($this->Isloggued())
- tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " (customers_id, products_id, products_options_id, products_options_value_id,products_options_value_text) values ('" . (int)$_SESSION['customer_id'] . "', '" . tep_db_input($products_id_string) . "', '" . (int)$option . "', '" . (is_array($value)? 0 : $value) . "', '" . tep_db_input($attr_value) . "')");
+ tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " (customers_id, products_id, products_options_id, products_options_value_id,products_options_value_text) values ('" . (int)$_SESSION['customer_id'] . "', '" . tep_db_input($products_id_string) . "', '" . (int)$option . "', '" . (is_array($value)? implode(',',$value) : $value) . "', '" . tep_db_input($attr_value) . "')");
}
/**
@@ -85,6 +97,8 @@
if($this->Isloggued())
tep_db_query($sql="update " . TABLE_CUSTOMERS_BASKET . " set customers_basket_quantity = (customers_basket_quantity + '" . $qty . "' ) where customers_id = '" . (int)$_SESSION['customer_id'] . "' and products_id = '" . tep_db_input($products_id_string) . "'");
+
+ return $products_id_string;
}
/**
@@ -110,14 +124,30 @@
@param $products_id_string int
*/
public function Delete(/*$products_id_string*/){
+ $DB = Database::getInstance();
+
$args = func_get_args();
$list = $args[0];
$products_id_string = $list[0];
if($this->Isloggued()) {
- tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and products_id = '" . tep_db_input($products_id_string) . "'");
- tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and products_id = '" . tep_db_input($products_id_string) . "'");
+
+ $res = $DB->query("SELECT customers_basket_id as rowid from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and products_id = '" . tep_db_input($products_id_string) . "'");
+ $prod = $res->fetchAssoc();
+// print_r($prod);
+ $res = $DB->query($sql = "SELECT * from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and (parent_id = '" . $prod['rowid'] . "' OR customers_basket_id = '" . $prod['rowid'] . "')");
+ echo $sql;
+ foreach($res->fetchAllAssoc() as $row){
+ print_r($row);
+ tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and products_id = '" . tep_db_input($row['products_id']) . "'");
+
+ tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and products_id = '" . tep_db_input($row['products_id']) . "' ");
+
+ }
+ return true ;
+// tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and ( products_id = '" . tep_db_input($products_id_string) . "' OR ");
+// tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and products_id = '" . tep_db_input($products_id_string) . "'");
}
}
@@ -161,49 +191,74 @@
$products_id_string = false;
- $sql = " SELECT products_id, customers_basket_quantity FROM " . TABLE_CUSTOMERS_BASKET . " WHERE 1 ";
+ $sql = " SELECT customers_basket_id, products_id, customers_basket_quantity, parent_id, grp_line FROM " . TABLE_CUSTOMERS_BASKET . " WHERE 1 ";
$sql .= " AND customers_id = '".(int)$_SESSION['customer_id'] ."' ";
if( count($list) > 0 ){
- $products_id_string = @$list[0];
- $option = @$list[1];
- $value = @$list[2];
-
- if($products_id_string ) {
- $sql .= " AND products_id = '".$products_id_string."' ";
+
+ if(isset($list[0]) && !empty($list[0])){
+ $products_id_string = @$list[0];
+// preg_match('#(.*)____#i', $products_id_string, $match);
+
+ // print_r($match); exit;
+ // $option = @$list[1];
+ // $value = @$list[2];
+
+ if($products_id_string ) {
+ $sql .= " AND products_id = '".$products_id_string."' ";
+ }
}
+ elseif(isset($list[1])){
+ $row_id= $list[1];
+ $sql .= " AND customers_basket_id = '".$row_id."' ";
+ }
}
+ $sql .= " ORDER BY grp_line ASC, parent_id ASC ";
+// echo $sql;
$DB = Database::getInstance();
$products_query = $DB->query($sql);
-
+// print_r($products_query->fetchAllAssoc());
+// exit;
$list = array();
foreach($products_query->fetchAllAssoc() as $products) {
+ if( tep_get_prid($products['products_id']) == $products['products_id'] )
+ $products_id_string = true;
+ else
+ $products_id_string = false;
+
$tmp = array(
'qty'=> $products['customers_basket_quantity'],
- );
-
+ 'parent_id'=> $products['parent_id'],
+ 'grp_line'=> $products['grp_line'],
+ 'row_id'=> $products['customers_basket_id'],
+ 'pid'=> $products['products_id'],
+ );
+
if(!$products_id_string) {
$products_id_string = tep_get_prid($products['products_id']);
- $option = ( count(tep_get_prid_array($products['products_id']))>0 ? 1 : 0 );
+ $option = tep_get_prid_array($products['products_id']);
}
-
+// var_dump(tep_get_prid_array($products['products_id']));
// attributes
- if( $products_id_string && $option > 0) {
- $sql="select cba.products_options_id as options_id, cba.products_options_value_id as value_id, cba.products_options_value_text, po.products_options_type as type from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " cba LEFT JOIN ".TABLE_PRODUCTS_OPTIONS." po ON(cba.products_options_id = po.products_options_id ) where cba.customers_id = '" . (int)$_SESSION['customer_id'] . "' and cba.products_id = '" . tep_db_input($products['products_id']) . "' ";
+ if( $products_id_string && count($option) > 0) {
+ /*echo*/ $sql="select cba.products_options_id as options_id, cba.products_options_value_id as value_id, cba.products_options_value_text, po.products_options_type as type from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " cba LEFT JOIN ".TABLE_PRODUCTS_OPTIONS." po ON(cba.products_options_id = po.products_options_id ) where cba.customers_id = '" . (int)$_SESSION['customer_id'] . "' and cba.products_id = '" . tep_db_input($products['products_id']) . "' ";
$attributes_query = $DB->query($sql);
while ($attributes = $attributes_query->fetchAssoc()) {
// specific mode txt type option product
- if ($attributes['type'] == 2){
+ if (in_array($attributes['type'] ,array(2,5)) ){
$tmp['attributes'][$attributes['options_id']] = $attributes['value_id'];
$tmp['attributes_values'][$attributes['options_id']] = $attributes['products_options_value_text'];
+ }
+
// specific mode multi value for one option
- }elseif( $attributes['value_id'] === 0)
+ elseif( preg_match('#([0-9]*,)#',$option[$attributes['options_id']]) /*> 1*/ )//$attributes['value_id'] === 0)
$tmp['attributes'][$attributes['options_id']] = explode(',',$attributes['products_options_value_text']);
+
// normal
else
$tmp['attributes'][$attributes['options_id']] = $attributes['value_id'];
@@ -212,7 +267,7 @@
$list[ $products['products_id'] ] =$tmp;
}
-
+
return $list;
}
}
Modified: trunk/catalog/common/classes/datatype_drivers/Data_categorie.php
===================================================================
--- trunk/catalog/common/classes/datatype_drivers/Data_categorie.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/datatype_drivers/Data_categorie.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -160,6 +160,7 @@
$this->listing_sql['leftto']['groupby'] = ", ".$this->p."2c.".substr($col, strpos($col, '.')+1 )." ";
+
return $this->listing_sql['leftto'];
}
@@ -378,6 +379,7 @@
*/
function FO_load_listing(listing $listing, DataTypesChildListing $subtype, $type){
global $current_category_id, $languages_id, $list;
+// print_r($current_category_id);
$page = page::getInstance();
$DB=Database::getInstance();
@@ -443,11 +445,12 @@
$obj->description = $categories->GetText();
$obj->href = $categories->GetHref();
+
$page->SetVar('RootListing',$obj);
$page->SetVar('current_id',$current_category_id);
$page->SetVar('current_type','categorie');
+ $page->SetVar('current_object', $categories);
-
if($category_depth == 'nested'){
if(tep_not_null($list))
@@ -464,7 +467,7 @@
// put dynamical sort for childs curent datatype for this cat
// if(isset($categories->sortchids_datatype) && tep_not_null($categories->sortchids_datatype))
// $this->listing_query_sort = $categories->sortchids_datatype;
-
+// print_r($listing);
$listing->QueryAddWhere( " AND ".$this->p."2c.categories_id = '" . (int)$categories->id . "'");
}
Modified: trunk/catalog/common/classes/datatype_drivers/Data_product.php
===================================================================
--- trunk/catalog/common/classes/datatype_drivers/Data_product.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/datatype_drivers/Data_product.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -308,7 +308,7 @@
$listing->QueryAddWhere( " AND ".$this->listing_sql['col_count']." = '".$_GET['product']."' ");
}
-
+
return true;
}
@@ -578,11 +578,13 @@
$page->force_content($page_content);
+ $page->SetVar('cPath_array', $cPath_array);
$page->SetVar('current_object', $objectProduct);
$page->SetVar('current_type',$this->DataType);
$page->SetVar('current_id',(int)$_GET['products_id']);
$page->SetVar('type_id',(int)$objectProduct->GetType());
-
+// print_r($_GET);
+// exit;
return $page_content;
break;
default:
Modified: trunk/catalog/common/classes/formUtility.php
===================================================================
--- trunk/catalog/common/classes/formUtility.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/formUtility.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -226,7 +226,7 @@
if (!tep_not_null($id)) $id=tep_output_string($name);
if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);
for ($i=0, $n=sizeof($values); $i<$n; $i++) {
- $field .='<li>'.tep_draw_radio_field($name, $id.$i, tep_output_string($values[$i]['id']),( ($default == $values[$i]['id'])? true:false), $parameters);
+ $field .='<li class="radio-inline">'.tep_draw_radio_field($name, $id.$i, tep_output_string($values[$i]['id']),( ($default == $values[$i]['id'])? true:false), $parameters);
$field .= $values[$i]['text'] . ' '.'</li>';
}
$field .= '</ul>';
@@ -243,7 +243,7 @@
if (!tep_not_null($id)) $id=tep_output_string($name);
if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);
for ($i=0, $n=sizeof($values); $i<$n; $i++) {
- $field .='<li>'.tep_draw_checkbox_field($name, $id.$i, tep_output_string($values[$i]['id']),( ($default == $values[$i]['id'])? true:false), $parameters);
+ $field .='<li class="radio-inline">'.tep_draw_checkbox_field($name, $id.$i, tep_output_string($values[$i]['id']),( ($default == $values[$i]['id'])? true:false), $parameters);
$field .= $values[$i]['text'] . ' '.'</li>';
}
$field .= '</ul>';
Modified: trunk/catalog/common/classes/order.php
===================================================================
--- trunk/catalog/common/classes/order.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/order.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -242,6 +242,7 @@
$this->info = array(
'orders_id' => $order['orders_id'],
'orders_prefix' => $order['orders_prefix'],
+ 'orders_type' => $order['orders_type'],
'currency' => $order['currency'],
'currency_value' => $order['currency_value'],
'payment_method' => $order['payment_method'],
@@ -260,11 +261,13 @@
'date_finish' =>$order['orders_date_finished'],
);
+ $this->info['holding_origin_id']=$order['holding_origin_id'];
+
if(self::$mode) {
$this->info['facture_ref']=$order['facture_ref'];
$this->info['orders_ref']=$order['orders_ref'];
$this->info['facture_id']=$order['facture_id'];
- $this->info['holding_origin_id']=$order['holding_origin_id'];
+// $this->info['holding_origin_id']=$order['holding_origin_id'];
$this->info['synchro_event']=$order['synchro_event'];
}
@@ -317,11 +320,12 @@
'format_id' => $order['billing_address_format_id']);
$index = 0;
- $orders_products_query = tep_db_query("select orders_products_id, products_id,products_type, products_name, products_model, products_price, products_tax, products_quantity, final_price, products_returned,products_exchanged,products_exchanged_id from " .self::$tables['PRODUCTS'] . " where orders_id = '" . (int)$order_id . "'");
+ $orders_products_query = tep_db_query("select orders_products_id, products_id, parent_id, products_type, products_name, products_model, products_price, products_tax, products_quantity, final_price, products_returned,products_exchanged,products_exchanged_id from " .self::$tables['PRODUCTS'] . " where orders_id = '" . (int)$order_id . "' ORDER BY parent_id ASC ");
while ($orders_products = tep_db_fetch_array($orders_products_query)) {
$this->products[$index] = array(
'rowid' => $orders_products['orders_products_id'],
+ 'parent_id' => $orders_products['parent_id'],
'qty' => $orders_products['products_quantity'],
'id' => $orders_products['products_id'],
'type' => $orders_products['products_type'],
@@ -357,15 +361,18 @@
}
}
- $shown_price= ($this->products[$index]['final_price'] * $this->products[$index]['qty']);
+ if($this->products[$index]['parent_id'] > 0 ){
+ $shown_price= ($this->products[$index]['final_price'] * $this->products[$index]['qty']);
- $this->products[$index]['final_price_ttc'] = tep_round(tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']),$currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
- $this->products[$index]['total_line'] = tep_round($shown_price,$currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
- $this->products[$index]['total_line_taxe'] = tep_calculate_tax($shown_price, $this->products[$index]['tax']);
- $this->products[$index]['total_line_ttc'] = tep_round(tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']) * $this->products[$index]['qty'],$currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
+ $this->products[$index]['final_price_ttc'] = tep_round(tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']),$currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
+ $this->products[$index]['total_line'] = tep_round($shown_price,$currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
+ $this->products[$index]['total_line_taxe'] = tep_calculate_tax($shown_price, $this->products[$index]['tax']);
+ $this->products[$index]['total_line_ttc'] = tep_round(tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']) * $this->products[$index]['qty'],$currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
- $this->info['tax_groups']["{$this->products[$index]['tax']}"] = '1';
+ $this->info['tax_groups']["{$this->products[$index]['tax']}"] = '1';
+ }
+
$index++;
}
}
@@ -516,6 +523,8 @@
'name' => stripslashes($prdct['name']),
'model' => $prdct['model'],
'type' => $prdct['type'],
+ 'parent_id' => $prdct['parent_id'],
+ 'grp_line' => $prdct['grp_line'],
'tax' =>tep_get_tax_rate($prdct['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),
'tax_description' => tep_get_tax_description($prdct['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),
@@ -526,6 +535,7 @@
'weight' => $prdct['weight'] ,
'id' => $prdct['id'],
+ 'parent_id' => $prdct['parent_id'],
'total_line' => $prdct['total_line'],
'total_line_taxe' => ($prdct['total_line_ttc'] -$prdct['total_line']),
Modified: trunk/catalog/common/classes/price.php
===================================================================
--- trunk/catalog/common/classes/price.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/price.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -177,13 +177,15 @@
$products_price['products_price']=(float) $objectProduct->GetPrice();
}
- $products_price['products_price'] += (float)$this->get_attributes_price($products_id, tep_get_prid_array($products_id));
+ $products_price['products_price'] += (float)$this->get_attributes_price($pid, tep_get_prid_array($products_id));
+
return (float)$products_price['products_price'];
}
private function get_attributes_price($products_id, $attributes=array()) {
- return product::get_product_attribut_price($products_id, $attributes);
+ $prix = product::get_product_attribut_price($products_id, $attributes);
+ return $prix;
}
// -- EOF Price methods --
@@ -399,7 +401,8 @@
*/
private function calcul_price($products_id,$products_price, $products_tax_rate = 0, $specials_products_price = 0, $qty=1,$tax_force=false){
- if(isset(self::$PriceCache[$products_id.'_'.$qty])) return self::$PriceCache[$products_id.'_'.$qty];
+// if(isset(self::$PriceCache[base64_encode($products_id.'_'.$qty)]))
+// return self::$PriceCache[base64_encode($products_id.'_'.$qty)];
//! discount SPPC
$products_price=self::get_SPPC_discount($products_price);
@@ -445,7 +448,7 @@
if(!is_float($array_res['total_line_ttc']) ||($_res_spe_price !=$res_spe_price) || ($_res_price !=$res_price ) )
$total_line_ttc=( (($_res_spe_price>0 && $_res_spe_price !=$_res_price)? $_res_spe_price :$_res_price) * $qty);
- return self::$PriceCache[$products_id.'_'.$qty]=array('price_ht'=>$_products_price,
+ return self::$PriceCache[base64_encode($products_id.'_'.$qty)]=array('price_ht'=>$_products_price,
'price_ttc'=>$_res_price,
'sprice_ht'=>$_specials_products_price,
'sprice_ttc'=>$_res_spe_price,
@@ -640,6 +643,7 @@
*/
public function get_products_price($products_id,$qty=1, $mode='',$tax_force=false){
$res_array=$this->calcul_price($products_id,$this->get_db_products_price($products_id), $this->get_tax_rates_from_pid($products_id), $this->get_db_products_special_price($products_id), $qty,$tax_force);
+// print_r($res_array);
if(!empty($mode) && isset($res_array[$mode])) return $res_array[$mode];
return $res_array;
Modified: trunk/catalog/common/classes/shoppingCart.php
===================================================================
--- trunk/catalog/common/classes/shoppingCart.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/common/classes/shoppingCart.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -16,7 +16,9 @@
require_once DIR_FS_CATALOG . DIR_WS_COMMON_CLASSES .'cart/CartStockage.class.php';
require_once DIR_FS_CATALOG . DIR_WS_COMMON_CLASSES .'cart/CartStockageCustomer.class.php';
+require_once DIR_FS_CATALOG . DIR_WS_COMMON_CLASSES . 'cart/CartPidFormat.class.php';
+
/**
@class shoppingCart
*/
@@ -42,8 +44,16 @@
@var
*/
public $content_type;
-
+ /**
+ @var
+ */
+ public $grp_ligne_cpt = array();
/**
+ @var
+ */
+ public $convertidandrowid = array();
+
+ /**
@var stock data current user stocked in session , is object CartStockage
*/
protected static $_session;
@@ -60,6 +70,8 @@
self::$_session = new CartStockageCustomer();
else
self::$_session = new CartStockage();
+
+ $this->calculate();
}
/**
@@ -77,13 +89,11 @@
protected function CallerStockage(){
$list = func_get_args();
- $method = $list[0];
+ $method = array_shift($list);
if(self::$_session == null)
new self();
- array_shift($list);
-
return $this->CallerStockageExe( self::$_session , $method, $list);
}
@@ -102,6 +112,7 @@
@return result of method
*/
protected function CallerStockageExe(CartSession $obj, $method, $args){
+
return $obj->$method($args);
}
@@ -129,6 +140,8 @@
$this->total += tep_round($product['total_line_ttc'], $price->get_round(true));
$this->weight += ($qty * $products_weight);
+
+ $this->grp_ligne_cpt[$product['row_id']] = $product['grp_line'];;
}
// applie major/minor in total cart or total weight
@@ -138,7 +151,8 @@
elseif($row->action == '-')
$this->total -= $row->valueprice;
- if(!isset($this->cartID )) $this->cartID = $this->generate_cart_id();
+// var_dump($this->cartID);
+// if(!isset($this->cartID )) $this->cartID = $this->generate_cart_id();
}
/**
@@ -218,34 +232,40 @@
/**
- Add item
-
+
+ @brief Add item
@param $products_id string/int 19 || product Id vace option 19{1}1{3}10
@param $qty int
@param $attributes string
@param $notify boolean
@param $special_class string , permet d'ajouter element supplementaire , class de promo,
+ @param $parent_id int rowid value of parent
*/
- public function add_cart($products_id, $qty = '1', $attributes = array(), $notify = true,$special_class='') {
+ public function add_cart($products_id, $qty = '1', $attributes = array(), $notify = true,$special_class='', $parent_id=0) {
global $new_products_id_in_cart, $customer_id;
if(!is_array($attributes))
$attributes = array();
-
- $products_id_string = tep_get_uprid($products_id, $attributes);
-
- $products_id = tep_get_prid($products_id_string);
-
+// echo 'ici sdc';
+// print_r($attributes); ;
+// exit;
+// define('TTOTOOTOT',true);
+ $objPidFormat = new CartPidFormat(array($products_id, $attributes, $parent_id));
+ $products_id_string =$_pid_string = $objPidFormat->GetIdString();
+// echo 'icic';
+// print_r($list); ;
+// exit;
if (!is_numeric($products_id) || !is_numeric($qty))
- return;
+ return false;
$objectProduct=product::get_item($products_id);
if(!$objectProduct)
- return ;
+ return false;
if(Stock::check_inline(array('quantity'=>$qty, 'id'=>$products_id, 'track_stock'=>$objectProduct->GetTrackStock(), 'attributes'=>$attributes)) == true ){
+
$current = tep_get_products_stock( (int)$products_id,(array)$attributes );
//force qty if not enough stock
$qty = $current;
@@ -253,6 +273,17 @@
return ;
}
+ $grp_ligne_cpt = sizeof($this->grp_ligne_cpt);
+
+ if($parent_id <= 0){
+ $grp_ligne_cpt = $this->grp_ligne_cpt[$products_id_string] = sizeof($this->grp_ligne_cpt);
+ }
+ // For mecanical cart stocked in db
+ elseif( is_int($parent_id) && preg_match( '#('.$parent_id.'____)#i', $products_id_string) )
+ $grp_ligne_cpt = $this->grp_ligne_cpt[ $this->convertidandrowid[$parent_id] ];
+ // for mecanical cart stocked in session
+ elseif( preg_match( '#('.str_replace(array('{','}'),'',$parent_id).'____)#i', str_replace(array('{','}'),'',$products_id_string)) )
+ $grp_ligne_cpt = $this->grp_ligne_cpt[$parent_id]; ;
if ($notify == true) {
@@ -261,7 +292,7 @@
}
$Prefix = 'Set';
- if ($this->in_cart($products_id_string)==true)
+ if ($this->in_cart( $products_id_string )==true)
$Prefix = 'Update';
if (is_array($attributes)) {
@@ -269,6 +300,8 @@
while (list($option, $value) = each($attributes)) {
$attr_value = NULL;
$blank_value = FALSE;
+
+
if (strstr($option, TEXT_PREFIX)) {
if (trim($value) == NULL) {
$blank_value = TRUE;
@@ -289,19 +322,18 @@
$attr_value = implode(',',$tmp_value);
}
-
- if (!$blank_value)
+// var_dump($value);
+// if (!$blank_value && $Prefix !='Update')
$this->CallerStockage($Prefix.'Attribute',$products_id_string, $option, $value, $attr_value);
}
}
+// var_dump($products_id_string, $parent_id);
+ $id_string = $this->CallerStockage($Prefix,$products_id_string, $qty, @$special_class, $parent_id, $grp_ligne_cpt);
- $this->CallerStockage($Prefix,$products_id_string, $qty, @$special_class);
-
-// }
- // assign a temporary unique ID to the order contents to prevent hack attempts during the checkout procedure
- $this->cartID = $this->generate_cart_id();
-
+ $this->convertidandrowid[$id_string] = $products_id_string;
+
+ return $id_string;
}
@@ -316,7 +348,7 @@
if (is_array($list)) {
foreach($list as $row)
- $total_items +=$row['qty'];
+ $total_items += abs($row['qty']);
// while (list($products_id, ) = each($list)) $total_items += $this->get_quantity($products_id);
}
@@ -343,7 +375,7 @@
@return boolean
*/
public function in_cart($products_id_string) {
-
+// var_dump($products_id_string);
if( $this->CallerStockage('Get',$products_id_string) !=false )
return true;
@@ -392,26 +424,60 @@
function get_products() {
global $languages_id,$price;
+ static $cpt;
+
$content = $this->CallerStockage('Get');
if (!is_array($content))
return false;
$products_array = array();
+ $arraylink = array();
+ $sortlink = array();
reset($content);
-
+// print_r($content);
+// exit;
foreach($content as $products_id=>$product){
- $pid = tep_get_prid($products_id);
+// $pid = tep_get_prid($products_id);
+
+ $objPidFormat = new CartPidFormat();
+ $objPidFormat->SetIdString($products_id);
+
+ $pid = $objPidFormat->GetId();
+// var_dump($products_id, $pid);
$objectProduct=product::get_item($pid);
if($objectProduct !=false){
$prid = $objectProduct->GetId();
- $res_price=$price->get_products_price($products_id,(int)$product['qty']);
+
+
+ $res_price=$price->get_products_price($products_id,(int)$product['qty'], $product['attributes']);
+
$special=( ($res_price['price_ht'] !=$res_price['sprice_ht'] && $res_price['sprice_ht']>0)? true : false);
- $products_array[] = array('id' => $products_id,
+// var_dump($parent_row_id);
+ $parent_id = 0;
+ $parent_row_id = $objPidFormat->GetExtends('parent');
+ if($parent_row_id > 0 ) {
+ $test = $this->CallerStockage('Get','', $parent_row_id);
+ list($parent_id)= each($test);
+ }
+
+ $arraylink[$products_id] = count($arraylink);
+
+ $this->grp_ligne_cpt[$products_id] = $product['grp_line'];
+
+ $products_array[] = array(
+ 'id' => $pid,
+ 'id_string' => $products_id,
+ 'parent_id' => $parent_id,
+ 'grp_line' => $product['grp_line'],
+ 'type'=> $objectProduct->GetType(),
+
+
+
'name' => $objectProduct->GetName(),
'type' => $objectProduct->GetType(),
'model' => $objectProduct->GetModel(),
@@ -419,6 +485,7 @@
'track_stock' => $objectProduct->GetTrackStock(),
'price' => (($special)? $res_price['sprice_ht'] :$res_price['price_ht']),
+
'quantity' => $product['qty'],
'weight' => $objectProduct->GetWeight() +( isset($product['attributes']) ?(float)product::get_attributes_weight($products_id, $product['attributes']) : 0) ,
'final_price' => (($special)? $res_price['sprice_ht'] :$res_price['price_ht']),
@@ -431,25 +498,66 @@
'special_class'=> (isset($product['special_class'])? $product['special_class'] : ''),
-// 'group' => (isset($product['group'])? (array)$product['group'] : false),
+ 'group' => (isset($product['group'])? (array)$product['group'] : false),
);
// if(isset($tmp['group']['id']))
// $products_array[$tmp['group']['id']][] = $tmp;
// else
// $products_array['nogroup'][] = $tmp;
+
+
+// if(isset($sortlink[$product['grp_line']]))
+ $sortlink[$product['grp_line']][ sizeof($products_array)-1] = $products_id;
+// else
+// $sortlink[$product['grp_line']] = array( $products_id );
+
}
}
-
-
+// exit;
+// print_r($products_array);
+// exit;
// ksort($products_array);
-
+// print_r($arraylink);
+// exit;
// $list = array();
-// foreach($products_array as $grp)
-// foreach($grp as $line)
+// get_products($products_array)
+ foreach($products_array as $k=>$pd){
+// print_r($arraylink);
+// exit;
+// var_dump($pd['parent_id'], $arraylink[$pd['parent_id']]);
+ if(strlen($pd['parent_id']) > 0 && strlen($arraylink[$pd['parent_id']])>0 ) {
+
+// var_dump($arraylink[$pd['parent_id']]);
+
+ $src = $products_array[$arraylink[$pd['parent_id']]];
+
+ $src['quantity'] = (float)$pd['quantity'];
+ $src['price'] += (float)$pd['price'];
+ $src['weight'] += $pd['weight'];
+ $src['final_price'] += (float)$pd['final_price'];
+ $src['final_price_ttc'] += (float)$pd['final_price_ttc'];
+ $src['total_line'] += $pd['total_line'];
+ $src['total_line_ttc'] += $pd['total_line_ttc'];
+// print_r($src);
+ $products_array[$arraylink[$pd['parent_id']]] = $src;
+
+ // force toto ligne null , reported in parent
+ $products_array[$k]['total_line'] = 0;
+ $products_array[$k]['total_line_ttc'] = 0;
+ }
+ }
+
+
+ $return = array();
+
+ foreach($sortlink as $grp_line)
+ foreach($grp_line as $line=>$pstring)
+ $return[] = $products_array[$line];
// $list[] = $line;
-
- return $products_array;
+// print_r($return);
+// exit;
+ return $return;
}
@@ -614,35 +722,54 @@
$any_out_of_stock = 0;
$hidden='';
$products_array =array();
+ $list = array();
+
if ($this->count_contents() > 0) {
$products = $this->get_products();
for ($i=0, $n=sizeof($products); $i<$n; $i++) {
- $pid = tep_get_prid($products[$i]['id']);
+// $pid = tep_get_prid($products[$i]['id']);
+ $objPidFormat = new CartPidFormat();
+ $objPidFormat->SetIdString($products[$i]['id']);
+
+ $pid = $objPidFormat->GetId();
+
// Push all attributes information in an array
- if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
+ if ($products[$i]['type'] !=6 && isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
while (list($option, $value) = each($products[$i]['attributes'])) {
- $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pa.products_options_values_url
+
+ $attributes = tep_db_query($sq="select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pa.products_options_values_url
from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
where pa.products_id = '" . $pid . "'
and pa.options_id = '" . $option . "'
and pa.options_id = popt.products_options_id
- and pa.options_values_id = '" . $value . "'
+ and pa.options_values_id ".(is_array($value) ? " IN(" . implode(',',$value) . ") ": " = '".$value."' " ). "
and pa.options_values_id = poval.products_options_values_id
and popt.language_id = '" . $languages_id . "'
and poval.language_id = '" . $languages_id . "'");
- $attributes_values = tep_db_fetch_array($attributes);
- if(isset($products[$i]['attributes_values'][$option]) ) {
- /* Specifique option type texte / file champ personnalisé par le client */
- $hidden .=tep_draw_hidden_field('Valueid[' . $products[$i]['id'] . '][' . $option . ']', $value);
- $hidden .=tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . TEXT_PREFIX . $option . ']', $products[$i]['attributes_values'][$option]);
- $products[$i][$option]['products_options_values_name'] = '('.$products[$i]['attributes_values'][$option].')';
- } else{
- $products[$i][$option]['products_options_values_name'] = $attributes_values['products_options_values_name'];
- $hidden .=tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value);
- }
+ if( is_array($value) )
+ foreach($attributes->fetchAllAssoc() as $row )
+ $attributes_vals[] = $row;
+ else
+ $attributes_vals = array( tep_db_fetch_array($attributes) );
+
+
+ foreach($attributes_vals as $k=>$attributes_values )
+ if(isset($products[$i]['attributes_values'][$option]) ) {
+ /* Specifique option type texte / file champ personnalisé par le client */
+ $hidden .=tep_draw_hidden_field('Valueid[' . $products[$i]['id'] . '][' . $option . ']', $value);
+ $hidden .=tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . TEXT_PREFIX . $option . ']', $products[$i]['attributes_values'][$option]);
+ $products[$i][$option]['products_options_values_name'] = '('.$products[$i]['attributes_values'][$option].')';
+ } else{
+ if($k > 0)
+ $products[$i][$option]['products_options_values_name'] .= ' ; ';
+ $products[$i][$option]['products_options_values_name'] .= $attributes_values['products_options_values_name'];
+ $hidden .=tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value);
+ }
+
+
$products[$i][$option]['options_values_id'] = $value;
$products[$i][$option]['products_options_name'] = $attributes_values['products_options_name'];
$products[$i][$option]['options_values_price'] = $attributes_values['options_values_price'];
@@ -660,14 +787,23 @@
$products[$i]['alert_stock'] = Stock::mark_inline();
}
- if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
+ if ($products[$i]['type'] !=6 && isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
reset($products[$i]['attributes']);
while (list($option, $value) = each($products[$i]['attributes'])) {
$products[$i]['name'] .= "<br />".'<span class="cartAttributes"> - ' . $products[$i][$option]['products_options_name'] . ' ' . $products[$i][$option]['products_options_values_name'] . '</span>';
if(tep_not_null($products[$i][$option]['img_url']))
$products[$i]['image'] = '<a class="tn" href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i][$option]['img_url'], $products[$i]['name'], $page->_conf_value('SMALL_IMAGE_WIDTH'), $page->_conf_value('SMALL_IMAGE_HEIGHT')) . '</a>';
+
+
+// if($products[$i][$option]['price_prefix'] =='+')
+// $products[$i]['price'] += $products[$i][$option]['options_values_price'];
+// elseif($products[$i][$option]['price_prefix'] =='-')
+// $products[$i]['price'] -= $products[$i][$option]['options_values_price'];
}
}
+
+// print_r($products);
+// exit;
//! modification par les modules order total
$products[$i]=$this->process_cart($products[$i]);
@@ -677,12 +813,13 @@
$products_array['nogroup'][] = $products[$i];
}
- krsort($products_array);
+ krsort($products_array);
- $list = array();
- foreach($products_array as $grp)
- foreach($grp as $line)
- $list[] = $line;
+
+ if(count($products_array) > 0 )
+ foreach($products_array as $grp)
+ foreach($grp as $line)
+ $list[] = $line;
}
//! load order
Modified: trunk/catalog/includes/application_top.php
===================================================================
--- trunk/catalog/includes/application_top.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/includes/application_top.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -28,18 +28,20 @@
}else require('includes/configure.php');
- if (OSCSS_DEBUG == true) {
- $oscss_debug_infos = array();
- error_reporting(-1);
- } else {
- /// set the level of error reporting
- ini_set("error_reporting",E_ALL & ~E_NOTICE);
- ini_set("display_errors","1");
- ini_set("log_errors", "0" );
- error_reporting(0);
- }
-
+// if (OSCSS_DEBUG == true) {
+// $oscss_debug_infos = array();
+// error_reporting(-1);
+// } else {
+// /// set the level of error reporting
+// ini_set("error_reporting",E_ALL & ~E_NOTICE);
+// ini_set("display_errors","1");
+// ini_set("log_errors", "0" );
+// error_reporting(0);
+// }
+ ini_set("error_reporting",E_ALL );
+ error_reporting(E_ALL);
+
// call Config Class And Init
require(DIR_FS_CATALOG.DIR_WS_COMMON_CLASSES . 'Config.php');
$Cfg = Config::getInstance((object)$conf);
@@ -210,7 +212,7 @@
while($configuration = $res->fetchAssoc())
define(strtoupper($configuration['cfgKey']), $configuration['cfgValue']);
- if ( ( !isset($_GET['admin']) || $_GET['admin'] !=md5($SecuKey)) && ( !isset($_COOKIE['osCOFFLINEID']) || $_COOKIE['osCOFFLINEID'] !=md5($SecuKey)) ) {
+ if ( ( !isset($_GET['admin']) || $_GET['admin'] !=md5($SecuKey)) && ( !isset($_COOKIE['osCOFFLINEID']) || $_COOKIE['osCOFFLINEID'] !=md5($SecuKey)) && (!isset($_GET['osCAdminDirect']) && !isset($_GET['id']))) {
if( $Cfg->GetConf('STORE_OFFLINE_MODE') == 'block')
echo '<p style="text-align:center">'.$Cfg->GetConf('STORE_OFFLINE_TXT').'</p>';
Modified: trunk/catalog/includes/classes/ModPublicOneShipping.php
===================================================================
--- trunk/catalog/includes/classes/ModPublicOneShipping.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/includes/classes/ModPublicOneShipping.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -249,7 +249,7 @@
@param $NameVarConfig name of var used
@return none
*/
- protected function determineTableMethod($NameVarConfig, $obj) {
+ protected function determineTableMethod($NameVarConfig, IntShippingDepend $obj) {
$value = constant($NameVarConfig);
@@ -297,7 +297,7 @@
$table_cost = preg_split("/[:,]/" , constant($NameVarConfig) );
$shipping_factor=0;
$shipping = 0;
-
+
for ($i=0, $n=sizeof($table_cost); $i<$n; $i+=2){
if ($this->GetTotal() <= $table_cost[$i] && isset($table_cost[$i+1]) && tep_not_null($table_cost[$i+1]) ){
$shipping_factor = $table_cost[$i+1];
Modified: trunk/catalog/includes/classes/checkout_process.php
===================================================================
--- trunk/catalog/includes/classes/checkout_process.php 2015-04-07 08:08:55 UTC (rev 5258)
+++ trunk/catalog/includes/classes/checkout_process.php 2015-04-07 08:13:07 UTC (rev 5259)
@@ -78,12 +78,14 @@
// $table=((!self::$mode)? '_'.strtoupper($table) : '');
$table='';
- self::$tables=array( 'ORDERS'=>constant('TABLE'.$table.'_ORDERS'),
- 'TOTAL'=>constant('TABLE'.$table.'_ORDERS_TOTAL'),
- 'PRODUCTS'=>constant('TABLE'.$table.'_ORDERS_PRODUCTS'),
- 'ATTRIBUTES'=>constant('TABLE'.$table.'_ORDERS_PRODUCTS_ATTRIBUTES'),
- 'DOWNLOAD'=>constant('TABLE'.$table.'_ORDERS_PRODUCTS_DOWNLOAD'),
- 'HISTORY'=>constant('TABLE'.$table.'_ORDERS_STATUS_HISTORY'),
+ self::$tables=array(
+ 'ORDERS'=>constant('TABLE_ORDERS'),
+ 'TOTAL'=>constant('TABLE_ORDERS_TOTAL'),
+ 'PRODUCTS'=>constant('TABLE_ORDERS_PRODUCTS'),
+ 'ATTRIBUTES'=>constant('TABLE_ORDERS_PRODUCTS_ATTRIBUTES'),
+ 'DOWNLOAD'=>constant('TABLE_ORDERS_PRODUCTS_DOWNLOAD'),
+ 'HISTORY'=>constant('TABLE_ORDERS_STATUS_HISTORY'),
+ 'RELATION'=>constant('TABLE_ORDERS_RELATION'),
);
/**
@@ -389,7 +391,11 @@
// initialized for the email confirmation
$subtotal = 0;
$total_tax = 0;
-
+
+ $parent = 0;
+ $grp_line = 0;
+// print_r($order->products);
+// exit;
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
/**
@@ -414,9 +420,16 @@
Process class
Enregsitrement des produits
*/
+ if( $order->products[$i]['parent_id'] <=0 && $grp_line != $order->products[$i]['grp_line'])
+ $grp_line = $order->products[$i]['grp_line'];
+ elseif( $order->products[$i]['parent_id'] > 0 && $parent > 0 )
+ $order->products[$i]['parent_id'] = $parent;
+
$order->products[$i]['row...
[truncated message content] |
|
From: <os...@us...> - 2015-04-07 08:08:58
|
Revision: 5258
http://sourceforge.net/p/oscss/svn/5258
Author: oscim
Date: 2015-04-07 08:08:55 +0000 (Tue, 07 Apr 2015)
Log Message:
-----------
Fix
Add extra in categorie by generic extra
add mecanical for import in product and categorie (dev)
Modified Paths:
--------------
trunk/catalog/admin/includes/classes/ModTreePage.php
trunk/catalog/admin/includes/classes/drivers/productsACA.php
trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php
trunk/catalog/admin/includes/classes/drivers/sqlcustomer.php
trunk/catalog/admin/includes/classes/drivers/sqlextrafieldslabels.php
trunk/catalog/admin/includes/classes/drivers/sqlorder.php
trunk/catalog/admin/includes/classes/drivers/sqlproduct.php
trunk/catalog/admin/includes/database_tables.php
trunk/catalog/admin/includes/filenames.php
trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab
trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab
trunk/catalog/admin/includes/gabarit/orders/edit.tab.detail.gab
trunk/catalog/admin/includes/gabarit/package/display_view.package.listing.gab
trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt
trunk/catalog/admin/includes/modules/pages/attributes.php
trunk/catalog/admin/includes/modules/pages/categories.php
trunk/catalog/admin/includes/modules/pages/customers.php
trunk/catalog/admin/includes/modules/pages/package.php
trunk/catalog/admin/includes/modules/pages/products.php
trunk/catalog/admin/includes/template/oscss/data/icon_set.xml
Added Paths:
-----------
trunk/catalog/admin/includes/classes/drivers/sqlcategoriesextrafields.php
trunk/catalog/admin/includes/gabarit/MGabCont/display_view.import.gab
trunk/catalog/admin/includes/gabarit/categories/categories_extra/
trunk/catalog/admin/includes/modules/categories/categories_extra.php
trunk/catalog/admin/includes/modules/configuration/modextracategorie.php
Modified: trunk/catalog/admin/includes/classes/ModTreePage.php
===================================================================
--- trunk/catalog/admin/includes/classes/ModTreePage.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/classes/ModTreePage.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -530,7 +530,7 @@
$tmp = $_SESSION['filters'][self::$code];
$_SESSION['filters'] =array();
- $_SESSION['filters'][self::$code] = $tmp;
+// $_SESSION['filters'][self::$code] = $tmp;
foreach($_POST['filters']['listfield'] as $key=>$row){
if( $row =='on' )
Modified: trunk/catalog/admin/includes/classes/drivers/productsACA.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/productsACA.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/classes/drivers/productsACA.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -97,7 +97,8 @@
*/
private function control_type_mod($flag){
$this->load_type_product();
- if(in_array($flag,explode(',',$this->type_flag) ) || $flag==0) return true;
+
+ if(in_array($this->type_flag ,explode(',',$flag) ) || $flag==0) return true;
else return false;
}
Modified: trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -231,7 +231,7 @@
$res=tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', "categories_id = '" . (int)$id . "' and language_id = '" . (int)$key . "'");
- var_dump($res);
+// var_dump($res);
if(!$res)
$error++;
}
Added: trunk/catalog/admin/includes/classes/drivers/sqlcategoriesextrafields.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/sqlcategoriesextrafields.php (rev 0)
+++ trunk/catalog/admin/includes/classes/drivers/sqlcategoriesextrafields.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -0,0 +1,645 @@
+<?php if (!defined('HTTP_SERVER')) die('You can not access this file directly!');
+/**
+ @licence GPL 2005-2013 The osCSS developers - osCSS Open Source E-commerce
+ @portion code Copyright (c) 2002 osCommerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.1.1
+ @date 03/01/2013, 08:07
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @class sqlcategoriesextrafields
+ @file sqlcategoriesextrafields.php
+
+*/
+
+
+class sqlcategoriesextrafields
+ implements ModSqlDataDriver{
+
+ public static $modules;
+
+ protected static $_instance;
+
+ protected function __construct(){
+ }
+
+
+ public static function getInstance() {
+ if(self::$_instance == null) self::$_instance = new self();
+ return self::$_instance;
+ }
+
+
+ /**
+ @brief create new ligne in table configuration
+ */
+ public static function create($option){
+ self::getInstance();
+
+
+ $sql_data_array['epf_order'] =(isset($option['order']))? tep_db_prepare_input($option['order']) : 0 ;
+ $sql_data_array['epf_status'] =(isset($option['status']))? tep_db_prepare_input($option['status']) : 0;
+ $sql_data_array['epf_input_type'] =(isset($option['input_type'])) ? tep_db_prepare_input($option['input_type']) : 0;
+ $sql_data_array['epf_advanced_search'] =(isset($option['advanced_search']))? tep_db_prepare_input($option['advanced_search']): 0;
+ $sql_data_array['epf_show_in_listing'] = (isset($option['show_in_listing'])) ? tep_db_prepare_input($option['show_in_listing']): 0;
+ $sql_data_array['epf_use_as_meta_keyword'] =(isset($option['use_as_meta_keyword']))? tep_db_prepare_input($option['use_as_meta_keyword']): 0;
+ $sql_data_array['epf_use_to_restrict_listings'] = (isset($option['use_to_restrict_listings'])) ? tep_db_prepare_input($option['use_to_restrict_listings']): 0;
+ $sql_data_array['epf_admin'] =(isset($option['admin']))? tep_db_prepare_input($option['admin']) : 0;
+
+ if(isset($option['size'])) $sql_data_array['epf_size'] = tep_db_prepare_input($option['size']);
+ if(isset($option['show_parent_chain'])) $sql_data_array['epf_show_parent_chain'] = tep_db_prepare_input($option['show_parent_chain']);
+ if(isset($option['key'])) $sql_data_array['epf_key'] = tep_db_prepare_input($option['key']);
+ if(isset($option['special_mod'])) $sql_data_array['epf_special_mod'] = tep_db_prepare_input($option['special_mod']);
+ if(isset($option['active_value_language'])) $sql_data_array['epf_active_value_language'] = tep_db_prepare_input($option['active_value_language']);
+
+
+ $res=tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS, $sql_data_array);
+
+ if(!$res)
+ return $res;
+ else
+ return $res->__get('insertId');
+ }
+
+ /**
+ @brief update ligne in table configuration
+ @note for update key, use new_key in key array $option
+ this key is use in where clause
+ */
+ public static function update($option){
+ self::getInstance();
+
+ if(!isset($option['id']))
+ return false;
+
+ $where ='';
+ if(isset($option['id'])) $where .="AND epf_id = '".(int)$option['id']."' ";
+ if(isset($option['key'])) $where .="AND epf_key = '".(int)$option['key']."' ";
+
+ if($where=='')
+ return false;
+
+ if(isset($option['order']))$sql_data_array['epf_order'] = tep_db_prepare_input($option['order']);
+ if(isset($option['status'])) $sql_data_array['epf_status'] = tep_db_prepare_input($option['status']);
+// if(isset($option['uses_value_list'])) $sql_data_array['epf_input_type'] = tep_db_prepare_input($option['uses_value_list']);
+ if(isset($option['advanced_search'])) $sql_data_array['epf_advanced_search'] = tep_db_prepare_input($option['advanced_search']);
+ if(isset($option['show_in_listing']))$sql_data_array['epf_show_in_listing'] = tep_db_prepare_input($option['show_in_listing']);
+ if(isset($option['size'])) $sql_data_array['epf_size'] = tep_db_prepare_input($option['size']);
+ if(isset($option['use_as_meta_keyword'])) $sql_data_array['epf_use_as_meta_keyword'] = tep_db_prepare_input($option['use_as_meta_keyword']);
+ if(isset($option['use_to_restrict_listings'])) $sql_data_array['epf_use_to_restrict_listings'] = tep_db_prepare_input($option['use_to_restrict_listings']);
+ if(isset($option['show_parent_chain'])) $sql_data_array['epf_show_parent_chain'] = tep_db_prepare_input($option['show_parent_chain']);
+ if(isset($option['new_key'])) $sql_data_array['epf_key'] = tep_db_prepare_input($option['new_key']);
+ if(isset($option['admin'])) $sql_data_array['epf_admin'] = (string)tep_db_prepare_input($option['admin']);
+ if(isset($option['special_mod'])) $sql_data_array['epf_special_mod'] = tep_db_prepare_input($option['special_mod']);
+ if(isset($option['active_value_language'])) $sql_data_array['epf_active_value_language'] = tep_db_prepare_input($option['active_value_language']);
+
+ $res=tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS, $sql_data_array, 'update' , substr($where,3) );
+
+ return $res;
+ }
+
+ /**
+ @brief load ligne in table configuration
+ @param option array
+ id => row id int (configuration_id)
+ key => string key (configuration_key)
+ group_id => group_id int (configuration_group_id)
+ @param $shortkey use cleankey for return short key
+ @return
+
+ object(stdClass)[13]
+ public 'id' => string '1' (length=1)
+
+ OR
+ array(
+ object(stdClass)[13]
+ ...
+ object(stdClass)[13]
+ ..
+ )
+
+ */
+ public static function fetch($option,$shortkey=false){
+ self::getInstance();
+ $DB=Database::getInstance();
+
+ $sql ="";
+ if(isset($option['id'])) $sql .="AND epf_id = '".(int)$option['id']."' ";
+ if(isset($option['key'])) $sql .="AND epf_key = '".(int)$option['key']."' ";
+
+
+ if($sql=='')
+ return false;
+
+
+ $sql="SELECT * FROM " . TABLE_PRODUCTS_EXTRA_FIELDS . " a ".
+// " LEFT JOIN " . TABLE_IMAGES_USED . " g ON (a.rowid=g.rowid) ".
+ " WHERE ".substr($sql,3);
+
+// echo $sql;
+ $res=$DB->query($sql);
+
+ $num = $res->__get('numRows');
+
+ if($num == 1){
+ $result=$res->fetchAssoc();
+ return ((!$shortkey)? $result : self::CleanKey($result));
+ }
+ elseif($num > 1){
+ $array=array();
+
+ foreach($res->fetchAllAssoc() as $result)
+ $array[]= ((!$shortkey)? $result : self::CleanKey($result));
+
+ return $array;
+ }
+
+ return false;
+ }
+
+ /**
+ @brief delete row
+ */
+ public static function delete($option){
+ self::getInstance();
+ $DB=Database::getInstance();
+
+ $sql ="";
+
+ if(isset($option['id'])) $sql .="AND epf_id = '".(int)$option['id']."' ";
+ if(isset($option['key'])) $sql .="AND epf_key = '".(int)$option['key']."' ";
+
+
+ if(strlen($sql) < 5)
+ return false;
+
+ $res = $DB->query($s="SELECT epf_id FROM " . TABLE_PRODUCTS_EXTRA_FIELDS ." WHERE ". substr($sql,3) );
+
+ $row=$res->fetchAssoc();
+
+ // depend tables
+ sqlcategoriesextrafieldslabels::delete(array('id'=>$row['epf_id']));
+
+ sqlcategoriesextrafieldsvalues::delete(array('id'=>$row['epf_id']));
+
+
+ $DB->query($s="DELETE FROM " . TABLE_PRODUCTS_EXTRA_FIELDS ." WHERE ". substr($sql,3) );
+
+ return true;
+ }
+
+ /**
+ @brief
+ @return array categorie empty
+ */
+ public static function Specimen($shortkey=false){
+ $par = array(
+ 'epf_id' => 0,
+ 'epf_order' => 5,
+ 'epf_status' => 0,
+ 'epf_input_type' => 0,
+ 'epf_advanced_search' => '',
+ 'epf_show_in_listing' => '',
+ 'epf_size' => 0,
+ 'epf_use_as_meta_keyword' => '',
+ 'epf_use_to_restrict_listings' => '',
+ 'epf_show_parent_chain' => '',
+ 'epf_active_value_language' => 0,
+ 'epf_key' => '',
+ 'epf_admin' => 0,
+ 'epf_special_mod' => '',
+ );
+
+ return ((!$shortkey)? $par : self::CleanKey($par));
+ }
+
+
+
+ /**
+ @fn CleanKey()
+ @brief Clean string name key
+ */
+ public static function CleanKey($array){
+ self::getInstance();
+ $object= new stdclass();
+
+ foreach($array as $key=>$value){
+ if( strpos($key,'epf_') ===0)
+ $key=substr($key,4);
+
+ $object->$key = $value;
+ }
+
+ return $object;
+ }
+
+}
+
+
+class sqlcategoriesextrafieldslabels
+ implements ModSqlDataDriver{
+
+ public static $modules;
+
+ protected static $_instance;
+ /**
+ @var format for display line input
+ */
+ protected static $format = '%label% %input% %unit%';
+
+
+ protected function __construct(){
+ }
+
+
+ public static function getInstance() {
+ if(self::$_instance == null) self::$_instance = new self();
+ return self::$_instance;
+ }
+
+
+ /**
+ @brief create new ligne in table configuration
+ */
+ public static function create($option){
+ self::getInstance();
+
+ if(!isset($option['id']))
+ return 'id';
+
+ $sql_data_array['epf_id'] = tep_db_prepare_input($option['id']);
+ $sql_data_array['languages_id'] =(isset($option['languages_id']))? tep_db_prepare_input($option['languages_id']) : 0;
+// $sql_data_array['epf_active_for_language'] =(isset($option['active_for_language']))? tep_db_prepare_input($option['active_for_language']): 0;
+
+ $sql_data_array['epf_label'] =(isset($option['label'])) ? tep_db_prepare_input($option['label']) : '';
+ $sql_data_array['epf_format'] =(isset($option['format']) && empty($option['format']) )? tep_db_prepare_input($option['format']): self::$format ;
+
+
+ if(isset($option['label_help'])) $sql_data_array['epf_label_help'] = tep_db_prepare_input($option['label_help']);
+
+
+ $res=tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS_LABELS, $sql_data_array);
+
+ if(!$res)
+ return $res;
+ else
+ // no id in table
+ return true;
+ }
+
+ /**
+ @brief update ligne in table configuration
+ */
+ public static function update($option){
+ self::getInstance();
+
+ if(!isset($option['id']))
+ return false;
+
+ $where ='';
+ if(isset($option['id'])) $where .="AND epf_id = '".(int)$option['id']."' ";
+ if(isset($option['languages_id'])) $where .="AND languages_id = '".(int)$option['languages_id']."' ";
+
+ if($where=='')
+ return false;
+
+// if(isset($option['active_for_language'])) $sql_data_array['epf_active_for_language'] = tep_db_prepare_input($option['active_for_language']);
+ if(isset($option['label'])) $sql_data_array['epf_label'] = tep_db_prepare_input($option['label']);
+
+ $sql_data_array['epf_format'] =(isset($option['format']) && !empty($option['format']) )? tep_db_prepare_input($option['format']): self::$format ;
+
+ if(isset($option['label_help'])) $sql_data_array['epf_label_help'] = tep_db_prepare_input($option['label_help']);
+
+ $res=tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS_LABELS, $sql_data_array, 'update' , substr($where,3) );
+
+ return $res;
+ }
+
+ /**
+ @brief load ligne in table configuration
+ @param option array
+ id => row id int (configuration_id)
+ key => string key (configuration_key)
+ group_id => group_id int (configuration_group_id)
+ @param $shortkey use cleankey for return short key
+ @return
+
+ object(stdClass)[13]
+ public 'id' => string '1' (length=1)
+
+ OR
+ array(
+ object(stdClass)[13]
+ ...
+ object(stdClass)[13]
+ ..
+ )
+
+ */
+ public static function fetch($option,$shortkey=false){
+ self::getInstance();
+ $DB=Database::getInstance();
+
+ $sql ="";
+ if(isset($option['id'])) $sql .="AND epf_id = '".(int)$option['id']."' ";
+ if(isset($option['languages_id'])) $sql .="AND languages_id = '".(int)$option['languages_id']."' ";
+
+
+ if($sql=='')
+ return false;
+
+
+ $sql="SELECT * FROM " . TABLE_PRODUCTS_EXTRA_FIELDS_LABELS . " a ".
+// " LEFT JOIN " . TABLE_IMAGES_USED . " g ON (a.rowid=g.rowid) ".
+ " WHERE ".substr($sql,3);
+
+ $res=$DB->query($sql);
+
+ $num = $res->__get('numRows');
+
+ if($num == 1){
+ $result=$res->fetchAssoc();
+ return ((!$shortkey)? $result : self::CleanKey($result));
+ }
+ elseif($num > 1){
+ $array=array();
+
+ foreach($res->fetchAllAssoc() as $result)
+ $array[]= ((!$shortkey)? $result : self::CleanKey($result));
+
+ return $array;
+ }
+
+ return false;
+ }
+
+ /**
+ @brief delete row
+ */
+ public static function delete($option){
+ self::getInstance();
+ $DB=Database::getInstance();
+
+ $sql ="";
+
+ if(isset($option['id'])) $sql .="AND epf_id = '".(int)$option['id']."' ";
+ if(isset($option['languages_id'])) $sql .="AND languages_id = '".(int)$option['languages_id']."' ";
+
+
+ if(strlen($sql) < 5)
+ return false;
+
+ $DB->query($s="DELETE FROM " . TABLE_PRODUCTS_EXTRA_FIELDS_LABELS ." WHERE ". substr($sql,3) );
+
+ return true;
+ }
+
+ /**
+ @brief
+ @return array categorie empty
+ */
+ public static function Specimen($shortkey=false){
+ $par = array(
+ 'epf_id' => 0,
+ 'languages_id' => 0,
+ 'epf_label' => '',
+// 'epf_active_for_language' => false,
+ 'epf_label_help' => '',
+ 'epf_format' => '%label% %input% %unit%',
+ );
+
+ return ((!$shortkey)? $par : self::CleanKey($par));
+ }
+
+
+
+ /**
+ @fn CleanKey()
+ @brief Clean string name key
+ */
+ public static function CleanKey($array){
+ self::getInstance();
+ $object= new stdclass();
+
+ foreach($array as $key=>$value){
+ if( strpos($key,'epf_') ===0)
+ $key=substr($key,4);
+
+ $object->$key = $value;
+ }
+
+ return $object;
+ }
+
+}
+
+
+
+
+class sqlcategoriesextrafieldsvalues
+ implements ModSqlDataDriver{
+
+ public static $modules;
+
+ protected static $_instance;
+
+ protected function __construct(){
+ }
+
+
+ public static function getInstance() {
+ if(self::$_instance == null) self::$_instance = new self();
+ return self::$_instance;
+ }
+
+
+ /**
+ @brief
+ @return array categorie empty
+ */
+ public static function GetNewId($epf_id){
+ $DB=Database::getInstance();
+ $sql="SELECT MAX(value_id) as id FROM " . TABLE_PRODUCTS_EXTRA_FIELDS_VALUES . " a WHERE epf_id ='".(int)$epf_id."' GROUP BY languages_id LIMIT 1 ";
+ $query= $DB->query($sql);
+ $res = $query->fetchAssoc();
+
+ return ( (int) tep_db_prepare_input($res['id']) + 1 );
+ }
+
+
+ /**
+ @brief create new ligne in table configuration
+ */
+ public static function create($option){
+ self::getInstance();
+
+ if(!isset($option['epf_id']))
+ return 'epf_id';
+
+ if(!isset($option['value_id']))
+ $sql_data_array['value_id'] =self::GetNewId($option['epf_id']);
+ else
+ $sql_data_array['value_id'] = (int) tep_db_prepare_input($option['value_id']) ;
+
+ $sql_data_array['epf_id'] = tep_db_prepare_input($option['epf_id']);
+ $sql_data_array['languages_id'] =(isset($option['languages_id']))? tep_db_prepare_input($option['languages_id']) : 0;
+
+
+ $sql_data_array['epf_value'] =(isset($option['value'])) ? tep_db_prepare_input($option['value']) : '';
+ $sql_data_array['parent_id'] =(isset($option['parent_id']))? tep_db_prepare_input($option['parent_id']): 0;
+ $sql_data_array['sort_order'] =(isset($option['sort_order'])) ? tep_db_prepare_input($option['sort_order']) :0;
+
+
+ $res=tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS_VALUES, $sql_data_array);
+
+ if(!$res)
+ return $res;
+ else
+ return $sql_data_array['value_id'];
+ }
+
+ /**
+ @brief update ligne in table configuration
+ */
+ public static function update($option){
+ self::getInstance();
+
+ if(!isset($option['epf_id']))
+ return false;
+
+ $sql ='';
+ if(isset($option['id'])) $sql .="AND value_id = '".(int)$option['id']."' ";
+ if(isset($option['epf_id'])) $sql .="AND epf_id = '".(int)$option['epf_id']."' ";
+ if(isset($option['languages_id'])) $sql .="AND languages_id = '".(int)$option['languages_id']."' ";
+ if(isset($option['parent_id'])) $sql .="AND parent_id = '".(int)$option['parent_id']."' ";
+
+ if($sql=='')
+ return false;
+
+
+ if(isset($option['value'])) $sql_data_array['epf_value'] = tep_db_prepare_input($option['value']);
+ if(isset($option['sort_order'])) $sql_data_array['sort_order'] = tep_db_prepare_input($option['sort_order']);
+
+
+ $res=tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS_VALUES, $sql_data_array, 'update' , substr($sql,3) );
+
+ return $res;
+ }
+
+ /**
+ @brief load ligne in table configuration
+ @param option array
+ id => row id int (configuration_id)
+ key => string key (configuration_key)
+ group_id => group_id int (configuration_group_id)
+ @param $shortkey use cleankey for return short key
+ @return
+
+ object(stdClass)[13]
+ public 'id' => string '1' (length=1)
+
+ OR
+ array(
+ object(stdClass)[13]
+ ...
+ object(stdClass)[13]
+ ..
+ )
+
+ */
+ public static function fetch($option,$shortkey=false){
+ self::getInstance();
+ $DB=Database::getInstance();
+
+ $sql ="";
+ if(isset($option['id'])) $sql .="AND value_id = '".(int)$option['id']."' ";
+ if(isset($option['epf_id'])) $sql .="AND epf_id = '".(int)$option['epf_id']."' ";
+ if(isset($option['languages_id'])) $sql .="AND languages_id = '".(int)$option['languages_id']."' ";
+ if(isset($option['parent_id'])) $sql .="AND parent_id = '".(int)$option['parent_id']."' ";
+
+
+ if($sql=='')
+ return false;
+
+
+ $sql="SELECT * FROM " . TABLE_PRODUCTS_EXTRA_FIELDS_VALUES . " a ".
+ " WHERE ".substr($sql,3)." ORDER BY sort_order ASC";
+
+ $res=$DB->query($sql);
+
+ $num = $res->__get('numRows');
+
+ if($num == 1){
+ $result=$res->fetchAssoc();
+ return ((!$shortkey)? $result : self::CleanKey($result));
+ }
+ elseif($num > 1){
+ $array=array();
+
+ foreach($res->fetchAllAssoc() as $result)
+ $array[]= ((!$shortkey)? $result : self::CleanKey($result));
+
+ return $array;
+ }
+
+ return false;
+ }
+
+ /**
+ @brief delete row
+ */
+ public static function delete($option){
+ self::getInstance();
+ $DB=Database::getInstance();
+
+ $sql ="";
+
+ if(isset($option['id'])) $sql .="AND value_id = '".(int)$option['id']."' ";
+ if(isset($option['epf_id'])) $sql .="AND epf_id = '".(int)$option['epf_id']."' ";
+ if(isset($option['languages_id'])) $sql .="AND languages_id = '".(int)$option['languages_id']."' ";
+ if(isset($option['parent_id'])) $sql .="AND parent_id = '".(int)$option['parent_id']."' ";
+
+ if(strlen($sql) < 5)
+ return false;
+
+ $DB->query($s="DELETE FROM " . TABLE_PRODUCTS_EXTRA_FIELDS_VALUES ." WHERE ". substr($sql,3) );
+
+ return true;
+ }
+
+ /**
+ @brief
+ @return array categorie empty
+ */
+ public static function Specimen($shortkey=false){
+ $par = array(
+ 'value_id' => 0 ,
+ 'epf_id' => 0,
+ 'languages_id' => 0,
+ 'parent_id' => 0,
+ 'sort_order' => 0,
+ 'epf_value' => '',
+ );
+
+ return ((!$shortkey)? $par : self::CleanKey($par));
+ }
+
+
+
+ /**
+ @fn CleanKey()
+ @brief Clean string name key
+ */
+ public static function CleanKey($array){
+ self::getInstance();
+ $object= new stdclass();
+
+ foreach($array as $key=>$value){
+ $object->$key = $value;
+ }
+
+ return $object;
+ }
+
+}
+?>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/classes/drivers/sqlcustomer.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/sqlcustomer.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/classes/drivers/sqlcustomer.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -173,13 +173,15 @@
);
- if($error ==0)
+ if($error ==0){
+ $sql_data_array = array_merge($sql_data_array, self::$modules->update_table_second());
+
if( !tep_db_perform(TABLE_CUSTOMERS_INFO, $sql_data_array, 'update' , " customers_info_id = '".(int)$option['id']."' " ) )
$error++;
+ }
-
self::$modules->load_post_values($_post);
- $sql_data_array = array_merge($sql_data_array, self::$modules->update_table_second());
+
self::$modules->after_update((int)$option['id']);
Modified: trunk/catalog/admin/includes/classes/drivers/sqlextrafieldslabels.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/sqlextrafieldslabels.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/classes/drivers/sqlextrafieldslabels.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -40,7 +40,12 @@
if(isset($option['id'])) $sql_data_array['fields_id'] = $option['id'];
if(isset($option['languages_id'])) $sql_data_array['languages_id'] = $option['languages_id'];
if(isset($option['name'])) $sql_data_array['fields_name'] = $option['name'];
- if(isset($option['format'])) $sql_data_array['fields_format'] = $option['format'];
+
+ if(isset($option['format']) && strlen($option['format']) > 4)
+ $sql_data_array['fields_format'] = $option['format'];
+ else
+ $sql_data_array['fields_format'] = '%label% %input% %unit%';
+
// if(isset($option['format'])) $sql_data_array['fields_format'] = $option['format'];
if(isset($option['unity_type'])) $sql_data_array['fields_unity_type_id'] = $option['unity_type'];
if(isset($option['unity'])) $sql_data_array['fields_unity_id'] = $option['unity'];
@@ -69,7 +74,10 @@
// if(isset($option['id'])) $sql_data_array['fields_id'] = $option['id'];
// if(isset($option['languages_id'])) $sql_data_array['languages_id'] = $option['languages_id'];
if(isset($option['name'])) $sql_data_array['fields_name'] = $option['name'];
- if(isset($option['format'])) $sql_data_array['fields_format'] = $option['format'];
+ if(isset($option['format']) && strlen($option['format']) > 4)
+ $sql_data_array['fields_format'] = $option['format'];
+ else
+ $sql_data_array['fields_format'] = '%label% %input% %unit%';
if(isset($option['unity_type'])) $sql_data_array['fields_unity_type_id'] = $option['unity_type'];
if(isset($option['unity'])) $sql_data_array['fields_unity_id'] = $option['unity'];
Modified: trunk/catalog/admin/includes/classes/drivers/sqlorder.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/sqlorder.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/classes/drivers/sqlorder.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -43,8 +43,15 @@
@var array row string for tmp stock comment in process if update
*/
public static $comment;
-
/**
+ @var Type of order , y default is 0; Standard type of order
+ For context held_order use -1
+ For quotation , this type is 2
+ */
+ public static $orders_type = 0;
+
+
+ /**
@brief constructor
no direct call, but is auto call by static public method
This method init Childs modules class
@@ -140,8 +147,12 @@
else {
$sql_data_array['facture_id'] = $order->info['facture_id'];
$sql_data_array['facture_ref'] = $order->info['facture_ref'];
+
+ self::$orders_type = $order->info['orders_type'];
}
+
+
if( isset($option['post']) )
$post = $option['post'];
@@ -158,16 +169,18 @@
}
if( isset($option['type']) ){
- $sql_data_array['orders_type'] = $option['orders_type'];
+ $sql_data_array['orders_type'] = $option['type'];
- if( isset($option['orders_ref']) )
- $sql_data_array['orders_ref'] = trim($option['orders_ref']);
- else {
- // New Ref
- $numref= new NumRef('orders');
- $ref = $numref->GetNewNumRef('', new objectInfo($order) );
-
- $sql_data_array['orders_ref'] = $ref;
+ if(self::$orders_type == 0 ){
+ if( isset($option['orders_ref']) )
+ $sql_data_array['orders_ref'] = trim($option['orders_ref']);
+ else {
+ // New Ref
+ $numref= new NumRef('orders');
+ $ref = $numref->GetNewNumRef('', new objectInfo($order) );
+
+ $sql_data_array['orders_ref'] = $ref;
+ }
}
}
@@ -179,6 +192,14 @@
$notify = (( isset($option['notify']) && $option['notify'] )? true : false );
+
+
+ /// Fix Product and total
+// if(isset($option['products'])){
+//
+//
+// }
+
/// update billing address
if(isset($option['billing'])) {
@@ -285,8 +306,8 @@
}
-
- if( isset($status) ) {
+/// FIX TO Type of order
+ if( self::$orders_type == 0 && isset($status) ) {
/// Adjust process for status
if($status>0)
$new_st = substr((int)$status,0,1);
@@ -322,7 +343,6 @@
$sql_data_array = array_merge($sql_data_array, $_data_array);
}
-
}
if(count($sql_data_array) > 0){
@@ -728,4 +748,132 @@
}
+
+
+class sqlorderrelation
+// extends SqlFilesDataDriverClass
+ implements ModSqlDataDriver
+ {
+
+
+ /**
+ @fn create($option)
+ @brief Clean string name key
+ */
+ public static function create($option){
+ self::getInstance();
+ $DB=Database::getInstance();
+ $error = 0;
+
+ $DB->beginTransaction();
+
+ $sql_data_array = array(/*'rowid' => (int)$oID ,*/
+ 'parent_id' => (int)$option['parent_id'],
+ 'child_id' => (int)$option['child_id'],
+ 'relation_type' => (int)$option['relation_type']
+ );
+
+ return tep_db_perform(TABLE_ORDERS_RELATION , $sql_data_array);
+
+
+ if( $error > 0){
+ $DB->rollbackTransaction();
+ return false;
+ }
+ else{
+ $DB->commitTransaction();
+ return 1;
+ }
+ }
+
+ /**
+ @fn update($option)
+ @brief Clean string name key
+ */
+ public static function update($option){
+ self::getInstance();
+ $DB=Database::getInstance();
+ $error = 0;
+
+ $DB->beginTransaction();
+
+ $sql_data_array = array(/*'rowid' => (int)$oID ,*/
+ 'parent_id' => (int)$option['parent_id'],
+ 'child_id' => (int)$option['child_id'],
+ 'relation_type' => (int)$option['relation_type']
+ );
+
+ return tep_db_perform(TABLE_ORDERS_RELATION , $sql_data_array);
+
+
+ if( $error > 0){
+ $DB->rollbackTransaction();
+ return false;
+ }
+ else{
+ $DB->commitTransaction();
+ return 1;
+ }
+ }
+
+ /**
+ @fn fetch($option,$shortkey=false)
+ @brief Clean string name key
+ */
+ public static function fetch($option,$shortkey=false){
+ self::getInstance();
+ $DB=Database::getInstance();
+ $error = 0;
+
+ $_sql = "SELECT * FROM " . TABLE_ORDERS_RELATION . " WHERE ".$sql;
+ if( $error ==0 && !$DB->query($_sql) )
+ $error++;
+ }
+
+ /**
+ @fn create($option)
+ @brief Clean string name key
+ */
+ public static function delete($option){
+ self::getInstance();
+ $DB=Database::getInstance();
+ $error = 0;
+
+ $DB->beginTransaction();
+
+
+ if( $error > 0){
+ $DB->rollbackTransaction();
+ return false;
+ }
+ else{
+ $DB->commitTransaction();
+ return 1;
+ }
+ }
+
+ /**
+ @fn Specimen($shortkey=false)
+ @brief Clean string name key
+ */
+ public function Specimen($shortkey=false){
+
+ }
+
+ /**
+ @fn CleanKey()
+ @brief Clean string name key
+ */
+ public static function CleanKey($array){
+ self::getInstance();
+ $object= new stdclass();
+
+ foreach($array as $key=>$value){
+ $object->$key = $value;
+ }
+
+ return $object;
+ }
+}
+
?>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/classes/drivers/sqlproduct.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/sqlproduct.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/classes/drivers/sqlproduct.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -51,28 +51,74 @@
new self();
$DB=Database::getInstance();
$error=0;
- $modules = self::$modules;
+ $modules = self::$modules;
+ $specimen = self::Specimen();
// if(!isset($option['key'])) return 'key';
$DB->beginTransaction();
- $languages_id = (isset($option['language_id']) ? $option['language_id'] : $languages_id);
- $type = (isset($option['type']))? $option['type'] : 1;
+ $post =array(); //$specimen;
+// if(isset($option['post'])){
+// foreach($option['post'] as $key=> $row)
+// $post[$key] = $row;
+ $post=(array)$option['post'];
+// // $post['products_id'] = $products_id;
+//
+//
+// unset($post['products_id']);
+//
+// /// Call ACA module put post var
+// $modules->load_post_values($post);
+// }
+// var_dump($post);
+ $dataarray = (array)(isset($option['sqlarray'])? $option['sqlarray'] : array() );
- $sql_data_array = array(
- 'products_type' => $type,
- 'products_quantity' => (isset($option['products_quantity'])? $option['products_quantity'] : 1),
- 'products_price' => (isset($option['products_price'])? $option['products_price'] : 0),
- 'products_date_added' => 'now()',
- 'manufacturers_id' => '',
- 'track_stock' => ( ($type == 1) ? 1 : 0 )
- );
+ self::PrepaDataAfterUse( $specimen , $dataarray, $post );
- $sql_data_array = array_merge($sql_data_array, self::$modules->get_insert_table_products());
+ $sql_data_array = self::GetSqlArray();
+ $sql_data_array_lg = self::GetSqlArrayLg();
+
+
+// $languages_id = (isset($option['language_id']) ? $option['language_id'] : $languages_id);
+// $type = (isset($option['type']))? $option['type'] : 1;
+
+// $sql_data_array = array(
+// 'products_type' => $type,
+// 'products_quantity' => (isset($option['products_quantity'])? $option['products_quantity'] : 1),
+// 'products_price' => (isset($option['products_price'])? $option['products_price'] : 0),
+// 'products_date_added' => 'now()',
+// 'manufacturers_id' => '',
+// 'track_stock' => ( ($type == 1) ? 1 : 0 )
+// );
+
+
+ if(count($sql_data_array) > 0 || count($sql_data_array_lg) ){
+// print_r($sql_data_array);
+ if(isset($sql_data_array['products_tax_class_id']))
+ $specimen->tax_class_id = $sql_data_array['products_tax_class_id'];
+
+ // recalculate price net
+ if(isset($sql_data_array['products_price_gross'])) {
+ if($action == 'update_product' && !isset($sql_data_array['products_tax_class_id']))
+ $sql_data_array['products_price'] = ( $sql_data_array['products_price_gross'] / ((tep_get_tax_rate_value($specimen->tax_class_id) / 100 ) + 1) );
+ }
+
+ $sql_data_array['products_tax_class_id'] = $specimen->tax_class_id;
+// print_r($sql_data_array);
+ $sql_data_array['products_date_added'] ='now()';
+ $sql_data_array = array_merge($sql_data_array, self::$modules->get_insert_table_products());
+// $sql_data_array = array_merge($sql_data_array, $modules->get_update_table_products());
+
+ if( ! tep_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update',"products_id = '" . (int)$products_id . "'") )
+ $error++;
+ }
+
$resobj=tep_db_perform(TABLE_PRODUCTS, $sql_data_array);
+
+
if(!$resobj){
$DB->rollbackTransaction();
return false;
@@ -81,27 +127,46 @@
$products_id = $resobj->__get('insertId');
- $list_languages=tep_get_languages();
- for ($i=0, $n=sizeof($list_languages); $i<$n; $i++) {
- $language_id = $list_languages[$i]['id'];
+ if(isset($sql_data_array_lg['lg']) && count($sql_data_array_lg['lg']) > 0){
+ foreach($sql_data_array_lg['lg'] as $key=>$sql_data_array){
+
+ $sql_data_array['products_id'] = $products_id;
+ $sql_data_array['language_id'] = $key;
+
+ $sql_data_array = array_merge($sql_data_array, (array)$modules->get_insert_table_products_description ($key));
+ $res=tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);
+ if(!$res)
+ $error++;
+ }
+ }
+ else{
+
+ $list_languages=tep_get_languages();
+ for ($i=0, $n=sizeof($list_languages); $i<$n; $i++) {
+ $language_id = $list_languages[$i]['id'];
- $sql_data_array = array('products_name' => '','products_id' => $products_id, 'language_id' => $language_id);
+ $sql_data_array = array('products_name' => '','products_id' => $products_id, 'language_id' => $language_id);
+
+
+ $sql_data_array = array_merge($sql_data_array, (array)$modules->get_insert_table_products_description ($language_id));
- $res=tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);
- if(!$res)
- $error++;
+ $res=tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);
+ if(!$res)
+ $error++;
+ }
}
+
/*
Use transversal Datatype Rootlisting and update in data
Not in context update one col
*/
- if($error ==0 && isset($post['linkto'])){
- $r = MLinkTo::SqlRightToAction('create', 'product', $products_id, $post['linkto']) ;
- if($r == false)
- $error++;
- }
-
+// if($error ==0 && isset($post['linkto'])){
+// $r = MLinkTo::SqlRightToAction('create', 'product', $products_id, $post['linkto']) ;
+// if($r == false)
+// $error++;
+// }
+//
if( $error > 0){
$DB->rollbackTransaction();
return false;
@@ -147,24 +212,29 @@
$sql_data_array_lg = self::GetSqlArrayLg();
- if(( $origin = self::fetch(array('id'=>$products_id), true) ) && !$origin )
- $action = 'insert_product';
- else
- $action = 'update_product';
+ if(( $origin = self::fetch(array('id'=>$products_id), true) ) && !$origin )
+ return false;
+// else
+// $action = 'update_product';
+ if(isset($sql_data_array['products_tax_class_id']))
+ $origin->tax_class_id = $sql_data_array['products_tax_class_id'];
+
// recalculate price net
if(isset($sql_data_array['products_price_gross'])) {
-
- if($action == 'update_product' && is_object($origin) && !isset($sql_data_array['products_tax_class_id']))
+ if($action == 'update_product' && !isset($sql_data_array['products_tax_class_id']))
$sql_data_array['products_price'] = ( $sql_data_array['products_price_gross'] / ((tep_get_tax_rate_value($origin->tax_class_id) / 100 ) + 1) );
- else
- $sql_data_array['products_price'] = ( $sql_data_array['products_price_gross'] / ((tep_get_tax_rate_value($sql_data_array['products_tax_class_id']) / 100 ) + 1) );
+// else
+// $sql_data_array['products_price'] = ( $sql_data_array['products_price_gross'] / ((tep_get_tax_rate_value($sql_data_array['products_tax_class_id']) / 100 ) + 1) );
unset( $sql_data_array['products_price_gross'] );
}
+
$DB->beginTransaction();
if(count($sql_data_array) > 0 || count($sql_data_array_lg) ){
+
+ $sql_data_array['products_tax_class_id'] = $origin->tax_class_id;
$sql_data_array['products_last_modified'] ='now()';
$sql_data_array = array_merge($sql_data_array, $modules->get_update_table_products());
@@ -192,30 +262,30 @@
$sql_data_array = array();
- if ($action == 'insert_product') {
- $insert_sql_data = array('products_id' => $products_id, 'language_id' => $language_id);
-
- $sql_data_array = array_merge($sql_data_array, $insert_sql_data);
- // ACA START INSERT IN PRODUCT_DESCRIPTION TABLE
- $sql_data_array = array_merge($sql_data_array,$modules->get_insert_table_products_description ($language_id));
-
-
- if( !tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array) )
- $error++;
- }
-
- elseif ($action == 'update_product') {
+// if ($action == 'insert_product') {
+// $insert_sql_data = array('products_id' => $products_id, 'language_id' => $language_id);
+//
+// $sql_data_array = array_merge($sql_data_array, $insert_sql_data);
+// // ACA START INSERT IN PRODUCT_DESCRIPTION TABLE
+// $sql_data_array = array_merge($sql_data_array,$modules->get_insert_table_products_description ($language_id));
+//
+//
+// if( !tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array) )
+// $error++;
+// }
+//
+// elseif ($action == 'update_product') {
// ACA START UPDATE PRODUCT_DESCRIPTION TABLE
$sql_data_array = array_merge($sql_data_array, (array)$modules->get_update_table_products_description ($language_id));
if(count($sql_data_array) > 0)
if( ! tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', " products_id = '" . (int)$products_id . "' and language_id = '" . (int)$language_id . "' ") )
$error++;
- }
+// }
}
}
}
-
+// print_r($post);
/*
Use transversal Datatype Rootlisting and update in data
Not in context update one col
@@ -225,7 +295,7 @@
if($r == false)
$error++;
}
-
+// var_dump($post);
if($error ==0 ) {
/// Separate Pricing Per Customer
$customers_group_query = $DB->query("select customers_group_id, customers_group_name from " . TABLE_CUSTOMERS_GROUPS . " where customers_group_id != '0' order by customers_group_id");
@@ -608,7 +678,7 @@
$_query = $DB->query( $sql_query );
- if( ! $_query->__get('numRows') )
+ if( !$_query || ! $_query->__get('numRows') )
return false;
$product = $_query->fetchAssoc();
Modified: trunk/catalog/admin/includes/database_tables.php
===================================================================
--- trunk/catalog/admin/includes/database_tables.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/database_tables.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -76,12 +76,12 @@
## Orders
# Pre order
- define('TABLE_HOLDING_ORDERS', DB_TABLE_PREFIX . 'holding_orders');
- define('TABLE_HOLDING_ORDERS_PRODUCTS', DB_TABLE_PREFIX . 'holding_orders_products');
- define('TABLE_HOLDING_ORDERS_PRODUCTS_ATTRIBUTES', DB_TABLE_PREFIX . 'holding_orders_products_attributes');
- define('TABLE_HOLDING_ORDERS_PRODUCTS_DOWNLOAD', DB_TABLE_PREFIX . 'holding_orders_products_download');
- define('TABLE_HOLDING_ORDERS_STATUS_HISTORY', DB_TABLE_PREFIX . 'holding_orders_status_history');
- define('TABLE_HOLDING_ORDERS_TOTAL', DB_TABLE_PREFIX . 'holding_orders_total');
+// define('TABLE_HOLDING_ORDERS', DB_TABLE_PREFIX . 'holding_orders');
+// define('TABLE_HOLDING_ORDERS_PRODUCTS', DB_TABLE_PREFIX . 'holding_orders_products');
+// define('TABLE_HOLDING_ORDERS_PRODUCTS_ATTRIBUTES', DB_TABLE_PREFIX . 'holding_orders_products_attributes');
+// define('TABLE_HOLDING_ORDERS_PRODUCTS_DOWNLOAD', DB_TABLE_PREFIX . 'holding_orders_products_download');
+// define('TABLE_HOLDING_ORDERS_STATUS_HISTORY', DB_TABLE_PREFIX . 'holding_orders_status_history');
+// define('TABLE_HOLDING_ORDERS_TOTAL', DB_TABLE_PREFIX . 'holding_orders_total');
# Reel orders
define('TABLE_ORDERS', DB_TABLE_PREFIX . 'orders');
define('TABLE_ORDERS_PRODUCTS', DB_TABLE_PREFIX . 'orders_products');
@@ -90,6 +90,7 @@
define('TABLE_ORDERS_STATUS_HISTORY', DB_TABLE_PREFIX . 'orders_status_history');
define('TABLE_ORDERS_TOTAL', DB_TABLE_PREFIX . 'orders_total');
+ define('TABLE_ORDERS_RELATION', DB_TABLE_PREFIX . 'orders_relation');
define('TABLE_SERVICES', DB_TABLE_PREFIX.'services');
Modified: trunk/catalog/admin/includes/filenames.php
===================================================================
--- trunk/catalog/admin/includes/filenames.php 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/filenames.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -38,7 +38,7 @@
define('FILENAME_FORBIDEN', 'forbiden.php');
define('FILENAME_GEO_ZONES', 'geo_zones.php');
define('FILENAME_GOOGLE_SITEMAP', 'ggsitemap.php');
-define('FILENAME_HELD_ORDERS', 'held_orders.php');
+
define('FILENAME_LANGUAGES', 'languages.php');
define('FILENAME_LOGIN', 'login.php');
define('FILENAME_LOGOFF', 'logoff.php');
@@ -50,6 +50,8 @@
define('FILENAME_NEWSLETTERS_MODELES', 'newslettersModeles.php');
define('FILENAME_ORDERS', 'orders.php');
+define('FILENAME_HELD_ORDERS', 'held_orders.php');
+
define('FILENAME_PACKAGE', 'package.php');
define('FILENAME_PASSWORD_FORGOTTEN', 'password_forgotten.php');
define('FILENAME_PLUGINS', 'plugins.php');
Added: trunk/catalog/admin/includes/gabarit/MGabCont/display_view.import.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/MGabCont/display_view.import.gab (rev 0)
+++ trunk/catalog/admin/includes/gabarit/MGabCont/display_view.import.gab 2015-04-07 08:08:55 UTC (rev 5258)
@@ -0,0 +1,52 @@
+<?php
+/**
+ @licence GPL 2005-2013 The osCSS developers - osCSS Open Source E-commerce
+ @package osCSS-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 19/10/2013, 09:17
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file display_view.edit.gab
+ @dir admin/includes/gabarit/featureds/
+*/
+
+$page= MGabCont::CallSt('GetClassName');
+$page::$action='';
+// var_dump(MGabCont::CallSt('DFilterAllfields'));
+?>
+<h3><?php echo __('@'.$page.' heading title edit'); ?></h3>
+
+<div class="box_uniq block_form">
+ <?php echo tep_draw_form('page', $page::FILENAME, 'action=importfile' , 'post', ' enctype="multipart/form-data" ') ?>
+
+
+
+
+ <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
+Choose a file to upload: <input name="uploadedfile" type="file" />
+
+
+
+
+ <ul class="inline">
+ <?php /*foreach(MGabCont::CallSt('DFilterAllfields') as $k=>$item):
+ $clean = substr($k, (strpos($k, '.')+1)); $alias = (isset($item['alias'])? $item['alias'] : $clean); ?>
+ <li class="<?php echo ((bool)(count($_SESSION['filters']['allfields']) <=1 || (string)@$_SESSION['filters']['allfields'][$alias] == 'on')? 'select' : '' ) ?>">
+ <?php echo tep_draw_checkbox_field('filters[listfield]['.$alias.']', 'filters[listfield]['.$alias.']', 'on', (bool)(count($_SESSION['filters']['allfields']) <=1 || (string)@$_SESSION['filters']['allfields'][$alias] == 'on')); ?>
+ <?php echo (is_array($item)? $item['text'] : $item ) ?>
+ </li>
+ <?php endforeach;*/ ?>
+ </ul>
+
+
+ <dt class="button_nav block_input" style="width:95%;">
+ <?php
+ echo tep_image_submit('', __('image import'));
+ ?>
+ <?php echo tep_js_back(tep_href_link($page::FILENAME, 'cID=' . $page::$Info->id), IMAGE_CANCEL); ?>
+ </dt>
+
+
+
+ </form>
+ </div>
\ No newline at end of file
Modified: trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/gabarit/attributes/display_view.options.inline.gab 2015-04-07 08:08:55 UTC (rev 5258)
@@ -33,8 +33,8 @@
<td> <?php echo $Ovalues["products_options_values_name"]; ?> </td>
<td class="row_action">
<span class="view fils ">
- <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=edit' , 'NONSSL') . '">'; ?><?php echo tep_image(DIR_WS_ICONS.'icon_edit.png', IMAGE_UPDATE); ?></a>
- <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=delete_confirm', 'NONSSL') , '">'; ?><?php echo tep_image(DIR_WS_ICONS.'icon_delete.png', IMAGE_DELETE); ?></a>
+ <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=edit' , 'NONSSL') . '">'; ?><?php echo tep_image(CsrtAction::getFullPathIcon('edit'), IMAGE_UPDATE); ?></a>
+ <?php echo '<a class="buttonimg fancy" href="' . tep_href_link(attributes::FILENAME, 'type=values&poID='.attributes::$poID.'&povID=' . $Ovalues['products_options_values_id'].'&action=delete_confirm', 'NONSSL') , '">'; ?><?php echo tep_image(CsrtAction::getFullPathIcon('delete'), IMAGE_DELETE); ?></a>
</span>
</td>
<?php }?>
Modified: trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/gabarit/attributes/display_view.values.edit.gab 2015-04-07 08:08:55 UTC (rev 5258)
@@ -26,7 +26,7 @@
</p>
<p class="block_input">
<label for="products_date_available"><?php echo __('legend opt thumbail'); ?></label>
- <?php echo '<a class="button browser" href="#" image", '').'">'.tep_draw_input_field('products_options_values_thumbnail[' . attributes::$languages[$i]['id'] . ']', 'products_options_values_thumbnail_' . attributes::$languages[$i]['id'], attributes::$poIDInfo->products_options_values_thumbnail[attributes::$languages[$i]['id']]).tep_image(DIR_WS_ICONS . 'icon_browser.png', PARCOURIR_SERVER).'</a>' ; ?>
+ <?php echo '<a class="button browser" href="#" image", 'options').'">'.tep_draw_input_field('products_options_values_thumbnail[' . attributes::$languages[$i]['id'] . ']', 'products_options_values_thumbnail_' . attributes::$languages[$i]['id'], attributes::$poIDInfo->products_options_values_thumbnail[attributes::$languages[$i]['id']]).tep_image(DIR_WS_ICONS . 'icon_browser.png', PARCOURIR_SERVER).'</a>' ; ?>
</p>
</div>
<?php endfor; ?>
Modified: trunk/catalog/admin/includes/gabarit/orders/edit.tab.detail.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/orders/edit.tab.detail.gab 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/gabarit/orders/edit.tab.detail.gab 2015-04-07 08:08:55 UTC (rev 5258)
@@ -20,6 +20,7 @@
<table class="dataTableBase orders">
<thead>
<tr>
+ <th></th>
<?php if(_cst_bool('MODULE_ACCOUNT_RETURN_PRODUCTS_STATUS')): ?>
<th><?php echo __('table heading return'); ?></th>
<?php endif; ?>
@@ -38,16 +39,19 @@
</thead>
<tbody>
- <?php for ($i=0, $n=sizeof(orders::$Info->products); $i<$n; $i++): ?>
+ <?php foreach(orders::$Info->products as $prod): /*var_dump($prod['parent_id']);*/ /*print_r($prod);*/// ($i=0, $n=sizeof(orders::$Info->products); $i<$n; $i++): ?>
<tr>
+
+ <td class="tcenter"><?php echo (($prod['parent_id'] =='0' )? '' : $prod['parent_id'] ) ?></td>
+
<?php if(_cst_bool('MODULE_ACCOUNT_RETURN_PRODUCTS_STATUS')): ?>
<td><?php
//BEGIN RMA MODULE
- $returns_check_query = tep_db_query("SELECT r.rma_value, rp.products_id FROM " . TABLE_RETURNS . " r, " . TABLE_RETURNS_PRODUCTS_DATA . " rp where r.returns_id = rp.returns_id and r.order_id = '" . orders::$Id . "' and rp.products_id = '" . orders::$Info->products[$i]['id'] . "' ");
+ $returns_check_query = tep_db_query("SELECT r.rma_value, rp.products_id FROM " . TABLE_RETURNS . " r, " . TABLE_RETURNS_PRODUCTS_DATA . " rp where r.returns_id = rp.returns_id and r.order_id = '" . orders::$Id . "' and rp.products_id = '" . $prod['id'] . "' ");
if (!tep_db_num_rows($returns_check_query)){
- if (orders::$Info->products[$i]['return'] != '1') {
- $return_link = '<a href="' . tep_href_link(FILENAME_RETURN_PRODUCT, 'order_id=' . orders::$Id . '&products_id=' . (orders::$Info->products[$i]['id']), 'NONSSL') . '">' . tep_image(DIR_WS_ICONS .'icon_rma_return.png', TEXT_SHEDULE_RETURN ).'</a>';
+ if ($prod['return'] != '1') {
+ $return_link = '<a href="' . tep_href_link(FILENAME_RETURN_PRODUCT, 'order_id=' . orders::$Id . '&products_id=' . ($prod['id']), 'NONSSL') . '">' . tep_image(DIR_WS_ICONS .'icon_rma_return.png', TEXT_SHEDULE_RETURN ).'</a>';
}
// if (orders::$Infos_status !=DEFAULT_ORDERS_STATUS_COMPLETED ) $return_link = '';
} else {
@@ -59,32 +63,34 @@
<?php endif; ?>
<td class="tcenter">
<strong>
- <a href="<?php echo tep_href_link(FILENAME_PRODUCTS, 'action=edit&pID='.orders::$Info->products[$i]['id']) ?>"><?php echo orders::$Info->products[$i]['id'] ?></a>
+ <a href="<?php echo tep_href_link(FILENAME_PRODUCTS, 'action=edit&pID='.$prod['id']) ?>"><?php echo (($prod['parent_id'] =='0' )? '' : ' ' ). $prod['id'] ?></a>
</strong>
</td>
<td class="tleft">
<span class="fleft">
- <a href="#" class="screenshot" rel="<?php echo tep_href_link('document.php', 'mod=img&typ=product&w=200&h=200&id='.orders::$Info->products[$i]['id']) ?>">
- <?php echo orders::$Info->products[$i]['name'] ?>
+ <a href="#" class="screenshot" rel="<?php echo tep_href_link('document.php', 'mod=img&typ=product&w=200&h=200&id='.$prod['id']) ?>">
+ <?php echo (($prod['parent_id'] =='0' )? '' : ' ' ). $prod['name'] ?>
</a>
</span>
- <span><?php echo tep_draw_attribute_products(orders::$Info->products[$i]['attributes'],orders::$Info->products[$i]['qty'], orders::$Info->info['currency'], orders::$Info->info['currency_value']); ?></span>
+ <span><?php echo tep_draw_attribute_products($prod['attributes'],$prod['qty'], orders::$Info->info['currency'], orders::$Info->info['currency_value']); ?></span>
</td>
- <td class="tcenter"><?php echo orders::$Info->products[$i]['model'] ?></td>
- <td class="tcenter"><?php echo $price->format(orders::$Info->products[$i]['final_price'], true, orders::$Info->info['currency'], orders::$Info->info['currency_value']) ?></td>
- <td class="tcenter"><?php echo $price->format(tep_add_tax(orders::$Info->products[$i]['final_price'], orders::$Info->products[$i]['tax']), true, orders::$Info->info['currency'], orders::$Info->info['currency_value']) ?></td>
- <td class="tcenter"><?php echo tep_display_tax_value(orders::$Info->products[$i]['tax']) . '%' ?></td>
+ <td class="tcenter"><?php echo $prod['model'] ?></td>
+ <td class="tcenter"><?php echo $price->format($prod['final_price'], true, orders::$Info->info['currency'], orders::$Info->info['currency_value']) ?></td>
+ <td class="tcenter"><?php echo $price->format(tep_add_tax($prod['final_price'], $prod['tax']), true, orders::$Info->info['currency'], orders::$Info->info['currency_value']) ?></td>
+ <td class="tcenter"><?php echo tep_display_tax_value($prod['tax']) . '%' ?></td>
<td class="tcenter">
<?php
/** TODO Integrer update
Integrer Etat des stocks courant si stock actif */
?>
- <?php echo orders::$Info->products[$i]['qty'] ?>
+ <?php echo $prod['qty'] ?>
</td>
- <td class="tright"><?php echo $price->format(orders::$Info->products[$i]['final_price'] * orders::$Info->products[$i]['qty'], true, orders::$Info->info['currency'], orders::$Info->info['currency_value']) ?></td>
- <td class="tright"><?php echo $price->format(tep_add_tax(orders::$Info->products[$i]['final_price'], orders::$Info->products[$i]['tax']) * orders::$Info->products[$i]['qty'], true, orders::$Info->info['currency'], orders::$Info->info['currency_value']) ?></td>
+ <td class="tright"><?php echo (($prod['parent_id'] > 0 )? '' : $price->format($prod['final_price'] * $prod['qty'], true, orders::$Info->info['currency'], orders::$Info->info['currency_value'])) ?></td>
+ <td class="tright"><?php echo (($prod['parent_id'] > 0 )? '' : $price->format(tep_add_tax($prod['final_price'], $prod['tax']) * $prod['qty'], true, orders::$Info->info['currency'], orders::$Info->info['currency_value'])) ?></td>
</tr>
- <?php endfor; ?>
+ <?php endforeach; ?>
+
+
<!-- Block Total -->
<?php for ($i = 0, $n = sizeof(orders::$Info->totals); $i < $n; $i++) { ?>
Modified: trunk/catalog/admin/includes/gabarit/package/display_view.package.listing.gab
===================================================================
--- trunk/catalog/admin/includes/gabarit/package/display_view.package.listing.gab 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/gabarit/package/display_view.package.listing.gab 2015-04-07 08:08:55 UTC (rev 5258)
@@ -26,7 +26,7 @@
<thead>
<tr>
<th> </th>
- <th> </th>
+<!-- <th> </th> -->
<th><?php echo __('table heading nom') ?></th>
<th><?php echo __('table heading description') ?></th>
<th><?php echo __('table heading level') ?></th>
@@ -38,7 +38,7 @@
<tfoot>
<tr>
<td style="width:2%;"> </td>
- <td style="width:2%;"> </td>
+<!-- <td style="width:2%;"> </td> -->
<td style="width:12%;"><?php echo tep_draw_input_field('title','title',__('table heading nom'),'style="width:100%" class="search_init"'); ?></td>
<td style="width:60%;"><?php echo tep_draw_input_field('description','description',__('table heading description'),'style="width:100%" class="search_init"'); ?></td>
<td style="width:5%;"><?php echo tep_draw_input_field('level','level',__('table heading level'),'style="width:100%" class="search_init"'); ?></td>
Modified: trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt
===================================================================
--- trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt 2015-03-19 09:27:40 UTC (rev 5257)
+++ trunk/catalog/admin/includes/languages/fr_FR/modules/pages/attributes.txt 2015-04-07 08:08:55 UTC (rev 5258)
@@ -14,6 +14,8 @@
$lang['heading title option value delete']="Supprimer une valeur d'option" ;
$lang['heading title add option delete']="Supprimer une option" ;
+$lang['heading title']="Création attribut produits" ;
+
$lang['table heading id']="ID" ;
$lang['table heading product']="Nom du produit" ;
$lang['table heading opt name']="Nom de l'option" ;
Added: trunk/catalog/admin/includes/modules/categories/categories_extra.php
===================================================================
--- trunk/catalog/admin/includes/modules/categories/categories_extra.php (rev 0)
+++ trunk/catalog/admin/includes/modules/categories/categories_extra.php 2015-04-07 08:08:55 UTC (rev 5258)
@@ -0,0 +1,271 @@
+<?php
+/**
+ @licence GPL 2005-2014 The osCSS developers - osCSS Open Source E-commerce
+ @package oscss-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 06/01/2014, 11:28
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @file categories_extra.php
+ @dir admin/includes/modules/categories/
+*/
+
+error_reporting(E_ALL);
+require_once(DIR_FS_ADMIN . DIR_WS_CLASSES .'ModOne.php');
+/**
+ @class categories_extra
+ @brief This module is use generic fields, not use for fields content one owner (for epf_special_mod is null )
+*/
+class categories_extra
+ Extends ModOne
+ implements InterfaceModule{
+ /**
+ @var code, name classe
+ */
+ public $code;
+ /**
+ @var title
+ */
+ public $title;
+ /**
+ @var string , description
+ */
+ public $description;
+ /**
+ @var position for user module
+ */
+ public $sort_order;
+ /**
+ @var object
+ */
+ public static $cInfo;
+
+ /**
+ @brief constructor
+ */
+ function __construct(){
+ /* name current classes */
+ $this->code = __CLASS__;...
[truncated message content] |
|
From: <os...@us...> - 2015-03-19 09:27:41
|
Revision: 5257
http://sourceforge.net/p/oscss/svn/5257
Author: oscim
Date: 2015-03-19 09:27:40 +0000 (Thu, 19 Mar 2015)
Log Message:
-----------
Add listener class for Pid id string product
Added Paths:
-----------
trunk/catalog/common/classes/cart/CartPidFormat.class.php
Added: trunk/catalog/common/classes/cart/CartPidFormat.class.php
===================================================================
--- trunk/catalog/common/classes/cart/CartPidFormat.class.php (rev 0)
+++ trunk/catalog/common/classes/cart/CartPidFormat.class.php 2015-03-19 09:27:40 UTC (rev 5257)
@@ -0,0 +1,199 @@
+<?php
+/**
+ @licence GPL 2005-2015 The osCSS developers - osCSS Open Source E-commerce
+ @package oscss-2 <www http://www.oscss.org>
+ @version 2.2.0
+ @date 2015-03-18 10:44:22
+ @author oscim <mail aur...@os...> <www http://www.oscim.fr>
+ @encode UTF-8
+ @brief Formated Pid for support other extends in cart
+ Use for attribute, bundle, master products ...
+*/
+
+
+
+class CartPidFormat {
+
+ /**
+ @var pid int value id of products
+ */
+ public $pid ;
+
+ /**
+ @var string name product completed by attribute and other option
+ */
+ protected $_extends;
+ /**
+ @var string name product completed by attribute and other option
+ */
+ protected $_id_string;
+ /**
+ @var
+ */
+ protected $_separator = '____';
+
+ /**
+ @brief constructor
+ */
+ public function __construct(){
+ $args = func_get_args();
+ $list = $args[0];
+
+ $this->reset();
+ if ( count($list) > 0 ) {
+ $this->pid = (int)$list[0];
+
+ $this->SetExtends('attribute', $list[1]);
+ $this->SetExtends('parent', $list[2]);
+ $this->FixFormatIdString();
+ }
+ }
+
+ /**
+ @brief reset
+ */
+ function reset(){
+ $this->pid = 0;
+ $this->_extends = array();
+ $this->_id_string='';
+ }
+
+ /**
+ @brief init object for extract all data based on string id coded for transport data
+ @return none
+ */
+ public function SetIdString($uprid){
+ $this->reset();
+
+ preg_match('#^(.*)'.$this->_separator.'(.*)#i', $uprid, $match);
+
+ if(isset($match[1]))
+ $this->SetExtends('parent', $match[1]);
+
+ if(isset($match[2]))
+ $pieces = explode('{', $match[2]);
+ else
+ $pieces = explode('{', $uprid);
+
+ if (is_numeric((int)$pieces[0]) && (int)$pieces[0] > 0 )
+ $this->pid = (int)$pieces[0];
+ else
+ return false;
+
+ $attrib=array();
+ for($i=1, $m=count($pieces); $i< $m ; $i++ ){
+ $r=explode('}', $pieces[$i]);
+ $attrib[$r[0]]=(is_array($r[1])? implode(',',$r[1]) :$r[1] );
+ }
+
+ if( count($attrib) > 0 )
+ $this->SetExtends('attribute', $attrib);
+
+
+
+ $this->FixFormatIdString();
+ }
+
+ /**
+ @brief Set other data
+ @return none
+ */
+ protected function SetExtends($Name, $value){
+ $this->_extends[$Name] = $value;
+ }
+
+ /**
+ @brief Get other data
+ @param $Name string name of data
+ @return false || sub data (object, array, string)
+ */
+ public function GetExtends($Name){
+ if(!isset($this->_extends[$Name]))
+ return false;
+
+ return $this->_extends[$Name] ;
+ }
+
+ /**
+ @brief Get string id product composed data
+ @return id string
+ */
+ public function GetIdString(){
+ return $this->_id_string ;
+ }
+
+ /**
+ @brief Get Id int product
+ @return int id
+ */
+ public function GetId(){
+ return $this->pid ;
+ }
+
+
+
+
+ /**
+ @brief Return a product ID with attributes
+ */
+ function FixFormatIdString() {
+
+ $uprid = '';
+ if( ($prev = $this->GetExtends('parent') ) && $prev != false)
+ $uprid .= $prev.'____';
+
+
+// ($parent_id!=0)?$parent_id.'_':'').
+
+ $uprid .= $this->GetId();
+
+
+ if( ($params = $this->GetExtends('attribute') ) && $params != false)
+ if ( (is_array($params)) && (!strstr($prid, '{')) ) {
+
+ while (list($option, $value) = each($params)) {
+ $val = '';
+ if( !is_array($value) )
+ $val .= htmlspecialchars(stripslashes(trim($value)) , ENT_QUOTES);
+ else{
+ foreach($value as $row)
+ if( is_array($row) )
+ $val.='§'.implode(',',$row).'§,';
+ else
+ $val.=$row.',';
+
+ $val = substr($val,0,-1);
+ }
+ //CLR 030714 Add processing around $value. This is needed for text attributes.
+ $uprid = $uprid . '{' . $option . '}' . $val;
+ }
+ }
+ // else {
+ // $uprid = htmlspecialchars(stripslashes(trim($value)) , ENT_QUOTES);
+ // }
+
+ $this->_id_string = $uprid;
+ }
+
+ /**
+ @brief Clean id product and Return
+ remove product with attributes information
+ @param $uprid string (14{1}1)
+ @return int product id Or false
+ */
+ function GetIdStringPid($uprid) {
+ if (is_numeric($this->pid)) return $this->pid;
+ else return false;
+ }
+
+ /**
+ Converti un $uprid en array des attributs
+ */
+ public function GetPidStringArray($uprid){
+ if( ($attrib = $this->GetExtends('attribute') ) && $attrib != false)
+ return $attrib;
+
+ return false;
+ }
+}
+?>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-03-03 10:43:18
|
Revision: 5256
http://sourceforge.net/p/oscss/svn/5256
Author: oscim
Date: 2015-03-03 10:43:10 +0000 (Tue, 03 Mar 2015)
Log Message:
-----------
Fix extdns shopping_cart_action class
Modified Paths:
--------------
trunk/catalog/includes/application_top.php
Modified: trunk/catalog/includes/application_top.php
===================================================================
--- trunk/catalog/includes/application_top.php 2015-02-14 06:40:55 UTC (rev 5255)
+++ trunk/catalog/includes/application_top.php 2015-03-03 10:43:10 UTC (rev 5256)
@@ -16,8 +16,10 @@
/// start the timer for the page parse time log
define('PAGE_PARSE_START_TIME', microtime());
+// debug tool to replace dump_var
+// usage : d($page);
+// require_once 'includes/kint/Kint.class.php';
-
/// Set the local configuration parameters - mainly for developers
if (file_exists('includes/local/configure.php')) include('includes/local/configure.php');
elseif (!file_exists('includes/configure.php')) {
@@ -27,24 +29,17 @@
if (OSCSS_DEBUG == true) {
- // debug tool to replace dump_var
- // usage : d($page);
- include_once '../dev/kint/Kint.class.php';
-
$oscss_debug_infos = array();
error_reporting(-1);
} else {
-
-
- /// set the level of error reporting
+ /// set the level of error reporting
ini_set("error_reporting",E_ALL & ~E_NOTICE);
ini_set("display_errors","1");
ini_set("log_errors", "0" );
error_reporting(0);
}
-
+
-
// call Config Class And Init
require(DIR_FS_CATALOG.DIR_WS_COMMON_CLASSES . 'Config.php');
$Cfg = Config::getInstance((object)$conf);
@@ -377,7 +372,12 @@
if ($session_started == false)
tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
- $CartAction=new shopping_cart_action($cart);
+ $classactioncart = 'shopping_cart_action';
+ $cl = '_'.preg_replace('#.*_#i', '', $_GET['action']) ;
+ if( class_exists($classactioncart.$cl) )
+ $classactioncart = $classactioncart.$cl;
+
+ $CartAction=new $classactioncart($cart);
if( $CartAction->AcceptAction($_GET['action']) )
$CartAction->init( $_GET['action']);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <os...@us...> - 2015-02-14 06:40:58
|
Revision: 5255
http://sourceforge.net/p/oscss/svn/5255
Author: oscim
Date: 2015-02-14 06:40:55 +0000 (Sat, 14 Feb 2015)
Log Message:
-----------
Fix bug reste dev
Modified Paths:
--------------
trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php
Modified: trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php
===================================================================
--- trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php 2015-02-13 09:37:49 UTC (rev 5254)
+++ trunk/catalog/admin/includes/classes/drivers/sqlcategorie.php 2015-02-14 06:40:55 UTC (rev 5255)
@@ -241,8 +241,6 @@
// if(in_array(false, $res) )
// $error++;
- print_r($error);
- exit;
if( $error > 0){
$DB->rollbackTransaction();
return false;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|