DBAL and UTF-8 encoding problem

If you are using Doctrine DBAL to connect to your database you will notice that even if you are using UTF-8 encoding in your database tables the special characters are still not rendered correctly.

This is because by default the connection opened by DBAL is not UTF-8.

You will also notice that the documentation on setting connection charset (or other options) doesn’t exists for the DBAL package. Actually there is some but just to be something there.

So…

Create your connection:

1
2
3
4
$connectionParams = array(
..
);
$dbh = Doctrine\DBAL\DriverManager::getConnection($connectionParams, null);

And after you create the conexion add this:

1
2
3
$dbh->query('set names "utf8"');
$dbh->query('set character_set_server="utf8"');
$dbh->query('set collation_connection="utf8_general_ci"');

That’s it.

Popularity: 1% [?]

TurtoiseHG windows 64bit shell extension doesn’t show in Total Commander

In the 64bit version of Windows you have to be sure when you install TourtoiseHG that you ALSO install the 32bit version.
TotalCommander is 32bit so it won’t load the 64bit shell version.

Popularity: 1% [?]

Quickly build a jQuery dropdown menu

Let’s dive directly in:

jQuery

1
2
3
4
5
6
7
8
9
10
11
$(document).ready(function(){

    $('#navigation li').hover( function()
    {
        $(this).children('ul').not(':animated').slideDown('#navigation li ul');
    }, function()
    {
        $(this).children('ul').slideUp('#navigation li ul');
    });
   
});

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<ul id="navigation">
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a>
       
            <ul>
                <li><a href="#">About us</a></li>
                <li><a href="#">More info about</a></li>
                <li><a href="#">Even more info</a></li>
            </ul>
       
        </li>
        <li><a href="#">Services</a></li>
        <li><a href="#">Contact</a></li>

    </ul>

CSS

1
2
3
4
5
6
7
#navigation {position: relative;float: left;display: inline;}
#navigation li {position: relative;float: left;display: inline;}
#navigation li a {float: left;display: inline;text-decoration: none;color: blue;padding: 4px 10px 4px 10px;}

#navigation li ul {position: absolute;top: 26px;left: 0px;margin: 0;padding: 0;background: #cccccc;display: none;width: 180px;}
#navigation li ul li {float: left;width: 100%;margin: 0;padding: 0;border-bottom: 1px dotted #959595;   }
#navigation li ul li  a {float: left;width: 100%}

Full demo here: jQuery Drop Down Menu

Enjoy!

Hey did you know about this?
wordpress themes, site templates

Popularity: 4% [?]

Post data from Actionscript 3 to PHP

If you need to send some data to a PHP script and don’t want to use services like Zend_AMF you can try posting that data directly to the PHP script.
With the code bellow I’ll actually send an email.

// ActionScript 3 Code
// PostToPHP.as

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package
{
        import flash.events.Event;
    import flash.events.HTTPStatusEvent;
        import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;

    public class PostToPHP
    {
        // url to post
        private var postToURL:String = "http://www.yourdomain.tld/post_receiver.php";

        public function PostToPHP()
        {
            // create request
            var request:URLRequest = new URLRequest( postToURL );

        // set post variables
            var requestVars:URLVariables = new URLVariables();
            requestVars.emailTo      = 'email.address@mailservice.tld';
            requestVars.subject      = 'This is a test email';
            requestVars.message = 'An this is the content of the message.';
       
            // assign variables to the request and set request method type 
            request.data     = requestVars;
            request.method = URLRequestMethod.POST;
   
            // load the request and listen for a response from the PHP script
            var urlLoader:URLLoader = new URLLoader();
            urlLoader.dataFormat = "text";
            urlLoader.addEventListener(Event.COMPLETE, urlLoader_handler, false, 0, true);
            urlLoader.load(request);
    }
       
    private function urlLoader_handler(e:Object):void
    {
           // the response given from the PHP script will be traced here
       trace(e.target.data);
    }

// PHP code
// post_receiver.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// assign POST variables and clean them
// filter_var() is available from PHP 5.2.0
$emailTo    = filter_var($_POST['emailTo'], FILTER_SANITIZE_EMAIL);
$subject    = filter_var($_POST['subject'], FILTER_SANITIZE_STRING);
$message   = filter_var($_POST['message'], FILTER_SANITIZE_STRING);

// send mail and remember function response
// boolean response
$mailSent = mail($emailTo, $subject, $message);

// the echoed response will be traced in actionscript
if($mailSent == true)
{
    echo 'mail sent';
}
else
{
    echo 'mail NOT sent';
}

Simple.

Hey did you know about this?
wordpress themes, site templates

Popularity: 21% [?]

Modal box on page load with jquery fancy box and cookie plugin

What I want to do?
I want to show a message or an image on the first visit on my website.

What I need to do this?
- FancyBox jQuery plugin that you can get from here: http://fancybox.net/.
I use this plugin as a better alternative to the old LightBox plugin because it resizes the loaded image to the current page size.
- jQuery Cookie plugin that you can get from here: http://plugins.jquery.com/project/cookie
This one I will use to remember if the modal box was already shown. I want to show the modal box only on the first visit on the site. No on every page load :P .
- oh and of course the jQuery library: http://jquery.com/

How I do this?
Put this in the head section of the html code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// load all the libraries
// i like to put them in a folder called "public" then "js"
<link rel="stylesheet" type="text/css" href="public/js/fancybox/jquery.fancybox-1.3.1.css" media="screen" />
<script type="text/javascript" src="public/js/jquery.min.js"></script>
<script type="text/javascript" src="public/js/fancybox/jquery.mousewheel-3.0.2.pack.js"></script>
<script type="text/javascript" src="public/js/fancybox/jquery.fancybox-1.3.1.js"></script>
<script type="text/javascript" src="public/js/jquery.cookie.js"></script>

$(document).ready(function(){

/**
      *  MODAL BOX
      */
    // if the requested cookie does not have the value I am looking for show the modal box
    if($.cookie("modal") != 'true')
    {
        var _message_to_show = '<h2>Hi!</h2><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque</p> <br /><br /><a href="#" id="modal_close">ENTER</a> <a href="http://www.google.com" id="modal_exit">EXIT</a><br /><br />';
       
        // on page load show the modal box
        // more info about the options you can find on the fancybox site
        $.fancybox(
            _message_to_show,
            {
                'width'             : 350,
                'height'            : 300,
                'transitionIn'      : 'none',
                'transitionOut'     : 'elastic',
                'centerOnScroll'    : 'true',
                'overlayOpacity'    : 0.9,
                'overlayColor'      : '#000',
                'modal'             : 'true'
            }
        );
       
        // in the message is a link with the id "modal_close"
        // when you click on that link the modal will close and the cookie is set to "true"
        // path "/" means it's active for the entire root site.. if you set it to "/admin" will be active on the "admin" folder
        // expires in 7 days
        // "modal" is the name i gave the cookie.. you can name it anything you want
        $('#modal_close').live('click', function(e) {
            e.preventDefault();
            $.cookie("modal", "true", { path: '/', expires: 7 });    
            $.fancybox.close()
        });
    }    
   
});

Oh the live demo is HERE!

And that’s it! Enjoy!

Hey did you know about this?
wordpress themes, site templates

Popularity: 45% [?]