Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Virtual Mall 1.2 Support Thread


ecartz

Recommended Posts

Humm almost got it running. When i got to check out i get this error:

 

 

Parse error: parse error in /home/velond5/public_html/catalog/checkout_process.php on line 222

 

I pulled up from section 215 to 232 of my checkout_process.php:

 

 

//------insert customer choosen option eof ----

    $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);

    $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    $total_cost += $total_products_price;

 

    $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";

  $store_index = $order->products[$i]['store_id']

    if (!is_array($store_totals[$store_index])) {

      $store_totals[$store_index] = array();

      $store_totals[$store_index]['store_id'] = $store_index;

    }

 

//------- Stuff the store array with the data needed to create individual store emails------

    $store_totals[$store_index]['store_products'] .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";

    $store_totals[$store_index]['store_weight'] += ($order->products[$i]['qty'] * $order->products[$i]['weight']);    $store_totals[$store_index]['store_tax'] += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    $store_totals[$store_index]['store_cost'] += $total_products_price;  }

 

  }

 

The line that is giving it the error is: " if (!is_array($store_totals[$store_index])) {"

 

I also tried changing the file to this setup:

 

 

//------insert customer choosen option eof ----

    $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);

    $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    $total_cost += $total_products_price;

 

    $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";

  }

 

  $store_index = $order->products[$i]['store_id']

    if (!is_array($store_totals[$store_index])) {

      $store_totals[$store_index] = array();

      $store_totals[$store_index]['store_id'] = $store_index;

    }

 

//------- Stuff the store array with the data needed to create individual store emails------

    $store_totals[$store_index]['store_products'] .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";

    $store_totals[$store_index]['store_weight'] += ($order->products[$i]['qty'] * $order->products[$i]['weight']);    $store_totals[$store_index]['store_tax'] += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    $store_totals[$store_index]['store_cost'] += $total_products_price;  }

 

But it gave the same error on the same line. Any ideas ?

 

Thanks agian guys.

Link to comment
Share on other sites

  • Replies 80
  • Created
  • Last Reply

Top Posters In This Topic

Thank you Matt, I changed that and had to take out an extra "}" the code looks like this now and it worked !!!

 

 

//------insert customer choosen option eof ----

    $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);

    $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    $total_cost += $total_products_price;

 

    $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";

 

    $store_index = $order->products[$i]['store_id'];

    if (!is_array($store_totals[$store_index])) {

      $store_totals[$store_index] = array();

      $store_totals[$store_index]['store_id'] = $store_index;

    }

 

//------- Stuff the store array with the data needed to create individual store emails------

    $store_totals[$store_index]['store_products'] .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";

    $store_totals[$store_index]['store_weight'] += ($order->products[$i]['qty'] * $order->products[$i]['weight']);    $store_totals[$store_index]['store_tax'] += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    $store_totals[$store_index]['store_cost'] += $total_products_price;

 

}

 

// lets start with the email confirmation

 

Now... the last thing i need to figure out, how do i make it so insted of seeing one big store i can access the catalog and front page of one store at a time. :)

Link to comment
Share on other sites

I need help! I really tried my best to follow all the instructions to the letter, but obviously I failed. I get the following errors:

 

admin gives me this error:

 

1146 - Table 'c2c_oscommerce.administrators' doesn't exist

 

select administrators_allowed_pages from administrators where administrators_id = ''

 

[TEP STOP]

 

 

catalog gives me this error:

 

1146 - Table 'c2c_oscommerce.products' doesn't exist

 

select count(*) as total from products p, products_to_categories p2c where p.products_id = p2c.products_id and p.products_status = '1' and p2c.categories_id = '1'

 

[TEP STOP]

 

Help!

Ronda

Link to comment
Share on other sites

hello ronda, well since i've made such use of these boards in the last few days lets see if i can help you in return. Did you use these instructions

 

http://www.ecorey.com/mall_instr_update_plus_admin.txt

 

or the original ones with this contribution ?

 

If you used the original txt just get a clean copy of oscom and of virtual mall and use the instructions in this link above. They will get you a bit further and if you run in to any more problems just post again and i'll try to help.

Link to comment
Share on other sites

Hey thanks Yari Gio, I found your problem in my administrator script, and fixed it in the instructions posted here.

 

Basically, the line:

 

INSERT INTO administrators VALUES ( '1', 'admin', '21232f297a57a5a743894a0e4a801fc3', '*');

 

