Archive for the ‘Technologies’ Category

Linux monitoring for your Iphone

Love going mobile but always worried about your servers? here comes iphone based linux monitoring, including SSH access ! The Server Remote Iphone (4$) application allows you to monitor multiple servers the easy way.

Flash Moto, web based CMS

FlashMoto-Flash-CMS

The expertise around Flash / Flex based CMS is building up a new area for content management. We haven’t had the pleasure to try out the software but the building of wysiwyg interfaces is a promising business, as long as the HTML and Search engine optimization features of pure text are guaranteed : this is where we’d like to know more about FlashMoto’s HTML publishing features, which uses the HTML version technique; meaning the flash based web site is also available as HTML for search engines and non flash browser. This technique is also used by Silex RIA, another Flash based CMS.

What distinguishes FlashMoto from a range of other flash content management systems is that it is the first Flash CMS based on ActionScript 3 and realized as RIA on Flex.   The websites powered by FlashMoto are controlled just like a standard CMS but with the extras that Flash offers.  FlashMoto provides a set of SEO tools what makes the Flash CMS website completely crawlable and seen by search engines.

Flash CMS from FlashMoto is characterized by a range of other features:
- ability to add unlimited number of pages;
- convenient WYSIWYG page and pop-up editor;
- rich media library;
- infomodule component;
- video and image gallery component;
- video and MP3 players component;
- deep linking and Google Analytics integration;
- comprehensive documentation and tutorials.

Fuzzle flash based CMS

Fuzzle CMS screenshot (en)web

Fuzzle CMS is a promising Flash CMS delevoped by a group of Russian programmers. The system is claimed to be an extra easy way for creating Flash website thanks to visual content management. Note, Fuzzle’s website is also made with this CMS. Fuzzle brings you advantages of Flash and HTML in one system and affords you create and maintain your website’s content without knowing anything about programming. Flash web sites are differ from regular HTML sites mainly by their presentational abilities: Flash technology allows incorporating complex animations and reach multimedia content. However, Flash sites are considered to have such disadvantages as longer time of development (therefore more cost), harder updating, bad search engines ranking. Fuzzle is breaking these stereotypes!
Main Fuzzle features are: :
- multilinguality;
- simple management (convenient visual editing based on blocks placement and multiple selection of blocks );
- design integration from a draft within 5 minutes;;
- SEO support (HTML version auto generation, DeepLinking support);
- continuously replenished Widget Store availability;
- availability of an open simple API for external developers.

Prestashop : quote module (devis)

ScreenshotPrestashopDevis

The quote feature  is  an implementation of a shopping cart within prestashop framework, without the price : we have designed this feature for specific groups, for which we deactivate the price display on the shop.

  • Deactivating price display for specific user group (below : group 2) is a long task that involves 2 different steps
    • in init.php : set the smarty variable around line 116
      1. $priceDisplayConfig = intval(Configuration::get(‘PS_PRICE_DISPLAY’));
      2. if($tmpCust->isMemberOfGroup(2)) $priceDisplayConfig = 3;

      And around line 155

      1. ‘priceDisplay’ => $priceDisplayConfig
    • use the smarty $priceDisplay variable in the templates to hide prices and change the “cart’ (panier in french) to “quote” (devis), example from homefeature.tpl
      1. {if $priceDisplay<3}{l s=‘Add to cart’ mod=‘homefeatured’}{else} Ajouter au devis {/if}
  • Quote / Devis module and status :
    • Download and install the “devis” module Module Devis pour prestashop (275)
    • create the mails/devis.html and mail/devis.txt and change texts according to your business
    • create the order status “devis en cours” in BackOffice >> Orders >> statuses, check the created id (12 here) and add the following line to config.inc.php :
      1. define(‘_PS_OS_DEVIS_EN_COURS’, 12);
    • You can optionnally deactivate the order confirmation email in classes/PaymentModule.php, line 288-290, replace the send email to customer test by adding a new condition :
      1.         // Send an e-mail to customer
      2. if ($id_order_state != _PS_OS_ERROR_ AND $id_order_state != _PS_OS_CANCELED_ AND $customer->id
      3. AND $id_order_state != _PS_OS_DEVIS_EN_COURS)

Jquery portal interface

Jquery §ui  and other libraries can allow you to build a modular web page. here is a list of interactive  layout solutions

How I installed sub labels on gmail

while gmail is certainly one of the most professionnal email readers, I still like to sort messages in folders and sub folders the way I used to do in old outlook clients. Even though google tries to promote its wonderful search capabilities, argumenting they remove the need for hierarchical labelling, I can’t get it out of my mind, and I ‘m not the only one. As of today, is takes a few minutes to configure your PC / chrome navigator to process sub folders.

  1. download the sub folders script from the adresse below and save it  to chrome’s directory :
    http://arendvr.com/folders4gmail/
    Local Settings\Application Data\Google\Chrome\User Data\Default\User Scripts
  2. enable user script on your chrome application by using the –enable-user-scripts command line tag,a s sexplained here
    http://arendvr.com/folders4gmail/

