Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

ULTIMATE Seo Urls 5 - by FWR Media


Recommended Posts

I have been happily using this contribution for a year or so. For various reasons, I am forced to switch to PHP 5.4 from the 5.2 I am currently using. On my host, SQLite 2 is provided in PHP 5.2, but in 5.4 they supply only SQLite 3 with the PDO interface. I searched this topic but so far, I have found only other questions about using PDO and no answers. Has anyone successfully modified the contrib to use SQLite through PDO? If so, how?

Link to comment
Share on other sites

I have been happily using this contribution for a year or so. For various reasons, I am forced to switch to PHP 5.4 from the 5.2 I am currently using. On my host, SQLite 2 is provided in PHP 5.2, but in 5.4 they supply only SQLite 3 with the PDO interface. I searched this topic but so far, I have found only other questions about using PDO and no answers. Has anyone successfully modified the contrib to use SQLite through PDO? If so, how?

 

I'll take a look at this Steve.

Link to comment
Share on other sites

I use

 

Traditional Rewrite Seo Urls ( Requires mod_rewrite and RewriteRules added to .htaccess )

  • www.mysite.com/category-name-c-1.html

I want to remove .html from url because I want to rewrite page navigation

 

Example www.mysite.com/category-name-c-1.html?page=5 to www.mysite.com/category-name-c-1/page-5

 

Another example www.mysite.com/category-name-c-1.html?page=5&filter=some_filter to www.mysite.com/category-name-c-1/page-5/filter-name-ff-filterId

 

Is there any fast way to change that ? Your code is very well structured but it will take me some time to understand it . Can u give me a hint want to look for (function name) or what to change

 

Thanks

Link to comment
Share on other sites

Robert, the following seems to work as far as using PDO. Pretty simple, really - the part where the database is created and opened is the major change, most everything else can stay as-is.. The one part I am a bit unsure about is the use of the PDO::quote function as a replacement for sqlte_escape_string. (I may not be using the latest version of your contrib.) This is a replacement for includes/cache_system/sqlite.php

 

<?php
 /**
 *
 * ULTIMATE Seo Urls 5 PRO ( version 1.1 )
 *
 *
 * @package USU5_PRO
 * @[member='licensed2kill'] http://www.opensource.org/licenses/gpl-2.0.php GNU Public License
 * @[member='Link'] http://www.fwrmedia.co.uk
 * @[member='copyright'] Copyright 2008-2009 FWR Media
 * @[member='copyright'] Portions Copyright 2005 ( rewrite uri concept ) Bobby Easland
 * @[member='author'] Robert Fisher, FWR Media, http://www.fwrmedia.co.uk
 * @lastdev $Author:: Rob											  $:  Author of last commit
 * @lastmod $Date:: 2011-03-21 12:48:04 +0000 (Mon, 21 Mar 2011)	   $:  Date of last commit
 * @version $Rev:: 206												 $:  Revision of last commit
 * @Id $Id:: sqlite.php 206 2011-03-21 12:48:04Z Rob				   $:  Full Details  
 */

 /**
 * Cache system using a SQLite database
 *
 * @package USU5_PRO
 */
 final class Sqlite_Cache_Module implements iCache_System {

   private static $_singleton = null;
   private static $sqlite_db_file = null;
   private static $cache_name;
   private static $cache_on;
   public static $db;
   public $extract_query = "SELECT * FROM usu_cache WHERE cache_name = ':cache_name'";
   private $insert_query = "INSERT INTO usu_cache (cache_name, cache_data, cache_date) VALUES (':cache_name', ':cache_data', ':cache_date')";
   private $insert = false;
   /**
   * Class constructor
   * @[member='access'] private
   */
   private function __construct() {
   } // end constructor
   /**
   * Returns a singleton instance of the class
   *
   * Sets the cache name and checks that the cache directory is writeable
   * @uses defined()
   * @uses substr()
   * @uses md5()
   * @uses is_readable()
   * @uses trigger_error()
   *
   * @[member='access'] public
   * @throws - triggers an error of type E_USER_WARNING if a new database cannot be created
   * @return Sqlite_Cache_Module
   */
   public static function i() {
  if ( !self::$_singleton instanceof Sqlite_Cache_Module ) {
    if ( Usu_Main::i()->getVar( 'page_modules', substr( Usu_Main::i()->getVar( 'filename' ), 0, -4 ) ) instanceof aPage_Modules ) {
	  self::$cache_on = ( defined( 'USU5_CACHE_ON' ) && ( USU5_CACHE_ON == 'true' ) ) ? true : false;
	  self::$cache_name = md5( Usu_Main::i()->getVar( 'page_modules', substr( Usu_Main::i()
									   ->getVar( 'filename' ), 0, -4 ) )
									   ->buildCacheName() );
	  Usu_Main::i()->setVar( 'cache_name', self::$cache_name );
    } else { // No module so we set the cache name as the language id plus the called file
	  self::$cache_name = Usu_Main::i()->getVar( 'languages_id' ) . '_' . substr( Usu_Main::i()->getVar( 'filename' ), 0, -4 );
    }
    self::$sqlite_db_file = Usu_Main::i()->getVar( 'cache_system_path' ) . 'sqlite/usu_cache.db';
    self::createDatabase();
    self::$_singleton = new self;
  }
  return self::$_singleton;
   } // end method
   /**
   * Returns a limited singleton instance of the class specifically for admin
   *
   * Allows admin to access a limited version of the class in order to truncate the database
   *
   * @[member='access'] public
   * @return Sqlite_Cache_Module
   */
   public static function admini() {
  if ( !self::$_singleton instanceof Sqlite_Cache_Module ) {
    self::$sqlite_db_file = realpath( dirname( __FILE__ ) ) . '/sqlite/usu_cache.db';
    self::createDatabase();
    self::$_singleton = new self;
  }
  return self::$_singleton;
   }
   /**
   * Create the SQLite database if it doesn't already exist
   *
   * @uses is_readable()
   * @uses trigger_error()
   *
   * @[member='access'] protected
   * @throws - triggers an error of type E_USER_WARNING if a new database cannot be created
   * @return void
   */
   protected static function createDatabase() {
  if ( !is_readable( self::$sqlite_db_file ) ) {
 $db_file_handle = @fopen(self::$sqlite_db_file,'a');
 if (!$db_file_handle){
   tep_db_error ('USU DB Create', 0, $e->getMessage());
 } else {
  fclose($db_file_handle);
 }
  }
try {
 self::$db = new PDO('sqlite:' . self::$sqlite_db_file,'','',array(PDO::ATTR_PERSISTENT => true));
} catch (PDOException $e) {
 tep_db_error('USU DB Open',0,$e->getMessage());
 die();
}
self::createTables();
   }
   /**
   * Stores the current cache on the destruction of the Usu_Main class
   *
   * @see Usu_Main::__destruct()
   * @uses serialize()
   * @uses base64_encode()
   * @uses gzdeflate()
   * @uses str_replace()
   * @uses date()
   * @uses sqlite_escape_string()
   * @param array $registry_vars - array of data to cache
   *
   * @[member='access'] public
   * @return void
   */
   public function store( array $registry_vars = array() ) {
  if ( false !== self::$cache_on  ) {
    if ( false !== $this->insert ) {
	  $data = serialize( $registry_vars ); // Serialize the registry of data
	  $rawdata = base64_encode( gzdeflate( $data ) ); // encode and deflate
	  $targets = array( ':cache_name', ':cache_data', ':cache_date' );
	  $replacements = array( self::$db->quote( self::$cache_name ), self::$db->quote( $rawdata ), date( "Y-m-d H:i:s" ) );
	  $query = str_replace( $targets, $replacements, $this->insert_query );
	  self::$db->query( $query );
   self::$db = null;
    }
  }
   }
   /**
   * Retrieve the cached data
   *
   * If $insert becomes bool true then we insert data when storing, bool false we don't save as the cache already exists
   *
   * @see Usu_Main::extractCacheData()
   *
   * @[member='access'] public
   * @return void
   */
   public function retrieve() {
  if ( false !== self::$cache_on  ) {
    $this->insert = Usu_Main::i()->extractCacheData( self::$cache_name, 'sqlite', $this );
  }
   }
   /**
   * Cache garbage clearance
   *
   * @uses file_exists()
   * @uses unlink()
   * @param bool $file_info
   *
   * @[member='access'] public
   * @return void
   */
   public function gc( $file_info = false ) {
  if ( file_exists( self::$sqlite_db_file ) ) {
    self::$db->query( 'DELETE FROM usu_cache' );
    self::$db->query( 'VACUUM usu_cache' );
  }
   }
   /**
   * Retrieve an instance of SQLiteDatabase
   *
   * @[member='access'] public
   * @return SQLiteDatabase
   */
   public function getDb() {
  return self::$db;
   }
   /**
   * Create the initial table and fileds for SQLiteDatabase
   * @[member='access'] private
   */
   private static function createTables() {
  $create_query = "
  CREATE TABLE usu_cache (
    cache_name,
    cache_data,
    cache_date
  );

  CREATE UNIQUE INDEX idx_cache_name ON usu_cache( cache_name );";

  self::$db->query( $create_query );
   }
 } // end class