needs to be:

 

INSERT INTO administrators VALUES ( '1', '1', 'admin', '21232f297a57a5a743894a0e4a801fc3', '*');

 

I've updated the instructions, does anyone have any more fixes it to it before I add it to the contribution files?

Link to comment
Share on other sites

Yari Gio, also, this contribution does not create seperate stores, though it can be configured to.

 

What virtual mall really does, is create one store that many vendors can use together basically.

 

In the end you end up with a mall of stores so to speak, but only one real store and one look.

 

People have used it that way, but you need a lot of work still for that I think. You would need to brand it somehow also, so that each store owner could use their logo and stuff.

 

I seen another contribution called Multi-shop, and it does do that, but it's so clunky and I think you have to have multiple installs for each store or something.

Link to comment
Share on other sites

Hi all, okay, I got the install to work great now with the new instructions above. (Updated 5/15/04)

 

But still have a problem with the admin permissions. When I log in with an admin account restricted to one store I see all store products and can edit them.

 

Anyway have some "Detailed" information on what is likely not in the correct spot?

 

The system is working though, when I login I get only the allowed modules, like Catolog, so it realizes the restricted account, it just doesn't realize that only certain products should be displayed.

 

Also, is it required that I make top level catagories for each store? I tried it of course but that didn't fix the permission issue, but I'd rather not have store names for categories, just categories, that all my store owners (Admins, can use together.)

 

Thanks in advance.

con4mity

 

P.S. Is anywone still developing this contribution? I'd like to really tune it up.

Link to comment
Share on other sites

I thank con4mity for all his help,

 

I did want to expland one the administration change he made just with my own discovery i had found since con4mity asked me to post this :D

 

I noticed several things it does not seam that the last part actualy runs for the admin portion of the oscommerce.slq. Let me explan when install everything as per the new instructions i can not log in. So i looked at myphpadmin and noticed that the products table did not have a `store_id` line in it. So what i did was try to run via my myphpadmin just the first section:

 

 

QUOTE?

DROP TABLE IF EXISTS administrators;

CREATE TABLE administrators (

? administrators_id int(11) DEFAULT '0' NOT NULL auto_increment,

? store_id int(11) DEFAULT '0' NOT NULL,

? administrators_username varchar(20) NOT NULL,

? administrators_password varchar(40) NOT NULL,

? administrators_allowed_pages varchar(255) DEFAULT '*' NOT NULL,

? PRIMARY KEY (administrators_id)

);

 

INSERT INTO administrators VALUES ( '1', 'admin', '21232f297a57a5a743894a0e4a801fc3', '*');

 

 

 

BUT that would not run and the error it gave me was that:

 

 

QUOTE?

INSERT INTO administrators VALUES ( '1', 'admin', '21232f297a57a5a743894a0e4a801fc3', '*');

 

 

 

did not match the line or something. So what i then tried was doing:

 

 

 

QUOTE?

DROP TABLE IF EXISTS administrators;

CREATE TABLE administrators (

? administrators_id int(11) DEFAULT '0' NOT NULL auto_increment,

? administrators_username varchar(20) NOT NULL,

? administrators_password varchar(40) NOT NULL,

? administrators_allowed_pages varchar(255) DEFAULT '*' NOT NULL,

? PRIMARY KEY (administrators_id)

);

 

INSERT INTO administrators VALUES ( '1', 'admin', '21232f297a57a5a743894a0e4a801fc3', '*');

 

 

 

and that worked and then i did...

 

 

QUOTE?

ALTER TABLE `administrators` ADD `store_id` INT( 11 ) DEFAULT '0' NOT NULL ;

 

 

 

kind of like in the old instructions and then that worked. After i did that i was able to run the rest of the script:

 

 

QUOTE?

DROP TABLE IF EXISTS stores;

CREATE TABLE stores (

? store_id int NOT NULL auto_increment,

? store_name varchar(40) NOT NULL,

? store_image varchar(64),

? store_owner_fname varchar(25) NOT NULL,

? store_owner_lname varchar(30) NOT NULL,

? store_email_address varchar(40) NOT NULL,

? store_add_one varchar(50) NOT NULL,

? store_add_two varchar(50),

? store_city varchar(30) NOT NULL,

? store_state varchar(15) NOT NULL,

? store_zipcode varchar(10) NOT NULL,

? store_country varchar(30) NOT NULL,

? store_telephone varchar(15) NOT NULL,

? store_fax varchar(15),

? date_added datetime,

? last_modified datetime,

? PRIMARY KEY (store_id)

);

 

