Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Master Products - MS2


Guest

Recommended Posts

Hi Geo,

 

I tried it again... following your directions to the letter, and it's still not working.

 

I will have to find a different solution.

 

Thanks for all your help though. :-)

 

Where did the errors come in? with sts or after you added master/slave? What type of error did you get?

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

The error was due to a conflict with MS2 and STS.

 

I decided to try something different.. I wiped it all clean and did another clean install of osc. I then installed MS2 and got THAT working.

 

Now I'm downloading the files for the working version and will slowly and methodically integrate STS into it... but will be making a backup this time before I do. :-)

Link to comment
Share on other sites

The error was due to a conflict with MS2 and STS.

 

I decided to try something different.. I wiped it all clean and did another clean install of osc. I then installed MS2 and got THAT working.

 

Now I'm downloading the files for the working version and will slowly and methodically integrate STS into it... but will be making a backup this time before I do. :-)

 

You just never know exactly where a problem will come from. Big problem with any contribution is that the author has no idea what other contributions one may have, and of course has no way of debugging their work for any specific setup other than what they are using. That is why almost all major contributions (STS, group pricing, coupons and gift vouchers, and especially easy populate) only give help with a vanilla installation. Once you go past plain vanilla, you get a crash course in php scripting, mySQL database calls and especially in osCommerce. It is even more difficult with Master/Slave contribution which, besides being full of marginal and outdated code, is not a particularly easy install by itself, and very difficult to merge with other contributions. Also, the original author is long gone.

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

  • 2 weeks later...
Hello, I have changed and modified my site quite a bit, so I wouldn't be surprised if noone could help me with my problem, but I'll try anyway. I changed the master listing so that there would be an "add to cart" button next to each slave on the master_listing. This works great, the only problem is the redirect. when you add the slave to the cart.

 

/catalog/product_info.php?products_id=4938&sort=3a&action=buy_now&products_id=4939

 

This works but then it goes to:

/catalog/product_info.php?sort=3a

 

I would like it to redirect back to the master page.

this is the code in master_listing.php that I changed:

 

case 'MASTER_LIST_BUY_NOW':

$lc_align = 'center';

$lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';

break;

can you guys help me?

 

Hi Fatbeatscom,

Exactly what I want!! But unfortunately, whan i "add to cart" one of the slave in the list, it adds the master products only!

 

And if i compare your link roolover on the add to cart button :

/catalog/product_info.php?products_id=4938&sort=3a&action=buy_now&products_id=4939

 

I have only :

/catalog/product_info.php?action=buy_now&sort=2a

 

no slave products id at all!

 

Thanks everybody in advance.

Seb

Osc 2.2 MS2

Link to comment
Share on other sites

Not sure if this contribution will work for me or not.

 

Here is my issue I sell baby items and supplies to make baby items. Some of them are size specific so I would like a "master" item and list all the sizes beneath it. ie small, med large with an add to cart function of the item but only want to pick 1 size. I tried looking in the forum but don't see a fix for this.

 

I have tested MS2 on my xampp test server and it adds all items to the cart even if I change the qty for all but one of the slaves to 0. Is there a way I can change that? if so which file would it be under?

 

I am running SPPC, Minimum qty, QPBPP for SPPC besides the normal fedex, ups and usps modules.

 

any help is greatly appreciated

 

www.madewithlovebymaria.com

Link to comment
Share on other sites

Hi Fatbeatscom,

Exactly what I want!! But unfortunately, whan i "add to cart" one of the slave in the list, it adds the master products only!

 

And if i compare your link roolover on the add to cart button :

/catalog/product_info.php?products_id=4938&sort=3a&action=buy_now&products_id=4939

 

I have only :

/catalog/product_info.php?action=buy_now&sort=2a

 

no slave products id at all!

 

Thanks everybody in advance.

Seb

 

Check the coding in catalog/includes/application_top.php against the coding in the M/S contribution. You may find an error there. What version of osCommerce are you using?

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

Not sure if this contribution will work for me or not.

 

Here is my issue I sell baby items and supplies to make baby items. Some of them are size specific so I would like a "master" item and list all the sizes beneath it. ie small, med large with an add to cart function of the item but only want to pick 1 size. I tried looking in the forum but don't see a fix for this.

 

I have tested MS2 on my xampp test server and it adds all items to the cart even if I change the qty for all but one of the slaves to 0. Is there a way I can change that? if so which file would it be under?

 

I am running SPPC, Minimum qty, QPBPP for SPPC besides the normal fedex, ups and usps modules.

 

any help is greatly appreciated

 

www.madewithlovebymaria.com

 

