Realtime Chat Application with CakePHP and Socket.IO #2
Before , We begin we need the main layout for the application ,in my case i make ctp file (cakephp file )
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<?php echo $this->Html->charset(); ?> | |
<title> | |
<?php echo $this->fetch('title'); ?> | |
</title> | |
<!-- Material Design fonts --> | |
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700"> | |
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/icon?family=Material+Icons"> | |
<?php echo $this->Html->css("bootstrap.min"); ?> | |
<?php echo $this->Html->css("bootstrap-material-design.min"); ?> | |
<?php echo $this->Html->css("ripples.min"); ?> | |
<?php echo $this->Html->css("snackbar.min"); ?> | |
<?php | |
echo $this->fetch('meta'); | |
echo $this->fetch('css'); | |
?> | |
<?php echo $this->Html->script("jquery"); ?> | |
<?php echo $this->Html->script("snackbar.min"); ?> | |
</head> | |
<body> | |
<?php echo $this->Element('header'); ?> | |
<?php echo $this->Session->flash(); ?> | |
<?php echo $this->fetch('content'); ?> | |
<?php echo $this->fetch('script'); ?> | |
<?php echo $this->Html->script("material.min"); ?> | |
<?php echo $this->Html->script("ripples.min"); ?> | |
<script type="text/javascript"> | |
$.material.init() | |
</script> | |
</body> | |
</html> |
I include in the css and js files for Material Design for Bootstrap just to have a modern look for the
application
<?php echo $this->fetch('content'); ?> |
this echo the view for other pages / controllers's actions
we need also to another layout file to use it in chat
PS : the layout files are in this directory app/view/layout , it's specific for cakephp 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<?php echo $this->Html->charset(); ?> | |
<title> | |
<?php echo $this->fetch('title'); ?> | |
</title> | |
<!-- Material Design fonts --> | |
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700"> | |
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/icon?family=Material+Icons"> | |
<?php echo $this->Html->css("bootstrap.min"); ?> | |
<?php echo $this->Html->css("bootstrap-material-design.min"); ?> | |
<?php echo $this->Html->css("ripples.min"); ?> | |
<?php | |
echo $this->fetch('meta'); | |
echo $this->fetch('css'); | |
?> | |
<?php echo $this->Html->script("jquery"); ?> | |
</head> | |
<body> | |
<style> | |
#wrapper { | |
padding-left: 0; | |
-webkit-transition: all 0.5s ease; | |
-moz-transition: all 0.5s ease; | |
-o-transition: all 0.5s ease; | |
transition: all 0.5s ease; | |
} | |
#wrapper.toggled { | |
padding-left: 250px; | |
} | |
#sidebar-wrapper { | |
z-index: 1000; | |
position: fixed; | |
left: 250px; | |
width: 0; | |
height: 100%; | |
margin-left: -250px; | |
overflow-y: auto; | |
background: #000; | |
-webkit-transition: all 0.5s ease; | |
-moz-transition: all 0.5s ease; | |
-o-transition: all 0.5s ease; | |
transition: all 0.5s ease; | |
} | |
#wrapper.toggled #sidebar-wrapper { | |
width: 250px; | |
} | |
#page-content-wrapper { | |
width: 100%; | |
position: absolute; | |
padding: 15px; | |
} | |
#wrapper.toggled #page-content-wrapper { | |
position: absolute; | |
margin-right: -250px; | |
} | |
/* Sidebar Styles */ | |
.sidebar-nav { | |
position: absolute; | |
top: 0; | |
width: 250px; | |
margin: 0; | |
padding: 0; | |
list-style: none; | |
} | |
.sidebar-nav li { | |
text-indent: 20px; | |
line-height: 40px; | |
} | |
.sidebar-nav li a { | |
display: block; | |
text-decoration: none; | |
color: #999999; | |
} | |
.sidebar-nav li a:hover { | |
text-decoration: none; | |
color: #fff; | |
background: rgba(255,255,255,0.2); | |
} | |
.sidebar-nav li a:active, | |
.sidebar-nav li a:focus { | |
text-decoration: none; | |
} | |
.sidebar-nav > .sidebar-brand { | |
height: 65px; | |
font-size: 18px; | |
line-height: 60px; | |
} | |
.sidebar-nav > .sidebar-brand a { | |
color: #999999; | |
} | |
.sidebar-nav > .sidebar-brand a:hover { | |
color: #fff; | |
background: none; | |
} | |
@media(min-width:768px) { | |
#wrapper { | |
padding-left: 250px; | |
} | |
#wrapper.toggled { | |
padding-left: 0; | |
} | |
#sidebar-wrapper { | |
width: 250px; | |
} | |
#wrapper.toggled #sidebar-wrapper { | |
width: 0; | |
} | |
#page-content-wrapper { | |
padding: 20px; | |
position: relative; | |
} | |
#wrapper.toggled #page-content-wrapper { | |
position: relative; | |
margin-right: 0; | |
} | |
} | |
form#formulaire_chat { | |
position: fixed; | |
bottom: 0px; | |
} | |
#zone_chat{ | |
height: 800px; | |
} | |
#zone_chat strong { | |
color: white; | |
background-color: black; | |
padding: 2px; | |
} | |
#message { | |
width: 80%; | |
} | |
.filechat{ | |
position: fixed; | |
bottom: 0px; | |
height: 118px; | |
right :0px; | |
} | |
</style> | |
<?php echo $this->Session->flash(); ?> | |
<?php echo $this->fetch('content'); ?> | |
<?php echo $this->fetch('script'); ?> | |
<?php echo $this->Html->script("material.min"); ?> | |
<?php echo $this->Html->script("ripples.min"); ?> | |
<script type="text/javascript"> | |
$.material.init() | |
</script> | |
</body> | |
</html> |
Comments
Post a Comment