Link to comment
Share on other sites

I looked for an answer, saw a discussion about this, but no real fix: how to change the apostrophe to a dash or underscore so the url doesn't look like

 

www.domain.com/the-product-isn39t-great.html

 

but instead:

www.domain.com/the-product-isnt-great.html

 

 

The apostrophe not being converted because it is in fact coded as &39; the SEO mod strips the ampersand and semi colon character but leaves the 3 and 9 as they "look normal"

 

How do we tweak the replace to filter these?

 

Thank you for your input on this.

Link to comment
Share on other sites

Ok, I've got a real problem. I would love it if FWR Media could take a look at this and offer up an answer. Up until a couple of days ago everything was working fine until my hosting provider decided they wanted to change the security on their servers. All of a sudden I started getting Internal server errors and several other problems but the worst of which is the Internal Server error and now my Ultimate URL doesn't work. Because of their security changes my htaccess file no long works because they are no longer allowing server side rewrites and none of the other options from the contribution worked. I REALLY REALLY NEED SOMEONE'S HELP. Because GoDaddy decided to change their server securities my site is down and I am either going to have to remove Ultimate URL's (which means that all of the work I've done with SEO is out the window) or find a new hosting company. PLEASE HELP!!! is there a way I can use this contrib without doing server side rewrites or is there something else that can be done?????

Link to comment
Share on other sites

PLEASE HELP!!! is there a way I can use this contrib without doing server side rewrites or is there something else that can be done?????

 

If your host has disallowed rewrite rules then the rewrite method of USU5 cannot work.

Link to comment
Share on other sites

A couple of changes to my PDO-sqlite code above.

 

First, remove

self::$db = null;

 

in the store function.

 

Second, in file main/usu5.php, function extractCacheData. In the case for sqlite, change:

 

$row = $result->fetch();

 

to

 

if (is_object($result)) $row = $result->fetch();

 

I would recommend this edit no matter what. I am using the 1.1 version of the code, have not looked for anything newer.

Link to comment
Share on other sites

If your host has disallowed rewrite rules then the rewrite method of USU5 cannot work.

 

Ok, here's what I've found out. After spending quite some time on the phone, I've found out that my hosting company does allow server side rewrites, they just don't allow me to us +SymLinksIfOwnerMatch or FollowSymLinks. What can I do to get the same result without using these commands??

Link to comment
Share on other sites


Hello FRM,

We've been using this contribution for a while, and it's worked great up until now. We made some small changes in a couple of files, no of which affect the code for this module. Now we're receiving the following error on our index page:

 

Fatal error: Call to a member function retrieveDependencies() on a non-object in /nfs/c10/h04/mnt/146641/domains/blanksboutique.com/html/includes/modules/ultimate_seo_urls5/uri_modules/osc_experimental.php on line 51

 

We also have not changed any configuration settings. Please help us if you can, as our site is no longer functioning with SEO URL's enabled. Here is the variable dump:

 

Array

(

[languages_id] => 1

[request_type] => SSL

[session_started] => 1

[sid] =>

[language] => english

[filename] => /shop.php

[request_querystring] =>

[original_request_uri] => /shop.php

[request_uri] =>

[real_path] => /nfs/c10/h04/mnt/146641/domains/blanksboutique.com/html/

[usu_path] => /nfs/c10/h04/mnt/146641/domains/blanksboutique.com/html/includes/modules/ultimate_seo_urls5/

[db_install_path] => /nfs/c10/h04/mnt/146641/domains/blanksboutique.com/html/includes/modules/ultimate_seo_urls5/database_install/

[abstracts_path] => /nfs/c10/h04/mnt/146641/domains/blanksboutique.com/html/includes/modules/ultimate_seo_urls5/abstracts/

[includes_path] => /nfs/c10/h04/mnt/146641/domains/xxx/html/includes/modules/ultimate_seo_urls5/includes/

[cache_system_path] => /nfs/c10/h04/mnt/146641/domains/xxx.com/html/includes/modules/ultimate_seo_urls5/cache_system/

[interfaces_path] => /nfs/c10/h04/mnt/146641/domains/xxx.com/html/includes/modules/ultimate_seo_urls5/interfaces/

[page_modules_path] => /nfs/c10/h04/mnt/146641/domains/xxx.com/html/includes/modules/ultimate_seo_urls5/page_modules/

[uri_modules_path] => /nfs/c10/h04/mnt/146641/domains/xxx.com/html/includes/modules/ultimate_seo_urls5/uri_modules/

[cache_path] => /nfs/c10/h04/mnt/146641/domains/xxx.com/html/includes/modules/ultimate_seo_urls5/cache/

[base_url] => https://www.xxx.com/

[base_url_ssl] => https://www.xxx.com/

[config_settings] => Array

(

[0] => USU5_RESET_CACHE

[1] => USU5_ENABLED

[2] => USU5_CACHE_ON

[3] => USU5_URLS_TYPE

[4] => USU5_CHAR_CONVERT_SET

[5] => USU5_FILTER_SHORT_WORDS

[6] => USU5_REMOVE_ALL_SPEC_CHARS

[7] => USU5_CACHE_DAYS

[8] => USU5_USE_W3C_VALID

[9] => USU5_ADD_CPATH_TO_PRODUCT_URLS

[10] => USU5_OUPUT_PERFORMANCE

[11] => USU5_ADD_CAT_PARENT

[12] => USU5_DEBUG_OUPUT_VARS

[13] => USU5_CACHE_SYSTEM

[14] => USU5_PRODUCTS_LINK_TEXT_ORDER

[15] => USU5_MULTI_LANGUAGE_SEO_SUPPORT

)

 

[enabled] => true

[character_conversion] =>

[page_modules] => Array

(

[product_reviews] => Product_Reviews_Page_Module Object

(

[dependencies:protected] => Array

(

[products_id] => Array

(

[marker] => -pr-

[query] => SELECT pd.products_name FROM :TABLE_PRODUCTS_DESCRIPTION pd INNER JOIN :TABLE_PRODUCTS p ON pd.products_id = p.products_id WHERE pd.products_id=':pid' AND pd.language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_PRODUCTS_DESCRIPTION

[1] => :TABLE_PRODUCTS

[2] => :pid

[3] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[products_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[index] => Index_Page_Module Object

(

[dependencies:protected] => Array

(

[cPath] => Array

(

[marker] => -c-

[query] => SELECT cd2.categories_name AS pName, cd.categories_name AS cName FROM :TABLE_CATEGORIES c LEFT JOIN :TABLE_CATEGORIES_DESCRIPTION cd2 ON c.parent_id = cd2.categories_id AND c.parent_id = cd2.categories_id AND cd2.language_id = :languages_id, :TABLE_CATEGORIES_DESCRIPTION cd WHERE c.categories_id = cd.categories_id AND c.categories_id = :cid AND cd.language_id = :languages_id

[to_replace] => Array

(

[0] => :TABLE_CATEGORIES_DESCRIPTION

[1] => :TABLE_CATEGORIES

[2] => :languages_id

[3] => :cid

)

 

)

 

[manufacturers_id] => Array

(

[marker] => -m-

[query] => SELECT manufacturers_name FROM :TABLE_MANUFACTURERS WHERE manufacturers_id=':manufacturers_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_MANUFACTURERS

[1] => :manufacturers_id

)

 

)

 

)

 

[key:protected] => cPath

[cache_name_builder:protected] => Array

(

[cPath] => 1

[manufacturers_id] => 1


=> 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[newsdesk_info] => Newsdesk_Info_Page_Module Object

(

[dependencies:protected] => Array

(

[newsdesk_id] => Array

(

[marker] => -n-

[query] => SELECT newsdesk_article_name FROM :TABLE_NEWSDESK_DESCRIPTION WHERE newsdesk_id=':newsdesk_id' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_NEWSDESK_DESCRIPTION

[1] => :newsdesk_id

[2] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[newsdesk_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[newsdesk_reviews_article] => Newsdesk_Reviews_Article_Page_Module Object

(

[dependencies:protected] => Array

(

[newsdesk_id] => Array

(

[marker] => -nra-

[query] => SELECT newsdesk_article_name FROM :TABLE_NEWSDESK_DESCRIPTION WHERE newsdesk_id=':newsdesk_id' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_NEWSDESK_DESCRIPTION

[1] => :newsdesk_id

[2] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[newsdesk_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[links] => Links_Page_Module Object

(

[dependencies:protected] => Array

(

[lPath] => Array

(

[marker] => -links-

[query] => SELECT link_categories_name FROM :TABLE_LINK_CATEGORIES_DESCRIPTION WHERE link_categories_id=':lPath' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_LINK_CATEGORIES_DESCRIPTION

[1] => :lPath

[2] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[lPath] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[product_reviews_info] => Product_Reviews_Info_Page_Module Object

(

[dependencies:protected] => Array

(

[products_id] => Array

(

[marker] => -pri-

[query] => SELECT pd.products_name FROM :TABLE_PRODUCTS_DESCRIPTION pd INNER JOIN :TABLE_PRODUCTS p ON pd.products_id = p.products_id WHERE pd.products_id=':pid' AND pd.language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_PRODUCTS_DESCRIPTION

[1] => :TABLE_PRODUCTS

[2] => :pid

[3] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[products_id] => 1

[reviews_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[information] => Information_Page_Module Object

(

[dependencies:protected] => Array

(

[info_id] => Array

(

[marker] => -i-

[query] => SELECT information_title FROM :TABLE_INFORMATION WHERE information_id=':info_id' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_INFORMATION

[1] => :info_id

[2] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[info_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[newsdesk_index] => Newsdesk_Index_Page_Module Object

(

[dependencies:protected] => Array

(

[newspath] => Array

(

[marker] => -nc-

[query] => SELECT categories_name FROM :TABLE_NEWSDESK_CATEGORIES_DESCRIPTION WHERE categories_id=':newspath' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_NEWSDESK_CATEGORIES_DESCRIPTION

[1] => :newspath

[2] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[newspath] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[newsdesk_reviews_info] => Newsdesk_Reviews_Info_Page_Module Object

(

[dependencies:protected] => Array

(

[reviews_id] => Array

(

[marker] => -nri-

[query] => SELECT newsdesk_article_name FROM :TABLE_NEWSDESK_DESCRIPTION WHERE newsdesk_id=':reviews_id' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_NEWSDESK_DESCRIPTION

[1] => :reviews_id

[2] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[reviews_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[articles] => Articles_Page_Module Object

(

[dependencies:protected] => Array

(

[tPath] => Array

(

[marker] => -t-

[query] => SELECT topics_name FROM :TABLE_TOPICS_DESCRIPTION WHERE topics_id=':tPath' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_TOPICS_DESCRIPTION

[1] => :tPath

[2] => :languages_id

)

 

)

 

[authors_id] => Array

(

[marker] => -au-

[query] => SELECT authors_name FROM :TABLE_AUTHORS WHERE authors_id=':authors_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_AUTHORS

[1] => :authors_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[tPath] => 1

[authors_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[article_info] => Article_Info_Page_Module Object

(

[dependencies:protected] => Array

(

[articles_id] => Array

(

[marker] => -a-

[query] => SELECT articles_name FROM :TABLE_ARTICLES_DESCRIPTION WHERE articles_id=':articles_id' AND language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_ARTICLES_DESCRIPTION

[1] => :articles_id

[2] => :languages_id

)

 

)

 

)

 

[key:protected] =>

[cache_name_builder:protected] => Array

(

[articles_id] => 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

[product_info] => Product_Info_Page_Module Object

(

[dependencies:protected] => Array

(

[products_id] => Array

(

[marker] => -p-

[query] => SELECT pd.products_name, m.manufacturers_name, cd.categories_name, p.products_model, p2c.categories_id FROM :TABLE_PRODUCTS_DESCRIPTION pd INNER JOIN :TABLE_PRODUCTS_TO_CATEGORIES p2c ON p2c.products_id = pd.products_id INNER JOIN :TABLE_PRODUCTS p ON pd.products_id = p.products_id LEFT JOIN :TABLE_MANUFACTURERS m ON m.manufacturers_id = p.manufacturers_id INNER JOIN :TABLE_CATEGORIES_DESCRIPTION cd ON p2c.categories_id = cd.categories_id AND cd.language_id=':languages_id' WHERE pd.products_id=':pid' AND pd.language_id=':languages_id' LIMIT 1

[to_replace] => Array

(

[0] => :TABLE_PRODUCTS_DESCRIPTION

[1] => :TABLE_PRODUCTS_TO_CATEGORIES

[2] => :TABLE_PRODUCTS

[3] => :TABLE_MANUFACTURERS

[4] => :TABLE_CATEGORIES_DESCRIPTION

[5] => :languages_id

[6] => :pid

)

 

)

 

)

 

[key:protected] => products_id

[cache_name_builder:protected] => Array

(

[products_id] => 1


=> 1

)

 

[urlInitial:protected] =>

[parameters:protected] => Array

(

)

 

[add_session_id:protected] =>

[_sid:protected] =>

[cache_name:protected] =>

[query:protected] =>

[keys_index:protected] => Array

(

)

 

[page:protected] =>

[extract:aPage_Modules:private] =>

)

 

)

 

[uri_modules] => Array

(

[osc_experimental] => Osc_Experimental_Uri_Module Object

(

)

 

[standard] => Standard_Uri_Module Object

(

)

 

[path_standard] => Path_Standard_Uri_Module Object

(

)

 

[path_rewrite] => Path_Rewrite_Uri_Module Object

(

)

 

[rewrite] => Rewrite_Uri_Module Object

(

)

 

)

 

[cache] => Sqlite_Cache_Module Object

(

[extract_query] => SELECT * FROM usu_cache WHERE cache_name = ':cache_name'

[insert_query:Sqlite_Cache_Module:private] => INSERT INTO usu_cache (cache_name, cache_data, cache_date) VALUES (':cache_name', ':cache_data', ':cache_date')

[insert:Sqlite_Cache_Module:private] =>

)

 

[registry] => Data_Registry Object

(

[vars:Data_Registry:private] => Array

(

[cPath] => Array

(

[22] => Array

(

[cName] => Shirts

)

 

[23] => Array

(

[cName] => Baby

)

 

[24] => Array

(

[cName] => Other

)

 

)

 

[products_id] => Array

(

[33] => Array

(

[products_name] => Boy's Long Sleeved Shirt

[categories_name] => Shirts

[categories_id] => 22

)

 

[29] => Array

(

[products_name] => Boy's Short Sleeve Tee

[categories_name] => Shirts

[categories_id] => 22

)

 

)

 

)

 

)

 

[initiated] => 1

[page_not_found] =>

Link to comment
Share on other sites

Hi. Just upgraded to the latest version of your Ultimate SEO Pro as we will be soon upgrading our public servers. The "other" one had lots of problems with PHP 5.4.x in my carts. We are still using a base version of osCommerce 2.2, but upgraded with many, many contributions and fully php 5..4 compatible and PCI compliant, so no plans to start over with 2.3.x or 3.x versions.

 

All is working well on Ubuntu 12.04 with Apache 2.2.22, PHP 5.4.2 and MySQL 5.5, except for the dangling carrot contribution throwing (from includes/boxes/gift.php) an error as follows:

 

Catchable fatal error: Argument 1 passed to aPage_Modules::linkText() must be of the type array, null given, called in /var/www/designerdog1/includes/modules/ultimate_seo_urls5/page_modules/product_info.php on line 170 and defined in /var/www/designerdog1/includes/modules/ultimate_seo_urls5/abstracts/page_modules.php on line 338

 

Reason being their is no price posted, only text on the Gift item.

 

Can you suggest a solution to add to your page_modules.php to either ignore the (null) argument or some other solution? This problem will affect 9 carts.

GEOTEX from Houston, TX

 

(George)

Link to comment
Share on other sites

You need to create a character conversion set.

 

See the files in extras/character_conversion_pack/

 

I use the Norwegian conversion pack, but can't seem to get it to work. Tried both coversion file and in admin, but it still refuses to accept the conversion.

The Norw. conversion array looks like this:

$char_convert = array('µ' => 'ae', '°' => 'oe', 'Õ' =>'aa',
				    'ã' => 'AE', 'Ï' => 'OE', '+' => 'AA', 'õ' => 'a');

 

In my url however, the chars seems to be different.

 

http://my.server.org/dåpskort-øremærka-p-160.html

will equal

http://my.server.org/dåpskort-øremærka-p-160.html

 

Any ideas? I've saved the file as UTF-8, db is UTF-8 and the cache has been off, on and reset several times.

 

Thnx, and great contrib BTW.

Link to comment
Share on other sites

  • 2 weeks later...

Hi. Just upgraded to the latest version of your Ultimate SEO Pro as we will be soon upgrading our public servers. The "other" one had lots of problems with PHP 5.4.x in my carts. We are still using a base version of osCommerce 2.2, but upgraded with many, many contributions and fully php 5..4 compatible and PCI compliant, so no plans to start over with 2.3.x or 3.x versions.

 

All is working well on Ubuntu 12.04 with Apache 2.2.22, PHP 5.4.2 and MySQL 5.5, except for the dangling carrot contribution throwing (from includes/boxes/gift.php) an error as follows:

 

Catchable fatal error: Argument 1 passed to aPage_Modules::linkText() must be of the type array, null given, called in /var/www/designerdog1/includes/modules/ultimate_seo_urls5/page_modules/product_info.php on line 170 and defined in /var/www/designerdog1/includes/modules/ultimate_seo_urls5/abstracts/page_modules.php on line 338

 

Reason being their is no price posted, only text on the Gift item.

 

Can you suggest a solution to add to your page_modules.php to either ignore the (null) argument or some other solution? This problem will affect 9 carts.

 

I think that error is because of SEO URL 5 is not multi-language. Try changing the languaje from the URL.

 

For example if this error is on index.php file write this:

 

www.yoursite.yourdomain/index.php?language=en

 

("en" if english is your default language)

Link to comment
Share on other sites

Hello,

 

I can finally use the multilanguage support for index.php and product_info pages.

 

So /catalog/en/index.php for language works.

 

However for contact_us.php, privacy.php and conditions.php apache says "no input file specified" when the language directory is appendded to page like /catalog/contact_us.php/en or /catalog/conditions.php/en

 

Anoyne can help me on this?

Edited by acidvertigo
Link to comment
Share on other sites

Hello,

 

I've got a little problem with ultimate seo urls 5.

 

I just tried to install it on a fresh version of oscommerce 2.3.3 (I also tried it with 2.3.1 - but there's the same problem).

 

I also tried both possibilities - the drop on top installation and the manual installation.

 

 

And this is the problem:

 

At all products in a category usu5 works wonderful!

 

Only if I create a new product that's not in a product-category, I can't open the product page anymore.

 

Insteat only the little window "Whats new" in the left sidebar changes its content.

 

Do you have any idea what I can do??

 

Greets, jens

Link to comment
Share on other sites

Hello,

 

I can finally use the multilanguage support for index.php and product_info pages.

 

So /catalog/en/index.php for language works.

 

However for contact_us.php, privacy.php and conditions.php apache says "no input file specified" when the language directory is appendded to page like /catalog/contact_us.php/en or /catalog/conditions.php/en

 

Anoyne can help me on this?

 

I realized that i cannot use the multilanguage function 'cause my host don't allow followsymlinks on .htaccess.

 

So i turned the multilanguage support off.

 

However on my shop i have two languages: Italian (default) language and english (secondary).

 

I'm using Usu5 URI rewrite method and does it works well.

 

The only thing that make me mad and cannot understand why, is that if i spider with google every page in the secondary language, it gets a 301 redirect to my primary language. If a go on the same page in secondary language with a browser i get 200 OK status instead. I have the "prevent spider session" , "recreate session" and "force cookie usage" on ON.

 

My question is what changes between a googlebot request and a browser request on USU5? Why spiders gets 301 redirect and browser get 200 ok status? Anyone can reproduce it?

 

p.s. I'm sorry that is a duplicate post. but after 150 pages of posts on this forum seems that i'm the only that have this issue.

Link to comment
Share on other sites

I have been having issues with my site giving an internal server error right about the time I installed this add-on. Thinking it might be to blame, I removed it (I added it back later), but the problem persisted. After contacting my web host, I discovered the actual problem is my site's memory usage- the OSC installation in particular, is using up more RAM then my server has allotted to it. I believe this only became apparently after installing this add-on because at the same time I added a lot of new items, and the friendlier URLs also helped to bring in a lot more traffic to the shop. I went from only a few visits a day to several an hour almost overnight.

 

I know the solution is to upgrade my hosting to an option that doesn't have limited RAM allocation; however, I also saw a lot of people in this thread wanting to find the solution for the same problem, with no definite answers given except "its something with your server." Hopefully this will help someone out and save them from reading through 40+ pages of the thread looking for an answer that's not here.

Deb

Link to comment
Share on other sites

Thanks for this amazing contribution.

Got 2 quick questions:

1)

I want to add an additional word to the categories URL right after the slash so that it will change

From:

http://www.mysite.com/category-info-text-c-##.html?page=1&sort=3a

 

To:

http://www.mysite.com/MyExtraText-category-info-text-c-##.html?page=1&sort=3a

How can I do that?

 

2)

I have installed FWR other amazing KissER contribution, but right after installing this FWR USU5 Pro mod - the KissER seems to have completely stopped saving errors to the file (and I know there are still many errors and notices that supposed to be saved). Do you know why and/or how I can fix this please?

Link to comment
Share on other sites

Hi all,

 

I'm one of those unlucky people that host their page on godaddy

 

I've installed the addon on test page hosted at my home and everything works like a charm.

 

However when I try to move the page to GoDaddy I get famous: No input file specified

error. I've tried also that .htaccess file that comes with the latest Ultimate SEO distribution however it doesn't work - error is still the same.

Does anyone know if there is any possibility to fix this or do I really have to change my hosting provider ?

Edited by tratnjak
Link to comment
Share on other sites

Hi all,

 

I'm one of those unlucky people that host their page on godaddy

 

I've installed the addon on test page hosted at my home and everything works like a charm.

 

However when I try to move the page to GoDaddy I get famous: No input file specified

error. I've tried also that .htaccess file that comes with the latest Ultimate SEO distribution however it doesn't work - error is still the same.

Does anyone know if there is any possibility to fix this or do I really have to change my hosting provider ?

 

ok found a solution.

 

Besides the .htaccess file it is neccessery that you also change "Choose the uri format" in osCommerce configuration to - "rewrite"

Link to comment
Share on other sites

  • 2 weeks later...

Hi everyone,

 

I am having trouble installing this contribution. Sorry if this particular issue has come up before, but a search did not reveal it and I can't go through 192 pages of posts!

 

In a nutshell, the database changes simply don't install. It does not remove the entries for the old contribution it is replacing, nor does it add new ones. nothing.

 

I am running osCommerce 2.2 MS2

PHP Version 5.3.16

MYSQL 5.5.27

on a Windows server, running Microsoft-IIS/7.5

Trying to upgrade from Ultimate SEO URLs v2.1

 

Have followed all instructions and noted that the database changes should install themselves, but no dice. I have even given the database user all priveledges on the database in question and still nothing.

 

Any help would be greatly appreciated as this is really holding me back.

Link to comment
Share on other sites

I can't really help here as there is no history of bugs in this area and you provide no debug path.

 

includes/modules/ultimate_seo_urls5/main/Usu5_Bootstrap::adminInstalled() is the method that dictates whether or not to install admin settings so there is the place to start.

Link to comment
Share on other sites

Hi Robert! Great job, thanks!

 

When set in admin panel Enable SEO URLs 5 = true,

On product_info.php, when clik "Share" on Facebook or other social services. icon is not displayed picture of the product, only the link.

 

I identified, that in the URL is passed:

If Enable SEO URLs 5 = false

http://external.ak.fbcdn.net/safe_image.php?d=AQDMUYJdK1uXT_hx&url=http://my_domen.com/images/product_001.png

If Enable SEO URLs 5 = true

http://external.ak.fbcdn.net/safe_image.php?d=AQDMUYJdK1uXT_hx&url=http://my_domen.com/product_info.php/images/product_001.png

 

Thanks!

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