Aiuto piccola modifica a WEB 2.0 Scrolling New Products

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

Rispondi
ohm
membro Junior
membro Junior
Messaggi: 2
Iscritto il: 08/12/2008, 19:06

Aiuto piccola modifica a WEB 2.0 Scrolling New Products

Messaggio da ohm »

Ciao ragazzi,

innanzitutto grazie a tutti per condividere la vostra esperienza, ho imparato molto da voi!

Ad ogni modo, mi sono addentrato nel mondo OSC e avendo un problema o meglio una necessità, chiedo il vostro aiuto.

Ho installato questa contribution:

http://addons.oscommerce.com/info/5669

La sua funzione è quella di avere il box novità scorrevole.

Il problema è che questa contribution è fatta per "puntare" un solo listino, avendo su questo negozio due listini separati (retail e rivenditori), avrei necessità che puntasse i due listini diversi (in base al tipo di utente loggato) e il listino retail in caso l'utente non fosse loggato.

Ho provato in ogni modo, cercando di recuperare il codice da altre contribution non scorrevoli che però hanno questa funzione "multilistino", ma credo proprio che la questione sia aldilà delle mie (limitata) capacità.

Ho anche tentato, come prova estrema, di eliminare il prezzo visualizzato nel box ma non sono riuscito neanche in questo.

Allego il codice originale della contibution.

Spero qualcuno possa aiutarmi!

Codice: Seleziona tutto

<?php
/*
  BPAS, Opensource osCommerce contribution
  http://www.bpas.co.nz

  Copyright (c) 2003 BPAS New Zealand Limited

  Released under the GNU General Public License
*/
?>
<!-- specials //-->
          <tr>
            <td>
            <?php
$rp_query = tep_db_query("select distinct products.products_id,products_description.products_name, products.products_image, products.products_tax_class_id, products.products_price from " . TABLE_PRODUCTS . ",products_description where products.products_status = '1' AND products_description.products_id = products.products_id order by products_date_added desc limit 10");

  if (tep_db_num_rows($rp_query)) {

	$i = 0;
    while ($random_product = tep_db_fetch_array($rp_query)) {
	$pausecontent_np[$i] = "<center><a href=\'" . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $random_product["products_id"]) . "\'>" . tep_image(DIR_WS_IMAGES . $random_product['products_image'], tep_output_string($random_product['products_name'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>', '&' => '&')), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . "</a><br/><a href=\'" . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $random_product['products_id']) . "\'>" . tep_output_string($random_product['products_name'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>', '&' => '&')) . "</a><br/>";
	if (intval($random_product['specials_new_products_price']) > 0) {
		$pausecontent_np[$i] .= "<s>" . $currencies->display_price($random_product['products_price'], tep_get_tax_rate($random_product['products_tax_class_id'])) . "</s><br/><span class=\'productSpecialPrice\'>" . $currencies->display_price($random_product['specials_new_products_price'], tep_get_tax_rate($random_product['products_tax_class_id']))."</span></center><br/><br/>";
    } else {
		$pausecontent_np[$i] .= $currencies->display_price($random_product['products_price'], tep_get_tax_rate($random_product['products_tax_class_id'])) . "<br/></center><br/><br/>";
    }
		$i++;
    }

?>
<?php
  }
?>
<script type="text/javascript">
//<![CDATA[
/* merge server php and client javascript arrays */
var pausecontent_np=new Array();
<?php
$i = 0;
while ($pausecontent_np[$i]) {
	echo "pausecontent_np[".$i."] = '".$pausecontent_np[$i]."';
	
";
	$i++;
}
?>
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
function pausescroller(content, divId, divClass, delay){
this.content=content //message array content
this.tickerid=divId //ID of ticker div to display information
this.delay=delay //Delay between msg change, in miliseconds.
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
this.hiddendivpointer=1 //index of message array for hidden div
document.write('<div id="'+divId+'" class="'+divClass+'" style="position: relative; display:block; overflow: hidden;"><div class="innerDiv" style="position: absolute; width: 100%;" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: relative; width: 100%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')
var scrollerinstance=this
if (window.addEventListener) //run onload in DOM2 browsers
window.addEventListener("load", function(){scrollerinstance.initialize()}, false)
else if (window.attachEvent) //run onload in IE5.5+
window.attachEvent("onload", function(){scrollerinstance.initialize()})
else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
setTimeout(function(){scrollerinstance.initialize()}, 500)
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function(){
this.tickerdiv=document.getElementById(this.tickerid)
this.visiblediv=document.getElementById(this.tickerid+"1")
this.hiddendiv=document.getElementById(this.tickerid+"2")
this.visibledivtop=parseInt(pausescroller.getCSSpadding(this.tickerdiv))
//set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivtop*2)+"px"
this.getinline(this.visiblediv, this.hiddendiv)
this.hiddendiv.style.visibility="visible"
var scrollerinstance=this
document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1}
document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0}
if (window.attachEvent) //Clean up loose references in IE
window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null})
setTimeout(function(){scrollerinstance.animateup()}, this.delay)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateup=function(){
var scrollerinstance=this
if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+5)){
this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-5+"px"
this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-5+"px"
setTimeout(function(){scrollerinstance.animateup()}, 50)
}
else{
this.getinline(this.hiddendiv, this.visiblediv)
this.swapdivs()
setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
}
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

pausescroller.prototype.swapdivs=function(){
var tempcontainer=this.visiblediv
this.visiblediv=this.hiddendiv
this.hiddendiv=tempcontainer
}

pausescroller.prototype.getinline=function(div1, div2){
div1.style.top=this.visibledivtop+"px"
div2.style.top=Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

pausescroller.prototype.setmessage=function(){
var scrollerinstance=this
if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it)
setTimeout(function(){scrollerinstance.setmessage()}, 100)
else{
var i=this.hiddendivpointer
var ceiling=this.content.length
this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1
this.hiddendiv.innerHTML=this.content[this.hiddendivpointer]
this.animateup()
}
}

pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
if (tickerobj.currentStyle)
return tickerobj.currentStyle["paddingTop"]
else if (window.getComputedStyle) //if DOM2
return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
else
return 0
}

//new pausescroller(pausecontent, "pscroller1", "someclass", 2000);
//]]>
</script>
<?php
$scroller = "<script type='text/javascript'>new pausescroller(pausecontent_np, 'pscroller_np', 'pscroller_c_np', 2000);</script>";

    $info_box_contents = array();
    $info_box_contents[] = array('text' => BOX_HEADING_NEW_PRODUCTS);
    new customInfoBoxHeading($info_box_contents, false, false, tep_href_link(FILENAME_PRODUCTS_NEW), 'whats_new');

    $info_box_contents = array();
    $info_box_contents[] = array('align' => 'right',
                                 'text' => $scroller);

    new customInfoBox($info_box_contents, 'id="whats_new"', 'left');
?>
            </td>
          </tr>
<!-- specials_eof //-->
dynamo
membro Master
membro Master
Messaggi: 1976
Iscritto il: 13/11/2007, 17:47
Contatta:

Re: Aiuto piccola modifica a WEB 2.0 Scrolling New Products

Messaggio da dynamo »

guarda il pezzo di codice della pagina products_info.php per la visualizzazione del prezzo e sostituiscilo nel box ;)
www.vinidimo.it

visitate e criticate se è il caso... solo con le critiche posso migliorarlo ^_^
ohm
membro Junior
membro Junior
Messaggi: 2
Iscritto il: 08/12/2008, 19:06

Re: Aiuto piccola modifica a WEB 2.0 Scrolling New Products

Messaggio da ohm »

Grazie della risposta!

Ho visto su product_info ma è un bel po' di codice e non riesco ad estrapolarlo in modo corretto per integrarlo nel codice che ho postato sopra.

