Page 12 of 15 FirstFirst ... 21011121314 ... LastLast
Results 111 to 120 of 145
  1. #111
    Join Date
    Jan 2004
    Posts
    60,424
    Blog Entries
    4
    Plugin Contributions
    144

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    Quote Originally Posted by timtimd View Post
    Is it possible to introduce an if statement to the PHP file my_db_charset to just use the utf8 setting for Spanish ???
    No, because it doesn't know the selected language until long after the database connection is established.
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donations always welcome: www.zen-cart.com/donate

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.



  2. #112
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    1,262
    Plugin Contributions
    24

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    Having my spanish pack in utf-8 seems to be causing more harm than good for new users.
    I have looked for and failed to find a free text batch converter to create a 8859 version from the utf8 files. Can anyone help to do this as a one off?
    I don't mind maintaining the two versions but I just don't have the time to create this.

  3. #113
    Join Date
    Mar 2011
    Posts
    7
    Plugin Contributions
    0

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    i have read & followed the tutorial at www.srw2d.com regarding UTF-8... however, i'm having a problem. even though i go in and set the utf8_general_ci in the database, after I install all the fields/tables are set to latin1_general_ci.

    any ideas?

  4. #114
    Join Date
    Aug 2004
    Location
    Osaka Japan
    Posts
    150
    Plugin Contributions
    0

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    Quote Originally Posted by vinhbao View Post
    i have read & followed the tutorial at www.srw2d.com regarding UTF-8... however, i'm having a problem. even though i go in and set the utf8_general_ci in the database, after I install all the fields/tables are set to latin1_general_ci.

    any ideas?
    PHP5
    ZenCart 1.3.9h

    I have same issue here. Also adding the my_db_charset.php files to the extra_confirgures folders in admin and the store results in blank store and admin pages, deleting the files restores the pages. The encoding of these pages is Shift JIS not the expected UTF-8.

    Craig

  5. #115
    Join Date
    Aug 2004
    Location
    Osaka Japan
    Posts
    150
    Plugin Contributions
    0

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    PHP5
    Zen 1.3.9h
    Upgrading from Zen 1.2 (Japanese)

    Shaun Ward, thank you so much for your help. I installed the Japanese Zen Cart 1.3.02-|10n-jp-6 with unsatisfactory results as it is based on an older version.

    I am editing admin/index.php file as per your instructions. I do not know PHP very well and unfortunately stumble a lot. After making the changes the site gives me an error statement;

    Parse error: syntax error, unexpected $end in store/zc_admin/index.php on line 189

    Br Craig

  6. #116
    Join Date
    Aug 2004
    Location
    Osaka Japan
    Posts
    150
    Plugin Contributions
    0

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    Please note the Japanese Language Pack that Shaun made already has the correct admin/index.php and invoice.php files.

    Sorry for the unnecessary post.

  7. #117
    Join Date
    Jun 2006
    Location
    Atlanta, GA
    Posts
    115
    Plugin Contributions
    0

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    Using 1.3.9h, changing from latin1_swedish to utf8_general

    In addition to defining charset as indicated here:
    http://www.zen-cart.com/forum/showthread.php?t=153582

    This is the most functional script I have found for converting tables and table data:
    PHP Code:
    <?php

    function MysqlError()
    {
            if (
    mysql_errno())
            {
                    echo 
    "<b>Mysql Error: " mysql_error() . "</b>\n";
            }
    }

    $username "root";
    $password "";
    $db "database";
    $host "localhost";

    $target_charset "utf8";
    $target_collate "utf8_general_ci";

    echo 
    "<pre>";

    $conn mysql_connect($host$username$password);
    mysql_select_db($db$conn);

    $tabs = array();
    $res mysql_query("SHOW TABLES");
    MysqlError();
    while ((
    $row mysql_fetch_row($res)) != null)
    {
            
    $tabs[] = $row[0];
    }

    // now, fix tables
    foreach ($tabs as $tab)
    {
            
    $res mysql_query("show index from {$tab}");
            
    MysqlError();
            
    $indicies = array();

            while ((
    $row mysql_fetch_array($res)) != null)
            {
                    if (
    $row[2] != "PRIMARY")
                    {
                            
    $indicies[] = array("name" => $row[2], "unique" => !($row[1] == "1"), "col" => $row[4]);
                            
    mysql_query("ALTER TABLE {$tab} DROP INDEX {$row[2]}");
                            
    MysqlError();
                            echo 
    "Dropped index {$row[2]}. Unique: {$row[1]}\n";
                    }
            }

            
    $res mysql_query("DESCRIBE {$tab}");
            
    MysqlError();
            while ((
    $row mysql_fetch_array($res)) != null)
            {
                    
    $name $row[0];
                    
    $type $row[1];
                    
    $set false;
                    if (
    preg_match("/^varchar\((\d+)\)$/i"$type$mat))
                    {
                            
    $size $mat[1];
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} VARBINARY({$size})");
                            
    MysqlError();
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} VARCHAR({$size}) CHARACTER SET {$target_charset}");
                            
    MysqlError();
                            
    $set true;

                            echo 
    "Altered field {$name} on {$tab} from type {$type}\n";
                    }
                    else if (!
    strcasecmp($type"CHAR"))
                    {
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} BINARY(1)");
                            
    MysqlError();
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} VARCHAR(1) CHARACTER SET {$target_charset}");
                            
    MysqlError();
                            
    $set true;

                            echo 
    "Altered field {$name} on {$tab} from type {$type}\n";
                    }
                    else if (!
    strcasecmp($type"TINYTEXT"))
                    {
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} TINYBLOB");
                            
    MysqlError();
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} TINYTEXT CHARACTER SET {$target_charset}");
                            
    MysqlError();
                            
    $set true;

                            echo 
    "Altered field {$name} on {$tab} from type {$type}\n";
                    }
                    else if (!
    strcasecmp($type"MEDIUMTEXT"))
                    {
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} MEDIUMBLOB");
                            
    MysqlError();
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} MEDIUMTEXT CHARACTER SET {$target_charset}");
                            
    MysqlError();
                            
    $set true;

                            echo 
    "Altered field {$name} on {$tab} from type {$type}\n";
                    }
                    else if (!
    strcasecmp($type"LONGTEXT"))
                    {
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} LONGBLOB");
                            
    MysqlError();
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} LONGTEXT CHARACTER SET {$target_charset}");
                            
    MysqlError();
                            
    $set true;

                            echo 
    "Altered field {$name} on {$tab} from type {$type}\n";
                    }
                    else if (!
    strcasecmp($type"TEXT"))
                    {
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} BLOB");
                            
    MysqlError();
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} TEXT CHARACTER SET {$target_charset}");
                            
    MysqlError();
                            
    $set true;

                            echo 
    "Altered field {$name} on {$tab} from type {$type}\n";
                    }

                    if (
    $set)
                            
    mysql_query("ALTER TABLE {$tab} MODIFY {$name} COLLATE {$target_collate}");
            }

            
    // re-build indicies..
            
    foreach ($indicies as $index)
            {
                    if (
    $index["unique"])
                    {
                            
    mysql_query("CREATE UNIQUE INDEX {$index["name"]} ON {$tab} ({$index["col"]})");
                            
    MysqlError();
                    }
                    else
                    {
                            
    mysql_query("CREATE INDEX {$index["name"]} ON {$tab} ({$index["col"]})");
                            
    MysqlError();
                    }

                    echo 
    "Created index {$index["name"]} on {$tab}. Unique: {$index["unique"]}\n";
            }

            
    // set default collate
            
    mysql_query("ALTER TABLE {$tab}  DEFAULT CHARACTER SET {$target_charset} COLLATE {$target_collate}");
    }

    // set database charset
    mysql_query("ALTER DATABASE {$db} DEFAULT CHARACTER SET {$target_charset} COLLATE {$target_collate}");

    mysql_close($conn);
    echo 
    "</pre>";
    On my test database, it works almost flawlessly. However, I get a few errors. For example:
    Dropped index idx_status_group_zen. Unique: 1
    Mysql Error: Can't DROP 'idx_status_group_zen'; check that column/key exists
    Dropped index idx_status_group_zen. Unique: 1
    Dropped index idx_expires_date_zen. Unique: 1
    Dropped index idx_date_scheduled_zen. Unique: 1
    Altered field banners_title on banners from type varchar(64)
    Altered field banners_url on banners from type varchar(255)
    Altered field banners_image on banners from type varchar(64)
    Altered field banners_group on banners from type varchar(15)
    Altered field banners_html_text on banners from type text
    Created index idx_status_group_zen on banners. Unique:
    Mysql Error: Duplicate key name 'idx_status_group_zen'
    Created index idx_status_group_zen on banners. Unique:
    Dropped index idx_key_value_zen. Unique: 1
    Mysql Error: Can't DROP 'idx_key_value_zen'; check that column/key exists
    Dropped index idx_key_value_zen. Unique: 1
    Dropped index idx_cfg_grp_id_zen. Unique: 1
    Altered field configuration_title on configuration from type text
    Altered field configuration_key on configuration from type varchar(255)
    Altered field configuration_value on configuration from type mediumtext
    Altered field configuration_description on configuration from type text
    Altered field use_function on configuration from type text
    Altered field set_function on configuration from type text
    Created index unq_config_key_zen on configuration. Unique: 1
    Created index idx_key_value_zen on configuration. Unique:
    Mysql Error: BLOB/TEXT column 'configuration_value' used in key specification without a key length
    Created index idx_key_value_zen on configuration. Unique:
    Are these pre-existing errors or is there a problem with the script?
    http://www.divinelighting.com -- Super Orders 3.0 -- Ultimate SEO -- Quantity Discounts -- SitemapXML -- Image Handler -- Shipworks

  8. #118
    Join Date
    Jan 2004
    Posts
    60,424
    Blog Entries
    4
    Plugin Contributions
    144

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    Those are script errors. As written it's not capable of handling multi-key indexes nor partial-length indexes, hence the error messages you're seeing.

    What's the source of that script? Where did you get it from? It appears as though its source is:
    stackoverflow.com/questions/105572/a-script-to-change-all-tables-and-fields-to-the-utf-8-bin-collation-in-mysql
    but I'm just wondering if you're citing another source.
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donations always welcome: www.zen-cart.com/donate

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.



  9. #119
    Join Date
    Jun 2006
    Location
    Atlanta, GA
    Posts
    115
    Plugin Contributions
    0

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    Yes Dr. Byte, that is exactly where it came from. Are you aware of a script that will handle all the indexes?
    http://www.divinelighting.com -- Super Orders 3.0 -- Ultimate SEO -- Quantity Discounts -- SitemapXML -- Image Handler -- Shipworks

  10. #120
    Join Date
    Jan 2004
    Posts
    60,424
    Blog Entries
    4
    Plugin Contributions
    144

    Default Re: UTF-8 Zen-Cart Tutorial for v1.3.x

    I agree -- that script was probably the closest I've seen to reliably handling most of the steps involved in properly preserving data while converting character sets and collation to UTF8.

    I've made some alterations to overcome several of the limitations I see in it, and contributed the result here:
    http://www.zen-cart.com/index.php?ma...oducts_id=1937

    NOTES:
    MAKE A DATABASE BACKUP FIRST!
    And take your store Down For Maintenance while converting.
    Watch out for any warnings - they will be shown in bold. Every error should receive appropriate attention before putting your site back online.


    Feedback welcome.
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donations always welcome: www.zen-cart.com/donate

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.



 

 
Page 12 of 15 FirstFirst ... 21011121314 ... LastLast

Similar Threads

  1. Updated wamp + zen cart tutorial for Zen Cart 1.3.8a and Wamp Server 2.0i
    By dakos in forum Installing on a Windows Server
    Replies: 20
    Last Post: 29 Mar 2010, 01:07 AM
  2. Where to get Tutorial or Help file for Zen-Cart?
    By chungenhung in forum General Questions
    Replies: 9
    Last Post: 22 Jul 2009, 02:10 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •