用SMARTY生成的静态站点函数

来源:互联网 发布:mac pro 风扇噪音 编辑:程序博客网 时间:2024/05/10 04:26

 function web_write()
 {
   define ( ROOT ,  dirname ( $_SERVER['SCRIPT_FILENAME'] ) . '/' );
     $AdminDB = $this->loadDB('AdminDB');
  $zd_id = !empty( $_GET['zd_id'] ) ? trim( $_GET['zd_id'] ) : "";
   
     $web = $AdminDB->db_get_web_by_id($zd_id);
     $skin = $AdminDB->db_get_tem_by_id($zd_id);
        //获取站点下的频道
        $pindao = $AdminDB->db_get_web_pindao_options($zd_id);
  $skinname = $skin['skinname'];
  $webname =urlencode($web['ym_name']);
  //建立站点目录
  if( !is_dir ( ROOT.'site/'.$webname.'' ) )
      {
    mkdir( ROOT.'site/'.$webname.'');
       }
  $this->view->assign("webname", $webname);
  $this->view->assign("skin", $skin);
  $this->view->assign("web",$web);
  //给数组pindao里增加cpdname中文转化拼音
  for($i=0;$i<count($pindao);$i++)
  {
  $pindao[$i]['cpd_name'] = c($pindao[$i]['pd_name']);
  }
  $this->view->assign("pindao", $pindao);
    //创建频道文件夹生成站点列表页提取频道下的标题
  for($i=0;$i<count($pindao);$i++)
  {
    if( !is_dir ( ROOT.'site/'.$webname.'/'.c($pindao[$i]['pd_name']).'/' ) )
     {
      mkdir( ROOT.'site/'.$webname.'/'.c($pindao[$i]['pd_name']).'');
     }
        $biaoti = $AdminDB->db_get_web_biaoti($zd_id,$pindao[$i]['pd_id']);
     //给数组biaoti里增加cpdname中文转化拼音
     for($a=0;$a<count($biaoti);$a++)
     {
     $biaoti[$a]['cpd_name'] = c($biaoti[$a]['pd_name']);
     }
        $this->view->assign("biaoti", $biaoti);
    
           $data = $this->view->fetch(ROOT."template/".$skinname."/list.tpl");
              file_put_contents ( ROOT.'site/'.$webname.'/'.c($pindao[$i]['pd_name']).'/'.$pindao[$i]['pd_id'].'_0.html' , $data );
        //生每个频道下的内容页
     for($a=0;$a<count($biaoti);$a++)
     {
       //创建每个频道下的内容文件夹
          if( !is_dir ( ROOT.'site/'.$webname.'/'.c($biaoti[$a]['pd_name']).'/'.$biaoti[$a]['wz_id'].'/') )
             {
           mkdir( ROOT.'site/'.$webname.'/'.c($biaoti[$a]['pd_name']).'/'.$biaoti[$a]['wz_id'].'');
             }
     $id = $biaoti[$a]['wz_id'];
        $title = $biaoti[$a]['title'];
        $content = $biaoti[$a]['content'];
     $this->view->assign("id", $id);
        $this->view->assign("title", $title);
        $this->view->assign("content", $content);
           $newsdata = $this->view->fetch(ROOT."template/".$skinname."/news.tpl");
    // 判断文章是否已经生成过,如果flag为0,则生成
     if ($biaoti[$a]['flag'] == 0)
     {
              file_put_contents ( ROOT.'site/'.$webname.'/'.c($pindao[$i]['pd_name']).'/'.$biaoti[$a]['wz_id'].'/index.html' ,                                     $newsdata );
     //更新flag为1,即生成后的标志
      $AdminDB->db_upd_web_flag($biaoti[$a]['wz_id']);
     }
        }
    } 
     $this->view->assign("webname",$webname);
     $data = $this->view->fetch(ROOT."template/".$skinname."/index.tpl");
     file_put_contents ( ROOT.'site/'.$webname.'/index.html' , $data );
     show_msg1('生成站点成功','/jianzhan/site/'.$webname.'/index.html',3000);
 }