Jump to content
Latest News: (loading..)


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by GLWalker

  1. @@Gyakutsuki Agreed. I have a module group I dubbed "page_loader". I use it to diplay everything from text and modules on the home page, to reusing the new products module on the new products page, or category listing, so on and so forth. Actually I could do away with all static pages, even the contact and sign up and checkout pages and run them all on the index with it, but I wont (yet) - though 2.4 will handly this fashioably anyhow. Using on any page needed, does create a bit more overhead efining where it is allwed to display than creating one that is page specific. For the communities best interest what were working on here would probably be the easiest to install.
  2. ve put together a working products_notifications modules. I added in a choice to send the customer to the home page (default) or their account page upon submitting. If anyone has any other useful ideas for it, please post. @@burt Do you have the code for the thank you message and order history available at a repo? I'll consolidate everything into a package, credit given to all who contribute of course. So far, I have Kymations cfgm_ code, cs_product_notifications, cs_commision_junction AND cs_shareAsale - for those that may run those affilate programs, and am putting together the social share module. I believe I may also do a very simple downloads inclusion module, mainly just so that it can be sorted into the desired posistion. Next it may be for everyones benifit to create a beer module that allows virtual creation of beer on demand - Lone-Star only of course, if you cant party like a Texian, then you have to code your own ingredients.
  3. @@Gergely I'm fiddling with getting a start together based on the files Jim uploaded. Maybe I'm follwing wrong, but Is there already an existing class "checkout_success"?
  4. I think thats the way to go, I suggested header_tags modules in the earlier post only to keep it a bit simpler and avoid installing a new module group. However, with the number of things Ive seen shop owners need in a checkout success page, a new module group is the key. Not only do the ideas mentioned here deserve a method of arranging and displaying, but there a many various affiliate programs that require their image pixel to be on a page, take commision junction for example - they want a pixel for the basic transaction, and then they have a per product based program that sets higher commision to some products above others. This creates the need to set seperate tracking information at checkout. Then sometimes for shops running payments by check, its not worth allowing that transistion to push through becuase those orders do not always get finalized. So anyway, a dedicated admin module would give the ability to easily create such other modules that would warrant the need for extra information, and the modules are certianly better than hacking up the actual page. Your module at pastebin would be perfect for the initial thank you message - I would suggest adding in multilingual ability. Anyhow - sounds like a good point to start with.
  5. I can put together the social share code as a module to activate VIA header tags. I just have to recode it, but Ive done simular with some affilate program code by placing a new line in the body of the checkout_success page that then calls the module code. It would be a nice package to include: notifications, success message, social share, and order details all with admin control. Gimme a few days to recode and uploaded, have a few things to work on first.
  6. I recently incorporated a social share system as you mentioned. I created it after seeing a rather bulking third party one that a client paid a monthly bill on to use as a way of promotions. Basically I used the order notifications query to pull the data I needed, and linked the social buttons to the respective product info page, with the text "I just purchased XXX from ZZZ.com"
  7. Developers and Do It Yourselfer's: check out this tool >>> http://ipadpeek.com/

    1. multimixer


      ... and I really started touching my computer screen - lol - time for ouzo I guess !

    2. tgely


      multi XDDDDDDDDDDD


      The new application menu works like a charm :)


    3. MrPhil


      Does this tool reflect any real Safari browser/JS limitations, or is it just screen size? How about other tablets and smart phones?

  8. http://elvery.net/demo/responsive-tables/ - I applied the "No More Tables" example to the shopping_cart table. The result is perfect in responsive view mode. Very easy to implement and no scripts needed!
    1. burt


      that looks very interesting! thanks for posting it

    2. mattjt83


      Tried it out a few months ago but IE chokes on it...

    3. GLWalker


      Thanks for the heads up - I'll just place it in a conditional script so IE reverts to a normal table.

  9. GLWalker

    How to turn a customization into an add-on?

    @@Julien324 The install files yu may have found in some contributions, do as you imply, they either create or modify database tables, making it a step or 2 shorter for the one installing. Depending what you have made, there are a few ways to go about it, you could create a mod that links into the oscTemplate class, and then create a module file for it. Again, depending what you made, it could hook into a template block and function, or simply hook to nothing, yet the module file controls adding or removing its functioanility where ever it may be. Other than that, carefully write out instructions of what to find, and what to replace with, and a set of sql commands to run. You may find it more work than you wish to deal with writing out documentation, and in that case, simply write a thorough description of what your modification will do, and include the editied files with notes to use a file comparision program for instlling + any sql commands. If anyone else finds good use for the contribution, they may addon/edit/modify it (including istructions) for the use of others. I hope that did not confuse you, but in time it "may" become clear. So what do you have in mind to release? Letting the community know my be the first step in the right direction.
  10. GLWalker

    [Contribution] STS v4

    It is strongly advised to move away from the 2.2 platform, especially when doing a fresh instalation. 2.3.X is structured in such a way that STS is no longer needed for ease of theming. With the time you may very well spend working on STS and building out a theme you are satisfied with, the same could be accompished using the most up to date and secure version of osCommerce. Another factor to think of is any future addons or updates.
  11. GLWalker

    Category Top Banner

    This is probably the simplest way to do it: open index.php find: <h1><?php echo HEADING_TITLE; ?></h1> Under add: <?php if ($banner = tep_banner_exists('dynamic', 'cat_' . $cPath)) { echo tep_display_banner('static', $banner); } ?> Next find: <h1><?php echo $catname; ?></h1> And again, under add: <?php if ($banner = tep_banner_exists('dynamic', 'cat_' . $cPath)) { echo tep_display_banner('static', $banner); } ?> Now in the addmin banner manager, when adding your banner, asign a group name: cat_# If you have subcategories, then you'll need to create group names as: cat_#_# where # is replaced by the category id.
  12. ASN Forum for osCommerce is so far the best "simple" forum addon I have found. Many thanks to the MasterGiGi and all others who have worked on this mod . Hopefully we can advance this script little by little, as it looks to be a very promising piece of code. As time permits I shall be cleaning it up to better match osC code and style. My first step has been to create a customer moderator addon. The contribution may be found here: http://addons.oscommerce.com/info/4832
  13. admin products_attributes.php has to be the most difficult beast of all time - HTML wise

    1. burt
    2. GLWalker


      The beast is now purring like a kitten. That's the nicest thing I can say.

  14. GLWalker

    OSCOM v2.3.4 and PHP v5.5 (mysqli)

    I may not be one with room to speak, but let me point out - as Gergely noted, web technology is ever changing, if you look at what has been happening with osCOmmerce since the release of 2.3.1, you see that they are keeping up with the current technology as well as gearing towards future changes. As we have all seen - security is top priority with any ecommerce software - keeping up with the latest, and one step ahead for future SQL and PHP releases, is an excellent way of staying up to par with security. Next we need effeicency; everyone wants a fast website, its very important to a site that is moving product. There are many advantages in coding foward, as each milestone release of the programming language usually brings about a tightend set of functions, and if a software takes advantage of this, rather than rely on older code, a real difference can be made. There is not a major PHP release that does not bring with it enhanced performance features. This also touchs upon contribution usage, why use outdated addons on an up to date store? Its like taking a Mercedes emble off of a car and replacing it with Dodge. You have to look at the advantages 2.4 will bring with contribution releases. See Gary's blog for a good rundown of 2.4, http://www.clubosc.com/oscommerce-2-4-intense-work-ongoing-for-30-days.html, all the changes really make a lot of sense. As your current build of of 2.3.1, its really not very much work to upgrade to 2.3.3. You can make use of many of the adons available and be very pleased with your shop; no need to worry of 2.4 - but it will be a vailable option for many that wish to unleash it.
  15. GLWalker

    OSCOM v2.4: Multiple Templates and Apps Proposal

    If I follow the opening post correctly, you want to extend the template class to include general files, then they will show on index, as asigned VIA admin? I did something simular with the contact page when 2.3 was newly released. It worked ok, as long as I used the default URL structure. I'll post the code here for example - one thing I did change though, I placed a new column in the categories table as a flag to let the program know if it is loading an actual category page, or just simply a page to hold other content, such as what I made a module group for dubbed page_loader. <?php /* $Id: $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2010 osCommerce Released under the GNU General Public License */ class pl_contact { var $code = 'pl_contact'; var $group = 'page_loader'; var $title; var $description; var $sort_order; var $enabled = false; var $languages_array = array (); function pl_contact() { $this->title = MODULE_PAGE_LOADER_CONTACT_TITLE; $this->description = MODULE_PAGE_LOADER_CONTACT_DESCRIPTION; if (defined('MODULE_PAGE_LOADER_CONTACT_STATUS')) { $this->sort_order = MODULE_PAGE_LOADER_CONTACT_SORT_ORDER; $this->enabled = (MODULE_PAGE_LOADER_CONTACT_STATUS == 'True'); } } function execute() { global $oscTemplate, $language, $_SERVER, $cPath, $messageStack, $_GET, $_POST, $sessiontoken, $error, $name, $email_address, $enquiry, $actionRecorder, $customer_id, $page_text; if ( (strpos($_SERVER['PHP_SELF'],FILENAME_DEFAULT)) && (isset($cPath) && tep_not_null($cPath)) && ($cPath == PAGE_LOADER_CONTACT_PAGE_ID) ) { if (isset($_GET['action']) && ($_GET['action'] == 'send') && isset($_POST['formid']) && ($_POST['formid'] == $sessiontoken)) { $error = false; $name = tep_db_prepare_input($_POST['name']); $email_address = tep_db_prepare_input($_POST['email']); $enquiry = tep_db_prepare_input($_POST['enquiry']); if (!tep_validate_email($email_address)) { $error = true; $messageStack->add('contact', ENTRY_EMAIL_ADDRESS_CHECK_ERROR); } $actionRecorder = new actionRecorder('ar_contact_us', (tep_session_is_registered('customer_id') ? $customer_id : null), $name); if (!$actionRecorder->canPerform()) { $error = true; $actionRecorder->record(false); $messageStack->add('contact', sprintf(ERROR_ACTION_RECORDER, (defined('MODULE_ACTION_RECORDER_CONTACT_US_EMAIL_MINUTES') ? (int)MODULE_ACTION_RECORDER_CONTACT_US_EMAIL_MINUTES : 15))); } if ($error == false) { tep_mail(STORE_OWNER, CONTACT_FORM_EMAIL_ADDRESS, EMAIL_SUBJECT, $enquiry, $name, $email_address); $actionRecorder->record(); tep_redirect(tep_href_link(FILENAME_CONTACT_US .'&action=success')); } } if (isset($_GET['action']) && ($_GET['action'] == 'success')) { $page_text .= TEXT_SUCCESS; $page_text .= tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); } else { $page_text .= tep_draw_form('contact_us', tep_href_link(FILENAME_CONTACT_US .'&action=send'), 'post', '', true); if ($messageStack->size('contact') > 0) { $page_text .= $messageStack->output('contact'); } $page_text .= '<table border="0" width="100%" cellspacing="0" cellpadding="2">' . "\n"; $page_text .= ' <tr>' . "\n"; $page_text .= ' <th class="fieldKey">' . ENTRY_NAME . '</th>' . "\n"; $page_text .= ' <td class="fieldValue">' . tep_draw_input_field('name') .'</td>' . "\n"; $page_text .= ' </tr>' . "\n"; $page_text .= ' <tr>' . "\n"; $page_text .= ' <th class="fieldKey">' . ENTRY_EMAIL . '</th>' . "\n"; $page_text .= ' <td class="fieldValue">' . tep_draw_input_field('email') . '</td>' . "\n"; $page_text .= ' </tr>' . "\n"; $page_text .= ' <tr>' . "\n"; $page_text .= ' <th class="fieldKey">' . ENTRY_ENQUIRY . '</th>' . "\n"; $page_text .= ' <td class="fieldValue">' . tep_draw_textarea_field('enquiry', 'soft', 50, 15) . '</td>' . "\n"; $page_text .= ' </tr>' . "\n"; $page_text .= '</table>' . "\n"; $page_text .= tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', null, 'primary'); $page_text .= '</form>' . "\n"; } $oscTemplate->addBlock($page_text, $this->group); } } function isEnabled() { return $this->enabled; } function check() { return defined('MODULE_PAGE_LOADER_CONTACT_STATUS'); } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Text Main', 'MODULE_PAGE_LOADER_CONTACT_STATUS', 'True', 'Allow contact form?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Page Id', 'PAGE_LOADER_CONTACT_PAGE_ID', '0', 'The cPath Id that the page to use this module contains', '6', '1', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Contact Email', 'CONTACT_FORM_EMAIL_ADDRESS', '".STORE_OWNER_EMAIL_ADDRESS."', 'Address contact form should mail to.', '6', '3', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_PAGE_LOADER_CONTACT_SORT_ORDER', '0', 'Sort order. This doesn\'t really matter here, just do not duplicate numbers', '6', '10', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAGE_LOADER_CONTACT_STATUS','PAGE_LOADER_CONTACT_PAGE_ID','CONTACT_FORM_EMAIL_ADDRESS','MODULE_PAGE_LOADER_CONTACT_SORT_ORDER'); } }
  16. Well done Guys. Congratulations

  17. GLWalker

    Girt Certificate Module

  18. GLWalker

    Tax Exempt MS2.2

    Apparently you did not learn too much. You cant even figure out how to make a new field show up in the customers account? It doesn't matter if it's in the install instructions or not. You have several examples in the existing customers.php file, and, after going through the new files several times, you couldn't figure out what to code a new field as? Go ahead and install a huge contribution with your bad self then. Just make sure when you CANT do it, yougo blame it on the people that FREELY work hard creating the code for you to FREELY use. You truly are a victim, all arrogance aside, total ignorance abounding.
  19. <?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '">' . tep_image_button('button_checkout.gif', IMAGE_BUTTON_CHECKOUT) . '</a>'; ?> I normally wouldnt answer this, as YOU need to do the work. It is not hard to look for a peice of code that contains a checkout button.
  20. Just remove the block of code for the checkout button it in shopping_cart.php and then place a redirect in checkout_shipping.php, checkout_payment.php and checkout_confirmation.php thatsends back to shopping_cart.php.
  21. GLWalker

    Looking For A Contribution

    Try version 2.2 here: http://addons.oscommerce.com/info/2610
  22. GLWalker

    custom imprinting add on

    This contribution has the option to put in a text box or textfield, your customer can then fill it out and you will get the details in the admin orders page. http://addons.oscommerce.com/info/160
  23. GLWalker

    Header Tags SEO

    If anyone besides me still uses newsdesk here is a simple code add on that will work automatically with newsdesk. It will use the newsdesk article and category name for meta title and keyword and logo text. It will use the newsdesk articles Summary as meta description, so you cannot use HTML in the summary, but give and take right? Its about as automatic as I could make it. Just place it in catalog/includes/header_tags.php above the line that reads : // ALL OTHER PAGES NOT DEFINED ABOVE //NEWSDESK_INDEX case (basename($PHP_SELF)==FILENAME_NEWSDESK_INDEX): $pageTags_query = tep_db_query("select * from " . TABLE_HEADERTAGS . " where page_name like '" . FILENAME_NEWSDESK_INDEX . "' and language_id = '" . (int)$languages_id . "'"); $pageTags = tep_db_fetch_array($pageTags_query); $catStr = "select categories_name as htc_title_tag, categories_name as htc_desc_tag, categories_name as htc_keywords_tag from " . TABLE_NEWSDESK_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "' and language_id = '" . (int)$languages_id . "'"; $sortOrder['title'][0] = $pageTags['page_title']; $sortOrder['description'][0] = $pageTags['page_description']; $sortOrder['keywords'][0] = $pageTags['page_keywords']; $sortOrder['logo'][0] = $pageTags['page_logo']; $sortOrder = GetCategoryAndManufacturer($sortOrder, $pageTags, $defaultTags, $catStr); if ($pageTags['append_default_title'] && tep_not_null($tmpTags['def_title'])) $sortOrder['title'][$pageTags['sortorder_title']] = $tmpTags['def_title']; if ($pageTags['append_default_description'] && tep_not_null($tmpTags['def_desc'])) $sortOrder['description'][$pageTags['sortorder_description']] = $tmpTags['def_desc']; if ($pageTags['append_default_keywords'] && tep_not_null($tmpTags['def_keywords'])) $sortOrder['keywords'][$pageTags['sortorder_keywords']] = $tmpTags['def_keywords']; if ($pageTags['append_default_logo'] && tep_not_null($tmpTags['def_logo_text'])) $sortOrder['logo'][$pageTags['sortorder_logo']] = $tmpTags['def_logo_text']; FillHeaderTagsArray($header_tags_array, $sortOrder); break; // NEWSDESK_INDEX.PHP etc case (basename($PHP_SELF)==FILENAME_NEWSDESK_INFO): case (basename($PHP_SELF)==FILENAME_NEWSDESK_REVIEWS_ARTICLE): case (basename($PHP_SELF)==FILENAME_NEWSDESK_REVIEWS_WRITE): switch (true) { case (basename($PHP_SELF)==FILENAME_NEWSDESK_INFO): $filename = FILENAME_NEWSDESK_INFO; break; case (basename($PHP_SELF)==FILENAME_NEWSDESK_REVIEWS_ARTICLE): $filename = FILENAME_NEWSDESK_REVIEWS_ARTICLE; break; //case (basename($PHP_SELF)==FILENAME_PRODUCT_REVIEWS_INFO): $filename = FILENAME_PRODUCT_REVIEWS; break; case (basename($PHP_SELF)==FILENAME_NEWSDESK_REVIEWS_WRITE): $filename = FILENAME_NEWSDESK_REVIEWS_WRITE; break; default: $filename = FILENAME_NEWSDESK_INFO; } $pageTags_query = tep_db_query("select * from " . TABLE_HEADERTAGS . " where page_name like '" . $filename . "' and language_id = '" . (int)$languages_id . "'"); $pageTags = tep_db_fetch_array($pageTags_query); $the_newsdesk_info_query = tep_db_query("select p.newsdesk_id, pd.newsdesk_article_name, pd.newsdesk_article_shorttext from " . TABLE_NEWSDESK . " p left join " . TABLE_NEWSDESK_DESCRIPTION . " pd on p.newsdesk_id = pd.newsdesk_id where p.newsdesk_id = '" . (int)$_GET['newsdesk_id'] . "' and pd.language_id ='" . $languages_id . "'"); $the_newsdesk_info = tep_db_fetch_array($the_newsdesk_info_query); $header_tags_array['news_article'] = $the_newsdesk_info['newsdesk_article_name']; //save for use on the logo $tmpTags['news_title'] = (tep_not_null($the_newsdesk_info['newsdesk_article_name'])) ? $the_newsdesk_info['newsdesk_article_name'] : ''; $tmpTags['news_desc'] = (tep_not_null($the_newsdesk_info['newsdesk_article_shorttext'])) ? $the_newsdesk_info['newsdesk_article_shorttext'] : ''; $tmpTags['news_keywords'] = (tep_not_null($the_newsdesk_info['newsdesk_article_name'])) ? $the_newsdesk_info['newsdesk_article_name'] : ''; $catStr = "select c.categories_name as htc_title_tag from " . TABLE_NEWSDESK_CATEGORIES_DESCRIPTION . " c, " . TABLE_NEWSDESK_TO_CATEGORIES . " p2c where c.categories_id = p2c.categories_id and p2c.newsdesk_id = '" . (int)$the_newsdesk_info['newsdesk_id'] . "' and language_id = '" . (int)$languages_id . "'"; $sortOrder['title'][0] = $pageTags['page_title']; $sortOrder['title'][10] = $tmpTags['news_title']; //places it at the end of the list $sortOrder['description'][10] = $pageTags['page_description']; $sortOrder['description'][0] = $tmpTags['news_desc']; $sortOrder['keywords'][0] = $tmpTags['news_keywords']; $sortOrder['keywords'][10] = $pageTags['page_keywords']; $sortOrder['logo'][0] = $pageTags['page_logo']; $sortOrder['logo'][10] = $tmpTags['news_title']; $sortOrder = GetCategoryAndManufacturer($sortOrder, $pageTags, $defaultTags, $catStr, true); if ($pageTags['append_default_title'] && tep_not_null($tmpTags['def_title'])) $sortOrder['title'][$pageTags['sortorder_title']] = $tmpTags['def_title']; if ($pageTags['append_default_description'] && tep_not_null($tmpTags['def_desc'])) $sortOrder['description'][$pageTags['sortorder_description']] = $tmpTags['def_desc']; if ($pageTags['append_default_keywords'] && tep_not_null($tmpTags['def_keywords'])) $sortOrder['keywords'][$pageTags['sortorder_keywords']] = $tmpTags['def_keywords']; if ($pageTags['append_default_logo'] && tep_not_null($tmpTags['def_logo_text'])) $sortOrder['logo'][$pageTags['sortorder_logo']] = $tmpTags['def_logo_text']; FillHeaderTagsArray($header_tags_array, $sortOrder); break;
  24. GLWalker

    Header Tags SEO

    If using information pages unlimited here is a simple code that will echo your page title in the pages title meta description and keywords. I would love to use the Information pages description as metadescription but cannot figure out how to strip html out of that description, so everything uses the title for now. Just place it in catalog/includes/header_tags.php above the line that reads : // ALL OTHER PAGES NOT DEFINED ABOVE // INFORMATION.PHP case (basename($PHP_SELF)==FILENAME_INFORMATION): $pageTags_query = tep_db_query("select * from " . TABLE_HEADERTAGS . " where page_name like '" . FILENAME_INFORMATION . "' and language_id = '" . (int)$languages_id . "'"); $pageTags = tep_db_fetch_array($pageTags_query); $information_query = tep_db_query("select information_title, information_description FROM " . TABLE_INFORMATION . " WHERE visible='1' AND information_id='" . (int)$info_id . "' AND language_id = '" . (int)$languages_id . "'"); $information = tep_db_fetch_array($information_query); $header_tags_array['information'] = $information['information_title']; //save for use on the logo $tmpTags['information_title'] = (tep_not_null($information['information_title'])) ? $information['information_title'] : ''; $tmpTags['information_description'] = (tep_not_null($information['information_title'])) ? $information['information_title'] : ''; $tmpTags['information_keywords'] = (tep_not_null($information['information_title'])) ? $information['information_title'] : ''; //$sortOrder['title'][0] = $pageTags['page_title']; $sortOrder['title'][0] = $tmpTags['information_title']; $sortOrder['description'][10] = $pageTags['page_description']; $sortOrder['description'][0] = $tmpTags['information_description']; $sortOrder['keywords'][10] = $pageTags['page_keywords']; $sortOrder['keywords'][0] = $tmpTags['information_keywords']; $sortOrder['logo'][0] = $pageTags['page_logo']; $sortOrder['logo'][10] = $tmpTags['information_title']; if ($pageTags['append_default_title'] && tep_not_null($tmpTags['def_title'])) $sortOrder['title'][$pageTags['sortorder_title']] = $tmpTags['def_title']; if ($pageTags['append_default_description'] && tep_not_null($tmpTags['def_desc'])) $sortOrder['description'][$pageTags['sortorder_description']] = $tmpTags['def_desc']; if ($pageTags['append_default_keywords'] && tep_not_null($tmpTags['def_keywords'])) $sortOrder['keywords'][$pageTags['sortorder_keywords']] = $tmpTags['def_keywords']; if ($pageTags['append_default_logo'] && tep_not_null($tmpTags['def_logo_text'])) $sortOrder['logo'][$pageTags['sortorder_logo']] = $tmpTags['def_logo_text']; FillHeaderTagsArray($header_tags_array, $sortOrder); break;
  25. GLWalker


    Dont know whattool tip is?? ALT TEXT? Mouseover= ALT TEXT? What is your language? Try asking in your language, many from around the world post here. Maybe someone will understand.