Magento : how to learn from free templates

The power of Magento is great but it requires long days of learning and suffering to get through relative simple features, such as the now common front page slide banner. I had a quick look at magento free templates on google and was conquered by Magento ’s classic theme, the kind of  stuff that’s really given free of charge when I would have paid for it. It actually comes with an interesting development of Magento’s block systems, and demonstrates how to add a custom block between navigation and content : the prototype glider that scrolls images is defined a cms static block, which is then called in the home page CMS  custom xml definition, with a reference to the slider block that’s positionned in phtml files and declared in the xml layouts as a core/text_list type . Impressive stuff : that’s pure  magento design and illustrates how versatile the system is.

Links : 25 free templates for Magento

Use Zend_Form to create SQL table

A quick code snippet that uses a Zend form (in the case below, with subforms) to generate a SQL table create statement. Useful for scaffolding : create your form with Zend Form Elements then the SQL table automatically.

  1. <textarea rows="50" cols="80">
  2. create table yrbeaute (`id` int(10) NOT NULL AUTO_INCREMENT,<?
  3. foreach($this->form as $k=>$subform)
  4.     {
  5.         foreach($subform as $k=>$element)
  6.     { if (get_class($element)!="Zend_Form_DisplayGroup")
  7.      {
  8.    if ($element->getType()=="Zend_Form_Element_Select") $type="varchar(50)";
  9.     if ($element->getType()=="Zend_Form_Element_Radio") $type="varchar(50)";
  10.    if ($element->getType()=="Zend_Form_Element_Text") $type="varchar(255)";
  11.    if ($element->getType()=="Zend_Form_Element_Textarea") $type="text";
  12.    if ($element->getType()=="Zend_Form_Element_MultiCheckbox") $type="varchar(255)";
  13.          ?>
  14.  <?=$element->getName() ?> <?=$type?>,
  15.          <?
  16.     } else
  17.           foreach($element as $k=>$elem )
  18.               {
  19.                   ?><?=$elem->getName() ?> varchar(50),
  20.                   <?
  21.               }
  22.  
  23.     }}
  24. ?>  step int(5), `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  25.   PRIMARY KEY (`id`))</textarea>

ixedit : Jquery development without coding

IxEdit is a JavaScript-based interaction design tool for the web taht gives designers and developers a few ready to use jquery tools, such as animation, form enhancements (date picker), and DOM manipulation, all designed within a web based interface. It uses GEARS, a tool developed by google that interfaces browsers with desktop, and the only requirement to start working on a web page is to include the ixedit javascript, plus the jquery libraries.

http://www.ixedit.com/

Prestashop, how to transfer cart to order manually

Prestashop has a nice feature that allows administrator to view a customer’s shopping cart : while the shopping cart is relatively easy to use for novices, the number of steps involved in completing the transaction can discourage some users, who might be tempted to ask you for help. What can you do apart from helpinog the guy to fill in forms ? The technique below illustrates how to simulate a payment using the Cheque payment type, via the creation of a hard coded validation page. Be careul, this is for good PHP coders only as you have to interfere with low level classes from Prestashop.

  1. go to Modules / cheque / validation.php and duplicate the file to validationManual.php
  2. Paste the  code blow under the includes  to instanciante the shopping cart using the ID of the shopping cart you want to transfer to an order, here we have the id 9304
  3. change the currency id to reflect the currency you want to use, you’ll find the currency id in the currency module of the prestashop administration interface
  4. call the module/cheque/validationManual.php from the browser, s if it was called after a valid paymen
  5. Go to Prestashop administration interface to check that the order has been created
  6. you might be wise to try to place a new order for testing that the manual process has not disturbed prestashop’s database integrity
    // 1 . get currency ID
    $currency = new Currency(1);
    // 2 get cart id
    $cart = new Cart( 9304);
    $total = floatval(number_format($cart->getOrderTotal(true, 3), 2, '.', ''));
    $mailVars =    array(
    '{cheque_name}' => Configuration::get('CHEQUE_NAME'),
    '{cheque_address}' => Configuration::get('CHEQUE_ADDRESS'),
    '{cheque_address_html}' => nl2br(Configuration::get('CHEQUE_ADDRESS')));
    
    $cm = new Cheque();
    $cm->validateOrder($cart->id, _PS_OS_CHEQUE_, $total, $cm->displayName, NULL, $mailVars, $currency->id);
    $order = new Order($cm->currentOrder);