Jump to content


  • Content count

  • Joined

  • Last visited

1 Follower

Profile Information

  1. Player0

    LinkPoint API & CURL Suggestion

    I don't know. There are several reasons it's not working. Yeah, I had these same problems when I tried to use the module. I can't really provide code since I've rewritten a lot of the module for my purposes. Even the new linkpoint module recently posted still has some bugs in terms of handling addresses, the subtotal when using CCGV add-on, etc. Honestly, you probably need a good programming handle with osC to make linkpoint work well at this point. Anyway. If you're on a windows platform, just forget about using Curl functions through PHP. It just *doesnt* work right with SSL. Thats why I moved to the command line variants (you can enable this in lpphp). The could not curl problem happens for several reasons itself. The first thing i did was add some debugging and echo out some more reasonable error messages based on where the problem is. I *highly* recommend trying to perform the Curl manually to linkpoint. Download Curl, install it on a directory somewhere and from the command line, try to Curl connect to linkpoint and send some sample XML. This is the BEST way to make sure your PEM and SSL stuff is working properly. You'll also see much better error messages from the command line. Understand the curl flags and make sure you have it in verbose mode, not silent mode. Thats really all I can say without more info to go on.
  2. Player0

    LinkPoint API & CURL Suggestion

    I found an interesting bug while using CURL, Apache2, PHP4 on a Win32 box just now. I have my osC stores running with the LinkPoint add-on module (which I've had to modify greatly to work right). I noticed weird dumpings in to my apachelogs. Well, long story short, I'm using the command-line CURL calls since the PHP CURL calls dont work so hot with Win32 at the moment. You may recognize something like: $result = shell_exec("$cpath -s -E \"$key\" -m 90 -d \"$xml\" $host"); Well, I added the -s parameter in to this call. This forces CURL in to silent mode and disables the progress bar etc which was finding its way in to my Apache logs for some reason (stdout conflict?) Im not sure if recent versions of the Linkpoint module contain any such fixes (I dont remember what I fixed, there was a Subtotal non-matching bug due to some mixed up HTTP fields on linkpointms1 module and some other issues with like GV&CC add-on and such). I should keep better track of what I fix to help others but unfortunately Im always under a crunch for work hehe. But yeah, I recommend the -s param on CURL calls. Probably for *nix too.
  3. Player0

    Could not execute curl help! please

    I have been struggling with Linkpoint and osC for over a week now with very little success. I've hacked the crap out of lpphp trying to figgure out exactly what is going on with this curl stuff. Using the following line helps: echo "Error: " . curl_errno($ch) . " - " . curl_error($ch) . "<br>"; I get this: Error: 58 - unable to set certificate file (wrong password?) So, I updated all my mod_ssl stuff (Im running Apache2 on Windows 2003), PHP, etc. Everything is the latest version, just in case. So, I used OpenSSL command line to verify my .PEM file. It checks out, except the certificates coming from Linkpoint are self-signed. So OpenSSL errors out. I beleive this is why CURL is failing, the self-igned linkpoint certificates. I tried using: curl_setopt($ch, CURLOPT_CAPATH, $path); This tells CURL and eventually OpenSSL to look in the CA Path for Trusted signers. This works using the OpenSSL command line with the -capath parameter, and openSSL likes the certificate. But, on a windows platform, I have NO idea where the CA Path really is. I tried making up my own, but I'm lost. I hope we can work together on this and try to solve the problem. I looked at lphp.php version 3.0.005. This can be downloaded from Linkpoints website BTW. I looked through it, and none of the CURL PHP code looks much different. I was going to update lpphp.php with the newer lphp.php file from Linkpoint, but I haven't found a reason to need to yet. My problem at least is with OpenSSL, Windows, and that damn PEM file. Im pretty sure it has something to do with CA Path and finding a way to make the PEM file trusted on the server. But Im no SSL guru. And Im tired of fighting with this lol. Am I missing something dumb and simple? Does ANYONE have this working on a Windows platform?
  4. Player0


    Still working on converting my MS2.1 store to the new MS2.2. This is a much bigger pain than I thought it would be. Nothing seems to work right without tweaks and fiddling. It would almost be easier to rewrite all my mods from scratch than to try to move them over to the new store. Anyway, my MS2.1 store used all sorts of fancy display modules, and they all relied on the splitPageResults class. Lo and behold, splitPageResults looks completely different now. Can anyone point me to some documentation regarding these changes? It just doesn't seem as simple as swapping function parameters. I guess i'm gonna have to reverse engineer it. Why change this? It seems to make less sense now. Any help would be appreciated, thanks :)
  5. I'm confused. What is $foo exactly? It never seems to be anything but empty. The is_array fixes the problem, but it seems to make that whole preorder function useless. Was $foo set to something in MS2.1? I can't seem to find it anywhere. But it must have been an array in MS2.1, and no longer is in 2.2.
  6. Player0

    copy to all files???

    Orchard, yeah...you are right. However, since osC doesn't really include all the functionality that might be needed, its necessary to copy files to a whole set of pages on occasion. Even if you want an include file as part of every page, you have to get it on each page at least originally :) I think as osC development progresses (especially along the lines of theming/headers/footers, etc), these kinds of global mods should be reduced :)
  7. Player0

    copy to all files???

    Yep, a batch replacer is a valuable tool for any web developer to have. I use UltraEdit 9 which has a batch replacer built in (and many other cool features). But you can go to hotfiles.com and download many freeware applications that do similar things.
  8. Player0

    Thema Modification

    Im using MS1. I had problems with the CVS build.
  9. Player0

    Category Specific Meta Tags

    View Source should show the meta if its working correctly
  10. The only problem I see with the 'nuke' type system of calling everything from 'default.php' is that it might have an adverse affect on some search engines. Unless you work in that apache mod which coverts something like: default.php?module=product_info&product_id=1 to: default/modules/product_info/product_id/1.php Or something. In fact, i've seen this done with osC, but i haven't a clue how to enable something like that yet (not to go off topic, but could someone point me in the right direction on that one? I beleive tibetcollection.com does that.) Well, maybe having something set up like that really wouldnt hurt search engine rankings. Someone try it :)
  11. Player0

    Category Specific Meta Tags

    Yeah, it does :) No, she did a really good job on that mod. I mostly just didnt want to add stuff to products table. Not yet anyway.
  12. Player0

    Category Specific Meta Tags

    Very nice, I'll be sure to check it out :) I installed Linda's header tags which really does some nice things, but I didn't really want product specific meta because I'm looking at a huge product database, and I dont want to scare the dataentry guys. I also want to make as few changes to products table as possible so all the mods work (although I was thinking of modifying HeaderTags to use a seperate table for storing meta/titles and then just do an SQL join, so you can access the meta fields without modifying products). But yeah, I like the idea of category specifc meta better really, simply because I'm lazy and I'll have to come up with less sets of meta :)
  13. This is a very interesting discussion. I spent 4 years working at my last job with an old store system called Minivend. As the company grew and we expanded the websites, theming because one of THE most important aspects of our store design. So now that im starting a new job, building a store platform from the ground up with osC, one of the biggest lackings with the product is the lack of a well defined Theme system. You guys are absolutely right, the last thing you want to be doing is having multiple different copies of the 'catalog' when all you want to do is change the look of the store. I'm used to creating 'sister-stores' which shaer the same database, or brand/category specific stores which run with a filter and a different look, usually off the same database. Or even if you have a completely different product database, you still want to use the same basic osC template scheme. I have been modifying my copy of osC with all of this in mind. If i make changes to osC, I want to just beable to copy them over to all the other stores i have up live without worrying that I need specific header code for this one, or a weird css file for that one. Faucet.com was my last job. It has a sisterstore Faucetoutlet.com. Each of those main stores has multiple brandstores (featured brands). Then there are category filter stores like kitchensinkstore.com or whirlpoolbathstore.com. They all use the same database, with special fields in the database to control which header/footer/sidebar files the pages load up. The 'templates' and filter rules can also be controlled via URL parameters which is very important. I'm glad to hear that osC is adding a theming system in. Until then, well I guess everyone is going to have different ideas. I'm trying to modify the main parts of the store as little as possible so I can easily upgrade features as osC releases them. But i'm still maknig sure that my store-template code is portable enough that I can move it from one site to another without breakign anything. I installed Thema 1.0 by Ferhat Kurt and I really think it could work out well. It adds a database driven control which basically has an id number. Whatever id number I set in the database will load a different theme. I modified this Thema code so that it not only changes the CSS file, but also loads a seperate set of images for the sidebars. I plan to expand this so all the header/footer images themselves are 'theme' specific, as well as all the other images like Checkout or Buy now. So now I can have my one site be theme #1, and it's sister site can be theme #2. I can use the same osC files, and just make the changes in the database, and the /theme/ folders. I might even modify the header files so that I can change the theme on the fly via URL parameters, which has been helpful to me in past projects. It still means migrating from the original osC code though, and until osC releases some sort of unified theming system, i'm not sure theres much we can build on except to do our own custom things.
  14. Player0

    Thema Modification

    Hi folks, I'm still new here, but I've been coding for osC now for the past couple weeks, and wanted to share some of the things I have done since all of you have helped me out in the same ways. I'm not good enough to be making official contributions yet, but I wanted to share a few snippets here and there. Anyway, I installed the Thema contribution on my site which really works well and makes theming my various stores much much simpler. But I wanted the ability to add static images as headers for the info boxes. There are contributions out there, but they really didn't jive with the whole 'Thema' raison d'etre. So I modified /classes/thema_boxes.php, replacing one of the tablebox functions with this: class infoBoxHeading extends tableBox { function infoBoxHeading($contents, $left_corner = true, $right_corner = true, $right_arrow = false) { // *** Modified by TRL 20030421 - Adds Static Image Header Functionality on Switch basis: $this->table_cellpadding = '0'; $trl_img_pre = '<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td>'; $trl_img_suf = '</td></tr></table>'; if ($right_arrow) { $trl_img_pre .= '<a href="' . $right_arrow . '">'; $trl_img_suf = '</a>' . $trl_img_suf; } switch ($contents[0]['text']) { case BOX_HEADING_CATEGORIES: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_categories.gif', BOX_HEADING_CATEGORIES, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_MANUFACTURERS: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_manufact.gif', BOX_HEADING_MANUFACTURERS, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_SEARCH: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_search.gif', BOX_HEADING_SEARCH, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_INFORMATION: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_information.gif', BOX_HEADING_INFORMATION, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_SHOPPING_CART: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_shopcart.gif', BOX_HEADING_SHOPPING_CART, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_BESTSELLERS: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_bestseller.gif', BOX_HEADING_BESTSELLERS, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_SPECIALS: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_special.gif', BOX_HEADING_SPECIALS, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_WHATS_NEW: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_new.gif', BOX_HEADING_WHATS_NEW, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; case BOX_HEADING_CUSTOMER_ORDERS: echo $trl_img_pre . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/tit_history.gif', BOX_HEADING_CUSTOMER_ORDERS, BOX_WIDTH_LEFT_IS, BOX_HEADER_HEIGHT_IS) . $trl_img_suf; break; default: if ($left_corner) { $left_corner = tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/corner_left.gif'); } else { $left_corner = tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/corner_right_left.gif'); } if ($right_arrow) { $right_arrow = '<a href="' . $right_arrow . '">' . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/arrow_right.gif', ICON_ARROW_RIGHT) . '</a>'; } else { $right_arrow = ''; } if ($right_corner) { $right_corner = $right_arrow . tep_image(DIR_WS_IMAGES . 'infobox/thema/' . SITE_THEMA . '/corner_right.gif'); } else { $right_corner = $right_arrow . tep_draw_separator('pixel_trans.gif', '11', '14'); } $info_box_contents = array(); $info_box_contents[] = array(array('params' => 'height="14" class="infoBoxHeading"', 'text' => $left_corner), array('params' => 'width="100%" height="14" class="infoBoxHeading"', 'text' => $contents[0]['text']), array('params' => 'height="14" class="infoBoxHeading"', 'text' => $right_corner)); $this->tableBox($info_box_contents, true); } } } As you can follow from the code, I basically just added a big SWITCH command. Whatever infobox is being called for being drawn will have a 'text' parameter named something like BOX_HEADING_CUSTOMER_ORDERS. As long as there is a CASE for each info box that might show up, it will load the appropriate image (which is stored in the standard Thema images folder). The beauty of this is though, if a box DOESNT have a CASE assigned here, it will default to displaying the standard looking Thema header. So you dont HAVE to have images for every possible headerbox that might show up. To make this work, you will also need to define the following somewhere. This just stores the header-image height. I set this to 20 for my site, which means all the header images need to be 20 pixes high. Pre-setting this makes image loading much cleaner as pages load: BOX_HEADER_HEIGHT_IS It ain't pretty, and requires a bit of manual editing, but it does work and is pretty flexible. I just thought someone out there might be looking for something similar :) I dont have an example of the site up yet, as the webserver isn't live on the net yet, but I will keep anyone interested updated :)
  15. Player0

    Static Page Generator

    Wow, very nice link :) Thanks!