Tuesday, May 31, 2011

MVC







  • Model - This is the part of your application that defines its basic functionality behind a set of abstractions. Data access routines and some business logic can be defined in the model.


  • View - Views define exactly what is presented to the user. Usually controllers pass data to each view to render in some format. Views will often collect data from the user, as well. This is where you're likely to find HTML markup in your MVC applications.


  • Controller - Controllers bind the whole pattern together. They manipulate models, decide which view to display based on the user's request and other factors, pass along the data that each view will need, or hand off control to another controller entirely.
  • Install Zend Framework on Windows + wamp

    In this post i`ll explain how to easily set up  the Zend Framework. Why Zend Framework?, you may ask and this is the reason.



    1. Download the latest version of zend framework here.
    2. We have to set a path to our php folder : Run -> cmd -> SET PATH =%PATH%;C:\WAMP\BIN\PHP\PHP5.3.0
    3. Unpack our Zend in C:\Zend
    4. Run->cmd-> cd C:\Zend\bin
    5. zf.bat CREATE PROJECT C:\wamp\www\newzendproject\
    6. You have to copy Zend library from your unpacked zend folder into your projects library folder.
    7. Test

    If you didn't understand this then :

    How to setup Zend Framework with Apache on Windows

    Programmers Reference Guide - Create Your Project

    Best of Jquery image Zoom plugins

    Cloud Zoom | Site
    Cloud Zoom is a free jQuery image zoom plugin, a comparable alternative to products such as Magic Zoom. Compared to the popular jQZoom plugin, Cloud Zoom is smaller, has more features and more robust compatability across browsers.


    Nivo Zoom | Site

    • 5 different zoom types
    • Optional overlay support
    • Supports HTML captions
    • Simple clean & valid markup
    • Loads of settings to tweak
    • Packed version only weighs 4kb
    • Free to use and abuse under the MIT license
    • Nivo Zoom has been tested under the following browsers:
    • Internet Explorer v7+
    • Firefox v3+
    • Google Chrome v4
    • Safari v4

    Wednesday, May 18, 2011

    Jquery function: count checked Checkboxes

    function countChecked() {
       var n = $("input:checked").length;
       $("div.result").text(n + (n <= 1 ? " is" : " are") + " checked!");
    }
    $(documnet).ready(function(){
       countChecked(); 
    });
    Html:
    <body>
      <div class="result"><!-- result --></div>
    </body>

    Tuesday, May 17, 2011

    Jquery 1.6 .attr() vs.prop()

    If you've only ever used jQuery and not the DOM directly, this could be a confusing change, although it is definitely an improvement conceptually. Not so good for the bazillions of sites using jQuery that will break as a result of this change though.
    I'll summarize the main issues:
    • You usually want prop() rather than attr().
    • In the majority of cases, prop() does what attr() used to do. Replacing calls to attr() with prop() in your code will generally work.
    • Forget about attributes. You nearly always want a property, not an attribute. Where both a property and an attribute with the same name exists, the property always represents the current state while the attribute (in most browsers) represents the initial state. This affects properties such as the value property of <input> elements.
    • This change removes some of the layer of misguided magic jQuery stuck in front of attributes and properties, meaning jQuery developers will have to learn a bit about the difference between properties and attributes. This is a good thing.
    • Properties are generally simpler to deal with than attributes.
    If you're a jQuery developer and are confused by this whole business about properties and attributes, you need to take a step back and learn a little about it, since jQuery is no longer trying to shield you from this stuff. For the authoritative but somewhat dry word on the subject, there's the specs: HTML DOM spec, DOM Level 2 spec, DOM Level 3 spec. Mozilla's DOM documentation is valid for most modern browsers and is easier to read than the specs, so you may find their DOM reference helpful. There's a section on element properties.
    As an example of how properties are simpler to deal with than attributes, consider a checkbox that is initially checked. Here are two possible pieces of valid HTML to do this:
    <input id="foo" type="checkbox" checked>
    <input id="foo" type="checkbox" checked="checked">
    
    So, how do you find out if the checkbox is checked with jQuery? Look on Stack Overflow and you'll commonly find the following suggestions:
    • if ( $("#cb").attr("checked") === true ) {...}
    • if ( $("#cb").attr("checked") == "checked" ) {...}
    • if ( $("#cb").is(":checked") ) {...}
    This is actually the simplest thing in the world to do with the checked Boolean property, which has existed and worked flawlessly in every major scriptable browser since 1995:
    if (document.getElementById("cb").checked) {...}
    The property also makes checking or unchecking the checkbox trivial:
    document.getElementById("cb").checked = false
    In jQuery 1.6, this unambiguously becomes
    $("#cb").prop("checked", false)
    The idea of using the checked attribute for scripting a checkbox is unhelpful and unnecessary. The property is what you need.
    • It's not obvious what the correct way to check or uncheck the checkbox is using the checked attribute
    • The attribute value never changes to reflect the current state (except in some older versions of IE, thus making things still harder). Once the checkbox has been checked or unchecked (either by the user or by script), the attribute tells you nothing about the current state and is entirely useless. See http://jsfiddle.net/VktA6/.
    .prop() -> http://api.jquery.com/prop/
    .attr() -> http://api.jquery.com/attr/

    Zend Db -> select -> result count

    $select = $this->db->select()->from("table_name", array(new Zend_Db_Expr('SQL_CALC_FOUND_ROWS id as count'),'*'));        $select->order('id')->limitPage($page,$limit);

    $items = $this->db->fetchAll($select);
    $quantity = $this->db->fetchOne('select FOUND_ROWS()');

    30 useful jQuery tips, tricks & solutions

    1. Disable right-click

    Disable right-click contextual menu.

    $(document).ready(function(){
         $(document).bind("contextmenu",function(e){   
              return false;   
         });   
    });


    2. Disappearing search field text

    Hide when clicked in the search field, the value.(example can be found below in the comment fields)

    $(document).ready(function() {
    $("input.text1").val("Enter your search text here");
       textFill($('input.text1'));
    });

    function textFill(input){ //input focus text function
         var originalvalue = input.val();
         input.focus( function(){
              if( $.trim(input.val()) == originalvalue ){ input.val(''); }
         });
         input.blur( function(){
              if( $.trim(input.val()) == '' ){ input.val(originalvalue); }
         });
    }

    3. Opening links in a new window

    XHTML 1.0 Strict doesn’t allow this attribute in the code, so use this to keep the code valid.

    $(document).ready(function() {
       //Example 1: Every link will open in a new window
       $('a[href^="http://"]').attr("target", "_blank");

       //Example 2: Links with the rel="external" attribute will only open in a new window
       $('a[@rel$='external']').click(function(){
          this.target = "_blank";
       });
    });
    // how to use
    <a href="http://www.opensourcehunter.com" rel="external">open link</a>

    4. Detect browser

    Change/add something for a certain browser.
    Notice: As of jQuery 1.4, the $.browser variable is replaced by $.support.

    $(document).ready(function() {
    // Target Firefox 2 and above
    if ($.browser.mozilla && $.browser.version >= "1.8" ){
        // do something
    }

    // Target Safari
    if( $.browser.safari ){
        // do something
    }

    // Target Chrome
    if( $.browser.chrome){
        // do something
    }

    // Target Camino
    if( $.browser.camino){
        // do something
    }

    // Target Opera
    if( $.browser.opera){
        // do something
    }

    // Target IE6 and below
    if ($.browser.msie && $.browser.version <= 6 ){
        // do something
    }

    // Target anything above IE6
    if ($.browser.msie && $.browser.version > 6){
        // do something
    }
    });


    5. Preloading images

    This piece of code will prevent the loading of all images, which can be useful if you have a site with lots of images.

    $(document).ready(function() {
    jQuery.preloadImages = function()
    {
    for(var i = 0; i<arguments.length; i++)="" {="" jquery(="">   <img>").attr("src", arguments[i]);
      }
    }
    // how to use
    $.preloadImages("image1.jpg");
    });
    </arguments.length;>

    6. CSS Styleswitcher

    Switch between different styles?

    $(document).ready(function() {
        $("a.Styleswitcher").click(function() {
            //swicth the LINK REL attribute with the value in A REL attribute
            $('link[rel=stylesheet]').attr('href' , $(this).attr('rel'));
        });
    // how to use
    // place this in your header
    <link rel="stylesheet" href="default.css" type="text/css">
    // the links
    <a href="#" class="Styleswitcher" rel="default.css">Default Theme</a>
    <a href="#" class="Styleswitcher" rel="red.css">Red Theme</a>
    <a href="#" class="Styleswitcher" rel="blue.css">Blue Theme</a>
    });




    7. Columns of equal height

    If you are using two CSS columns, use this to make them exactly the same height.

    $(document).ready(function() {
    function equalHeight(group) {
        tallest = 0;
        group.each(function() {
            thisHeight = $(this).height();
            if(thisHeight > tallest) {
                tallest = thisHeight;
            }
        });
        group.height(tallest);
    }
    // how to use
    $(document).ready(function() {
        equalHeight($(".left"));
        equalHeight($(".right"));
    });
    });



    8. Font resizing

    Want to let the users change there font size?

    $(document).ready(function() {
      // Reset the font size(back to default)
      var originalFontSize = $('html').css('font-size');
        $(".resetFont").click(function(){
        $('html').css('font-size', originalFontSize);
      });
      // Increase the font size(bigger font0
      $(".increaseFont").click(function(){
        var currentFontSize = $('html').css('font-size');
        var currentFontSizeNum = parseFloat(currentFontSize, 10);
        var newFontSize = currentFontSizeNum*1.2;
        $('html').css('font-size', newFontSize);
        return false;
      });
      // Decrease the font size(smaller font)
      $(".decreaseFont").click(function(){
        var currentFontSize = $('html').css('font-size');
        var currentFontSizeNum = parseFloat(currentFontSize, 10);
        var newFontSize = currentFontSizeNum*0.8;
        $('html').css('font-size', newFontSize);
        return false;
      });
    });

    9. Smooth(animated) page scroll

    For a smooth(animated) ride back to the top(or any location).




    $(document).ready(function() {
    $('a[href*=#]').click(function() {
     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
     && location.hostname == this.hostname) {
       var $target = $(this.hash);
       $target = $target.length && $target
       || $('[name=' + this.hash.slice(1) +']');
       if ($target.length) {
      var targetOffset = $target.offset().top;
      $('html,body')
      .animate({scrollTop: targetOffset}, 900);
        return false;
       }
      }
      });
    // how to use
    // place this where you want to scroll to
    <a name="top"></a>
    // the link
    <a href="#top">go to top</a>
    });

    11. Get the mouse cursor x and y axis

    Want to know where your mouse cursor is?

    $(document).ready(function() {
       $().mousemove(function(e){
         //display the x and y axis values inside the div with the id XY
        $('#XY').html("X Axis : " + e.pageX + " | Y Axis " + e.pageY);
      });
    // how to use
    <div id="XY"></div>

    });

    12. Verify if an Element is empty

    This will allow you to check if an element is empty.

    $(document).ready(function() {
      if ($('#id').html()) {
       // do something
       }
    });

    13. Replace a element

    Want to replace a div, or something else?

    $(document).ready(function() {
       $('#id').replaceWith('
    <div>I have been replaced</div>

    ');
    });


    14. jQuery timer callback functions

    Want to delay something?

    $(document).ready(function() {
       window.setTimeout(function() {
         // do something
       }, 1000);
    });

    15. Remove a word

    Want to remove a certain word(s)?

    $(document).ready(function() {
       var el = $('#id');
       el.html(el.html().replace(/word/ig, ""));
    });

    16. Verify that an element exists in jQuery

    Simply test with the .length property if the element exists.

    $(document).ready(function() {
       if ($('#id').length) {
      // do something
      }
    });

    17. Make the entire DIV clickable

    Want to make the complete div clickable?

    $(document).ready(function() {
        $("div").click(function(){
          //get the url from href attribute and launch the url
          window.location=$(this).find("a").attr("href"); return false;
        });
    // how to use
    <div><a href="index.html">home</a></div>

    });

    18. Switch between classes or id’s when resizing the window.

    Want to switch between a class or id, when resizing the window?

    $(document).ready(function() {
       function checkWindowSize() {
        if ( $(window).width() > 1200 ) {
            $('body').addClass('large');
        }
        else {
            $('body').removeClass('large');
        }
       }
    $(window).resize(checkWindowSize);
    });

    19. Clone a object

    Clone a div or an other element.

    $(document).ready(function() {
       var cloned = $('#id').clone();
    // how to use
    <div id="id"></div>

    });

    Use Jquery instead other javascript library


    http://addyosmani.com/blog/50-jquery-snippets-for-developers/