Zen Cart Logo

hideCategories

Views: 104,787

Results 321 to 340 of 487
09 Jul 2011, 03:11
#321
triple_moon_ranch avatar

triple_moon_ranch

New Zenner

Join Date:
Feb 2008
Posts:
15
Plugin Contributions:
0

hideCategories

I have also now imported the sql with phpadmin still the same result. No change in store admin catagories when you go to edit.

If anyone has run across this please give me a clue as to what I need to do to make this work?

Thanks in advance,
Suzanne:frusty:

09 Jul 2011, 04:52
#322
triple_moon_ranch avatar

triple_moon_ranch

New Zenner

Join Date:
Feb 2008
Posts:
15
Plugin Contributions:
0

Re: hideCategories

I'm going to stop posting, LOL. Every time I finally get to the point where I ask for help I find out what I have done wrong just a little while later.

It helps If you put the files where the directions tell you too.

Sorry for posting out of stupidness.

Suzanne:oops:

09 Jul 2011, 07:13
#323
triple_moon_ranch avatar

triple_moon_ranch

New Zenner

Join Date:
Feb 2008
Posts:
15
Plugin Contributions:
0

Re: hideCategories

I just installed this and it does work great! However it does overwrite product_listing.php which is also used for the Column Layout Grid mod. I love these both and have tried to winmerge them but it still messes with the Column Layout Grid.

Can anyone tell me how to fix the issue?

I just don't know enough to fix something like this. I would love to use both of these contributions but as it stands now i guess I'm going to have to make a choice between them.:no:

Suzanne

11 Jul 2011, 03:37
#324
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: hideCategories

triple Moon Ranch:

I just installed this and it does work great! However it does overwrite product_listing.php which is also used for the Column Layout Grid mod. I love these both and have tried to winmerge them but it still messes with the Column Layout Grid.

Can anyone tell me how to fix the issue?

I just don't know enough to fix something like this. I would love to use both of these contributions but as it stands now i guess I'm going to have to make a choice between them.:no:

Suzanne
This thread truly is not the place to troubleshoot what really amounts to something that is NOT an issue with this mod at all, but an issue with HOW to properly merge the files this mod and another mod have in common.. If you are unable to correctly make the changes, my suggestion is to give some thought to paying someone to help you with this file merge and be done with it.. Otherwise you will have to decide between the two mods..:blush:

03 Aug 2011, 05:26
#325
pazaz avatar

pazaz

New Zenner

Join Date:
May 2007
Posts:
47
Plugin Contributions:
0

Re: hideCategories

Hi Im using Hide Categories 2.0 and I use it to hide all the category folders BUT I would still like to allow the normal zencart search option.

Would it be difficult to modify the code to allow the searching and where would I start :)

Great contribution by the way...

07 Aug 2011, 16:50
#326
adowty avatar

adowty

New Zenner

Join Date:
Jan 2011
Posts:
16
Plugin Contributions:
0

Re: hideCategories

Hi Guys,

Hide Categories is just what we need to be able to manage the update of huge numbers of products from multiple vendors and hide new categories while they are being worked on. I see that several sideboxes have been fixed so that hide categories will work with them. I need to try to make it work with the CSS dropdown menu and the CSS flyout menu.

After looking the files up and down, I have determined that the file in classes called category_ul_generator.php (which is used by both mods) is where the hide categories code should be inserted, but I am having a hard time getting it to work.

The file appears to run through the list of categories from the database in a while loop. A series of conditionals determines whether it is a upper listing or a list item, then it builds a list with the ul and li tags programmatically inserted.

I guess I need to rewrite the existing query to the database:

function zen_categories_ul_generator() {
global $languages_id, $db, $request_type;
$this->server = ((ENABLE_SSL == true && $request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER);
$this->base_href = ((ENABLE_SSL == true && $request_type == 'SSL') ? DIR_WS_HTTPS_CATALOG : DIR_WS_CATALOG);
$this->data = array();
$categories_query = "select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd " .
"where c.categories_id = cd.categories_id and c.categories_status=1 and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'" .
"order by c.parent_id, c.sort_order, cd.categories_name";
$categories = $db->Execute($categories_query);

To indclude the info requested by the hide categories query:

list($nada, $mycpath)= split('=', $box_categories_array[$i]['path']);

$mycid = split('_', $mycpath);

$categories_id = array_pop($mycid);

$hide_status = $db->Execute("select visibility_status

FROM " . TABLE_HIDE_CATEGORIES . "

WHERE categories_id = " . $categories_id . "

LIMIT 1");

so it gets all the information for each category at one time.

Then insert a conditional in this while loop that causes it to skip any hidden category or category whose parent is hidden.

while (!$categories->EOF) {
$products_in_category = (SHOW_COUNTS == 'true' ? zen_count_products_in_category($categories->fields['categories_id']) : 0);
$this->data[$categories->fields['parent_id']][$categories->fields['categories_id']] = array('name' => $categories->fields['categories_name'], 'count' => $products_in_category);
$categories->MoveNext();
}

if ($hide_status->fields['visibility_status'] < 1) {

I've tried to do this but am not knowledgable enough to get it right. Please help.

Adowty

07 Aug 2011, 19:05
#327
adowty avatar

adowty

New Zenner

Join Date:
Jan 2011
Posts:
16
Plugin Contributions:
0

Re: hideCategories

Here is what I got so far.
after some reading about sql query syntax, I tried this:

    $categories_query = "select c.categories_id, cd.categories_name, c.parent_id, visibility_status
									from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd, " . TABLE_HIDE_CATEGORIES . "
									where c.categories_id = cd.categories_id
									and visibility_status < 1 " . 
									" and c.categories_status=1 " .
    								" and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' " .
    								" order by c.parent_id, c.sort_order, cd.categories_name";

Seems like the WHERE part of the query should filter out all hidden categories.

Doesn't work yet.

Any help?

07 Aug 2011, 20:34
#328
adowty avatar

adowty

New Zenner

Join Date:
Jan 2011
Posts:
16
Plugin Contributions:
0

Re: hideCategories

...so for anyone else who needs to do this.

I found the correct syntax in the site map file.

$categories_query = "select c.categories_id, cd.categories_name, c.parent_id
from " . TABLE_CATEGORIES . " c LEFT JOIN "
. TABLE_HIDE_CATEGORIES . " h ON (c.categories_id = h.categories_id), "
. TABLE_CATEGORIES_DESCRIPTION . " cd
where (h.visibility_status < 2 OR h.visibility_status IS NULL)
and c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and c.categories_status != '0'
order by c.parent_id, c.sort_order, cd.categories_name";

Yee-Haw

07 Aug 2011, 21:33
#329
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: hideCategories

You should also post this in the support threads for the mod you are modifying as this is code to modify two menu modules to work with hieCategories and as such, it will probably be more useful posted there..

adowty:

...so for anyone else who needs to do this.

I found the correct syntax in the site map file.

$categories_query = "select c.categories_id, cd.categories_name, c.parent_id
from " . TABLE_CATEGORIES . " c LEFT JOIN "
. TABLE_HIDE_CATEGORIES . " h ON (c.categories_id = h.categories_id), "
. TABLE_CATEGORIES_DESCRIPTION . " cd
where (h.visibility_status < 2 OR h.visibility_status IS NULL)
and c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and c.categories_status != '0'
order by c.parent_id, c.sort_order, cd.categories_name";

Yee-Haw

07 Aug 2011, 22:25
#330
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: hideCategories

So I finally got some time to test this.. works perfectly in my dev store..

kamelion0927:

Alrighty, I think I've got it.

MAKE A BACKUP BEFORE YOU MAKE THIS CHANGE BECAUSE THIS ISN'T AN OVERRIDE FILE and it worked for me, but I'm not 100% sure it is correct.

In includes/modules/pages/advanced_search_result/header.php, find

$from_str = "FROM (" . TABLE_PRODUCTS . " p
LEFT JOIN " . TABLE_MANUFACTURERS . " m
USING(manufacturers_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_CATEGORIES . " c, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c )
LEFT JOIN " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . " mtpd
ON mtpd.products_id= p2c.products_id
AND mtpd.language_id = :languagesID";

> ```php
$from_str = "FROM (" . TABLE_HIDE_CATEGORIES . " h, " . TABLE_PRODUCTS . " p
             LEFT JOIN " . TABLE_MANUFACTURERS . " m
             USING(manufacturers_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_CATEGORIES . " c, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c )
             LEFT JOIN " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . " mtpd
             ON mtpd.products_id= p2c.products_id
             AND mtpd.language_id = :languagesID";
```Then find
> ```php
// Notifier Point
$zco_notifier->notify('NOTIFY_SEARCH_FROM_STRING');

$where_str = " WHERE (p.products_quantity > 0
               AND p.products_status = 1
               AND p.products_id = pd.products_id
               AND pd.language_id = :languagesID
               AND p.products_id = p2c.products_id
               AND p2c.categories_id = c.categories_id ";
```and change to
> ```php
// Notifier Point
$zco_notifier->notify('NOTIFY_SEARCH_FROM_STRING');

$where_str = " WHERE (p.products_quantity > 0
               AND p.products_status = 1
               AND p.products_id = pd.products_id
               AND pd.language_id = :languagesID
               AND p.products_id = p2c.products_id
               and (p.master_categories_id = h.categories_id and h.visibility_status !=2)
               AND p2c.categories_id = c.categories_id ";
```All I did was utilize the code from hideCategories/includes/modules/sideboxes/my_template/whats_new.php and adapted it to fit the search code. 
> 
> Hopefully it will continue to work and not cause issues with any of my other mods but I would appreciate feedback from someone who knows code as to whether it is the appropriate way to handle this situation.
> 
> Thanks!
08 Aug 2011, 22:09
#331
kamelion0927 avatar

kamelion0927

Zen Follower

Join Date:
Dec 2009
Posts:
208
Plugin Contributions:
1

Re: hideCategories

DivaVocals:

So I finally got some time to test this.. works perfectly in my dev store..

Thank you kindly!

08 Aug 2011, 22:32
#332
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: hideCategories

kamelion0927:

Thank you kindly!
Now to find time to bundle this up and submit it (with you of course properly credited since this is YOUR modification:smile:.. unless you'd like to do the honors??)

09 Aug 2011, 19:38
#333
kamelion0927 avatar

kamelion0927

Zen Follower

Join Date:
Dec 2009
Posts:
208
Plugin Contributions:
1

Re: hideCategories

DivaVocals:

Now to find time to bundle this up and submit it (with you of course properly credited since this is YOUR modification:smile:.. unless you'd like to do the honors??)

I'd be happy to! I'll try to have it done by the end of today :)

09 Aug 2011, 20:04
#334
divavocals avatar

divavocals

Totally Zenned

Join Date:
Jan 2007
Location:
Los Angeles, California, United States
Posts:
10,011
Plugin Contributions:
3

Re: hideCategories

kamelion0927:

I'd be happy to! I'll try to have it done by the end of today :)
Send me an e-mail address. I have the update fileset with the updated readme (with you all properly credited of course:smile:..) if you want.. :smile: All you have to do is heat and serve as it were.. :laugh:

09 Aug 2011, 20:15
#335
kamelion0927 avatar

kamelion0927

Zen Follower

Join Date:
Dec 2009
Posts:
208
Plugin Contributions:
1

Re: hideCategories

DivaVocals:

Send me an e-mail address. I have the update fileset with the updated readme (with you all properly credited of course:smile:..) if you want.. :smile: All you have to do is heat and serve as it were.. :laugh:

Uh, oh. I already submitted the file - but I did remember to update the read me. Hopefully I didn't mess anything up...:blink:

01 Sep 2011, 17:45
#336
jt1020 avatar

jt1020

New Zenner

Join Date:
Apr 2011
Posts:
56
Plugin Contributions:
0

Re: hideCategories

When I install this mod it removed my site and leaves only the header. I identified the problem as it is conflicting with the mod Categories with EZ Page Links installed which I also have installed. Both use a different tpl.categories.php. I tried to WinMerge the two files and tried even manually to recreate the files to be combined with no luck.

the ez page link file is:

<?php /** * Side Box Template * * @package templateSystem * @copyright Copyright 2003-2006 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license <http://www.zen-cart.com/license/2_0.txt> GNU Public License V2.0 * @version $Id: tpl_categories.php 4162 2006-08-17 03:55:02Z ajeh $ */ $content = ""; $content .= '<div id="' . str_replace('_', '-', $box_id . 'Content') . '" class="sideBoxContent">' . "\n"; for ($i=0;$i<sizeof($box_categories_array);$i++) { switch(true) { // to make a specific category stand out define a new class in the stylesheet example: A.category-holiday // uncomment the select below and set the cPath=3 to the cPath= your_categories_id // many variations of this can be done // case ($box_categories_array[$i]['path'] == 'cPath=3'): // $new_style = 'category-holiday'; // break; case ($box_categories_array[$i]['top'] == 'true'): $new_style = 'category-top'; break; case ($box_categories_array[$i]['has_sub_cat']): $new_style = 'category-subs'; break; default: $new_style = 'category-products'; } if (zen_get_product_types_to_category($box_categories_array[$i]['path']) == 3 or ($box_categories_array[$i]['top'] != 'true' and SHOW_CATEGORIES_SUBCATEGORIES_ALWAYS != 1)) { // skip if this is for the document box (==3) } else { $content .= '<a class="' . $new_style . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">'; if ($box_categories_array[$i]['current']) { if ($box_categories_array[$i]['has_sub_cat']) { $content .= '<span class="category-subs-parent">' . $box_categories_array[$i]['name'] . '</span>'; } else { $content .= '<span class="category-subs-selected">' . $box_categories_array[$i]['name'] . '</span>'; } } else { $content .= $box_categories_array[$i]['name']; } if ($box_categories_array[$i]['has_sub_cat']) { $content .= CATEGORIES_SEPARATOR; } $content .= '</a>'; if (SHOW_COUNTS == 'true') { if ((CATEGORIES_COUNT_ZERO == '1' and $box_categories_array[$i]['count'] == 0) or $box_categories_array[$i]['count'] >= 1) { $content .= CATEGORIES_COUNT_PREFIX . $box_categories_array[$i]['count'] . CATEGORIES_COUNT_SUFFIX; } } $content .= '<br />' . "\n"; } } // integrate ezpages $content .= "\n" . '<ul style="margin: 0; padding: 0; list-style-type: none;">' . "\n"; for ($i=1, $n=sizeof($var_linksList); $i<=$n; $i++) { $content .= '<li><a href="' . $var_linksList[$i]['link'] . '">' . $var_linksList[$i]['name'] . '</a></li>' . "\n" ; } // end FOR loop $content .= '</ul>' . "\n"; //end integrate ezpages // integrate ezpges TOC the hide cat file is: <?php /** * Side Box Template * * @package templateSystem * @copyright Copyright 2003-2006 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license <http://www.zen-cart.com/license/2_0.txt> GNU Public License V2.0 * @version $Id: tpl_categories.php 4162 2006-08-17 03:55:02Z ajeh $ */ $content = ""; $content .= '<div id="' . str_replace('_', '-', $box_id . 'Content') . '" class="sideBoxContent">' . "\n"; for ($i=0;$i<sizeof($box_categories_array);$i++) { // Begin hideCategories code list($nada, $mycpath)= split('=', $box_categories_array[$i]['path']); $mycid = split('_', $mycpath); $categories_id = array_pop($mycid); $hide_status = $db->Execute("select visibility_status FROM " . TABLE_HIDE_CATEGORIES . " WHERE categories_id = " . $categories_id . " LIMIT 1"); if ($hide_status->fields['visibility_status'] < 1) { // End hideCategories code switch(true) { // to make a specific category stand out define a new class in the stylesheet example: A.category-holiday // uncomment the select below and set the cPath=3 to the cPath= your_categories_id // many variations of this can be done // case ($box_categories_array[$i]['path'] == 'cPath=3'): // $new_style = 'category-holiday'; // break; case ($box_categories_array[$i]['top'] == 'true'): $new_style = 'category-top'; break; case ($box_categories_array[$i]['has_sub_cat']): $new_style = 'category-subs'; break; default: $new_style = 'category-products'; } if (zen_get_product_types_to_category($box_categories_array[$i]['path']) == 3 or ($box_categories_array[$i]['top'] != 'true' and SHOW_CATEGORIES_SUBCATEGORIES_ALWAYS != 1)) { // skip if this is for the document box (==3) } else { $content .= '<a class="' . $new_style . '" href="' . zen_href_link(FILENAME_DEFAULT, $box_categories_array[$i]['path']) . '">'; if ($box_categories_array[$i]['current']) { if ($box_categories_array[$i]['has_sub_cat']) { $content .= '<span class="category-subs-parent">' . $box_categories_array[$i]['name'] . '</span>'; } else { $content .= '<span class="category-subs-selected">' . $box_categories_array[$i]['name'] . '</span>'; } } else { $content .= $box_categories_array[$i]['name']; } if ($box_categories_array[$i]['has_sub_cat']) { $content .= CATEGORIES_SEPARATOR; } $content .= '</a>'; if (SHOW_COUNTS == 'true') { if ((CATEGORIES_COUNT_ZERO == '1' and $box_categories_array[$i]['count'] == 0) or $box_categories_array[$i]['count'] >= 1) { $content .= CATEGORIES_COUNT_PREFIX . $box_categories_array[$i]['count'] . CATEGORIES_COUNT_SUFFIX; } } $content .= '<br />' . "\n"; } } } // hideCategories code if (SHOW_CATEGORIES_BOX_SPECIALS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true' or SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') { // display a separator between categories and links if (SHOW_CATEGORIES_SEPARATOR_LINK == '1') { $content .= '<hr id="catBoxDivider" />' . "\n"; } if (SHOW_CATEGORIES_BOX_SPECIALS == 'true') { $show_this = $db->Execute("select s.products_id from " . TABLE_SPECIALS . " s where s.status= 1 limit 1"); if ($show_this->RecordCount() > 0) { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_SPECIALS) . '">' . CATEGORIES_BOX_HEADING_SPECIALS . '</a>' . '<br />' . "\n"; } } if (SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true') { // display limits // $display_limit = zen_get_products_new_timelimit(); $display_limit = zen_get_new_date_range(); $show_this = $db->Execute("select p.products_id from " . TABLE_PRODUCTS . " p where p.products_status = 1 " . $display_limit . " limit 1"); if ($show_this->RecordCount() > 0) { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_PRODUCTS_NEW) . '">' . CATEGORIES_BOX_HEADING_WHATS_NEW . '</a>' . '<br />' . "\n"; } } if (SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true') { $show_this = $db->Execute("select products_id from " . TABLE_FEATURED . " where status= 1 limit 1"); if ($show_this->RecordCount() > 0) { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_FEATURED_PRODUCTS) . '">' . CATEGORIES_BOX_HEADING_FEATURED_PRODUCTS . '</a>' . '<br />' . "\n"; } } if (SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') { $content .= '<a class="category-links" href="' . zen_href_link(FILENAME_PRODUCTS_ALL) . '">' . CATEGORIES_BOX_HEADING_PRODUCTS_ALL . '</a>' . "\n"; } } $content .= '</div>'; ?>

Anybody know how to combine these to work together?

02 Sep 2011, 13:02
#337
picandnix avatar

picandnix

Totally Zenned

Join Date:
Dec 2010
Location:
UK
Posts:
1,780
Plugin Contributions:
2

Re: hideCategories

reza:

HI STEVEN
IT's a great contribution, but there is a problem, when I use css flyout category sidebox or header css flyout, the hidden categories are still showing!!!
do you now how can I solve this problem?
thanks

Hi does anyone know a solution for this issue please? I'm having the same trouble.
Thanks in advance....

02 Sep 2011, 13:31
#338
picandnix avatar

picandnix

Totally Zenned

Join Date:
Dec 2010
Location:
UK
Posts:
1,780
Plugin Contributions:
2

Re: hideCategories

adowty:

...so for anyone else who needs to do this.

I found the correct syntax in the site map file.

$categories_query = "select c.categories_id, cd.categories_name, c.parent_id
from " . TABLE_CATEGORIES . " c LEFT JOIN "
. TABLE_HIDE_CATEGORIES . " h ON (c.categories_id = h.categories_id), "
. TABLE_CATEGORIES_DESCRIPTION . " cd
where (h.visibility_status < 2 OR h.visibility_status IS NULL)
and c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and c.categories_status != '0'
order by c.parent_id, c.sort_order, cd.categories_name";

Yee-Haw

Hi Adowty
I think I am having the same issue as you seem to have fixed.
Coluld you please explain in detail there the above codeing needs to be inserted to get the mod to work with the css flyout.
Many thanks in advance.

04 Sep 2011, 23:26
#339
jt1020 avatar

jt1020

New Zenner

Join Date:
Apr 2011
Posts:
56
Plugin Contributions:
0

Re: hideCategories

I installed this mod and for some reason I am having a problem with the advance search function. The default on the dropdown menu under the Limit Category is not "All Categories". It defaults to one of my products. Everything else seems to be working fine.

When I remove this mod the search function works correctly. I really would like to use this mod. Does anybody know how can I change it back to default to "All Categories" after installing this?

25 Oct 2011, 05:51
#340
getyler2 avatar

getyler2

New Zenner

Join Date:
Jul 2011
Posts:
44
Plugin Contributions:
0

Re: hideCategories

This is a great add-on if I could just finish merging the two /includes/templates/mytheme/sideboxes/tpl_categories.php files I have. My original version from a template I'd bought, and the new Hidden Category version. Replacing the original file with the Hidden version strips out the formatting of my Category menu, but hides the hidden category. Using the original version gets my styling back but obviously the hidden category is shown. When a fix attempt doesn't work, all that gets shown is the top banner.

I downloaded the 1.10 version because I built the cart in 1.3.8a with tons of edits I didn't keep track of, so I'm stuck in 1.3.8 for now. I've tried for 4 days cutting and pasting here and there to no avail. Tried going from the new version to the old, and vice versa. Anybody have any guidance? The two php files are zipped. My php capabilities suck and I'm out of ideas. Many thanks!

The hidden version turns the Categories sidebox formatted text into Times Roman, single line breaks, flush left... no formatting.