PHP Classes
Icontem

File: phpMyBorder2.class.php


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend! ReTweet ReTweet Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Vidar Vestnes  >  PhpMyBorder  >  phpMyBorder2.class.php  
File: phpMyBorder2.class.php
Role: Class source
Content type: text/plain
Description: PhpMyBorder v2.0 (using CSS2 only, no images)
Class: PhpMyBorder
Make round corner tables 'on the fly'
 

Contents

Class file image Download
<?php
/*
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  |                                                           |
  |                        DISCLAIMER                         |
  |                                                           |
  |              PhpMyBorder is provided "as is",             |
  |               without warranty of any kind,               |
  |                either express or implied.                 |
  |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
  

  *************************************************************
  || PhpMyBorder v2.0             http://www.phpmyborder.com ||
  *************************************************************
  ||                                                         ||
  || This class is able to generates 3 types of borders.     ||
  ||                                                         ||
  ||  - ROUND    (rounded corners)                           ||
  ||  - RAISED  (rounded corners with 3D effect)             ||
  ||  - SHADOW   (square corners)                            ||
  ||                                                         ||
  ||                                                         ||
  || Enjoy!                                                  ||
  ||_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _||
  ||_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_||
                                      Author : Vidar Vestnes  
                                                   

  -- changelog --

   1. dec 2005  added raised (3D) and shadowed border support.
  25. nov 2005  first version.
  

  About PhpMyBorder :
  
  At the moment PhpMyBorder supports 3 shapes (round, raised and shadow).
  The bordereffects are achived by using plain HTML / XHTML and CSS styling.
  No images or tables are used in the output code. This results in faster
  downloading and rendering of your page compared to other techniques.
  The code is freely distributed and may be changed and copied.
  
  Please give feedback if you have any suggestions to make the code better. 
    
    phpmyborder@gmail.com
    
    
  HOW TO USE:
  
  First include phpMyBorder2.class.php to your script:
    
    include_once('phpMyBorder2.class.php');

    // Create a bordergenerator:
    $pmb = new PhpMyBorder();  // or new PhpMyBorder(true), read about stylesheet-support below
  

  Add a ROUND border (round corners):    

    $pmb->begin_round("250px", "DDEEFF", "005555"); // width, fillcolor, edgecolor
    echo "Content...";
    $pmb->end_round(); // 
  
  
  Add a RAISED border (round corners):    
  
    $pmb->begin_raised("100%", "DDEEFF"); // width, fillcolor
    echo "Content...";
    $pmb->end_raised();
  

  Add a SHADOW border (square corners):    
    
    $pmb->begin_shadow("250px", "DDEEFF","000000","555577");  //  width, fillcolor, edgecolor, shadowcolor
    echo "Content...";
    $pmb->end_shadow();
  
  
  
  
  USING STYLESHEET:
  
  To save styling-overhead you may use PhpMyBorder with stylesheet.
  
  Tell PhpMyBorder to generate code depending on stylesheet by using argument true in the constructor.
    
    $pmb = new PhpMyBorder(true);   


  And  simply add these lines to your existing stylesheet.
  
  Round border (add following 8 lines):
 
    .pmb1_b, .pmb1_s {font-size:1px; }
    .pmb1_1, .pmb1_2, .pmb1_3, .pmb1_4, .pmb1_b, .pmb1_s {display:block; overflow:hidden;}
    .pmb1_1, .pmb1_2, .pmb1_3, .pmb1_s {height:1px;}
    .pmb1_2, .pmb1_3, .pmb1_4 {border-style: solid; border-width: 0 1px; }
    .pmb1_1 {margin:0 5px; }
    .pmb1_2 {margin:0 3px; border-width:0 2px;}
    .pmb1_3 {margin:0 2px;}
    .pmb1_4 {height:2px; margin:0 1px;}
    .pmb1_c {display:block; border-style: solid ; border-width: 0 1px;}

    
  Raised border (add following 17 lines) :
  
    .pmb2_1, .pmb2_2, .pmb2_3, .pmb2_4, .pmb2_5, .pmb2_6, .pmb2_7, .pmb2_8 { overflow:hidden; font-size:1px; display:block; }
    .pmb2_1, .pmb2_2, .pmb2_3, .pmb2_6, .pmb2_7, .pmb2_8, .pmb2_s { height:1px; }
    .pmb2_2, .pmb2_3, .pmb2_4, .pmb2_5, .pmb2_6, .pmb2_7, .pmb2_c {  border-style: solid; border-width: 0 1px; }
    .pmb2_2, .pmb2_3, .pmb2_4, .pmb2_c { border-left-color: #fff; }
    .pmb2_7, .pmb2_6, .pmb2_5, .pmb2_c { border-right-color: #999; }
    .pmb2_1 { margin:0 5px; background: #fff;}
    .pmb2_2 { border-right:1px solid #eee; }
    .pmb2_3 { border-right:1px solid #ddd; }
    .pmb2_4 { border-right:1px solid #aaa; }
    .pmb2_5 { border-left:1px solid #eee; }
    .pmb2_6 { border-left:1px solid #ddd; }
    .pmb2_7 { border-left:1px solid #aaa; }
    .pmb2_8 { margin:0 5px; background:#999; }
    .pmb2_2, .pmb2_7 { margin:0 3px; border-width:0 2px; }
    .pmb2_3, .pmb2_6 { margin:0 2px; }
    .pmb2_4, .pmb2_5 { margin:0 1px; height:2px; }
    .pmb2_c { padding: 0 4px; display:block; }
    .pmb2_s {display : block; font-size:1px;}

  
  Shadow border (add following 2 lines):
  
    .pmb3_1 { border-width: 1px; border-style: solid; position: relative; left:-3px; top:-3px; }
    .pmb3_2 { overflow:hidden; width:100%; padding:0 3px; }
    .pmb3_s { height: 1px; font-size: 1px; display: block; }


  
  
  More examples:
    
  ------ example yourpage1.php -----------
  <?
  include_once('phpMyBorder2.class.php'); 
  $pmb = new PhpMyBorder(true);  // using stylesheet
  
  echo $pmb -> begin_round("300px","DDEEFF","000000"); //  (width, fillcolor, edgecolor)
  echo "content...";
  echo $pmb -> end_round();
  ?>
  ------------------------------


  ------ example yourpage2.php -----------
  <?
  include_once('phpMyBorder2.class.php'); 
  $pmb = new PhpMyBorder();      
  
  echo $pmb -> begin_raised("300px","DDEEFF"); //  (width, fillcolor)
  echo "content...";
  echo $pmb -> end_raised();
  ?>
  ------------------------------


  ------ example yourpage3.php -----------
  <?
  include_once('phpMyBorder2.class.php'); 
  $pmb = new PhpMyBorder(true);    // using stylesheet
  
  echo $pmb -> begin_shadow("300px","DDEEFF","000000","555555"); //  (width, fillcolor, edgecolor, shadowcolor)
  echo "content...";
  echo $pmb -> end_shadow();
  ?>
  ------------------------------
  
  
  
  
  Allways check for the newest version at :
  
    http://www.phpmyborder.com
  
*/

