Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Seperate Pricing Per Customer, Problems with products_new.ph


krs

Recommended Posts

After implementing PriceMod 3.3 i get and parse error in the products_new.php module.

 

I just can't see what it is. Has anyone come across this as well ?

 

It is this bit that makes the trouble:

 

catalog/includes/modules/products_new.php

 

Around line 26

 

Replace:

 

$products_price = $currencies->display_price($products_new_array[$i]['price'], tep_get_tax_rate($products_new_array[$i]['tax_class_id']));

 

With:

 

global $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_price_query = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . $products_new_array[$i]['id'] . "' and customers_group_id = '" . $customer_group['customers_group_id'] . "'");

if ( $customer_group['customers_group_id'] != 0) {

if ($customer_group_price = tep_db_fetch_array($customer_group_price_query)) {

$products_price = $currencies->display_price($customer_group_price['customers_group_price'], tep_get_tax_rate($products_new_array[$i]['tax_class_id']));

} else {

$products_price = $currencies->display_price($products_new_array[$i]['price'], tep_get_tax_rate($products_new_array[$i]['tax_class_id'])

}

} else {

$products_price = $currencies->display_price($products_new_array[$i]['price'], tep_get_tax_rate($products_new_array[$i]['tax_class_id'])

}

 

It ONLY say "Parse error". Not hinting if a ".,; or other is expected... :-(

 

I'm running on a snapshot from around Juli 2002. Maybe i need to update something other ?

 

Kristian in Denmark

Link to comment
Share on other sites

Hi again.

 

I found the source of error myself :-)

 

But i suspect others must have the same problem, because it is the PriceMod 3.3 it self.

 

2 ");" is missing...

 

Here is how it should look like:

 

global $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_price_query = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . $products_new_array[$i]['id'] . "' and customers_group_id = '" . $customer_group['customers_group_id'] . "'");

if ( $customer_group['customers_group_id'] != 0) {

if ($customer_group_price = tep_db_fetch_array($customer_group_price_query)) {

$products_price = $currencies->display_price($customer_group_price['customers_group_price'], tep_get_tax_rate($products_new_array[$i]['tax_class_id']));

} else {

$products_price = $currencies->display_price($products_new_array[$i]['price'], tep_get_tax_rate($products_new_array[$i]['tax_class_id']));

}

} else {

$products_price = $currencies->display_price($products_new_array[$i]['price'], tep_get_tax_rate($products_new_array[$i]['tax_class_id']));

}

 

Any comments ?

 

Kristian

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

on admin/catagories.php when I try to edit a product, in the place of the price input box I get the following

 

1146 - Table 'eximvaios_catalog.table_products_groups' doesn't exist



select customers_group_id, customers_group_price from TABLE_PRODUCTS_GROUPS where products_id = '17' and customers_group_id = '1' order by customers_group_id



[TEP STOP]

 

I have deleted and create the the products_group a million times.

 

 

I do not know what i am doing wrong...is it the way I created the tables? do they have to be linked?...or is something in the code that throws thinks off...

 

I do have linda's attribute handler...(and fix the separate price code to incorporate it with Linda's)

 

 

....any help on this is appreciated

Link to comment
Share on other sites

  • 1 month later...

hmm i have got a problem to with thies....

i have got products in my catalog and everything shows up right untill you click on the product (details) and the price is 0,00 .

when adding the product to the basket it shows the rigth price

 

anybody got a clou :?:

 

Regards

Link to comment
Share on other sites

  • 1 month later...

Kristian,

 

Implemented your ); code for the products_new.php bug and everything works! This was the last error that I had.

Just wanted to drop you a note and to say THANK YOU!

 

Price per customer is an excellent contribution!

Someone just needs to pull all the bug fixes into one place.

Just as a note running on osc 2.2-MS1.

 

Thanks Again.

If only I could remember that.

Link to comment
Share on other sites

I've installed the PriceMod 3.3 contribution

http://www.oscommerce.com/community/contributions,716

 

But I've noticed an anomaly in the database. The installation instructions say:

Add to the customers table:

customers_group_name (char 27) Default value: Retail

customers_group_id (int 11) Default value: 0

 

Why are both the group_name and group_id in the customers table?

 

This isn't normalized. Wouldn't it be better to have a new customer_groups table with fields

customers_group_id (int 11) Default value: 0

customers_group_name (char 27) Default value: Retail

 

And customers table would contain only the field customers_group_id.

 

The way it works now, someone could enter "retail" as a customer type, and it would be treated as a separate group name than the default with a leading capital ("Retail").

 

-Matt

Link to comment
Share on other sites

I don't know the osc rules on coding :?

Yes it might be better to do that way. But the way it is the user can not change the group that the admin assigned them to. Only the admin can set the customer groups and customers within the group.

If only I could remember that.

Link to comment
Share on other sites

  • 4 weeks later...

Huh. Well, I admit defeat with this mod. I'm running MS2 and have three groups setup, retail, member and admin but the same price is showing for all three groups.

 

I'm pretty sure the problem is in my product_info.php. Here's what I have:

 

 	 global $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_price_query = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_group_id =  '" . $customer_group['customers_group_id'] . "'");

	 if ( $customer_group['customers_group_id'] != 0) {

    if ($customer_group_price = tep_db_fetch_array($customer_group_price_query)) {

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

    } else {

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

   }

	 } else {

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

    }

Roadracing makes heroin addiction look like a vague wish for something salty.

Link to comment
Share on other sites

I dunno. I might be the only one trying to get it to work under MS2.

 

And that's not easy given my low PHP/MySQL knowledge. But I'm willing to sacrifice for the betterment of the community! :D

Roadracing makes heroin addiction look like a vague wish for something salty.

Link to comment
Share on other sites

hmm i have got a problem to with thies....

i have got products in my catalog and everything shows up right untill you click on the product (details) and the price is 0,00 .

when adding the product to the basket it shows the rigth price

 

anybody got a clou :?:

 

Regards

 

I have the same problem with the default (Retail) values showing as 0.00 in the product details. I thought it was just me!

 

Steve Haney

EWI Web Design

Link to comment
Share on other sites

No problem, try

 

<?php

/*

 $Id: product_info.php,v 1.97 2003/07/01 14:34:54 hpdl Exp $



 osCommerce, Open Source E-Commerce Solutions

 http://www.oscommerce.com



 Copyright (c) 2003 osCommerce



 Released under the GNU General Public License

*/



 require('includes/application_top.php');



 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);



 $product_check_query = tep_db_query("select count(*) as total 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_check = tep_db_fetch_array($product_check_query);

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<title><?php echo TITLE; ?></title>

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

<link rel="stylesheet" type="text/css" href="stylesheet.css">

<script language="javascript"><!--

function popupWindow(url) {

 window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizab
le=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=1
50')

}

//--></script>

</head>

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

<!-- header //-->

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

<!-- header_eof //-->



<!-- body //-->

<table border="0" width="100%" cellspacing="3" cellpadding="3">

 <tr>

   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

<!-- left_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

<!-- left_navigation_eof //-->

   </table></td>

<!-- body_text //-->

   <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">

<?php

 if ($product_check['total'] < 1) {

?>

     <tr>

       <td><?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?></td>

     </tr>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>

     <tr>

       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

         <tr class="infoBoxContents">

           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

             <tr>

               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

               <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>

               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

             </tr>

           </table></td>

         </tr>

       </table></td>

     </tr>

<?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, 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 = 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 ($new_price = tep_get_products_special_price($product_info['products_id'])) {

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

   } else {

     global $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_price_query = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_group_id =  '" . $customer_group['customers_group_id'] . "'");

if ( $customer_group['customers_group_id'] != 0) {

 if ($customer_group_price = tep_db_fetch_array($customer_group_price_query)) {

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

 } else {

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

   }

} else {

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

 }

   }



   if (tep_not_null($product_info['products_model'])) {

     $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>';

   } else {

     $products_name = $product_info['products_name'];

   }

?>

     <tr>

       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">

         <tr>

           <td class="pageHeading" valign="top"><?php echo $products_name; ?></td>

           <td class="pageHeading" align="right" valign="top"><?php echo $products_price; ?></td>

         </tr>

       </table></td>

     </tr>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>

     <tr>

       <td class="main">

<?php

   if (tep_not_null($product_info['products_image'])) {

?>

         <table border="0" cellspacing="0" cellpadding="2" align="right">

           <tr>

             <td align="center" class="smallText">

<script language="javascript"><!--

document.write('<?php echo '<a href="javascript:popupWindow('' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');

//--></script>

<noscript>

<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>

</noscript>

             </td>

           </tr>

         </table>

<?php

   }

?>

         <p><?php echo stripslashes($product_info['products_description']); ?></p>

<?php

   $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");

   $products_attributes = tep_db_fetch_array($products_attributes_query);

   if ($products_attributes['total'] > 0) {

?>

         <table border="0" cellspacing="0" cellpadding="2">

           <tr>

             <td class="main" colspan="2"><?php echo TEXT_PRODUCT_OPTIONS; ?></td>

           </tr>

<?php

     $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");

     while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {

       $products_options_array = array();

       $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");

       while ($products_options = tep_db_fetch_array($products_options_query)) {

         $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);

         if ($products_options['options_values_price'] != '0') {

           $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';

         }

       }



       if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {

         $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];

       } else {

         $selected_attribute = false;

       }

?>

           <tr>

             <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>

             <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td>

           </tr>

<?php

     }

?>

         </table>

<?php

   }

?>

       </td>

     </tr>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>

<?php

   $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");

   $reviews = tep_db_fetch_array($reviews_query);

   if ($reviews['count'] > 0) {

?>

     <tr>

       <td class="main"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></td>

     </tr>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>

<?php

   }



   if (tep_not_null($product_info['products_url'])) {

?>

     <tr>

       <td class="main"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td>

     </tr>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>

<?php

   }



   if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {

?>

     <tr>

       <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td>

     </tr>

<?php

   } else {

?>

     <tr>

       <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td>

     </tr>

<?php

   }

?>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>

     <tr>

       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

         <tr class="infoBoxContents">

           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

             <tr>

               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

               <td class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?></td>

               <td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td>

               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

             </tr>

           </table></td>

         </tr>

       </table></td>

     </tr>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>

     <tr>

       <td>

<?php

   if ((USE_CACHE == 'true') && empty($SID)) {

     echo tep_cache_also_purchased(3600);

   } else {

     include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);

   }

 }

?>

       </td>

     </tr>

   </table></form></td>

<!-- body_text_eof //-->

   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

<!-- right_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>

<!-- right_navigation_eof //-->

   </table></td>

 </tr>

</table>

<!-- body_eof //-->



<!-- footer //-->

<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>

<!-- footer_eof //-->

<br>

</body>

</html>

<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

Thorsten

Link to comment
Share on other sites

To all,

 

I found a solution to the $0.00 problem, at least for my cart. I have two prices for each item: Retail and Wholesale.

 

My settings were:

Retail: customers_group_id = 0

Wholesale: customers_group_id = 1

 

 

The problems were:

 

With no customer logged in, the prices in the details list were showing $0.00.

With Retail user logged in, prices in the details list were showing $0.00.

With Wholesale user logged in, Wholesale prices in the details list were correct.

 

To correct the problem:

 

For all "Wholesale" users, change the Wholesale customers_group_id = 2.

For all "Retail" users, change the Retail customers_group_id = 1.

 

Using phpMyAdmin, do as follows:

 

Select "customers" table then clicked on "Browse".

Click on "Insert new row".

 

Add user "Guest" in the "customers" table and only set these values:

Set "customers_firstname" to "Guest".

If not already the default, set "customers_group_name" to "Retail".

If not already the default, set "customers_group_id" to "1".

Click on "Go" to save the entry.

Click on "Edit" for the new "Guest" row.

Set "customers_id" to "0".

Click on "Go" to save the entry.

 

Now the "Guest, customer 0", which is not logged in, will have the Retail prices.

 

I still don't know how to fix the problem of only the "Retail" prices showing on the product list pages. Hope someone else has an answer for that one.

 

Post any questions you have about these instructions. I'm a definite PHP newbie so no guarantees. And I'm sure there is probably a better way to do this.

 

Steve Haney

EWI Web Design

Link to comment
Share on other sites

Are you all still having problems after the 3.5 version of this contribution? If you are, let me know. I made the last updates and have a few more coming. If there are any bugs or problems left to be fixed, I will do my best to take a look for you.

Link to comment
Share on other sites

Also,

 

The SP mod seems to like having customers_group_id = 0 as a default, and that default usually maps to the 'Retail' group. Changing those group numbers around and NOT HAVING A DEFAULT might break other parts of the code. Be careful with that fix.

 

Loxly and I are working on an unpdated version of Easy Populate to support this newer version of SP. Keep watching.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...