qpbpp and sppc change so much code, you may not get these 3 working together without a lot of code rewriting and juggling the sequence to perform each operation in the desired sequence. IE: do sppc first, then determine master/slave items, then perform quantity price checks, and when that is done, only then send the resulting information to the shopping cart routines called in catalog/includes/application_top.php.

 

Maybe this will help set you on the path to solve a whole bunch of questions I've seen here. In the meantime, I am still looking for a solution to my original question here, as to whether or not anyone has MS2 and Wishlist working together. Hope someone has some ideas on that subject.

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

Check the coding in catalog/includes/application_top.php against the coding in the M/S contribution. You may find an error there. What version of osCommerce are you using?

 

Hi Geotex,

I'm using MS2. Heavily modified.

I carefully checked the application_top code for Master products but everything seems ok.

I'm not sure it is a Master product issue. May be a SEO problem or smthg else...

 

Seb

Osc 2.2 MS2

Link to comment
Share on other sites

qpbpp and sppc change so much code, you may not get these 3 working together without a lot of code rewriting and juggling the sequence to perform each operation in the desired sequence. IE: do sppc first, then determine master/slave items, then perform quantity price checks, and when that is done, only then send the resulting information to the shopping cart routines called in catalog/includes/application_top.php.

 

Maybe this will help set you on the path to solve a whole bunch of questions I've seen here. In the meantime, I am still looking for a solution to my original question here, as to whether or not anyone has MS2 and Wishlist working together. Hope someone has some ideas on that subject.

 

 

George,

thanks I have it all working together except that instead of allowing me to pick from one slave item ie the size I need it sends all sizes to the shopping cart.

 

Maria

Link to comment
Share on other sites

George,

thanks I have it all working together except that instead of allowing me to pick from one slave item ie the size I need it sends all sizes to the shopping cart.

 

Maria

 

I have some customers using qpbpp and others using M/S, but none using both.

 

Some where you are not updating the array that actually transfers the quantities ordered, only sending the default array with one of each product.

 

I guess you could pm me your catalog/includes/modules/master_listing.php so I could look at it, assuming that there has been changes to handle the quantity pricing. I have had no experience getting qpbpp and ms working together, only know that others have had problems with mixing the 2 contributions.

 

I might be on the wrong track here, as the problem could be with your minimum quantity contribution. It might be as simple as setting minimum quantity for all products to one?????

 

George

Edited by Geotex

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

Dear all

 

 

w ww.portableuniverse.co.uk

 

this has been running with this mod for about 1 year ( great mod by the way )

 

Yestderday I migraetd the site over to a newserver for them with php5 etc sohad to d a few fixes, but i have not had this fault before.

 

It seems the slaves have dropped of the product pages and now you can not add say the laptop to the cart

 

Please help

 

Charly

Charly

 

My fav site

 

Spend most my cash there dont tell the wife:-)

Link to comment
Share on other sites

  • 3 weeks later...
Hi Geotex,

I'm using MS2. Heavily modified.

I carefully checked the application_top code for Master products but everything seems ok.

I'm not sure it is a Master product issue. May be a SEO problem or smthg else...

Seb

Hi,

yes it was a SEO problem. now working fine! ....

Except the the options price for slave products. >_< : They are showed excluded VAT and I want the incl. VAT.

If I put this slave product as a normal one (not master, not slave), the option price is showed included VAT. :blink:

I checked carefully the code in master_listing and it is almost the same as for the regular option code in the product_info. I'm stucked, and try to find a vat problem/answer in this topic, but nothing...

 

Any help would be much appreciated...

 

Seb

Osc 2.2 MS2

Link to comment
Share on other sites

Hi, ok solved the problem with this modification in modules/master_listing.php :

Find : case 'MASTER_LIST_OPTIONS':

and some lines below, replace

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

with

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

 

Solved. :thumbsup:

Seb.

Osc 2.2 MS2

Link to comment
Share on other sites

You just never know exactly where a problem will come from. Big problem with any contribution is that the author has no idea what other contributions one may have, and of course has no way of debugging their work for any specific setup other than what they are using. That is why almost all major contributions (STS, group pricing, coupons and gift vouchers, and especially easy populate) only give help with a vanilla installation. Once you go past plain vanilla, you get a crash course in php scripting, mySQL database calls and especially in osCommerce. It is even more difficult with Master/Slave contribution which, besides being full of marginal and outdated code, is not a particularly easy install by itself, and very difficult to merge with other contributions. Also, the original author is long gone.

 

Geo,

 

I never did get back in here to thank you for your time helping me to get everything working.. this last time (the new fresh install) and utilizing one of the file compare utilities (thanks to your suggestion) did the trick. I also ended up doing the MP install first, then backed up the core files figuring if I screwed something up installing STS, I would return the files back to the server and resign myself to trying to template the site "the hard way".

 

With a little luck (okay, a lot of luck), I managed to get STS working as advertised and have spent the better part of the last month successfully stocking the store with M/S combinations.

 

I have also since added several other contributions (the worst being the QBMS.. Intuit is a *nightmare*) and the store is humming along nicely.

 

So even with all the problems I faced getting this whole thing working, I do have to say that MP and STS are two great contributions and I'm planning another store for another client and will be utilizing both contributions again.

 

One of my personal pet peeves is finding a post/thread in which someone has the exact issue I have then they come back and say "okay, it works now, thanks!" but with no solution given to the general public. Sorry guys and gals, but it was sheer dumb luck that I got everything working...

 

I would recommend that if you are trying to integrate MP and STS into the same store that you install MP first, then STS.. use a file compare utility to make changes, and for your own sanity, back everything up as you go along.

 

Geo.. a million thanks again.

 

Jon

Link to comment
Share on other sites

I am attempting to modify an older contribution to work with Master Products. I currently have x-sell v2.3 up and running and am trying to add the xsell_cart (an add on for x-sell that is supposed to cause the shopping_cart.php page to display matching cross sell items for the products in the shopping cart).

 

My difficulty is that my cross sells are setup on the Master Products. The Master Products are not purchasable - only the slaves are. So in the query I need to somehow get the products_master for the slave products_id that is in the cart - and then I need to populate the x-sell box based on that products_master.

 

However - I do still need to keep track of the slave products_id that is in the cart in order to not display items that are in the shopping cart in the x-sell box.

 

