Jump to content

acidvertigo

Members
  • Content count

    275
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by acidvertigo


  1. That's a good news for all us, but where i can download the class?

     

    Hello again guys.

     

    @@Hotclutch

    @@wHiTeHaT

    @@acidvertigo

    @@vampirehunter

    @@giulmas

    @@greasemonkey

    @@Dan Cole

    @@clustersolutions

    @@Gergely

    @@burt

    @@bruyndoncx

     

    This is to notify you about the awesome sefurls class and its current status.

     

    New things:

     

    Optional multilingual alias: for example: mystore.com/en/dvd-movies 

    Optional Display the aliases from default language only: If you have multiple languages installed then you can keep the aliases of the default language and only change the language alias (en => gr).

     

    For example:

     

    Lets say that the default language in English with alias : en

     

    So if we go to the greek language we will normally have "gr/dvd-movies/komwdia" and not "gr/dvd-movies/comedy"

    But with just a click you can change an option from admin panel and so the greek language will use the english aliases AND SO we will have "gr/dvd-movies/comedy" . COOL!

     

    Cache aliases: you may cache in db, apc or json file

    Reset Cached aliases

    Optional 301 redirect

    Optional Use only last alias and not full path: for example instead of mystore.com/en/dvd-movies/action/speed you may wish mystore.com/en/speed or even mystore.com/speed

    Duplicate alias check:  if there are duplicate aliases then sefurls auto increment a number so we don't have to worry about cloned - copied products which will probably gonna have same urls.

     

    TODO:

     

    Manufacturers aliases (its a bit pain in the ass)

     

    Backward compatibility

     

    in order to implement Backward compatibility I need you to provide me with all the different variations of urls.

    So far I have spotted:

    {product_alias}-p-{products_id}.html

    {category_alias}-c-{categories_id}.html

    {category_alias}-c-{categories_id}_{categories_id}.html

    {category_alias}/{category_alias}-c-{categories_id}_{categories_id}.html

     

    How many levels of subcategories there are? Does this apply : {category_alias}/{category_alias}/{category_alias}-c-{categories_id}_{categories_id}_{categories_id}.html ???

     

    Is the extension '.html' optional or a necessity?

    Should admin be able to input custom extension other than html? (SOMETHING THAT WOULD BE COOL) For example: mystore.com/dvd-movies.ole

     

    PLEASE ADVICE

     

    P.S. Thank you for keeping interest on this awesome, to be, addon. :-)

     

    Your friendly neighborhood programmer,

     

    John Barounis


  2. This is a list to what I think could be added to the list and in general move osc to the same step of competitors:

     

    - Admin bootstrapped (big work I know but someone should begin one time GLWalker has started it)

    - php 5.4 as minimum as 5.3 is at end of life (5.4 should end it's life on summer)

    - cut drastically code duplication (same functions and class files on frontend and admin side are becoming to be unacceptable for a modern web app).

    - Multistore support

    - IPv6 support

    - functions/general.php splitted in several files as it is more easy to manage code inside (actually this file has inside too many functions with too many separated purpose as for example: date, environment, categories, products, security functions are all inside one file)

    - Google sitemap

    - A orm like (not a complete orm) system of classes that can extract more important data from database, for example product, categories, manufacturers, reviews class. ( syntax like: osc->products->findall(); speeds development)

     

    This is a huge work I know, and more core related just to ask what you guys think about those points


  3. For all the above listed in the first post: My master.

    For all those other tweaks: osCommerce Master.

     

    Note that I have full access to both my own (obviously) and osCommerce's Githubs.

     

    My development effort is on my/community 234bs as that is the model for 24 as explained above.

     

    Makes sense ?

    Not to complain, just a suggestion, but it's not more easy to maintain only one official "Master"?

     

    For example now the situation is:

    Your master: no superglobals, no some code optimization, bootstrap fully implemented, page modules on next level etc.

    Oscommerce master: superglobals, some code optimization, bootstrap buggy, shopping cart buggy etc.

     

    One master with the goods of this two masters can be a good start to develop with it. Or not?


  4. Hello @gadiol i bump this post because I was searching to elaborate the seo url from application_top.php file with "use search safe URLS" on true in admin, and without .htaccess and database edits.

     

    on application_top.php at line 88 after

    // define general functions used application-wide
      require('includes/functions/general.php');
      require('includes/functions/html_output.php');
    

    add:

      if  (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
        $link = $_SERVER['REQUEST_URI'];
        $match = array('action', 'cPath', 'manufacturers_id', 'products_id', 'pid');
      
        $url_array = explode('/', $link);
      
        foreach($url_array as $key => $value) {
          if (in_array($value,$match)) {
            $_GET[$value] = $url_array[$key+1]; 
          }
        }
      }  
    

    this code permits to make the oscommerce "use search safe URLS" feature working passing the $_GET variables. (this is true for the OSC master on github but it can work also with the current release).

     

    The next step could be to generate a slug on the fly in the tep_href_link function and next modify the code above in application_top to understand the actual page slug like: http://demo.oscommerce.com/speed-cruise-control-p-18.html 

     

    I don't know if i have explained well that idea. To reassume i like to have sef urls modifying only application top and tep_href_link code without change the database or load a lot of redundant classes for pages, this code is not complete i know, i want just to share a possibility.  

     

    can this be of interest?


  5. I'm not sure the best way to do this as some people might want the banner in the header, some in the footer, some in a page. Any thoughts on it ?

    Yeah understand that can be a little tricky. Maybe give the possibility to move header, boxes and footer content modules to Top, Bottom, column left or right position?

     

    p.s. this remembers me phpnuke era....  :D


  6. If this is an old contrib i think that inside the addon file  you should remove these lines on top

    <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html <?php echo HTML_PARAMS; ?>>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
    <title><?php echo TITLE; ?></title>
    <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
    <script language="javascript" src="includes/general.js"></script>
    <script language="JavaScript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
    <link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
    </head>
    <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
    <!-- header //-->
    <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
    <!-- header_eof //-->
    

    and remove these lines

    <!-- left_navigation //-->
    <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
    <!-- left_navigation_eof //-->
    

    and remove also

    <!-- footer //-->
    <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
    <!-- footer_eof //-->
    
    

    then add after: require('includes/application_top.php');

    require(DIR_WS_INCLUDES . 'template_top.php');

    and add to the end before: require(DIR_WS_INCLUDES . 'application_bottom.php');

    
      require(DIR_WS_INCLUDES . 'template_bottom.php');
    
    

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


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


  9. I installed the version osc 2.3.x

     

    In the first Column on the left I see this in the headline:

    TEXT_LINE_280_12371

     

     

    The database is being read as:

     

    after that everything seems fine in the left column of the report.

    I think it has something to do with the line, that is not displaying correctly on my site, but I'm not sure:

    $msg .= TEXT_LINE_280_1. $count_db_list. '</br>' .TEXT_LINE_280_2. '<i>' . $sql . '</i></br>' . ($descip_check ? TEXT_LINE_280_3 : '');

     

    Anyone also experiencing this problem and maybe has a solution for it?

     

    Have you installed the language files?


  10. Hello,

     

    i upgraded the sqlite cache system to sqlite3. From my tests it works also on php 5.4.

     

    Here the changes:

     

    On ultimate_seo_urls/cache_system/sqlite.php

     

    find:

     

    
    protected static function createDatabase() {
      if ( !is_readable( self::$sqlite_db_file ) ) {
    	self::$db = new SQLiteDatabase( self::$sqlite_db_file, 0666, $error )
    	or trigger_error( 'Failed: ' . $error, E_USER_WARNING );
    	self::createTables();
      } else {
    	self::$db = new SQLiteDatabase( self::$sqlite_db_file, 0666, $error )
    	or trigger_error( 'Failed: ' . $error, E_USER_WARNING );
      }
    }
    

     

    change to:

     

    protected static function createDatabase() {
      if ( !is_readable( self::$sqlite_db_file ) ) {
    	self::$db = new SQLite3( self::$sqlite_db_file, 0666, $error )
    	or trigger_error( 'Failed: ' . $error, E_USER_WARNING );
    	self::createTables();
      } else {
    	self::$db = new SQLite3( self::$sqlite_db_file, 0666, $error )
    	or trigger_error( 'Failed: ' . $error, E_USER_WARNING );
      }
    }
    

     

    and around line 128 find:

     

    
    $replacements = array( sqlite_escape_string( self::$cache_name ), sqlite_escape_string( $rawdata ), date( "Y-m-d H:i:s" ) );
    	  $query = str_replace( $targets, $replacements, $this->insert_query );
    	  self::$db->query( $query );
    	}
    

     

    change to:

     

    $replacements = array( self::$db->escapeString( self::$cache_name ), self::$db->escapeString( $rawdata ), date( "Y-m-d H:i:s" ) );
    	  $query = str_replace( $targets, $replacements, $this->insert_query );
    	  self::$db->exec( $query );
    	}
    

     

    around line 168 find:

     

    self::$db->query( 'DELETE FROM usu_cache' );
    self::$db->query( 'VACUUM usu_cache' );
    

     

    change to:

     

    self::$db->exec( 'DELETE FROM usu_cache' );
    	self::$db->exec( 'VACUUM usu_cache' );
    

     

    at the end find:

     

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

     

    change to:

     

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

     

     

    and on ultimate_seo_urls/main/usu5.php

     

    find on line 308:

     

    $row = $result->fetch();
    

     

    Change to:

     

    $row = $result->fetchArray();
    

     

    Hope it can help

×