CSS Sticky Footer + BlueprintCSS

11 08 2009

I got the basic of sticky footer from cssstickyfooter.com and here is my sticky footer combining with blueprintcss.

The HTML code:

<html>
<head>...</head>
<body>
	<div class="container">
		...
	</div>
	<div id="stickyfooter">
		Here you go your fancy sticky footer..
	</div>
</body>
</html>

The CSS:
(I add these lines in screen.css)

/** for sticky footer */
body {margin:0}
html, body {height: 100%;}
.container {height: 100%;}
#stickyfooter {
	position:relative;
	height: 150px;
	margin-top: -150px; /* must be the same value as height */
	clear:both;
	text-align:center; /* up to you */
	background:#ff0; /* up to you */
}

The height of the footer is sets by “height” and “margin-top” in “#stickyfooter”.

Please note that I’m not tested it yet in other browsers but firefox 3.5.1 (Shiretoko) in Ubuntu 9.04. Please feel free to drop me some comments.





PHP Redirect to SSL

2 04 2008
<?php
if ($_SERVER['SERVER_PORT'] != 443) {
	header("HTTP/1.1 301 Moved Permanently");
	header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
	exit();
}
?>




Implementing SOAP Server on CakePHP

23 01 2008

My key concept is: create the SOAP server in the Controller and the methods in the Model. Why? Because controller is … (read this) and model is this.

As an example here we gonna make web service for Post of a Blog (see Blog Tutorial) using native SOAP in PHP version 5.

We’ll put the SOAP handler at URL: http://yourhost/posts/service and the WSDL (which is will be used by the SOAP consumer) at URL: http://yourhost/posts/wsdl.

  1. Create table Post (see the Blog Tutorial for details).
  2. Create Post model (models/post.php) as usual.
  3. Create Post controller (controllers/posts_controller.php), see bellow. You need RequestHandler component for create XML-type response on wsdl action.
  4. Create view for action “wsdl” (views/posts/wsdl.ctp) and define your service method in it. You can publish all of methods in Post model including from its parent (AppModel), eg. findById(), find(), findAll(), etc. Note: you should turning off “short_open_tag” in php.ini to avoid error on rendering the xml of wsdl view. And don’t forget to define your service address in the WSDL to http://yourhost/posts/service.
  5. Now your service consumer could consume your service by pointing to your WSDL URL (http://yourhost/posts/wsdl).

Here are the sample codes: Read the rest of this entry »





Web Service Client using CakePHP & PHP SOAP

1 08 2007

I’m using PHP version 5.2.1 and CakePHP version 1.1.16-5421.

In this example we’ll create a basic web service client using native PHP SOAP function and CakePHP. The service we will consume is a “fortune”, you can find its info at xmethods.net.

Here is the complete code:

<?php
class WsController extends AppController {
	var $uses = array();
	var $layout = '';

	function fortune() {
		ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
		$client = new SoapClient("http://www.doughughes.net/WebServices/fortune/fortune.cfc?wsdl",
			array('proxy_host' => "10.1.89.231",'proxy_port' => 8080)
		); // I'm using proxy to connect Internet from my LAN
		try {
			echo $client->getFortune();
		} catch (SoapFault $exception) {
			echo $exception;
		}
	}
}
?>

Don’t forget to create empty file for the view (I’m wondering how to create an action without a view in CakePHP). Then access it at http://<url to your cake>/ws/fortune.

The key in that code is the WSDL, and function “getFortune()” which is defined in the WSDL.

Really simple isn’t it?





Javascript Variable on Internet Explorer

8 07 2007

Javascript variable name can not be same as DOM element id name on Microsoft Internet Explorer. If it same, it will caused error on IE.

Example:

This example will caused error on IE.

<div id="varFoo" >Foo Bar</div>
<script type="text/javascript">
varFoo = document.getElementById('varFoo');
alert(varFoo);
</script>




PHP’s Control Structures

6 07 2007

if

<?php
if (expr)
   statement;
?>
<?php
if (expr)
   statement;
else
   statement;
?>
<?php
if (expr)
   statement;
else if (expr)
   statement;
else if (expr)
   statement;
else
   statement;
?> Read the rest of this entry »







Follow

Get every new post delivered to your Inbox.