class PhpMyBorder{

  var $width;        // width of the border
  var $fill;         // fillcolor
  var $edge;         // edgecolor
  var $shadow;       // shadowcolor
  var $stylesheet;   // using stylesheet or not
  
  function PhpMyBorder($stylesheet = false){
    $this->setWidth("100%");           // default width
    $this->setFill("DDEEFF");          // default fillcolor
    $this->setEdge("4444AA");          // default edgecolor
    $this->setShadow("888888");        // default shadowcolor
    $this->stylesheet = $stylesheet;   // using stylesheet (default = false)
  }
  
  function setWidth($value){  
    $this->width = trim($value);
  }

  function getWidth(){  
    return $this->width;  
  }

  function setFill($value){  
    $this->fill = trim($value);
  }

  function getFill($prefix = false)  {  
    if(!$prefix) return $this->fill;
    if(strlen($this->fill)<3) return "transparent";
    return strtolower($this->fill) == "transparent" ? "transparent" : "#".$this->fill;
  }

  function setEdge($value)  {  
    $this->edge = trim($value);
  }

  function getEdge($prefix = false)  {  
    if(!$prefix) return $this->edge;
    
    if(  $this->edge===false
        ||
        strlen($this->edge)<3
        ||
        strtolower($this->edge) == "transparent"
    ) return "transparent";
    
    return "#".$this->edge;
  }

  function setShadow($value)  {  
    $this->shadow = trim($value);
  }

  function getShadow($prefix = false)  {  
    if(!$prefix) return $this->shadow;
    if(strlen($this->shadow)<3) return "transparent";
    return strtolower($this->shadow) == "transparent" ? "transparent" : "#".$this->shadow;
  }


  function stylesheet_round(){
?>

.pmb1_b, .pmb1_s {font-size:1px; }
.pmb1_1, .pmb1_2, .pmb1_3, .pmb1_4, .pmb1_b, .pmb1_s {display:block; overflow:hidden;}
.pmb1_1, .pmb1_2, .pmb1_3, .pmb1_s {height:1px;}
.pmb1_2, .pmb1_3, .pmb1_4 {border-style: solid; border-width: 0 1px; }
.pmb1_1 {margin:0 5px; }
.pmb1_2 {margin:0 3px; border-width:0 2px;}
.pmb1_3 {margin:0 2px;}
.pmb1_4 {height:2px; margin:0 1px;}
.pmb1_c {display:block; border-style: solid ; border-width: 0 1px;}
<?
  }

  function begin_round($width = false, $fill = false, $edge = false){
    if($width)   $this->setWidth  ($width );
    if($fill)    $this->setFill  ($fill);
    if($edge)    $this->setEdge  ($edge);
     ob_start(); 
     if($this->stylesheet){
?>

<!-- begin PhpMyBorder -->
<div style="width:<?=$this->getWidth(true)?>;">
 <b class="pmb1_b">
  <b class="pmb1_1" style="background:<?=$this->getEdge(true)?>; color: inherit;"></b>
  <b class="pmb1_2" style="background:<?=$this->getFill(true)?>; color: inherit; border-color: <?=$this->getEdge(true)?>;"></b>
  <b class="pmb1_3" style="background:<?=$this->getFill(true)?>; color: inherit; border-color: <?=$this->getEdge(true)?>;"></b>
  <b class="pmb1_4" style="background:<?=$this->getFill(true)?>; color: inherit; border-color: <?=$this->getEdge(true)?>;"></b>
 </b>
 <div class="pmb1_c" style="background:<?=$this->getFill(true)?>; color: inherit; border-color: <?=$this->getEdge(true)?>;">
  <b class="pmb1_s"></b>
<?  
    }else{ 
?>

<!-- begin PhpMyBorder -->
<div style="width: <?=$this->getWidth(true)?>;">
 <b style="font-size:1px;display:block; overflow:hidden;">
  <b style="background:<?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;height:1px;margin:0 5px;"></b>
  <b style="background:<?=$this->getFill(true)?>; border-color: <?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;height:1px;border-style: solid; border-width: 0 1px;margin:0 3px; border-width:0 2px;"></b>
  <b style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;height:1px;border-style: solid; border-width: 0 1px;margin:0 2px;"></b>
  <b style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;border-style: solid; border-width: 0 1px;height:2px; margin:0 1px;"></b>
 </b>
 <div style="background:<?=$this->getFill(true)?>; border-color: <?=$this->getEdge(true)?>; color: inherit; display:block; border-style: solid ; border-width: 0 1px;">
  <b style="font-size:1px;display:block; overflow:hidden;height:1px;"></b>
<?  
    }
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
  }

  function end_round(){
    ob_start();

     if($this->stylesheet){
?>

  <b class="pmb1_s"></b>
 </div>
 <b class="pmb1_b">
  <b class="pmb1_4" style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit;"></b>
  <b class="pmb1_3" style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit;"></b>
  <b class="pmb1_2" style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit;"></b>
  <b class="pmb1_1" style="background:<?=$this->getEdge(true)?>; color: inherit;"></b>
 </b>
</div>
<!-- end PhpMyBorder -->

<?}else{?>

  <b style="font-size:1px;display:block; overflow:hidden;height:1px;"></b>
 </div>
 <b style="font-size:1px;display:block; overflow:hidden;">
  <b style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;border-style: solid; border-width: 0 1px;height:2px; margin:0 1px;"></b>
  <b style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;height:1px;border-style: solid; border-width: 0 1px;margin:0 2px;"></b>
  <b style="background:<?=$this->getFill(true)?>;border-color: <?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;height:1px;border-style: solid; border-width: 0 1px;margin:0 3px; border-width:0 2px;"></b>
  <b style="background:<?=$this->getEdge(true)?>; color: inherit; display:block; overflow:hidden;height:1px;margin:0 5px;"></b>
 </b>
</div>
<!-- end PhpMyBorder -->

<?
  }
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
  }
  
  function stylesheet_raised(){
?>

.pmb2_1, .pmb2_2, .pmb2_3, .pmb2_4, .pmb2_5, .pmb2_6, .pmb2_7, .pmb2_8 { overflow:hidden; font-size:1px; display:block; }
.pmb2_1, .pmb2_2, .pmb2_3, .pmb2_6, .pmb2_7, .pmb2_8, .pmb2_s { height:1px; }
.pmb2_2, .pmb2_3, .pmb2_4, .pmb2_5, .pmb2_6, .pmb2_7, .pmb2_c {  border-style: solid; border-width: 0 1px; }
.pmb2_2, .pmb2_3, .pmb2_4, .pmb2_c { border-left-color: #fff; }
.pmb2_7, .pmb2_6, .pmb2_5, .pmb2_c { border-right-color: #999; }
.pmb2_1 { margin:0 5px; background-color: #fff; color: inherit;}
.pmb2_2 { border-right:1px solid #eee; }
.pmb2_3 { border-right:1px solid #ddd; }
.pmb2_4 { border-right:1px solid #aaa; }
.pmb2_5 { border-left:1px solid #eee; }
.pmb2_6 { border-left:1px solid #ddd; }
.pmb2_7 { border-left:1px solid #aaa; }
.pmb2_8 { margin:0 5px; background-color:#999; color: inherit;}
.pmb2_2, .pmb2_7 { margin:0 3px; border-width:0 2px; }
.pmb2_3, .pmb2_6 { margin:0 2px; }
.pmb2_4, .pmb2_5 { margin:0 1px; height:2px; }
.pmb2_c { padding: 0 4px; display:block; }
.pmb2_s {display : block; font-size:1px;}
<?
  }


  function begin_raised($width = false, $fill = false){
    if($width)   $this->setWidth  ($width );
    if($fill)    $this->setFill  ($fill);
     ob_start(); 
     if($this->stylesheet){
?>

<!-- begin PhpMyBorder -->
<div style="width: <?=$this->getWidth(true)?>;">
 <b class="pmb2_1"></b>
 <b class="pmb2_2" style="background: <?=$this->getFill(true)?>; color: inherit;"></b>
 <b class="pmb2_3" style="background: <?=$this->getFill(true)?>; color: inherit;"></b>
 <b class="pmb2_4" style="background: <?=$this->getFill(true)?>; color: inherit;"></b>
 <div class="pmb2_c" style="background: <?=$this->getFill(true)?>; color: inherit;">
  <b class="pmb2_s"></b>
<?  
    }else{ 
?>

<!-- begin PhpMyBorder -->
<div style="width: <?=$this->getWidth(true)?>;">
 <b style="overflow:hidden; font-size:1px; display:block;height:1px; margin:0 5px; background:#fff; color: inherit;"></b>
 <b style="background: <?=$this->getFill(true)?>; color: inherit; overflow:hidden; font-size:1px; display:block;height:1px; border-style: solid; border-width: 0 1px; border-left-color: #fff; border-right:1px solid #eee; margin:0 3px; border-width:0 2px;"></b>
 <b style="background: <?=$this->getFill(true)?>; color: inherit; overflow:hidden; font-size:1px; display:block;height:1px;border-style: solid; border-width: 0 1px;border-left-color: #fff;border-right:1px solid #ddd;margin:0 2px;"></b>
 <b style="background: <?=$this->getFill(true)?>; color: inherit; overflow:hidden; font-size:1px; display:block;border-style: solid; border-width: 0 1px; border-left-color: #fff; border-right:1px solid #aaa;margin:0 1px; height:2px;"></b>
 <div style="background: <?=$this->getFill(true)?>; color: inherit; padding: 0 4px; display:block;border-style: solid; border-width: 0 1px;border-left-color: #fff;border-right-color: #999;">
  <b style="height:1px; display:block; font-size:1px;"></b>
<?  
    }
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
  }

  function end_raised(){
    ob_start();

     if($this->stylesheet){
?>      

  <b class="pmb2_s"></b>
 </div>
 <b class="pmb2_5" style="background: <?=$this->getFill(true)?>; color: inherit;"></b>
 <b class="pmb2_6" style="background: <?=$this->getFill(true)?>; color: inherit;"></b>
 <b class="pmb2_7" style="background: <?=$this->getFill(true)?>; color: inherit;"></b>
 <b class="pmb2_8"></b>
</div>  
<!-- end PhpMyBorder -->

<?
  }else{
?>

  <b style="height:1px; display:block; font-size:1px;"></b>
 </div>
 <b style="background: <?=$this->getFill(true)?>; color: inherit; overflow:hidden; font-size:1px; display:block;border-style: solid; border-width: 0 1px;border-right-color: #999;border-left:1px solid #eee; margin:0 1px; height:2px;"></b>
 <b style="background: <?=$this->getFill(true)?>; color: inherit; overflow:hidden; font-size:1px; display:block;height:1px;border-style: solid; border-width: 0 1px;border-right-color: #999;border-left:1px solid #ddd; margin:0 2px;"></b>
 <b style="background: <?=$this->getFill(true)?>; color: inherit; overflow:hidden; font-size:1px; display:block;height:1px;border-style: solid; border-width: 0 1px;border-right-color: #999;border-left:1px solid #aaa;margin:0 3px; border-width:0 2px;"></b>
 <b style="overflow:hidden; font-size:1px; display:block;height:1px;margin:0 5px; background:#999; color: inherit;"></b>
</div>  
<!-- end PhpMyBorder -->

<?
  }
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
  }


  function stylesheet_shadow(){
?>

.pmb3_1 { border-width: 1px; border-style: solid; position: relative; left:-3px; top:-3px; }
.pmb3_2 { overflow:hidden; width:100%; padding:0 3px; }
.pmb3_s { height: 1px; font-size: 1px; display: block; }
<?
  }

  function begin_shadow($width = false, $fill = false, $edge = false, $shadow = false){
    if($width)   $this->setWidth  ($width );
    if($fill)    $this->setFill  ($fill);
    if($edge)    $this->setEdge  ($edge);
    if($shadow) $this->setShadow($shadow);
     ob_start(); 
     if($this->stylesheet){
?>

<!-- begin PhpMyBorder -->
<div style="width: <?=$this->getWidth(true)?>; background: <?=$this->getShadow(true)?>;">
 <div class="pmb3_1" style="background: <?=$this->getFill(true)?>; border-color: <?=$this->getEdge(true)?>; color: inherit;">
  <div class="pmb3_2">
   <b class="pmb3_s"></b>
<?  
    }else{ 
?>

<!-- begin PhpMyBorder -->
<div style="width: <?=$this->getWidth(true)?>; background: <?=$this->getShadow(true)?>; color: inherit;">
 <div style="background: <?=$this->getFill(true)?>; border-color: <?=$this->getEdge(true)?>; color: inherit; border-width: 1px; border-style: solid; position: relative; left:-3px; top:-3px;">
  <div style="overflow:hidden; width:100%; padding:0 3px; ">
   <b style="height:1px; display:block; font-size:1px;"></b>
<?  
    }
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
  }

  function end_shadow(){
    ob_start();

     if($this->stylesheet){
?>

   <b class="pmb3_s"></b>
  </div>
 </div>
</div>
<!-- end PhpMyBorder -->

<?}else{?>

   <b style="height:1px; display:block; font-size:1px;"></b>
  </div>
 </div>
</div>
<!-- end PhpMyBorder -->

<?
  }
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
  }

}

?>


 
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2009 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products