Wap网络学院 网站首页 手机软件 手机游戏 手机主题 手机论坛 手机铃声 美女写真 经典笑话 Flash小游戏 
Wap网络学院为广大建站爱好者提供一个详尽的Wap建站的技术支持和丰富的Wap源代码以及教程等资源支持。
在线教程: WAP服务器 | WAP网页编程 | WAP网页设计 | WAP数据库 | WAP网络安全 | WAP多媒体 | WAP生活应用 | WAP相关知识 | 业界新闻
资源下载: PHP源码 | ASP源码 | ASP.NET源码 | JSP源码 | 其它源码 | WAP教程下载 | WAP网站开发工具 | WAP模拟器
 本栏目最新文章
· 使用PHP进行WAP开发详解
 
 您现在的位置: WAP网络学院 >> WAP教程网 >> WAP网页编程 >> PHPWML开发 >> 文章正文
 
使用PHP进行WAP开发详解

1.Deck对象声明

class My_Deck
   {
  //属性声明
  var $card_title;
  var $card_alignment;
  var $element_number;
  var $default_item;
  var $default_number;

  //自构函数
  function My_Deck($title=DEFAULT_TITLE, $align=ALIGN_LEFT)
  {
  if ($title != DEFAULT_TITLE)
   $this->card_title = $title;

   $this->align = $alignment;
   $this->card_timer = 0;
   $this->forward_url = "";

   $this->element_number = 0;
   $this->default_number = 0;
  }

  //添加元素
  function Add_Element($element)
  {
  if (!is_object($element))
    die("Unlegal Element,Quit");
  switch($element->My_Type())
   {
  case I_AM_TEXT:
  case I_AM_IMAGE:
  case I_AM_TABLE:
  case I_AM_HYPERLINK:
  case I_AM_INPUT:
  case I_AM_SELECT:
  case I_AM_DO:
  case I_AM_FIELDSET:
   {
    $this->card_element[$this->element_number] = $element;

   $this->element_number++;

    break;
    }
   default:
    {
    die("Unlegal Element,Quit");
    }
    }
   }
  
  //创建Deck
   function Make_Deck()
  {
  header("content-type: text/vnd.wap.wml");

   echo "<?xml version=\"1.0\"?>\n";
   echo "<!DOCTYPE xml PUBLIC \"-//WAPFORUM//DTD WML 1.2//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n";
   printf("<-- Generated by %s %s -->\n", HAW_VERSION, HAW_COPYRIGHT);

   echo "

<wml>\n";

   $title = "title=\"$this->title\"";

   printf("<card%s>\n", $title);

  //获取交互元素如Input,Select的一些变量默认值
  while(list($thekey,$thevalue)=each($this->card_element))
  {
  switch($thevalue->My_Type())
  {
   case I_AM_SELECT:
   case I_AM_FIELDSET:
   {
   $temp_element=$thevalue;

   $temp_default=$temp_element->get_defaults();

   if($temp_default)
    {
    $this->default_item[$this->default_number]=$temp_default;

    $this->default_number++;

    break;
    }
    default:
     {
    break;
     }
   }
  }

  if ($this->default_number)
   {
   //缺省值存在
   echo "<onevent type=\"onenterforward\">\n";
   echo "\n";

  // 列出缺省值
  for($i=0;$i<$this->default_number;$i++)
  {
  while (list($thekey, $thevalue) = each($this->default_item[$i]))
  printf("<setvar name=\"%s\" value=\"%s\"/>\n", $thevalue["name"], $thevalue["value"]);
    }

  echo "</refresh>\n";
  echo "</onevent>\n";

  //后向进入页面时变量默认值也需重新设置,实现方法与以上相同
  echo "<onevent type=\"onenterbackward\">\n";
  echo "<refresh>\n";

  // 列出缺省值
  for($i=0;$i<$this->default_number;$i++)
   {
  while (list($thekey, $thevalue) = each($this->default_item[$i]))
  printf("<setvar name=\"%s\" value=\"%s\"/>\n", $thevalue[name], $thevalue[value]);
   }
  echo "</refresh>\n";
  echo "</onvent>\n";
  }

  //设置页面格式
  switch ( $this->card_align )
  {
  case ALIGN_LEFT:
   {
   echo "</p>\n";
   break;
   }

  case ALIGN_CENTER:
  {
  echo "<p align=\"center\"> \n";
  break;
   }

  case ALIGN_RIGHT:
  {
  echo "<p align=\"right\"> \n";

  break;
  }
  }

  for($i=0;$i<$this->element_number;$i++)
  {
   $the_element = $this->card_element[$i];
   switch ($the_element->My_Type())
    {
    case I_AM_TEXT:
    case I_AM_IMAGE:
    case I_AM_TABLE:
    case I_AM_HYPERLINK:
  case I_AM_INPUT:
  case I_AM_SELECT:
  case I_AM_DO:
  case I_AM_FIELDSET:
    {
    $temp_element = $this->card_element[$i];
 
    $temp_element->Make_Element(&$this);

    break;
    }
   default:
   {
   break;
   }
    }
   }

  echo " </p>\n"
  echo "</card> \n";
  echo "</wml> \n";

  };
 

2.Text对象声明

class My_Text
  {
  //属性声明
   var $text;
   var $attribute;
   var $br_count;//空行数目

  //方法声明
  
  //自构函数
  function My_Text($the_text, $the_attribute=TEXT_NORMAL)
  {
   $this->text = $the_text;
   $this->attribute = $the_attribute;
   $this->br_count = 1;
  }

  //设置空行数目函数
  function set_br_count($the_br_count)
  {
   if (!is_int($the_br_count) || ($br < 0))
    die("incorrect br_count");

   $this->br_count = $the_br_count;
  }

  //返回对象类型函数
   function My_Type()
  {
  return I_AM_TEXT;
  }

  //创建Text部分代码
  function Make_Element($deck)
  {
   if ($this->attribute & TEXT_BOLD)
    echo "<b>n";

   if ($this->attribute & TEXT_UNDERLINE)
    echo "<i>n";

  if ($this->attribute & TEXT_BIG)
    echo "<big>\n";

   if ($this->attribute & TEXT_SMALL)
   echo "<small>\n";

  if ($this->text)
   rintf("%s\n", convert_character($this->text));

  if ($this->attribute & TEXT_SMALL)
   echo "</small>\n";

  if ($this->attribute & TEXT_BIG)
   echo "</bigl>\n";

  if ($this->attribute & TEXT_ITALIC)
   echo "</i>\n";

  if ($this->attribute & TEXT_UNDERLINE)
   echo "</u>\n";

  if ($this->attribute & TEXT_BOLD)
   echo "</b>\n";

   $br_command = "<br/>\n";
  for ($i=0; $i<$this->br_count; $i++)
   echo $br_command;
 


3.Image对象声明

class My_Image
  {
  //属性声明
  var $wbmp_url;
  var $alt_text;
  var $br_count;//空行数目

  //方法声明

  //自构函数
  function My_Image($url, $text)
  {
   $this->wbmp_url = $url;
   $this->alt_text = $text;
   $this->br_count = 0;
   }

  //设置空行数目
  function set_br_count($count)
  {
   if (!is_int($count) || ($count < 0))
    die("incorrect br_count,Quit");

   $this->br_count = $count;
  }

  //返回对象类型
  function My_Type()
  {
   return I_AM_IMAGE;
   }
  
  //创建Image部分代码
  function Make_Element($deck)
  {
   printf("<image src=\"%s\" alt=\"%s\"/>\n", $this->wbmp_url, $this->alt_text);

  $br_command = "<br/>\n";
  for ($i=0; $i < $this->br_count; $i++)
    echo $br_command;
    } 
   }
   }
 

4.Table对象声明

class My_Table
  {
  //属性声明
  var $table_row;
  var $row_number;

  //方法声明

  //自构函数
  function My_Table()
  {
   $this->row_number = 0;//初始化为0行
   }

  //加入新行
  function add_row($new_row)
  {
   if (!is_object($new_row)||$new_row->My_Type()!=I_AM_ROW)
    die("incorrect row,Quit");

  $this->table_row[$this->row_number] = $new_row;

  $this->row_number++;

   }

  //返回对象类型
  function My_Type()
   {
   return I_AM_TABLE;
   }

   //创建Table部分代码
   function Make_Element($deck)
   {
   $max_column_number = 0;
   for ($i = 0; $i < $this->row_number; $i++)
    {
    $the_row = $this->table_row[$i];
    $column_number = $row->get_column_number();
    if ($column_number > $max_column_number)
     $max_column_number = $column_number;
     }

    printf("<table columns=\"%d\">\n", $max_column_number);
   for ($i = 0; $i < $this->row_number; $i++)
    {
    $the_row = $this->table_row[$i];
    $the_row->Make_Element(&$deck);
    }

     echo "</table><br/>\n";
     }
    };
 

 

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页  

 
  • 上一篇文章: 没有了

  • 下一篇文章: 没有了
  •  
     

     
    Copyright (C) 2008 shouji56.COM, All Rights Reserved 版权所有