Jump to content

Juto

Members
  • Content count

    365
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Juto

  1. Hi Robert it's Sara again... thanks for all support, its fantastic! Now I have this: Error Type: [E_NOTICE] Undefined index: products_id On line 29 File includes/modules/kiss_meta_tags/modules/product_info.php And the same on line 30. I do not understand enough to fix those. Kindest Sara
  2. Thanks Robert for a swift answer. I'll have to think of another way to represent half sizes then. And, I have installed the pro version and noticed that I still have some functions related to the "standard" SEO. Should I remove all of them? Kindest Sara
  3. Hi Robert, I do not know if this have something to do with KISS MT: http://www.ji-fashion.com/index.php/calzado-tamao-44189-c-50 should have been http://www.ji-fashion.com/index.php/calzado-tamaño-44½-c-50'>http://www.ji-fashion.com/index.php/calzado-tamaño-44½-c-50 I have used the html entity ½ and ½ for ½ besides ½ itself but no success Also I would love to have the categories name in the address bar: Instead of http://www.ji-fashion.com/index.php/calzado-tamaño-44½-c-50'>http://www.ji-fashion.com/index.php/calzado-tamaño-44½-c-50 This would be perfect: http://www.ji-fashion.com/index.php/calzado-tamaño-44½ Kindest Sara
  4. Hello Steve, I've have it almost done, just need a "tiny" fix... I have it on test on my dev site an upgrade from RC2a --> V2.3 so I expect it to work with 2.3.1 as well Sara
  5. Hi Sam... which are the standard bugs you mentioned? Just two questions, in: admin/categories // BOF instant update & image directory $images_dir = DIR_WS_IMAGES; // default catalog images folder; $exclude_folders = array("banners","default","icons","mail","buttons","infobox","js"); // catalog/images subfolders to exclude from adding new images $root_images_dir = DIR_FS_CATALOG . $images_dir; $new_dir = preg_replace('/[^a-zA-Z0-9_.-]/i', '_',$_POST['new_directory']); 'new_directory'<-----------Reported as undefined index $dir = (tep_not_null($new_dir) ? $new_dir : $_POST['directory']); 'directory'<-----------Reported as undefined index Is there a fix? PS about my error-debugger see post below Sara
  6. Juto

    Faster Page Loads

    Godmorning Jan. I am in the process of udating my RC2a -> v2.3, so I wonder if I can use Optimize categories box? Sara
  7. Juto

    KissMT Dynamic SEO Meta Tags

    Hello Robert, problem solved! It was entirely my own fault. The problem I caused was that I had deleted the KISS MT cache directory Also I found the bugs in my modded also_purchased_products: Error Type: [E_WARNING] fopen(/home/juto1/public_html/pub/cache/also_purchased-svenska.cache63) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory On line 58 File includes/functions/cache.php Thanks a lot for pointing me right! Me, being a wimsy flimsy woman... Sara
  8. Juto

    KissMT Dynamic SEO Meta Tags

    Hi Robert. I am almost finished upgrading my site from RC2a -> v2.3, (Only dashboard remains to be done). When running RC2a KISS MT was working excellently, thanks! After upgrade I've got som strange errors reported by KISS error handler: 1) Date / Time: 04-02-2011 20:12:52 Error Type: [E_USER_WARNING] KissMT can't write to the cache directory. Please change the permissions. On line 112 File includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php my path to the cache directory is set in admin as/home/xxxx/public_html/pub/cache/ 2) Error Type: [E_WARNING] fopen(/home/xxxx/public_html/pub/cache/categories_box-svenska.cache27_42) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory On line 58 File includes/functions/cache.php function read_cache(&$var, $filename, $auto_expire = false){ $filename = DIR_FS_CACHE . $filename; $success = false; if (($auto_expire == true) && file_exists($filename)) { $now = time(); $filetime = filemtime($filename); $difference = $now - $filetime; if ($difference >= $auto_expire) { return false; } } // try to open file if ($fp = @fopen($filename, 'r')) { <--Line 58 // read in serialized data $szdata = fread($fp, filesize($filename)); fclose($fp); // unserialze the data $var = unserialize($szdata); $success = true; } return $success; } Could it be the definition of the cache directory as DIR_FS_CACHE? Also I wonder why the ampersand is preceeding $var in the argument list? (forgive me for not being skilled at php) 3) This is an error which wasn't present in the RC2a version (I point this out since it isn't a KISS MT issue): Date / Time: 04-02-2011 20:15:16 Error Type: [E_NOTICE] Undefined offset: 27 On line 188 File includes/boxes/categories.php The code around line 188 is: if (tep_not_null($cPath)) { $new_path = ''; reset($cPath_array); while (list($key, $value) = each($cPath_array)) { unset($parent_id); unset($first_id); $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$value . "' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name"); if (tep_db_num_rows($categories_query)) { $new_path .= $value; while ($row = tep_db_fetch_array($categories_query)) { $tree[$row['categories_id']] = array('name' => $row['categories_name'], 'parent' => $row['parent_id'], 'level' => $key+1, 'path' => $new_path . '_' . $row['categories_id'], 'next_id' => false); if (isset($parent_id)) { $tree[$parent_id]['next_id'] = $row['categories_id']; } $parent_id = $row['categories_id']; if (!isset($first_id)) { $first_id = $row['categories_id']; } $last_id = $row['categories_id']; } $tree[$last_id]['next_id'] = $tree[$value]['next_id']; <-----Line 188 $tree[$value]['next_id'] = $first_id; $new_path .= '_'; } else { break; } } } Hopefully you can advice me, as so many times before Thanks in advance Kindest Sara
  9. A bug in catalog/includes/functions/general.php function tep_get_products_stock($products_id, $attributes=array()) { global $languages_id; $products_id = tep_get_prid($products_id); //Fix ? Otherwise $all_nonstocked is not defined if there are no attributes: $all_nonstocked = false; if (sizeof($attributes)>0) { $all_nonstocked = true; $attr_list=''; $options_list=implode(",",array_keys($attributes)); /*Bug fix replace $track_stock_query=tep_db_query("select products_options_id, products_options_track_stock from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id in ($options_list) and language_id= '" . (int)$languages_id . "order by products_options_id'"); with*/ $track_stock_query=tep_db_query("select products_options_id, products_options_track_stock from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id in ($options_list) and language_id= '" . (int)$languages_id . "' order by products_options_id"); while($track_stock_array=tep_db_fetch_array($track_stock_query)) { if ($track_stock_array['products_options_track_stock']) { $attr_list.=$track_stock_array['products_options_id'] . '-' . $attributes[$track_stock_array['products_options_id']] . ','; $all_nonstocked=false; } } $attr_list=substr($attr_list,0,strlen($attr_list)-1); } // Here the $all_nonstocked is undefined if the above fix isn't applied. Pipe symbol: $a | $b means either $a or $b // NB there is NO condition for $all_nonstocked below. Shouldn't be something like $all_nonstocked==false;? if ((sizeof($attributes)==0) | ($all_nonstocked)) { $stock_query = tep_db_query("select products_quantity as quantity from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'"); } else { $stock_query=tep_db_query("select products_stock_quantity as quantity from " . TABLE_PRODUCTS_STOCK . " where products_id='". (int)$products_id . "' and products_stock_attributes='$attr_list'"); } if (tep_db_num_rows($stock_query)>0) { $stock=tep_db_fetch_array($stock_query); $quantity=$stock['quantity']; } else { $quantity = 0; } return $quantity; //++++ QT Pro: End Changed Code } Have someone else found this and a correct fix? Sara
  10. Juto

    Custom Server Error Pages

    Hi Jack, I hope you'll find time to answer this: I have KISS error handler installed which reports: -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Date / Time: 31-01-2011 18:03:42 Error Type: [E_NOTICE] Undefined variable: error_id On line 422 File includes/languages/svenska/access_error.php -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Date / Time: 31-01-2011 18:03:42 Error Type: [E_NOTICE] Undefined index: On line 422 File includes/languages/svenska/access_error.php -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I have renamed server_error.php to access_error.php The lines in question are: define('SERVER_ERROR_NUMBER', $server_error_number[$error_id]); define('SERVER_ERROR_TITLE', $server_error_title[$error_id]); define('SERVER_ERROR_TEXT', $server_error_text[$error_id]); I wonder if it's got something to do with: <td class="pageHeading" align="center"><?php echo $server_error_title[$error_id]; ?></td> ? I noticed that you have this in v1.1: <td class="pageHeading"><?php echo $server_error_number[$server_error_id]; ?> <?php echo $server_error_title[$server_error_id]; ?>:</td> Is it enough to change that <td> -tag to yours? Or are ther more bug fixes? Sara
  11. Hi Sam, my site is heavely modified. What I need is only the modifications to products_new. I have read through your file and compared with the vanilla RC2a, but could not identify the modifications needed. Do you possibly have a file with where the changes are highlighted? If not, could you please advice me on how to get the products in columns for products_new? Kind regards Sara
  12. Juto

    Dibs credit card payment

    Hi! I have correctly installed Dibs payment module but it doesn't work. Upon going back to the shop from Dibs I get: "Payment canceled" Please select another payment option... I have tried to fix this for weeks now and asked Dibs (no solution given). I beleive this has been an issue with other payment modules too with Osc RC2a. So please let me in on the secret on the fix :) Sara
  13. Juto

    AJAX Attribute Manager support

    Hi Chris, nice work! Have you managed to get it multilingual? Sara
  14. Juto

    AJAX Attribute Issue - Help

    Hi Steffani, sorry for my late answer. I didn't get an e-mail note about this topic :( Anyway the English define is (Look into to the folder languages in attribute manager): define('AM_AJAX_QT_PRO', 'This Products total Quantity in stock'); About your other problem, I really don't know... I might be that you have another contribution that is incompatible? Hopes this helps Sara
  15. Juto

    AJAX Attribute Issue - Help

    Hi! If you look into attributeManager.php you will see a lot of short tags like: <?=AM_AJAX_QT_PRO?> The standard requires these to be: <?php echo AM_AJAX_QT_PRO;?> I have fixed all of these, plus all the bugs. At the moment I am trying to get it to be multilingual which the attribute manger is not. It doesn't insert option name, values and attributes for all languages. Further more "track stock" do not trigger "track stock" in the standard OSC product attributes. Hope this gets you on the way Greetings from Sweden Sara
  16. Juto

    AJAX Attribute Manager support

    Hello Peter. I have tried to replace the escape. That did not solve the problem with adding options and values and product attribute for other languages. If I change the admin language to another, AAM will still only insert Option names and values for the default language. Also I have tried version 2.8.6 ... same problem again. The Option name and values are not inserted into the DB. If, I use the osc standard product attribute and insert option names and values, they show up in the AAM. But that's what AAM is supposed to do directly. So, any news about the language problem? Kindest Sara
  17. Juto

    AJAX Attribute Manager support

    Hi Peter, in the javascript you need to replace the function amAddStockToProduct with: function amAddStockToProduct(dropDownOptionsList) { // we rebuild the array var dropDownOptions = dropDownOptionsList.split(/,/); if(0 === dropDownOptions.length){ return false;} var optionValue = new Array(dropDownOptions.length); for(var i = 0; i < dropDownOptions.length; i++) { optionValue = getDropDownValue(dropDownOptions); } var stockQuantity = getDropDownValue('stockQuantity'); var stockOptions = ''; -bug fix-> for(var j = 0; j < dropDownOptions.length; j++) { stockOptions = stockOptions + dropDownOptions[j]+'='+optionValue[j]+'&'; } amSendRequest('amAction=addStockToProduct&'+stockOptions+'stockQuantity='+stockQuantity); return false; I missed to insert j as the lower limit. Kindest Sara
  18. Juto

    AJAX Attribute Manager support

    Hello Peter, I have done this as you suggested: 1. FIND in catalog\admin\attributeManager\javascript\attributeManager.js around line 290 returnArray.push(allValues.id+':'+escape((getElement(allValues.id).value))); and REPLACE it with returnArray.push(allValues.id+':'+encodeURIComponent((getElement(allValues.id).value))); 2. ADD to catalog\admin\attributeManager\includes\attributeManagerGeneralFunctions.inc.php BEFORE last ?> // convert charset from UTF-8 to e-shop defaults function amIconv($string) { return iconv('UTF-8', CHARSET . '//TRANSLIT', $string); } 3. FIND in catalog\admin\attributeManager\classes\attributeManager.class.php around line 274 'products_options_name' => amDB::input($name) and REPLACE it with 'products_options_name' => amIconv(amDB::input($name)) 4. FIND in catalog\admin\attributeManager\classes\attributeManager.class.php around line 319 'products_options_values_name' => amDB::input($name) and REPLACE it with 'products_options_values_name' => amIconv(amDB::input($name)) And, I tested by defining a new Option and Option values in my shops 4 languages But, they do not show up in product attributes for other languages than the selected administrative language. So, It seems to me that the tables for these are not updated for all langugaes. I think that a loop over all languages is missing, or? Like so: for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) { //Insert Option names //Insert Option Values } I think the loop have to be in attributeManager.php Also, I do not understand the "Track Stock" possibility. I have marked it, but it does not seem to do anything? I thought that it would be setting the "Track Stock" to "Yes" in the product attribute. Can you help me with this issues, please? Kindest Sara
  19. Juto

    AJAX Attribute Manager support

    Hello again Peter! I made a search for the escape function and found three instances of it in my attributeManager.js: Line 290: returnArray.push(allValues.id+':'+escape((getElement(allValues.id).value))); and REPLACE it with returnArray.push(allValues.id+':'+encodeURIComponent((getElement(allValues.id).value))); NB: There are two more instances of escape: Line 473: amSendRequest('amAction=updateDownloadAttributeToProduct&option_id='+getPromptHiddenValue('option_id') + '&products_attributes_id='+products_attributes_id + '&products_attributes_filename=' + escape(products_attributes_filename) + '&products_attributes_maxdays=' + products_attributes_maxdays + '&products_attributes_maxcount=' + products_attributes_maxcount); Line 482: amSendRequest('amAction=addDownloadAttributeToProduct&option_id='+getPromptHiddenValue('option_id') + '&products_attributes_id='+products_attributes_id + '&products_attributes_filename=' + escape(products_attributes_filename) + '&products_attributes_maxdays=' + products_attributes_maxdays + '&products_attributes_maxcount=' + products_attributes_maxcount); I assume that I need to replace all three with the encodeURIComponent. Correct?
  20. Juto

    AJAX Attribute Manager support

    Hello Peter, first I must say that you are doing a fantastic job. Excellent work! And, your English is quite good. So, back to issues: 1) Can I use your advice in post#1064 about encodeURIComponent ? Or should I wait until you have the final advice? 2) How can I set Track Stock to be true as default, when editing a new product? 3) Adjacent to adding options values to a product, is it possible to have an input field for stock quantity for this option value? I have also fixed the requester.js to the below, I have it running ok since some days ago. I have also redesigned QTpro, to use lanaguage files for the texts. It works nicely. Today I have English and Swedish. For Spanish and German I use copies of the English files. If you would like to have these I could e-mail those to you. The requester looks like this: //Bug fixed by S.Juto function Requester() { this.action = null; this.XML = null; this.commInterface = null; this.targetId = null; // Initialise XMLHttpRequest object this.resetXMLHR(); return true; } /** * Check if the XMLHttpRequest object is available */ Requester.prototype.isAvailable = function(){ return (this.commInterface === null) ? false : true; }; /* Execute the action which has been associated with the completion of this object */ Requester.prototype.executeAction = function() { // If XMLHR object has finished retrieving the data if (this.commInterface.readyState === 4) { // If the data was retrieved successfully try { if (this.commInterface.status === 200) { this.responseText = this.commInterface.requestXML; this.action(); } // IE returns status = 0 on some occasions, so ignore else if (this.commInterface.status !== 0){ alert("There was an error while retrieving the URL: " + this.commInterface.statusText); } } catch (error){} } return true; }; /* Return responseText */ Requester.prototype.getText = function() { return this.commInterface.responseText; }; /* Return responseXML */ Requester.prototype.getXML = function() { return this.commInterface.responseXML; }; /* Initialise XMLHR object and load URL */ Requester.prototype.loadURL = function(URL, CGI) { this.resetXMLHR(); this.commInterface.open("GET", URL + "?" + CGI); var e=(document.charset||document.characterSet||'ISO-8859-8-i'); this.commInterface.setRequestHeader("Content-Type", "text/html; charset="+e); this.commInterface.setRequestHeader('Accept-Charset',e); this.commInterface.send(null); return true; }; /* Turn off existing connections and create a new XMLHR object */ Requester.prototype.resetXMLHR = function() { var self = this; if (this.commInterface !== null && this.commInterface.readyState !== 0 && this.commInterface.readyState !== 4) { this.commInterface.abort(); } try { this.commInterface = new XMLHttpRequest(); } catch (error) { try { this.commInterface = new ActiveXObject("Microsoft.XMLHTTP"); } catch (error) { return false; } } this.commInterface.onreadystatechange = function() { self.executeAction(); return true; }; return true; }; /* Assign the function which will be executed once the XMLHR object finishes retrieving data */ Requester.prototype.setAction = function(actionFunction,part) { this.action = actionFunction; return true; }; Requester.prototype.setTarget = function(targetId) { this.targetId = targetId; return true; }; Requester.prototype.getTarget = function() { return this.targetId; }; Kind regards Sara
  21. Juto

    AJAX Attribute Manager support

    O' I see. You are doing a tremendous excellent work right, for which I am most greatful. :) By the way I have found this why encodeURIComponent() for data in body of POST XHR request? Hopefully it will be of help? Sara
  22. Juto

    AJAX Attribute Manager support

    Thank you Peter! I believe you a refering to post #1064? I will try that tomorrow, right now I am so tired after a long days work. Suggestion: Someone should write a "how-to": 1) Using attribute manager for a new product 2) Editing an existing product 3) Editing Options and Options Values i.e changing these. I Think most of the problems (including mine) are because the "work-flow" isn't described? Kindest Sara
  23. Juto

    AJAX Attribute Manager support

    You are most welcome :) Now, I have 2 questions: My site is multilingaul, when I add an option I therefore have the opportunity to add the Option Name and the Option Values in these languages. But, these data are not saved. The data saved is only for the selected administration language. So, is it possible to insert the language specific data in the product attributes table for all languages? Today I have to go into the product attribute and fix the language support manualy. Next, for a given Option I try to add several Option Values, but that is not possible. The data is not saved for that product I have to go to the product attribute once more to add these. I beleive that the purpose is to add all of these through the Attribute Managers interface? Any solutions? Kindest Sara
  24. Juto

    AJAX Attribute Manager support

    Hi Peter, I finaly had the time to test it, and it works. Thank you :) My corrections to the javascript also works nicely, pages loads faster and are mor stable. Kindest Sara
  25. Juto

    AJAX Attribute Manager support

    UPDATE in the above code replace the entire function amSendRequest(requestString,functionName, refresh, target) With: function amSendRequest(requestString,functionName, refresh, target) { var arRequestString = new Array; if('' !== requestString){ arRequestString.push(requestString);} if('' !== productsId){ arRequestString.push('products_id='+productsId);} if('' !== pageAction){ arRequestString.push('pageAction='+pageAction);} if('' !== sessionId){ arRequestString.push(sessionId);} if(refresh == false){ amRequester.setAction(amEmpty);} else { amRequester.setAction((((null == functionName) || ('' == functionName)) ? amUpdateContent : functionName));} if(null == target) { amRequester.setTarget('attributeManager'); } else { amRequester.setTarget(target); arRequestString.push('target='+target); } requestString = arRequestString.join('&'); amRequester.loadURL(url, requestString); return false; } Sara
×