INSERT INTO stores VALUES (1, 'High Tide Aquatics', '', 'Joe', 'Smith', '[email protected]', '1234 Anywhere St.', '', 'Location', 'Co', '12345', 'USA', '5551212', '', now(), now());

 

 

ALTER TABLE `products` ADD `store_id` INT( 11 ) DEFAULT '1' NOT NULL AFTER `manufacturers_id` ;

ALTER TABLE `orders_products` ADD `store_id` INT( 11 ) NOT NULL AFTER `orders_id` ;

 

INSERT INTO `configuration` ( `configuration_id` , `configuration_title` , `configuration_key` , `configuration_value` , `configuration_description` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function`

) VALUES (

'', 'E-Mail Address for Category Changes', 'CATEGORIES_EMAIL_ADDRESS', 'root@localhost', 'The E-Mail Address to which store owners will email any needed category changes.', '1', '25', '2004-02-27 20:39:56', 'NOW()', NULL , NULL

);

 

 

But with the change that con4mity mentioned in the post above things should be all right now.

Edited by Yari Gio
Link to comment
Share on other sites

Okay, I'm down to one last glitch on this.

 

My administrative system is working completely. When they login they get catalogs and reports, which is what I want, but, they also get a list of all the categories and products, and if they go in at this point they can edit everyones products, not matter what category.

 

If they click the link to Products, under the Category menu on the left they then see the "My Products" page which has all the categories but only products for the administrator currently logged in. Great!!

 

So how to do I get the system to not show that inital Categories/Product Page, or better, how to take them directly to the "My Products" page.

 

Thanks in advance.

Link to comment
Share on other sites

Okay, I got that working also. I just have one last issue, and then I'm going to pack all my changes into a final working zip.

 

I just did a test on the catalog making a purchase from many different shops, and only the top store gets notified.

 

Where can I look to fix this, or does anyone have any ideas?

 

Or which step did I goof on?

 

Thanks,

Link to comment
Share on other sites

Sorry, that's not exactly correct. It's sending confirmation to the buyer, the administrator, but not the store owners. Someone please give me hint what I did wrong, I would think that was the whole purpose of:

 

// now send emails to each individual store owner showing purchases from their shops

 

$missing_store = '';

reset($store_totals);

while(list($si) = each($store_totals)){

$store_info_query = tep_db_query("SELECT store_owner_fname, store_owner_lname, store_email_address FROM " . TABLE_STORES . " where store_id = '" . $store_totals[$si]['store_id'] . "'");

$store_info = tep_db_fetch_array($store_info_query);

if (is_array($store_info)) {

$email_order = STORE_NAME . "\n" .

EMAIL_SEPARATOR . "\n" .

EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .

EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";

if ($order->info['comments']) {

$email_order .= $order->info['comments'] . "\n\n";

}

$email_order .= EMAIL_TEXT_PRODUCTS . "\n" .

EMAIL_SEPARATOR . "\n" .

$store_totals[$si]['store_products'] .

EMAIL_SEPARATOR . "\n";

$email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" . EMAIL_SEPARATOR . "\n" . tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n\n";

if (is_object($$payment)) {

$email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .

EMAIL_SEPARATOR . "\n";

$payment_class = $$payment;

$email_order .= $payment_class->title . "\n\n";

if ($payment_class->email_footer) {

$email_order .= $payment_class->email_footer . "\n\n";

}

}

 

tep_mail($store_info['store_owner_fname'] . ' ' . $store_info['store_owner_lname'], $store_info['store_email_address'], EMAIL_TEXT_SUBJECT, nl2br($email_order), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');

} else {

$missing_store .= STORE_MISSING . $store_totals[$si]['store_id'] . "\n";

}

}

 

Can you tell me when that is triggered, or what I'm doing wrong?

 

Thanks, again. (Man all these responses! hehe) :P

Link to comment
Share on other sites

Man this is a lot of me talking to me isn't it. lol

 

Well it's working. I was wrong about the email that works great.

 

Infact my system is now completely tweaked.

 

Any have any issues with me packaging it all up nice with one set of instructs, and calling version 2.3?

Link to comment
Share on other sites

ecartz, this one is for you. How can we get the system to deal better deal with the multiple stores single invoice situation because it doesn't seem to work out in the shipping area.

 

The shipping doesn't calculate the different vendor locations. I'm wondering if we can some how work that in? Otherwise one of the vendors is going to not get paid for shipping there won't be enough.

Link to comment
Share on other sites

I would call an update version 1.2a or something like that, since it would be bug fixes rather than new functionality.

 

In terms of shipping, my suggested solution would be to include shipping in the product price or implement the individual shipping contribution. Other solutions are possible but not simple (for example, shipping could conceivably be calculated per store with different methods per store).

 

Hth,

Matt

Always back up before making changes.

Link to comment
Share on other sites

Okay, 1.2a sounds great!

 

But I have I've added a bunch of functionality. I've added administrator level redirection, and 3 new administrator areas including my_customers, my_orders, and my_account.

 

my_customers is just a store_id driven customer list like the orginal, while my_orders, which is a store_id driven list of orders, also implements order tracking, my_account, is a preference page with additional financial information, like how much sales per store_id, how much money they have on their account from sales, and the ability to cash it out, or spend it.

 

The my_account is like a little paypal backend. I'm providing the transaction for all sales, meaning I have to eventually pay the vendor, this way, they can pay themselves, plus I can automatically pay myself a commision per transaction.

 

Hey what's your name and email, I'm adding a little history information to the install.txt and I know the 1.0 developer, but not 1.2.

 

And did you take a peak at my install.txt? It's the link in one of the other posts. It documents some of the changes/ fixes I made to your code, but I don't know if maybe it couldn't be done better.

 

Also, I'm considering a rewrite for a version 3. The one thing I don't like about this version is that I'm forced to alter the oscommerce table structure, and that's not good.

 

Would you be willing to work with me on a variation of exactly what you have but is modular rather than intrusive? We could do this very easily buy changing the store table name to manufacturers_store, and using manufacturers_id instead of store_id. This would actually kill the whole manufacturers system, but in a mall setting you don't want to be manufacturer oriented, you want to be store oriented.

 

Going this route would make the manufacturer the actual store owner or vendor, we don't change any tables, we just add the new one with old store setup, then we don't have to really make a lot of code changes.

 

What do you think about that, or working with me on that?

 

Thanks man. Also, I'm a GNU lover so I'm not looking for any credit, I just really need this to work for my site.

 

Later!

Link to comment
Share on other sites

Going this route would make the manufacturer the actual store owner or vendor, we don't change any tables, we just add the new one with old store setup, then we don't have to really make a lot of code changes.
I would consider that to be an alternative version rather than an update. You might want to check with John and see what he thinks.

 

I'll send you an email separately (I don't like posting my email address on web sites; however, my email link does work).

 

Cheers,

Matt

Always back up before making changes.

Link to comment
Share on other sites

John said, in an email 2 weeks ago that he isn't doing much with it anymore, and outside of you I'm not sure if anyone else is.

 

This situation works really great for my setup; which is,

 

My Manufactures became Store Members (members) (I don't really need Manufacturers on my site as they don't pay me advertising anyways) so I created a new table called manufacturer_stores, and then I also created manufacturer_administrator these being very much like what you had already, except I no longer have to insert any store_id type stuff. I just have to add the web docs for the store and administrator areas in the admin. No biggy right.

 

I also wanted to a my_orders page for each member, (I really like your my_products idea so I staid with that.) which, on mine anyway, is going to be a semi-ebay selling manager system, only in that each owner can manage each order from start to finish, purchased, payment received, shipped, and so forth.

 

This takes another table I think, so as to not have to alter the original tables anyway, one that is mostly just event time stamps, manufacturer_id, and order_id.

 

So what do you think, 2 - 3 days? lol

Link to comment
Share on other sites

Just a note I found an error in my removal of the product table updates in oscommerce.sql I've updated the readme file. Its's still here: http://www.ecorey.com/mall_instr_update_plus_admin.txt

 

Also, as discussed I'm creating a modular version of this system, and some additional functionality based around the store owner. This new version eliminates the Manufacturer idea in that I use those tables for my store owner info.

 

I didn't want my site to have manufacturers anyway, I wanted it to have stores. It seemed like free advertising for them. Anyway,

 

Virtual Mall 1.2 was done very well so what I did was fairly simple. I just convert it's administrator and stores tables to manufacturers_admin and manu..ers_store which eliminated all the store_id inserts, since manufacturers_id is already everywhere.

 

Virtual Mall 1.2 also introduced, I think, the my_products.php system which I expanded upon a bit with future exspansion also available as modules or direct.

 

I have my_orders, my_customers, my_prefrences in different states of completedness. <-- Is that a word? Anyway,

 

This file is here if you want to check it out. Please contribute to this system as I believe it has some great potential.

 

Also note, I've been asked by Virtual Mall 1.2 author ecartz to release this as a different version, which I really hate to do. I mean if not for 1.2 this wouldn't be here. But I'm calling if, for now, Modular Virtual Mall 0.1b - and I'm aiming to release Version 1, without any help, on June 1, with a little help, sooner with a couple people it could be done over the weekend. :) Right John, ecartz? :P

 

Check it out: http://www.ecorey.com/Modular_VM_README.txt

Edited by con4mity
Link to comment
Share on other sites

ecartz,

 

As a side note, I think if you take a close look at my read me and see just how close my system is to your system and how 90% of this release is from your release, so far anyway, until the rest of the my_store pages are done.

 

Unless of course you don't like the method of dealing with the stores, or you have a need for the manufacturers tables already.

 

Do you think that's a big deal using them this way? I've looked at a lot of oscommerce sites and it seems like no one really uses this feature anyway.

 

But if you do, for whatever reason want to work on this too, I'd love to keep calling it Virtual Mall, but I don't want to infringe on you. I want to work on it. But what you have is great also, my site is using your method, while I get the new one tweaked and released.

 

I think we should tweak them both, if acceptable, and just have to versions, modular and non-modular. I say this because I can see that maybe some stores would want to use the manufacturers tables as they were designed to use, but since our implementation is exact, development could really be applied to both, then the user can decide which version to install.

 

What do you think?

Link to comment
Share on other sites

It may help to know that the original concept that I had for this was an online Art Gallery (a project on which I was actually working at one point). In that case, it is reasonable to use the Manufacturer field to store Artist info. The store then could be a separate seller (dealer, agent, etc.). The same issue arises with, for example, a used book store (manufacturer stores author info). Thus my reluctance to hack up the manufacturers' tables into stores' tables in my version of the contribution.

 

The same issue arose with the Products Attributes - Option Type Feature contribution and the File Upload contribution. The file upload contribution actually includes the entire Option Type Feature contribution, but it is still uploaded separately, as Chandra did not feel that all of the existing users would want the added complexity of the File Upload code.

 

Hth,

Matt

Always back up before making changes.

Link to comment
Share on other sites

That makes sense, and I knew starting out that many wouldn't want to lose the mfg system.

 

I think, I'm going to drop the whole thing, unless there is more intrest, mostly because I'm using yours, with just some tiny modification and it works great.

 

But, would you help me add a few more pages to the my_? products area, I just can't figure how to get it in. I need an area atleast that has my_orders based on store_id, that links into the left_column.php from my_products.

 

I copied the orders.php, which is attached strangley is seems to customers.php, so maybe I'll have to have my_customers.php also, which is okay.

 

Any help would be great. If I can get that far I have a nice little order tracking that will add on to it.

Link to comment
Share on other sites

hi all,

 

can some one help please

i am trying to install Virtual Mall Version 1.2 Plus Administrator and after a freash install of OSC i got the following errors :

 

1- after intering the user/pass i get an error

Table 'table_admin_files' doesn't exist

and the same with table 'admin_gorups'

 

however pressing the back button gives me access to the admin/ Configuration screen.

 

i fixed the problem by renaming the tables buy adding the "table_" befor the orginal names. yet i I don't know why it asked for such names.

 

2- in Administration screen when i press the box

BOX_HEADING_MY_ACCOUNT

or

BOX_HEADING_ADMINISTRATOR

 

i get the following error

Parse error: parse error, unexpected T_LNUMBER in c:\inetpub\wwwroot\admin\admin_account.php on line 106

here are the lines from the file from line 102-105

<?php
 $my_account_query = tep_db_query ("select a.admin_id, a.admin_firstname, a.admin_lastname, a.admin_email_address, a.admin_created, a.admin_modified, a.admin_logdate, a.admin_lognum, g.admin_groups_name from " . TABLE_ADMIN . " a, " . TABLE_ADMIN_GROUPS . " g where a.admin_id= " . $login_id . " and g.admin_groups_id= " . $login_groups_id . ");
 $myAccount = tep_db_fetch_array($my_account_query);
?>

 

3 - I don't have a store link in the administrative/configuration/catalog section

i only have products.

 

 

thanks in advance

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