Totally Zenned
- Join Date:
- Jan 2011
- Location:
- Adelaide, Australia
- Posts:
- 1,684
- Plugin Contributions:
- 0
Ceon URI Mapping V5.0
many thanks for the response mc12345678 - will upgrade to v5.1.0
Views: 88,603
Totally Zenned
many thanks for the response mc12345678 - will upgrade to v5.1.0
Totally Zenned
Is there a GitHub for this module? I've got edits that fix duplicated content on admin manufacturers edit, manufacturers new and copy product, plus styling fixes for the manufacturers page content as the current download of the module uses old table layouts on this page.
Totally Zenned
Contact CEON support via the website.
Totally Zenned
torvista:
Contact CEON support via the website.
I've tried that twice in the past and got no response. I guess I'll just sit on the updates if there is no simple way to make them available to other users.
Totally Zenned
v1.5.7b Ceon v 5.0.0
Hi, looking for some assistance with this error and others associated with order history/ email functions being thrown continually almost by the minute all with the same
PHP warning [--> PHP Warning: Use of undefined constant ENABLE_SSL - assumed 'ENABLE_SSL' (this will throw an Error in a future version of PHP) in /home2/accountname/public_html/admin/includes/classes/observers/class.CeonURIMappingLinkBuildAdmin.php on line 46.] - observers/class.CeonURIMappingLinkBuildAdmin.php is also pasted below.
... line 46 shows [if (ENABLE_SSL == 'true') { ] ....not sure if that needs to be changed to 'false' and what the implications may be?? Admin and Store configure files settings are set with HTTP server being HTTPS
cheers, Mike
[02-Jun-2022 17:01:19 Australia/Sydney] Request URI: /admin/index.php?cmd=orders&origin=index&page=1&oID=812&action=edit, IP address: 120.88.144.143
#1 CeonURIMappingLinkBuildAdmin->updateNotifySEFUInterceptAdmcathref() called at [/home2/account name/public_html/includes/classes/class.base.php:118]
#2 base->notify() called at [/home2/accountname/public_html/admin/includes/functions/html_output.php:71]
#3 zen_catalog_href_link() called at [/home2/accountname/public_html/includes/languages/english/modules/payment/paypalwpp.php:19]
#4 require(/home2/accountname/public_html/includes/languages/english/modules/payment/paypalwpp.php) called at [/home2/accountname/public_html/admin/orders.php:520]
#5 require(/home2/accountname/public_html/admin/orders.php) called at [/home2/accountname/public_html/admin/index.php:11]
--> PHP Warning: Use of undefined constant ENABLE_SSL - assumed 'ENABLE_SSL' (this will throw an Error in a future version of PHP) in /home2/accountname/public_html/admin/includes/classes/observers/class.CeonURIMappingLinkBuildAdmin.php on line 46.
admin/includes/classes/observers/class.CeonURIMappingLinkBuildAdmin.php
<?php
/**
* Observer for Ceon URI Mapping link creation for admin-generated emails, BISN etc.
* Watches html_output.php function zen_href_catalog_link
*
* @package ceon_uri_mapping
* @author Conor Kerr <[email protected]>
* @author torvista
* @copyright Copyright 2008-2019 Ceon
* @copyright Copyright 2003-2007 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @link https://ceon.net
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version 2016
*/
class CeonURIMappingLinkBuildAdmin extends base
{
public function __construct()
{
$this->attach($this, array('NOTIFY_SEFU_INTERCEPT_ADMCATHREF'));
}
public function updateNotifySEFUInterceptAdmcathref(&$callingClass, $notifier, $p1, &$link, $page, $parameters, $connection)//can use "update" or camelized notifier name. & required for &$link to modify it inside here
{
if (!isset($link) && !isset($page) && !isset($parameters) && !isset($connection) && !isset($_SESSION['NotifySEFUInterceptAdmcathref'])) {
trigger_error('System not updated to handle editable notifier parameters. Need to properly update the operating system. This message will not be repeated for this session.', E_USER_WARNING);
$_SESSION['NotifySEFUInterceptAdmcathref'] = false;
}
if (!defined('CEON_URI_MAPPING_ENABLED') || CEON_URI_MAPPING_ENABLED != 1 || isset($_SESSION['NotifySEFUInterceptAdmcathref'])) {
return;
}
static $ceon_uri_mapping_href_link_builder;
if (!isset($ceon_uri_mapping_href_link_builder)) {
require_once(DIR_FS_CATALOG . DIR_WS_CLASSES . 'class.CeonURIMappingHREFLinkBuilder.php');
$ceon_uri_mapping_href_link_builder = new CeonURIMappingHREFLinkBuilder();
}
if ($connection == 'NONSSL') {
$link = HTTP_SERVER;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL == 'true') {
$link = HTTPS_SERVER;
} else {
$link = HTTP_SERVER;
}
}
if ($ceon_uri_mapping_href_link_builder->buildHREFLink($link, $page, $parameters, $connection, false)) {
$link = $ceon_uri_mapping_href_link_builder->getHREFLink();
} else {
$link = null;
}
}
public function update(&$callingClass, $notifier, $p1, &$link = null, $page = null, $parameters = null, $connection = null)//can use "update" or camelized notifier name. & required for &$link to modify it inside here
{
if (!isset($link) && !isset($page) && !isset($parameters) && !isset($connection) && !isset($_SESSION['NotifySEFUInterceptAdmcathref'])) {
trigger_error('System not updated to handle editable notifier parameters. Need to properly update the operating system. This message will not be repeated for this session.', E_USER_WARNING);
$_SESSION['NotifySEFUInterceptAdmcathref'] = false;
}
if (!isset($_SESSION['NotifySEFUInterceptAdmcathref'])) {
$this->updateNotifySEFUInterceptAdmcathref($callingClass, $notifier, $p1, $link, $page, $parameters, $connection);
}
}
}
Totally Zenned
You do not have the latest version of the files.
The block with the error is now this
if ($connection == 'NONSSL') {
$link = defined('HTTP_CATALOG_SERVER') ? HTTP_CATALOG_SERVER : HTTP_SERVER;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL_CATALOG == 'true') {
$link = defined('HTTPS_CATALOG_SERVER') ? HTTPS_CATALOG_SERVER : (defined('HTTPS_SERVER') ? HTTPS_SERVER : HTTP_SERVER);
} else {
$link = defined('HTTP_CATALOG_SERVER') ? HTTP_CATALOG_SERVER : HTTP_SERVER;
}
}
Totally Zenned
strelitzia:
I've tried that twice in the past and got no response. I guess I'll just sit on the updates if there is no simple way to make them available to other users.
I've had successful contact support via their website so worth trying again.
Totally Zenned
v1.5.7d ceon v5
I have recently built a new 1.5.7d site (treeoflifejewellery/newstore/dotcom) in a folder in the root of an existing v1.5.5f site (treeoflifejewellery.dotcom) - the intention is to develop that 1.5.7d and then change the website to that version.
The issue i'm having is that on the newly built site (treeoflifejewellery/newstore/dotcom) when I try to navigate to a product or a category it is taking me back the the existing site (treeoflifejewellery.dotcom). If I disable Ceon then navigation within the new site is fine.
The root has an access file with the Ceon rewrite instructions - to that I had to add RewriteCond %{REQUEST_URI} !^/newstore/ [NC] for the home page of newstore to open (otherwise a 404). If I add a .htaccess file to the newstore folder with the rewrite rules specific to that site (from the installation check page in Ceon) (and no other content) I get the existing site (treeoflifejewellery.dotcom) home page open and not newstore.
I assume the redirect issue will disappear when I replace the 'old' site with the new one as there won't be any conflicts however I would really like to prove the site first
So I am definitely missing something but not sure what it is - any help would be appreciated.
cheers, Mike
Totally Zenned
Totally NOT a fan of "friendly" urls but, I would imagine it is looking at your two sites as one.
Create a folder in your home directory called _test and put the site there. If you have cPanel, you can find instructions at https://myzencarthost.com/index.php?rp=/knowledgebase/1/Creating-a-Test-Site-with-cPanel.html
That way, the "friendlies" will not get confused and the SEs will not ding you for duplicate product.
Totally Zenned
shags38:
v1.5.7d ceon v5
I have recently built a new 1.5.7d site (treeoflifejewellery/newstore/dotcom) in a folder in the root of an existing v1.5.5f site (treeoflifejewellery.dotcom) - the intention is to develop that 1.5.7d and then change the website to that version.
The issue i'm having is that on the newly built site (treeoflifejewellery/newstore/dotcom) when I try to navigate to a product or a category it is taking me back the the existing site (treeoflifejewellery.dotcom). If I disable Ceon then navigation within the new site is fine.
The root has an access file with the Ceon rewrite instructions - to that I had to add RewriteCond %{REQUEST_URI} !^/newstore/ [NC] for the home page of newstore to open (otherwise a 404). If I add a .htaccess file to the newstore folder with the rewrite rules specific to that site (from the installation check page in Ceon) (and no other content) I get the existing site (treeoflifejewellery.dotcom) home page open and not newstore.
I assume the redirect issue will disappear when I replace the 'old' site with the new one as there won't be any conflicts however I would really like to prove the site first
So I am definitely missing something but not sure what it is - any help would be appreciated.
cheers, Mike
Well, there are those that I think will get at least a little chuckle out of ME saying this, but the above certainly is confusing. :)
Couple of thoughts to put together:
Your test site is a direct descendant of your live site.
Your live site has a set of rules that says, if the requested path matches (agrees with or doesn't agree with) the specific entries, then basically access the main site.
The module is effectively database driven. By copying the existing database to your test site, every existing link in that database is going to try to drive to the domain name of the site and whatever sub-directory associated with the database entry.
The instruction associated with the rules generated by the module indicate that those rules are for the root directory of the domain. It also basically says that there are multiple ways to obtain the desired end result.
The ideal method of "copying" an existing site to using this module is to establish a sub-domain (mytestsite.DOMAINNAME) that has the same sub-directory layout as your existing site. This is regardless of where that sub-site truly exists in relation to the main domain name.
So, you have a couple of options and a couple of paths to take.
My suggestion, besides placing this test site in maintenance mode, is to:
Doing the above, would support your test site links point to/reference the "test site" and the pages referenced from there.
Ideally, a sub-domain would be generated/used (updating the includes/configure.php and admin/includes/configure.php files). If that sub-domain was still in the above sub-directories, then your live site would have to redirect operation to the sub-domain directory via rules before your existing CEON URI rules, and then the generated CEON URI rules (after applying the sub-domain) would be placed within the sub-directory/root of that test site and the CEON URIs would not need to be modified... E.g. Less steps, but same/similar result.
After your test store has 1) received a copy of your live store database, and 2) been updated via zc_install, then
Within admin->Tools->Install SQL Patches
UPDATE ceon_uri_mapping SET uri = CONCAT('/newstore/dotcom', uri);
Do this once and only once ASSUMING you have not yet generated any links from within your test store.... If you have, then the above query would need to be modified to exclude the existence of any uri that begins with '/newstore/dotcom'....
Zen Follower
We use CEON as well. When we upgrade, we develop the new site in a test domain, for example 157.mydomain.com. CEON stores relative URIs, so the different domain name doesn't cause a problem.
Totally Zenned
@dbltoe , @mc12345678 @ChuckPhillips
Thank you all for your input/advice - I think the upshot is that I will in future use the sub-domain method for building a test site. So the status is that the new 157d site is working great.
new query
I am however not able to resolve this issue, if indeed it is really an issue at all, in the Installation Check; I get the following warning;
Modified Core Files Check
A file has had a modification made to it, for an older version of Ceon URI Mapping, but this modification is no longer needed.
The path to the file is /home/myaccount/treeoflifejewellery.com/includes/extra_datafiles/ceon_uri_mapping_sessions_define.php
Although the file had to be modified for a previous version of the module, this version works differently and the file is not modified for this version.
Remove the modification from the file by editing the file and removing the block beginning with // BEGIN CEON URI MAPPING 1 of 1 and ending with // END CEON URI MAPPING 1 of 1 - including those two “marker comments”.
Alternatively, if the file was modified only for Ceon URI Mapping and not for any other module, back up the file (e.g. copy it to your local computer) and replace it with a “fresh” version of the file from a “fresh” set of Zen Cart files.
I cannot relate the info above to the file copy in my install - should I just ignore the warning?
<?php
/**
* Ceon URI Mapping Sessions cookie location Define.
*
* @package ceon_uri_mapping
* @author Conor Kerr <[email protected]>
* @copyright Copyright 2008-2019 Ceon
* @copyright Copyright 2003-2007 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @link http://ceon.net/software/business/zen-cart/uri-mapping
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: ceon_uri_mapping_sessions_define.php 1027 2019-05-10 for conor: Ceon Support added v5.0.0$
*/
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
// Used to force the path for sessions to be at the root.
// Static URIs are relative to the site's root, so cookie should be set for the root
// This removes the need to override the file includes/init_includes/init_sessions.php and means
// that the file includes/init_includes/overrides/init_sessions.php is not necessary.
// Override removal is applicable to the file structure used by ZC 1.3.9c and more recent.
// This is used with consideration that it is the only such use of CUSTOM_COOKIE_PATH.
// If another application defines CUSTOM_COOKIE_PATH to something else before the below define
// then this define will be of no value.
define('CUSTOM_COOKIE_PATH', '/');
Totally Zenned
shags38:
@dbltoe , @mc12345678 @ChuckPhillips
Thank you all for your input/advice - I think the upshot is that I will in future use the sub-domain method for building a test site. So the status is that the new 157d site is working great.
new query
I am however not able to resolve this issue, if indeed it is really an issue at all, in the Installation Check; I get the following warning;
Modified Core Files Check
A file has had a modification made to it, for an older version of Ceon URI Mapping, but this modification is no longer needed.
The path to the file is /home/myaccount/treeoflifejewellery.com/includes/extra_datafiles/ceon_uri_mapping_sessions_define.php
Although the file had to be modified for a previous version of the module, this version works differently and the file is not modified for this version.
Remove the modification from the file by editing the file and removing the block beginning with // BEGIN CEON URI MAPPING 1 of 1 and ending with // END CEON URI MAPPING 1 of 1 - including those two “marker comments”.
Alternatively, if the file was modified only for Ceon URI Mapping and not for any other module, back up the file (e.g. copy it to your local computer) and replace it with a “fresh” version of the file from a “fresh” set of Zen Cart files.
>
> I cannot relate the info above to the file copy in my install - should I just ignore the warning?
>
> ```
<?php
/**
* Ceon URI Mapping Sessions cookie location Define.
*
* @package ceon_uri_mapping
* @author Conor Kerr <[email protected]>
* @copyright Copyright 2008-2019 Ceon
* @copyright Copyright 2003-2007 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @link http://ceon.net/software/business/zen-cart/uri-mapping
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: ceon_uri_mapping_sessions_define.php 1027 2019-05-10 for conor: Ceon Support added v5.0.0$
*/
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
// Used to force the path for sessions to be at the root.
// Static URIs are relative to the site's root, so cookie should be set for the root
// This removes the need to override the file includes/init_includes/init_sessions.php and means
// that the file includes/init_includes/overrides/init_sessions.php is not necessary.
// Override removal is applicable to the file structure used by ZC 1.3.9c and more recent.
// This is used with consideration that it is the only such use of CUSTOM_COOKIE_PATH.
// If another application defines CUSTOM_COOKIE_PATH to something else before the below define
// then this define will be of no value.
define('CUSTOM_COOKIE_PATH', '/');
It's always worth searching the thread for previous answers and reading the plugin documentation. Searching for 'ceon_uri_mapping_sessions_define.php' I found this post,
https://www.zen-cart.com/showthread.php?225478-Ceon-URI-Mapping-V5-0&p=1384926#post1384926
Zen Follower
Hello,
I wanted an info on the module, does the free plug-in already work alone without the URI Mapping Manager or does it necessarily need the Manager module to make it work? Thank you
Totally Zenned
giancalr:
Hello,
I wanted an info on the module, does the free plug-in already work alone without the URI Mapping Manager or does it necessarily need the Manager module to make it work? Thank you
It works without the URI Mapping Manager.
Zen Follower
Thanks for the info,
reading the faq for installation and configuration, I have not seen changes for the htaccess file, and it is not present in the plug-in files,
is it generated automatically or are there very specific rules to put?
Thank you
Totally Zenned
giancalr:
Thanks for the info,
reading the faq for installation and configuration, I have not seen changes for the htaccess file, and it is not present in the plug-in files,
is it generated automatically or are there very specific rules to put?
Thank you
Yes, the htaccess is generated for you. The docs call it an 'Example rewrite rule' but I found that it worked without needing to make any changes to it. Here's the relevant part from the Docs
New Zenner
We have installed the paid version of this module, we are having issues with it, we carry roughly 35000 products, Categories and Sub Categories, it will only change URI's
only on top Cats, we have sent you emails on this issue we would like to resolve, we also tried Sub Cats on there own, same issue.
Administrator
strelitzia:
Is there a GitHub for this module?
If you would set one up, that would be great, I have some fixes as well and I'm sure others do.
If CEON Support hasn't been responsive over several months, we'll need to proceed on our own.
New Zenner
I'm setting up Zen Cart 1.5.8 (recently released) which is not supported by this module yet, but thought I'd report on something and see what the feedback is. It seems between 1.5.7 and 1.5.8 a new constant TOPMOST_CATEGORY_PARENT_ID was introduced, used in zen_get_parent_categories() in functions_categories.php. This is used from this addon during _handleStaticURI -> zen_get_product_path -> zen_get_parent_categories. The problem out of the box is that the constant is not defined because the Ceon autoload breakpoint for CeonURIMappingHandler instantiation is 95, but this symbol won't be defined until init_category_path at breakpoint 160.
Trying to work around by moving CeonURIMappingHandler instantiation to 161 fails because init_sanitize at breakpoint 96 sets $_GET['main_page'] to 'index' which then screws up its detection of index page navigation and causes an infinite redirect loop.
A dirty hack is to set this missing constant in the CeonURIMappingHandler constructor:
public function __construct()
{
if (!defined('TOPMOST_CATEGORY_PARENT_ID')) {
define('TOPMOST_CATEGORY_PARENT_ID', 0);
}
parent::__construct();
}
Tell staff why this post should be reviewed.