module as $rw){
if($rw['type']==1 && $rw['status']==1) $data['module'][$rw['id']] = $rw;
}
$this->module=$data['module'];
$this->assign('module',$this->module);
$this->assign('menuid',intval($_GET['menuid']));
}
public function index()
{
$this->display('Createhtml:index');
}
public function docreateindex()
{
$this->create_index();
$this->assign ( 'jumpUrl', U(MODULE_NAME.'/index') );
$this->success(L('index_create_OK'));
}
public function createlist()
{
$moduleid = intval($_GET['moduleid']);
if($this->categorys){
foreach ($this->categorys as $r){
if($r['type']==1 && $r['ishtml']==0) continue;
if($moduleid && $r['moduleid'] != $moduleid) continue;
if(ACTION_NAME=='Updateurl' && $r['module']=='Page') continue;
if(ACTION_NAME=='Createlist' && $r['ishtml']!=1) continue;
if((ACTION_NAME=='Createshow' && $r['ishtml']!=1) || (ACTION_NAME=='Createshow' && $r['module']=='Page')) continue;
$array[] = $r;
}
import ( '@.ORG.Tree' );
$str = "";
$tree = new Tree ($array);
$tree->icon = array(' '.L('tree_1'),' '.L('tree_2'),' '.L('tree_3'));
$select_categorys = $tree->get_tree(0, $str);
$this->assign('select_categorys', $select_categorys);
}
$this->display('Createhtml:show');
}
public function doCreatelist()
{
$this->assign ( 'waitSecond', 0);
extract($_GET,EXTR_SKIP);
$moduleid = intval($_GET['moduleid']);
$doid = $doid ? intval($doid) : 0;
$count = intval($_GET['count']);
if($dosubmit!=1){
$catids=array();
if($_GET['catids'][0]){
$catids = $_SESSION['catids'] = $_GET['catids'];
}else{
foreach($this->categorys as $id=>$cat) {
if($cat['type']!=0 || $cat['ishtml']!=1) continue;
if($moduleid){
if($cat['moduleid']!=$moduleid) continue;
}
$catids[] = $id;
}
$catids = $_SESSION['catids'] = $catids;
}
}else{
$catids =$_SESSION['catids'];
}
if(!isset($catids[$doid])){
unset($_SESSION['catids']);
$forward = U("Createhtml/createlist");
$this->assign ( 'jumpUrl', $forward);
$this->success(L('create_update_success'));
}else{
$id = $catids[$doid];
if(empty($count)){
$module = $this->categorys[$id]['module'];
$dao= M($module);
$where['status']=1;
if(empty($this->categorys[$id]['listtype'])){
if($this->categorys[$id]['child']){
$where['catid']=array('in',$this->categorys[$id]['arrchildid']);
}else{
$where['catid']=$id;
}
$count = $dao->where($where)->count();
}else{
$count=1;
}
}
if(empty($pages)){
$cat_pagesize = !empty($this->categorys[$id]['pagesize']) ? $this->categorys[$id]['pagesize'] : C('PAGE_LISTROWS');
$pages = ceil($count/$cat_pagesize);
}
$p = max(intval($p), 1);
$j = 1;
do {
$this->create_list($id,$p,$count);
$j++;
$p++;
$pages = isset($pages) ? $pages : PAGESTOTAL;
} while ($p <= $pages && $j < $pagesize);
if($p <= $pages) {
$endpage = intval($p+$pagesize);
$percent = round($p/$pages, 2)*100;
$urlarray=array(
'count' => $count,
'doid' => $doid,
'dosubmit' => 1,
'pages' => $pages,
'p' => $p,
'pagesize' => $pagesize,
'iscreatehtml'=>1,
);
$message = L('updating').$this->categorys[$id]['catname'].L('create_update_count').$pages.L('create_update_list_num').$p.L('items_list').$percent.L('items1');
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
} else {
$doid++;
$urlarray=array(
'doid' => $doid,
'dosubmit' => 1,
'p' => 1,
'pagesize' => $pagesize,
'iscreatehtml'=>1,
);
$message = L('start_updating').$this->categorys[$id]['catname']." ...";
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
}
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
}
}
public function doUpdateurl()
{
$this->assign ( 'waitSecond', 0);
$moduleid = intval($_GET['moduleid']);
extract($_GET,EXTR_SKIP);
if($moduleid<=0 && $catids[0] <= 0){
if($this->module && !$_SESSION['moduleids']){
foreach($this->module as $moduleid=>$r){
$tablename=C('DB_PREFIX').$this->module[$moduleid]['name'];
$db=D('');
$db = DB::getInstance();
$tables = $db->getTables();
$Fields=$db->getFields($tablename);
foreach ( $Fields as $key =>$r){
if($key=='url') $_SESSION['moduleids'][] = $moduleid;
}
}
}
$doid = $doid ? intval($doid) : 0;
if(!isset($_SESSION['moduleids'][$doid])){
unset($_SESSION['moduleids']);
$forward = U("Createhtml/updateurl");
$this->assign ( 'jumpUrl', $forward);
$this->success(L('create_update_success'));
}else{
$moduleid = $_SESSION['moduleids'][$doid];
$module=$this->module[$moduleid]['name'];
$dao = M($module);
$p = max(intval($p), 1);
$start = $pagesize*($p-1);
if(!isset($count)){
$count = $dao->where($where)->count();
}
$pages = ceil($count/$pagesize);
if($count){
$list = $dao->field('id,catid,url')->where($where)->limit($start . ',' . $pagesize)->select();
foreach($list as $r) {
if($r['islink']) continue;
$url = geturl($this->categorys[$r['catid']],$r,$this->Urlrule);
unset($r['catid']);
$r['url'] = $url['0'];
$dao->save($r);
}
}
if($pages > $p) {
$p++;
$creatednum = $start + count($list);
$percent = round($creatednum/$count, 2)*100;
$urlarray=array(
'doid' => $doid,
'dosubmit' => 1,
'count' => $count,
'pages' => $pages,
'p' => $p,
'pagesize' => $pagesize,
);
$message = L('updating').$this->module[$moduleid]['title'].L('create_update_count').$count.L('create_update_num').$creatednum.L('items').$percent.L('items1');
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
} else {
$doid++;
$urlarray=array(
'doid' => $doid,
'dosubmit' => 1,
'p' => 1,
'pagesize' => $pagesize,
);
$message = L('start_updating').$this->module[$moduleid]['title']." ...";
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
}
}
}elseif($moduleid){
$module=$this->module[$moduleid]['name'];
$dao = M($module);
$p = max(intval($p), 1);
$start = $pagesize*($p-1);
if(is_array($catids) && $catids[0] > 0){
$cids = implode(',',$catids);
$where = " catid IN($cids) ";
$_SESSION['catids'] = $catids;
}
if(!$catids && $_SESSION['catids'] && $_SESSION['catids'][0] > 0){
$catids = implode(',',$_SESSION['catids']);;
$where = " catid IN($catids) ";
}
if(!isset($count)){
$count = $dao->where($where)->count();
}
$pages = ceil($count/$pagesize);
if($count){
$list = $dao->field('id,catid,url')->where($where)->limit($start . ',' . $pagesize)->select();
foreach($list as $r) {
if($r['islink']) continue;
$url = geturl($this->categorys[$r['catid']],$r,$this->Urlrule);
unset($r['catid']);
$r['url'] = $url['0'];
$dao->save($r);
}
}
if($pages > $p) {
$p++;
$creatednum = $start + count($list);
$percent = round($creatednum/$count, 2)*100;
$urlarray=array(
'moduleid' => $moduleid,
'dosubmit' => 1,
'count' => $count,
'pages' => $pages,
'p' => $p,
'pagesize' => $pagesize,
);
$message = L('create_update_count').$count.L('create_update_num').$creatednum.L('items').$percent.L('items1');
$forward = U("Createhtml/updateurl",$urlarray);
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
} else {
unset($_SESSION['catids']);
$forward = U("Createhtml/updateurl");
$this->assign ( 'jumpUrl', $forward);
$this->success(L('create_update_success'));
}
}else{
//按照栏目更新url
extract($_GET,EXTR_SKIP);
$doid = $doid ? intval($doid) : 0;
if(empty($_SESSION['catids']) && $catids){
if($catids[0] == 0) {
foreach($this->categorys as $id=>$cat) {
if($cat['child'] || $cat['type']!=0 || $cat['module']=='Page') continue;
$catids[] = $id;
}
}
$_SESSION['catids'] = $catids;
}else{
$catids =$_SESSION['catids'];
}
if(!isset($catids[$doid])){
unset($_SESSION['catids']);
$forward = U("Createhtml/updateurl");
$this->assign ( 'jumpUrl', $forward);
$this->success(L('create_update_success'));
}elseif($catids[$doid]<=0){
$forward = U("Createhtml/updateurl");
$this->assign ( 'jumpUrl', $forward);
$this->success(L('create_update_success'));
}else{
$id = $catids[$doid];
$module=$this->categorys[$id]['module'];
$dao = M($module);
$where = "catid=$id";
$p = max(intval($p), 1);
$start = $pagesize*($p-1);
if(!isset($count)){
$count = $dao->where($where)->count();
}
$pages = ceil($count/$pagesize);
if($count){
$list = $dao->field('id,catid,url')->where($where)->limit($start . ',' . $pagesize)->select();
foreach($list as $r) {
if($r['islink']) continue;
$url = geturl($this->categorys[$r['catid']],$r,$this->Urlrule);
unset($r['catid']);
$r['url'] = $url['0'];
$dao->save($r);
}
}
if($pages > $p) {
$p++;
$creatednum = $start + count($list);
$percent = round($creatednum/$count, 2)*100;
$urlarray=array(
'doid' => $doid,
'dosubmit' => 1,
'count' => $count,
'pages' => $pages,
'p' => $p,
'pagesize' => $pagesize,
);
$message = L('updating').$this->categorys[$id]['catname'].L('create_update_count').$count.L('create_update_num').$creatednum.L('items').$percent.L('items1');
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
} else {
$doid++;
$urlarray=array(
'doid' => $doid,
'dosubmit' => 1,
'p' => 1,
'pagesize' => $pagesize,
);
$message = L('start_updating').$this->categorys[$id]['catname']." ...";
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
}
}
}
}
public function updateurl()
{
$moduleid = intval($_GET['moduleid']);
$this->assign('moduleid',$moduleid);
if($this->categorys){
foreach ($this->categorys as $r){
if($r['type']==1 && $r['ishtml']==0) continue;
if($_GET['moduleid'] && $r['moduleid'] != $_GET['moduleid']) continue;
if(ACTION_NAME=='Updateurl' && $r['module']=='Page') continue;
if(ACTION_NAME=='Createlist' && $r['ishtml']!=1) continue;
if((ACTION_NAME=='Createshow' && $r['ishtml']!=1) || (ACTION_NAME=='Createshow' && $r['module']=='Page')) continue;
if($r['child'] && ACTION_NAME!='Createlist'){
$r['disabled'] = 'disabled';
}else{
$r['disabled'] = '';
}
$array[] = $r;
}
import ( '@.ORG.Tree' );
$str = "";
$tree = new Tree ($array);
$tree->icon = array(' '.L('tree_1'),' '.L('tree_2'),' '.L('tree_3'));
$select_categorys = $tree->get_tree(0, $str);
$this->assign('select_categorys', $select_categorys);
}
$this->display('Createhtml:show');
}
public function createshow()
{
$moduleid = intval($_GET['moduleid']);
if($this->categorys){
foreach ($this->categorys as $r){
if($r['type']==1 && $r['ishtml']==0) continue;
if($moduleid && $r['moduleid'] != $moduleid) continue;
if(ACTION_NAME=='Updateurl' && $r['module']=='Page') continue;
if(ACTION_NAME=='Createlist' && $r['ishtml']!=1) continue;
if((ACTION_NAME=='Createshow' && $r['ishtml']!=1) || (ACTION_NAME=='Createshow' && $r['module']=='Page')) continue;
if($r['child'] && ACTION_NAME!='Createlist'){
$r['disabled'] = 'disabled';
}else{
$r['disabled'] = '';
}
$array[] = $r;
}
import ( '@.ORG.Tree' );
$str = "";
$tree = new Tree ($array);
$tree->icon = array(' '.L('tree_1'),' '.L('tree_2'),' '.L('tree_3'));
$select_categorys = $tree->get_tree(0, $str);
$this->assign('select_categorys', $select_categorys);
}
$this->display('Createhtml:show');
}
public function doCreateshow()
{
$this->assign ( 'waitSecond', 0);
extract($_GET,EXTR_SKIP);
$moduleid = intval($_GET['moduleid']);
$doid = $doid ? intval($doid) : 0;
if($dosubmit!=1){
if($catids[0] == 0) {
$catids=array();
foreach($this->categorys as $id=>$cat) {
if($cat['child'] || $cat['type']!=0 || $cat['module']=='Page' || $cat['ishtml']!=1) continue;
if($moduleid){
if($cat['moduleid']!=$moduleid) continue;
}
$catids[] = $id;
}
}
$_SESSION['catids'] = $catids;
}else{
$catids =$_SESSION['catids'];
}
if(!isset($catids[$doid])){
unset($_SESSION['catids']);
$forward = U("Createhtml/Createshow");
$this->assign ( 'jumpUrl', $forward);
$this->success(L('create_update_success'));
}else{
$id = $catids[$doid];
$module=$this->categorys[$id]['module'];
$dao = M($module);
$where = "catid=$id";
$p = max(intval($p), 1);
$start = $pagesize*($p-1);
if(!isset($count)){
$count = $dao->where($where)->count();
}
$pages = ceil($count/$pagesize);
if($count){
$list = $dao->field('id,catid,url')->where($where)->limit($start . ',' . $pagesize)->select();
foreach($list as $r) {
if($r['islink']) continue;
$module = $this->categorys[$r['catid']]['module'];
$this->create_show($r['id'],$module);
}
}
if($pages > $p) {
$p++;
$creatednum = $start + count($list);
$percent = round($creatednum/$count, 2)*100;
$urlarray=array(
'doid' => $doid,
'dosubmit' => 1,
'count' => $count,
'pages' => $pages,
'p' => $p,
'pagesize' => $pagesize,
'iscreatehtml'=>1,
);
$message = L('updating').$this->categorys[$id]['catname'].L('create_update_count').$count.L('create_update_num').$creatednum.L('items').$percent.L('items1');
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
} else {
$doid++;
$urlarray=array(
'doid' => $doid,
'dosubmit' => 1,
'p' => 1,
'pagesize' => $pagesize,
'iscreatehtml'=>1,
);
$message = L('start_updating').$this->categorys[$id]['catname']." ...";
$forward = U("Createhtml/".ACTION_NAME,$urlarray);
$this->assign ( 'jumpUrl', $forward);
$this->success($message);
}
}
}
public function createsitemap()
{
foreach((array)$this->module as $r){
if($r['issearch'])$search_module[$r['name']] = $r;
}
$this->assign('module',$search_module);
$xmlmap=file_exists('./sitemap.xml');
$htmlmap=file_exists('./sitemap.html');
$this->assign('siteurl',$this->Config['site_url']);
$this->assign('xmlmap',$xmlmap);
$this->assign('htmlmap',$htmlmap);
$this->assign('yesorno',array(0 => L('no'),1 => L('yes')));
$this->display('Createhtml:sitemap');
}
public function docreatesitemap()
{
if($_GET['htmlmap']){
$r = $this->create_index(1);
}
if($_GET['xmlmap']){
import("@.ORG.Cxml");
$array=array();
$array[0]['NodeName']['value'] ='url';
$array[0]['loc']['value']=$this->Config['site_url'];
$array[0]['lastmod']['value']= date('Y-m-d',time());
$array[0]['changefreq']['value'] ='weekly';
$array[0]['priority']['value'] =1;
foreach((array)$this->module as $r){
if($r['issearch']){
$num = intval($_GET[$r['name']]);
if(!$num) continue;
$data = M($r['name'])->field('id,title,url,createtime')->where("status=1")->order('id desc')->limit('0,'.$num)->select();
foreach($data as $key=> $res){
$arraya[$key]['NodeName']['value'] ='url';
$arraya[$key]['loc']['value'] = $this->Config['site_url'].$res['url'];
$arraya[$key]['lastmod']['value'] = date('Y-m-d',$res['createtime']);
$arraya[$key]['changefreq']['value'] ='weekly';
$arraya[$key]['priority']['value'] =0.7;
}
$array =array_merge($array,$arraya);
}
}
$Cxml = new Cxml();
$Cxml->root='urlset';
$Cxml->root_attributes=array('xmlns'=>'http://www.sitemaps.org/schemas/sitemap/0.9');
$xmldata = $Cxml->Cxml($array,'./sitemap.xml');
$d=file_exists('./sitemap.xml');;
}
if(($_GET['htmlmap'] && $r) || ($_GET['xmlmap']&& $d)){$this->success(L('DO_OK'));}else{$this->error(L('Create error.'));}
}
}
?>