Ecco il codice relativo ai prezzi su product_info, qualche suggerimento?

Grazie!

Codice: Seleziona tutto

<?php
} else {
	//$product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, p.products_image_extra1, p.products_image_extra2, p.products_image_extra3, p.products_image_extra4, p.products_image_extra5, p.products_image_extra6, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
	//$product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
	$product_info_query = tep_db_query("select p.*, pd.* from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");

	$product_info = tep_db_fetch_array($product_info_query);

	tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");


	if (isset($_SESSION['customer_id']) && !isset($_SESSION['noaccount'])) {

		$customer_id = $_SESSION['customer_id'];

		$customer_group_query = tep_db_query("select customers_group_id from " . TABLE_CUSTOMERS . " where customers_id =  '" . $customer_id . "'");
		$customer_group = tep_db_fetch_array($customer_group_query);
		$customer_group_id = $customer_group['customers_group_id'];

		if ( $customer_group_id > 0) {

			$customer_group_price_query = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id']. "' and customers_group_id =  '1'");
			if ($customer_group_price = tep_db_fetch_array($customer_group_price_query)) {
				$public_product_price = $customer_group_price['customers_group_price'];
				$public_product_price_s = '<s>' .  $currencies->display_price($public_product_price,  tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s>';
			}

			$customer_group_price = array();
			$scustomer_group_price_query = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id']. "' and customers_group_id =  '" . $customer_group_id . "'");
			if ($scustomer_group_price = tep_db_fetch_array($scustomer_group_price_query)) {
				$product_info['products_price'] = $scustomer_group_price['customers_group_price'];
			}

			$yousave_public_price = $currencies->display_price($public_product_price - $product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']), 1, true) . ' (' . number_format(100 - (($product_info['products_price'] / $public_product_price) * 100)) . '%)';
		}

	} else {

		$scustomer_group_price_query = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id']. "' and customers_group_id = 1");
		if ($scustomer_group_price = tep_db_fetch_array($scustomer_group_price_query)) {
			$product_info['products_price'] = $scustomer_group_price['customers_group_price'];
		}
	}


	if ($new_price = tep_get_products_special_price($product_info['products_id'])) {

		$special_prod_price = true;

		$products_price_s = $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id']));
		$products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s>';

		$yousave_price = $currencies->display_price($product_info['products_price'] - $new_price, tep_get_tax_rate($product_info['products_tax_class_id']), 1, true) . ' (' . number_format(100 - (($new_price / $product_info['products_price']) * 100)) . '%)';


		if ((PRICES_LOGGED_IN == 'true') && (!(isset($_SESSION['customer_id']) && !isset($_SESSION['noaccount'])))) {
			$product_price_s_show = ('<a href="' . tep_href_link(FILENAME_LOGIN, '','SSL') . '">'  . PRICES_LOGGED_IN_SUBMIT . '</a> ' );
			$product_price_show = ('<a href="' . tep_href_link(FILENAME_LOGIN, '','SSL') . '">'  . PRICES_LOGGED_IN_SUBMIT . '</a> ' );
			$yousave_price_show = ('<a href="' . tep_href_link(FILENAME_LOGIN, '','SSL') . '">'  . PRICES_LOGGED_IN_SUBMIT . '</a> ' );
		}  else  {
			$product_price_s_show = $products_price_s;
			$product_price_show = $products_price;
			$yousave_price_show = $yousave_price;
		}

	} else {

		$special_prod_price = false;

		$products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));


		if ((PRICES_LOGGED_IN == 'true') && (!(isset($_SESSION['customer_id']) && !isset($_SESSION['noaccount'])))) {
			$product_price_show = ('<a href="' . tep_href_link(FILENAME_LOGIN, '','SSL') . '">'  . PRICES_LOGGED_IN_SUBMIT . '</a> ' );
		}  else  {
			$product_price_show = $products_price;
		}

	}
	//B2BSUITE end
Rispondi