Page 195 of 245 FirstFirst ... 95145185193194195196197205 ... LastLast
Results 1,941 to 1,950 of 2445
  1. #1941
    Join Date
    May 2006
    Location
    Montana
    Posts
    291
    Plugin Contributions
    20

    Default Re: Ceon URI Mapping v4.x

    Thanks Chad!! Will see what customer wants to do.

    Quote Originally Posted by mc12345678 View Post
    Can not advise on how to progress with customer. I have not tested on ZC 1.5.5. As is will not work on PHP 7.0. There is also a change to the ZC core code for canonical URIs that needs review to ensure that the addtional features implemented were not already/previously addressed in one way or another.

    Otherwise, I haven't seen any changes to the ZC core code that would prevent operation. (The November security alerts from 2015 should be applied when merging the changes of this code to the ZC 1.5.5 code.)

  2. #1942
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Re: Ceon URI Mapping v4.x

    Situation:
    I am staging products/categories one site and will later move them to the live site. I am not bothering to create my CEON URIs on the staging site, will do that on the live site. The reason I'm not triggering CEON URIs is that Zen though the product ID will not change between staging and live, the categories may change. Since the category will appear in the URI, I must wait.

    Question:
    Is there a way to create an href from one internal product product page to another that will trigger the CEON URI? Given that I know the Product ID will not change, it *seems* like I should be able to just use the Zen cpath.

    Testing:
    To test it out, I created an href from one product to another before triggering a CEON URI for the second page. Then I triggered a URI for the second page. Sadly I can't seem to get it to work!

    Here is the test page:
    http://0stage.justmedical***DOT***bi..._Test_1_Images

    On that page, you will see a reference to Clark Socket. If you hover over it, you will see a Zen created url. But if you click on the link, you will transport to a CEON URI.

    Here is the actual code I used:
    <p>Here is a link: <strong><a href="/index.php?main_page=product_info&amp;cPath=4&amp;products_id=124">Clark Socket</a></strong></p>

    Is there a way to trigger the URI (cause it to print into the html) of the originating page, without actually knowing what the URI will be?

  3. #1943
    Join Date
    Jul 2012
    Posts
    16,734
    Plugin Contributions
    17

    Default Re: Ceon URI Mapping v4.x

    URIs from this plugin are generated/substituted when using the zen_href_link function, not by parsing page hard entered code. To perform some sort of similar substitution would require code to parse the description. And make that substitution. Alternatively, the description can be later modified through whatever "tool" is desired. Ie. Phpmyadmin, a sql query to replace, a mass update type program.

    In the end though this is proof that with or without the uri being known. To be rewritten that CEON URI mapping works with original ZC URIs as well...

    Further alternatively, this is a reason that if generating URIs that the development site be setup to support the live site as a mirror to the live site making movement of that data seamless.
    ZC Installation/Maintenance Support <- Site
    Contribution for contributions welcome...

  4. #1944
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Re: Ceon URI Mapping v4.x

    I was afraid that would be the answer: "URIs from this plugin are generated/substituted when using the zen_href_link function, not by parsing page hard entered code."

    Bummer. I'll find another way...

    Thanks MC!

  5. #1945
    Join Date
    Nov 2008
    Posts
    164
    Plugin Contributions
    0

    Default Re: Ceon URI Mapping v4.x

    I hacked this together a few years back to auto generate CEON product URIs - it's crude but it's worked well for me, and it's free. Simply copy one of the admin pages and drop the code in, run as needed to update product URIs.

    It lists all the categories on the site. Click the category name to auto populate the product URIs into the database.

    Notes:
    - It uses the old mysql function because I haven't kept up to date on coding practices
    - Filebase it works with for me is CEON 4.4.1
    - The site I have it on is running ZC 1.5.1
    - You do need the category slug to be generated before generating the product URIs - just navigate to the regular zencart "edit categories" page and edit then save each category

    Code:
    <?php // display categories to select from
            $categories = mysql_query("SELECT * FROM zen_categories LEFT JOIN zen_categories_description ON zen_categories.categories_id = zen_categories_description.categories_id WHERE zen_categories.categories_status='1'");
            echo "<p>Click on a category to update it's products: <br/>";
            while ($showthiscat = mysql_fetch_assoc($categories)){
                echo "<a href='update-ceon-uri.php?updatecategory={$showthiscat['categories_id']}'>{$showthiscat['categories_name']}</a>, \n";
            }
            echo "</p>\n<hr/>\n";
        ?>
    
        <?php 
            $replacechars = array("(",")","'","\"","$","%","&"); // specify all characters to be eliminated
            // update all products in category
            $updateuris = mysql_query("SELECT * FROM zen_products WHERE master_categories_id='{$_GET['updatecategory']}'"); 
            while ($thisuri = mysql_fetch_assoc($updateuris)) {
                unset($catname);
                $productsid = $thisuri['products_id'];
                $productsname = implode(mysql_fetch_assoc(mysql_query("SELECT products_name FROM zen_products_description WHERE products_id='{$productsid}'"))); 
                $catname = implode(mysql_fetch_assoc(mysql_query("SELECT uri FROM zen_ceon_uri_mappings WHERE main_page='index' AND associated_db_id='{$thisuri['master_categories_id']}'")));
                $newuri = $catname."/".strtolower(str_replace(" ","-",$productsname));
                //$newuri = "/".strtolower(str_replace(" ","-",$productsname));    // product-only on this site
                $newuri = str_replace($replacechars,"",$newuri); // remove characters in the array above
                $today = date('Y-m-d G:i:s'); // today
                
                if($productsname == ''){continue;} // skip empty names
                
            $exists = implode(mysql_fetch_assoc(mysql_query("SELECT * FROM zen_ceon_uri_mappings WHERE main_page='product_info' AND associated_db_id='$productsid'")));     // used to check if product already exists to do update vs insert
            
            if ($exists) { // if already in zen_ceon_uri_mappings, update
                mysql_query("UPDATE zen_ceon_uri_mappings SET uri='$newuri' WHERE main_page='product_info' AND associated_db_id='$productsid'");
                $result = "Updated... ".mysql_error();
            } else { // else, insert
                mysql_query("INSERT IGNORE INTO zen_ceon_uri_mappings 
                            (`uri`, `language_id`, `current_uri`, `main_page`, `query_string_parameters`, `associated_db_id`, `alternate_uri`, `redirection_type_code`, `date_added`) VALUES 
                            ('$newuri','1','1','product_info',NULL,'$productsid',NULL,NULL,'$today')");
                $result = "Inserted... ".mysql_error();
            }
                
                echo "<p>$newuri (cat: {$thisuri['master_categories_id']}) - $result</p>\n"; // display whether updated or inserted and any problems encountered
            }
            
    ?>
    Last edited by bobthemolder; 23 Mar 2016 at 12:40 AM.

  6. #1946
    Join Date
    Apr 2010
    Posts
    897
    Plugin Contributions
    0

    Default Re: Ceon URI Mapping v4.x

    Quote Originally Posted by bobthemolder View Post
    I hacked this together a few years back to auto generate CEON product URIs - it's crude but it's worked well for me, and it's free. Simply copy one of the admin pages and drop the code in, run as needed to update product URIs.

    It lists all the categories on the site. Click the category name to auto populate the product URIs into the database.
    A standalone URI generator? Awesomeness! Right on!!!!

  7. #1947
    Join Date
    Jan 2004
    Posts
    66,373
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: Ceon URI Mapping v4.x

    @bobthemolder,

    I think the following does the same thing, but uses the Zen Cart $db stuff to do the queries, making your stuff compatible with newer ZC versions.
    I don't have a CEON URI site to test it on, but I think I've converted it correctly.

    Code:
    // display categories to select from
    $categories = $db->Execute("SELECT * FROM " . TABLE_CATEGORIES . " c LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd ON c.categories_id = cd.categories_id WHERE c.categories_status='1'");
    echo "<p>Click on a category to update its products: <br/>";
    while (!$categories->EOF) {
        echo "<a href='update-ceon-uri.php?updatecategory={$categories->fields['categories_id']}'>{$categories->fields['categories_name']}</a>, \n";
        $categories->MoveNext();
    }
    echo "</p>\n<hr/>\n";
    
    
    $replacechars = array("(",")","'","\"","$","%","&"); // specify all characters to be eliminated
    // update all products in category
    $_GET['updatecategory'] = (int)$_GET['updatecategory'];
    $updateuris = $db->Execute("SELECT * FROM " . TABLE_PRODUCTS . " WHERE master_categories_id='{$_GET['updatecategory']}'");
    while (!$updateuris->EOF)) {
        $thisuri = $updateuris->fields;
        unset($catname);
    
    
        $productsid = $thisuri['products_id'];
        $productsname = zen_get_products_name($productsid); 
        if($productsname == '') continue; // skip empty names
    
    
        $result = $db->Execute("SELECT uri FROM " . TABLE_CEON_URI_MAPPINGS . " WHERE main_page='index' AND associated_db_id='{$thisuri['master_categories_id']}'");
        $catname = $result->fields['uri'];
        $newuri = $catname."/".strtolower(str_replace(" ","-",$productsname));
        //$newuri = "/".strtolower(str_replace(" ","-",$productsname));    // product-only on this site
    
    
        // remove characters in the array above
        $newuri = str_replace($replacechars,"",$newuri); 
        $today = date('Y-m-d G:i:s'); // today
    
    
        // check if product already exists to do update vs insert
        $result = $db->Execute("SELECT * FROM " . TABLE_CEON_URI_MAPPINGS . " WHERE main_page='product_info' AND associated_db_id='$productsid'");
        $exists = $result->RecordCount();
    
    
        if ($exists) { // if already in TABLE_CEON_URI_MAPPINGS, update
            $db->Execute("UPDATE " . TABLE_CEON_URI_MAPPINGS . " SET uri='$newuri' WHERE main_page='product_info' AND associated_db_id='$productsid'");
            $status = "Updated. ";
        } else { // else, insert
            $db->Execute("INSERT IGNORE INTO " . TABLE_CEON_URI_MAPPINGS . " 
                        (`uri`, `language_id`, `current_uri`, `main_page`, `query_string_parameters`, `associated_db_id`, `alternate_uri`, `redirection_type_code`, `date_added`) VALUES 
                        ('$newuri','1','1','product_info',NULL,'$productsid',NULL,NULL,'$today')");
            $status = "Inserted. ";
        }
    
    
        // display whether updated or inserted and any problems encountered
        echo "<p>$newuri (cat: {$thisuri['master_categories_id']}) - $status</p>\n"; 
    
    
        $updateuris->MoveNext();
    }
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    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.

  8. #1948
    Join Date
    Jul 2009
    Posts
    402
    Plugin Contributions
    0

    Default Re: Ceon URI Mapping v4.x

    Quote Originally Posted by DrByte View Post
    @bobthemolder,

    I think the following does the same thing, but uses the Zen Cart $db stuff to do the queries, making your stuff compatible with newer ZC versions.
    I don't have a CEON URI site to test it on, but I think I've converted it correctly.

    Code:
    // display categories to select from
    $categories = $db->Execute("SELECT * FROM " . TABLE_CATEGORIES . " c LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd ON c.categories_id = cd.categories_id WHERE c.categories_status='1'");
    echo "<p>Click on a category to update its products: <br/>";
    while (!$categories->EOF) {
        echo "<a href='update-ceon-uri.php?updatecategory={$categories->fields['categories_id']}'>{$categories->fields['categories_name']}</a>, \n";
        $categories->MoveNext();
    }
    echo "</p>\n<hr/>\n";
    
    
    $replacechars = array("(",")","'","\"","$","%","&"); // specify all characters to be eliminated
    // update all products in category
    $_GET['updatecategory'] = (int)$_GET['updatecategory'];
    $updateuris = $db->Execute("SELECT * FROM " . TABLE_PRODUCTS . " WHERE master_categories_id='{$_GET['updatecategory']}'");
    while (!$updateuris->EOF)) {
        $thisuri = $updateuris->fields;
        unset($catname);
    
    
        $productsid = $thisuri['products_id'];
        $productsname = zen_get_products_name($productsid); 
        if($productsname == '') continue; // skip empty names
    
    
        $result = $db->Execute("SELECT uri FROM " . TABLE_CEON_URI_MAPPINGS . " WHERE main_page='index' AND associated_db_id='{$thisuri['master_categories_id']}'");
        $catname = $result->fields['uri'];
        $newuri = $catname."/".strtolower(str_replace(" ","-",$productsname));
        //$newuri = "/".strtolower(str_replace(" ","-",$productsname));    // product-only on this site
    
    
        // remove characters in the array above
        $newuri = str_replace($replacechars,"",$newuri); 
        $today = date('Y-m-d G:i:s'); // today
    
    
        // check if product already exists to do update vs insert
        $result = $db->Execute("SELECT * FROM " . TABLE_CEON_URI_MAPPINGS . " WHERE main_page='product_info' AND associated_db_id='$productsid'");
        $exists = $result->RecordCount();
    
    
        if ($exists) { // if already in TABLE_CEON_URI_MAPPINGS, update
            $db->Execute("UPDATE " . TABLE_CEON_URI_MAPPINGS . " SET uri='$newuri' WHERE main_page='product_info' AND associated_db_id='$productsid'");
            $status = "Updated. ";
        } else { // else, insert
            $db->Execute("INSERT IGNORE INTO " . TABLE_CEON_URI_MAPPINGS . " 
                        (`uri`, `language_id`, `current_uri`, `main_page`, `query_string_parameters`, `associated_db_id`, `alternate_uri`, `redirection_type_code`, `date_added`) VALUES 
                        ('$newuri','1','1','product_info',NULL,'$productsid',NULL,NULL,'$today')");
            $status = "Inserted. ";
        }
    
    
        // display whether updated or inserted and any problems encountered
        echo "<p>$newuri (cat: {$thisuri['master_categories_id']}) - $status</p>\n"; 
    
    
        $updateuris->MoveNext();
    }
    Hi,
    I am not sure I understood how to use the code above, I mean how to make in work.
    bobthemolder said to copy it in a amdin page but I did it in the categories.php page and all what I get is a blank page (zen cart v1.5.5)
    Can you please explain it in more details?
    Thanks
    enzo
    Last edited by enzo-ita; 2 Apr 2016 at 11:57 PM.

  9. #1949
    Join Date
    Sep 2006
    Posts
    163
    Plugin Contributions
    1

    Default Re: Ceon URI Mapping v4.x

    You don't need to understand it: there is now a 155 version available for download. Simply install that!

  10. #1950
    Join Date
    Jul 2009
    Posts
    402
    Plugin Contributions
    0

    Default Re: Ceon URI Mapping v4.x

    Quote Originally Posted by hairydog View Post
    You don't need to understand it: there is now a 155 version available for download. Simply install that!
    Thanks but there is not a version that does this
    auto generate CEON product URIs - it's crude but it's worked well for me, and it's free. Simply copy one of the admin pages and drop the code in, run as needed to update product URIs.
    as bobthemolder said.
    I like to understand and experimet, however.
    Ciao
    enzo

 

 

Similar Threads

  1. v139d Ceon uri mapping, how to generate uri mapping for bulk bulk-imported products?
    By mybiz9999 in forum All Other Contributions/Addons
    Replies: 3
    Last Post: 8 Jan 2013, 06:52 AM
  2. CEON URI Mapping
    By jmkent in forum All Other Contributions/Addons
    Replies: 3
    Last Post: 22 Nov 2012, 04:28 PM
  3. Ceon URI Mapping (SEO)
    By conor in forum All Other Contributions/Addons
    Replies: 2906
    Last Post: 9 Sep 2011, 08:31 AM
  4. Ceon URI Mapping v4
    By conor in forum All Other Contributions/Addons
    Replies: 110
    Last Post: 14 Aug 2011, 02:51 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
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR