CakePHP: How to add Search Engine Friendly (SEF) URLs
How many times you wondered how great it would be if your URLs didn’t look so much like:
http://www.server.com/posts/view/1058
But more like:
http://www.server.com/posts/view/my_first_post
Read the rest on:
http://bakery.cakephp.org/articles/view/adding-friendly-urls-to-the-cake-blog-tutorial
Cake PHP: Simple Contact Form Tutorial!
This guide provide a quick tutorial covering simple contact form for CakePHP v1.2, based on this post
Download code example here! CakePHP 1.2 Simple Contact Form.zip
1. Create the VIEW in cake/app/views/contact/contact.ctp
-
<p><?= $success?></p>
-
<?php } else { ?>
-
<p><?= $error?></p>
-
<?}?>
-
<p>
-
</p>
-
<p>
-
</p>
-
<p>
-
</p>
-
<p>
-
</p>
-
<p>
-
All fields are required!
-
</p>
-
<?php }?>
2. Create Email COMPONENT, cake/app/controllers/components/email.php
-
<?php
-
class EmailComponent extends Object {
-
function email($email, $name, $message) {
-
$f_mail = "name@domain.com";
-
$f_name = "WebMaster domain.com";
-
$f_message = "\nName : $name"; // start building the message
-
$f_message .= "\n\nE-mail : $email";
-
$f_message .= "\n\nMessage \n : $message";
-
$headers = "From: www.domain.com <administrator@domain.com>\n";
-
$headers .= "X-Sender: <admin @domain.com>\n";
-
$headers .= "X-Mailer: PHP\n";
-
$headers .= "Reply-To:$f_mail\n\n";
-
$subject = "Message from your website domain.com";
-
}
-
-
// this function checks to see if the email supplied by the visitor is a valid one
-
function validMail($email) {
-
$pattern = "^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$";
-
// the regex for an email addres
-
$ll = 1; else
-
$ll = 0;
-
return $ll;
-
}
-
}
-
?>
3. Create the CONTROLLER, cake/app/controllers/contact_controller.php
-
<?php
-
class ContactController extends AppController {
-
var $name = 'Contact';
-
-
function contact() {
-
$this->pageTitle = 'Contact';
-
$email = $this->data ['Page'] ['email'];
-
$name = $this->data ['Page'] ['name'];
-
$message = $this->data ['Page'] ['message'];
-
$error = 0;
-
// start filter vars
-
$error = 1;
-
}
-
$error = 1;
-
}
-
// verify email address
-
$error = 1;
-
}
-
if ($error == 0) {
-
$this->Email->email ( $email, $name, $message ); //here is the email sent
-
$this->set ( 'success', 'The message was sent <br />Thank you!' );
-
// setting "succes" variable for displaying if email was sent.
-
} else {
-
$this->set ( 'error', 'Please complete all fields' );
-
// this is in case of error
-
}
-
} else {
-
}
-
}
-
}
-
?>
FINALLY
After all that just test it in your favorite web browser http://localhost/cake/contact/contact
Tags: php4, cakephp, code example
CakePHP: How To Make Controller Without a Model?
-
class MyController extends AppController
-
{
-
// var $uses = null; works too, BUT MIGHT INTRODUCE BUGS
-
-
function index()
-
{
-
}
-
}
From: http://cakebaker.42dh.com/
Tags: php4, cakephp, code example
CakePHP: How to Add Theme Support?
Now with CakePHP v1.2 (beta) we can easily add theme with its ThemeView class.
This guide about how to add theme into fresh CakePHP installation will be explained in very basic step-by-step . I learn it frrom here.
Updated: sample code provided
Download code example, extract inside CakePHP root.
First!
Create a file called app_controller.php inside cake\app\controllers.

Edit the file and just with two lines of code, add theme support on your application:
-
class AppController extends Controller {
-
var $view = 'Theme';
-
var $theme = 'default';
-
}
Second!
You need to put all your theme collections inside a folder called themed instead views. This folder doesn't exists yet, so go to cake\app\views and create new folder themed inside it.

Third!
Create another folder called default inside cake\app\views\themed, and place all your template files there.
This theme name is taken from
-
var $theme = 'default';
We can just create another folder and activate it very easily thanks to ThemeView class.
That's it now you have an application that support theme. Easy?! Yea, that was sooo Cake
Tags: php4, cakephp, code example
CakePHP: How To Make Model Without a Table?
-
class ModelWithoutTable extends AppModel
-
{
-
var $useTable = false;
-
}
From: http://cakebaker.42dh.com/
Tags: php4, cakephp, code example