The current code looks like this:

  //Start an array of items being suggested.
 $xsell_contents_array = array();

 //Start to build the HTML that will display the xsell box.
 $xsell_box_contents = '';

 //Go through each item in the cart, and look for xsell products.
 foreach ($products AS $product_id_in_cart) {
//Main XSELL Query
$xsell_query = tep_db_query("SELECT p.products_id, pd.products_name, p.products_image, p.products_price, p.products_tax_class_id FROM  " . TABLE_PRODUCTS . " AS p, " . TABLE_PRODUCTS_DESCRIPTION . " AS pd, " . TABLE_PRODUCTS_XSELL . " AS px WHERE px.products_id = " . $product_id_in_cart['id'] . " AND px.xsell_id = p.products_id AND px.xsell_id = pd.products_id AND p.products_status = '1' AND pd.language_id = '" . (int)$languages_id . "' ORDER BY p.products_ordered DESC");

//Cycle through each suggested product and add to box, if there are none
//go to the next product in the cart.
while ($xsell = tep_db_fetch_array($xsell_query)) {

  //If the xsell item is already being suggested, we don't need
  //to suggest it again.  Keep track of xsell items I've already dealt
  //with.
  if (!in_array($xsell['products_id'], $xsell_contents_array)) {

	//Add this xsell product to the list of xsell products dealt with. 
	array_push($xsell_contents_array, $xsell['products_id']);  

	//If a suggested product is already in the cart, we don't need to
	//suggest it again. 
	if (!$cart->in_cart($xsell['products_id'])) {

 

I was thinking a simple left join somewhere would work - but I can't figure out how to do this as there isn't a products_to_masters type of database table (that I can find). Do I need to instead have one query selecting the products_master from the products table where products_id = product_id_in_cart and then somehow reference the results of that query in the $xsell_query or is it possible to do this in the $xsell query?

 

Any help is greatly appreciated!

~Tracy
 

Link to comment
Share on other sites

My difficulty is that my cross sells are setup on the Master Products. The Master Products are not purchasable - only the slaves are. So in the query I need to somehow get the products_master for the slave products_id that is in the cart - and then I need to populate the x-sell box based on that products_master.

 

Got It!!

 

This is what I did:

	// First we need to get the master_product for the product_id_in_cart
$xsell_master_query = tep_db_query("SELECT products_master FROM " . TABLE_PRODUCTS . " WHERE products_id = " . $product_id_in_cart['id'] . "");
$xsell_master = tep_db_fetch_array($xsell_master_query);

//Main XSELL Query
$xsell_query = tep_db_query("SELECT p.products_master, p.products_id, pd.products_name, p.products_image, p.products_price, p.products_tax_class_id FROM  " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_XSELL . " px WHERE px.products_id = " . $xsell_master['products_master'] . " AND px.xsell_id = p.products_id AND px.xsell_id = pd.products_id AND p.products_status = '1' AND pd.language_id = '" . (int)$languages_id . "'  ORDER BY p.products_ordered DESC");

 

Then in section where links are setup I can change the $xsell['products_id'] to $xsell['products_master'] so that the links properly take the customer to the master page for the slave they are interested in :thumbsup:

 

I also have the "Update" button working to add a quantity of a x-sell product (slave) to the cart by using this line on the includes/modules/xsell_cart.php

 

		  $xsell_box_contents .= '<tr><td class="smallText">Qty: ' . tep_draw_input_field('cart_quantity[]', '', 'size="4"') . tep_draw_hidden_field('products_id[]',  $xsell['products_id']) . '</td>';

 

Now I just have to figure out how to configure it as a normal infobox rather than the old fashioned way it was setup ;)

~Tracy
 

Link to comment
Share on other sites

Got It!!

 

This is what I did:

	// First we need to get the master_product for the product_id_in_cart
$xsell_master_query = tep_db_query("SELECT products_master FROM " . TABLE_PRODUCTS . " WHERE products_id = " . $product_id_in_cart['id'] . "");
$xsell_master = tep_db_fetch_array($xsell_master_query);

//Main XSELL Query
$xsell_query = tep_db_query("SELECT p.products_master, p.products_id, pd.products_name, p.products_image, p.products_price, p.products_tax_class_id FROM  " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_XSELL . " px WHERE px.products_id = " . $xsell_master['products_master'] . " AND px.xsell_id = p.products_id AND px.xsell_id = pd.products_id AND p.products_status = '1' AND pd.language_id = '" . (int)$languages_id . "'  ORDER BY p.products_ordered DESC");

 

Then in section where links are setup I can change the $xsell['products_id'] to $xsell['products_master'] so that the links properly take the customer to the master page for the slave they are interested in :thumbsup:

 

I also have the "Update" button working to add a quantity of a x-sell product (slave) to the cart by using this line on the includes/modules/xsell_cart.php

 

		  $xsell_box_contents .= '<tr><td class="smallText">Qty: ' . tep_draw_input_field('cart_quantity[]', '', 'size="4"') . tep_draw_hidden_field('products_id[]',  $xsell['products_id']) . '</td>';

 

Now I just have to figure out how to configure it as a normal infobox rather than the old fashioned way it was setup ;)

 

That was a whole lot shorter than I envisioned. I think I would have looked at a query to find a list of all the items belonging to a Master, then added them to $xsell_contents_array.

 

George

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

I just installed today and im having a problem with the currencies.php if you go to my main page here. you will see the error message or i will post it here

 

Parse error: parse error, unexpected ';', expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /hsphere/local/home/p47qtx77/ecustomwheels.com/includes/classes/currencies.php on line 87

 

 

here is the currencies.php

 

 

<?php
/*
 $Id: currencies.php,v 1.16 2003/06/05 23:16:46 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

 Copyright © 2003 osCommerce

 Released under the GNU General Public License
*/

////
// Class to handle currencies
// TABLES: currencies
 class currencies {
   var $currencies;

// class constructor
   function currencies() {
     $this->currencies = array();
     $currencies_query = tep_db_query("select code, title, symbol_left, symbol_right, decimal_point, thousands_point, decimal_places, value from " . TABLE_CURRENCIES);
     while ($currencies = tep_db_fetch_array($currencies_query)) {
       $this->currencies[$currencies['code']] = array('title' => $currencies['title'],
                                                      'symbol_left' => $currencies['symbol_left'],
                                                      'symbol_right' => $currencies['symbol_right'],
                                                      'decimal_point' => $currencies['decimal_point'],
                                                      'thousands_point' => $currencies['thousands_point'],
                                                      'decimal_places' => $currencies['decimal_places'],
                                                      'value' => $currencies['value']);
     }
   }

// class methods
   function format($number, $calculate_currency_value = true, $currency_type = '', $currency_value = '') {
     global $currency;

     if (empty($currency_type)) $currency_type = $currency;

     if ($calculate_currency_value == true) {
       $rate = (tep_not_null($currency_value)) ? $currency_value : $this->currencies[$currency_type]['value'];
       $format_string = $this->currencies[$currency_type]['symbol_left'] . number_format(tep_round($number * $rate, $this->currencies[$currency_type]['decimal_places']), $this->currencies[$currency_type]['decimal_places'], $this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point']) . $this->currencies[$currency_type]['symbol_right'];
// if the selected currency is in the european euro-conversion and the default currency is euro,
// the currency will displayed in the national currency and euro currency
       if ( (DEFAULT_CURRENCY == 'EUR') && ($currency_type == 'DEM' || $currency_type == 'BEF' || $currency_type == 'LUF' || $currency_type == 'ESP' || $currency_type == 'FRF' || $currency_type == 'IEP' || $currency_type == 'ITL' || $currency_type == 'NLG' || $currency_type == 'ATS' || $currency_type == 'PTE' || $currency_type == 'FIM' || $currency_type == 'GRD') ) {
         $format_string .= ' <small>[' . $this->format($number, true, 'EUR') . ']</small>';
       }
     } else {
       $format_string = $this->currencies[$currency_type]['symbol_left'] . number_format(tep_round($number, $this->currencies[$currency_type]['decimal_places']), $this->currencies[$currency_type]['decimal_places'], $this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point']) . $this->currencies[$currency_type]['symbol_right'];
     }

     return $format_string;
   }

   function calculate_price($products_price, $products_tax, $quantity = 1) {
     global $currency;

     return tep_round(tep_add_tax($products_price, $products_tax), $this->currencies[$currency]['decimal_places']) * $quantity;
   }

   function is_set($code) {
     if (isset($this->currencies[$code]) && tep_not_null($this->currencies[$code])) {
       return true;
     } else {
       return false;
     }
   }

   function get_value($code) {
     return $this->currencies[$code]['value'];
   }

   function get_decimal_places($code) {
     return $this->currencies[$code]['decimal_places'];
   }

   function display_price($products_price, $products_tax, $quantity = 1) {
     return $this->format($this->calculate_price($products_price, $products_tax, $quantity));
   function display_price($products_price, $products_tax, $quantity = 1) {
if($products_price == '0') {
return '';
} else {
return $this->format(tep_add_tax($products_price, $products_tax) * $quantity);
}
   }
 }
?>

 

Thanks for any help

Link to comment
Share on other sites

I just installed today and im having a problem with the currencies.php if you go to my main page here. you will see the error message or i will post it here

 

Parse error: parse error, unexpected ';', expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /hsphere/local/home/p47qtx77/ecustomwheels.com/includes/classes/currencies.php on line 87

here is the currencies.php

   function get_decimal_places($code) {
     return $this->currencies[$code]['decimal_places'];
   }

   function display_price($products_price, $products_tax, $quantity = 1) {
     return $this->format($this->calculate_price($products_price, $products_tax, $quantity));
   function display_price($products_price, $products_tax, $quantity = 1) {
if($products_price == '0') {
return '';
} else {
return $this->format(tep_add_tax($products_price, $products_tax) * $quantity);
}
   }
 }
?>

 

Thanks for any help

 

I clipped where your error appears to be. replace the stuff above with this:

 

	function get_decimal_places($code) {
  return $this->currencies[$code]['decimal_places'];
}

//Master Products
function display_price($products_price, $products_tax, $quantity = 1) {
	if($products_price == '0') {
	return '';
  }else{		
  return $this->format($this->calculate_price($products_price, $products_tax, $quantity));
  }
}
//Master Products EOF	   
 }
?>

 

hth

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

thanks for your reply i had to uninstall but in the meantime could i ask you guys if this contribution could do this?

 

example: product is a car wheel and the slaves would be diffrent brands of tires 7 or 8 diffrent brands but if they clicked the tires it would just bring up a whole diffrent page of just tires that go with that master and after they selected the tire they like it would go back to the master and then proceed to check out.

 

is this something that has to be programmed or is this contribution may be adapted for it.

Link to comment
Share on other sites

  • 2 weeks later...

Hello can someone please add a demo site with this contrib so we can check it out if it's feet our needs

cuz it's alot of file changes and i don't wanna start doing it if it's not feeding my need.

 

my needs is i need a contrib that i can make like a recipe order.

 

something like that

 

recipe order ( title of master product ) qty most of time should be 1.

 

slaves :

cakes ( title categoriy )

1. chees cake

2. chees cake with almonds

bread ( title categoriy )

1. chees bread

2. almond bread with garlic.

 

and so on.

 

like that makes a recipe order.

all of that order has a price limit of like 400$ min.

 

i could do it in this contrib or something alike ?

Link to comment
Share on other sites

  • 2 weeks later...

Hello.

 

This is my first post on this forum and first of all I'd like to thank you all for the great work you do.

 

I've recently installed Master Products MS2 and it looks like it's working :) Great Contribution.

 

I would like to use one slave for many different masters, and the slave should have different "default" quantities for different masters, so I can create packages of many products. In this contribution the default quantity is "1" and I have no idea how to control thos quantities while adding slaves to masters. I also would like the customers to be able to change those quantities to whatever they want.

 

This is very important in my website so I would realy appreciate any help.

 

Any ideas??? :'(

 

Thanks.

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...