<?php
header("content-Type: text/html; charset=gb2312");
include_once("DBHelper.php");
include_once("test_array.php");
?>
<!--==========业务逻辑==========-->
<?php
$conn = new ADOConnection;
$conn -> PConnect("localhost","root","weoffice","eoffice");//数据库连接
$conn -> SetUnicode("set names gb2312");//**设置字符集***
//组建三级数组,当成一个空DataSet结构来用
//DataSet => DataTable:成都公司/昆明公司/公司集团/...
$copName = $conn -> ExecuteQuery("select DEPT_NAME from department where DEPT_PARENT=1 order by DEPT_NO");
$arr = buildArr($copName);
//记录一个保存有指定部门时所发生的情况:1.不指定部门2.所有范围3.指定一个(些)部门
$counter = buildAllName($copName);
//SQL语句:获取符合条件的公告(筛选条件:通告有效),按有效的开始时间倒排
$sql = "SELECT a.DEPT_ID,a.NOTIFY_ID, a.SUBJECT, a.SEND_TIME, a.READERS, b.USER_NAME
FROM notify a left join user b
ON a.FROM_ID = b.USER_ID
ORDER BY a.SEND_TIME DESC";
//返回数据表
$arrResult = $conn -> ExecuteQuery($sql);
//遍历循环
if(!$arrResult) {
echo "<div>没有任何公告。</div>";
}
else{
$file_channel_cache='test_array.php';
$cachetime=filemtime($file_channel_cache);
if(!file_exists($file_channel_cache)){
//if(!file_exists($file_channel_cache) || time()-$cachetime>36000){
//遍历指定了哪些部门
for($i=0;$i<count($arrResult);$i++){
if(!$arrResult[$i]["DEPT_ID"]){//没有指定部门,即部门为空
//处理没有选择部门的数据 => "未指定部门"
$n = count($arr["未指定部门"]);
$arr["未指定部门"][$n] = array();
//赋值
$arr["未指定部门"][$n]["NOTIFY_ID"] = $arrResult[$i]["NOTIFY_ID"];
$arr["未指定部门"][$n]["SUBJECT"] = $arrResult[$i]["SUBJECT"];
$arr["未指定部门"][$n]["SEND_TIME"] = $arrResult[$i]["SEND_TIME"];
$arr["未指定部门"][$n]["PUBUSER"] = $arrResult[$i]["USER_NAME"];
$arr["未指定部门"][$n]["READERS"] = $arrResult[$i]["READERS"];
}
else if($arrResult[$i]["DEPT_ID"]=="ALL_DEPT") {//指定的所有全体
//处理没有指定范围的数据=>"全部范围"
$n = count($arr["全部范围"]);
$arr["全部范围"][$n] = array();
//赋值
$arr["全部范围"][$n]["NOTIFY_ID"] = $arrResult[$i]["NOTIFY_ID"];
$arr["全部范围"][$n]["SUBJECT"] = $arrResult[$i]["SUBJECT"];
$arr["全部范围"][$n]["SEND_TIME"] = $arrResult[$i]["SEND_TIME"];
$arr["全部范围"][$n]["PUBUSER"] = $arrResult[$i]["USER_NAME"];
$arr["全部范围"][$n]["READERS"] = $arrResult[$i]["READERS"];
}
else{//指定了一个(些)部门
//分离开指定的部门
$arrNum = explode(",",$arrResult[$i]["DEPT_ID"]);
//遍历选择的所有部门
for($j=0;$j<count($arrNum)-1;$j++){
//遍历反查所有的结点,直到找到DEPT_PARENT=1为止
$name = runback($arrNum[$j]);
//定义一个数组arr["公司名"]++
$counter[$name]++;
}
//遍历前面定义的那个数组
foreach($counter as $key=>$value){
//判断,如果arr["公司名"]>0
//赋值arr["公司名"][count(arr["公司名"])]["NOTIFY_ID"]=..
if($value>0)
{
$n = count($arr[$key]);
$arr[$key][$n] = array();
//赋值
$arr[$key][$n]["NOTIFY_ID"] = $arrResult[$i]["NOTIFY_ID"];
$arr[$key][$n]["SUBJECT"] = $arrResult[$i]["SUBJECT"];
$arr[$key][$n]["SEND_TIME"] = $arrResult[$i]["SEND_TIME"];
$arr[$key][$n]["PUBUSER"] = $arrResult[$i]["USER_NAME"];
$arr[$key][$n]["READERS"] = $arrResult[$i]["READERS"];
}
}
//else over. It will jump to the next loop
$counter = initArr($counter);
}
}
//for is over
//print_r($arr);
//字符串处理
$string_start = "<?php\n";
$string_v = '$'."arra=";
$string_process = var_export($arr, TRUE);
$string_end = "\n?>";
$string = $string_start.$string_v.$string_process.$string_end;
//开始写入文件
echo file_put_contents('test_array.php', $string);
}
//if...else 结束
}
//这下面的一切都是为了一个new标记..汗...
$curUser = $_COOKIE[USER_NAME_COOKIE];
$userName = "";
if($curUser == "admin"){
$userName = "系统管理员";
}else{
$userName = iconv("utf-8","gb2312",$curUser);
}
$sql = "SELECT USER_ID FROM user WHERE USER_NAME='".$userName."'";
$userID = $conn -> ExecuteQuery($sql);
foreach($arr as $key=>$value){
for($i=0;$i<count($value);$i++){
$temp = $arr[$key][$i]["READERS"];
if($temp && $userID[0][0]){
$arr[$key][$i]["READERS"] = "new".substr_count($temp,$userID[0][0]);
}
}
}
//这上面的一切都是为了一个new标记..汗...
/*活动数据(新闻)
----------------------------------------------*/
$sql = "SELECT NEWS_ID,SUBJECT,NEWS_TIME,news_reader,ATTACHMENT_ID,ATTACHMENT_NAME from news order by NEWS_ID desc LIMIT 0 , 5";
$activity = $conn -> ExecuteQuery($sql);
//print_r($activity);
?>
<!--==========辅助方法==========-->
<?php
//在department中去遍历,直到找到第二级节点为止
function runback($depID)
{
$sql = "select * from department where DEPT_ID=".$depID;
$result = mysql_query($sql);
$info = mysql_fetch_array($result);
if(!$info) {
//"发表的公告有异常:指定的部门编号在Department表中找不到!";
//"隐藏了这个异常"
return "未指定部门";
}
if($info["DEPT_PARENT"] != 1){
return runback($info["DEPT_PARENT"]);
}
else{
return $info["DEPT_NAME"];
}
}
//辅助方法:建立数组
function buildArr($arrCopName)
{
$arr = array(
"全部范围"=>array()
);
for($i=0;$i<count($arrCopName);$i++)
{
$arr[$arrCopName[$i]["DEPT_NAME"]] = array();
}
$arr["未指定部门"] = array();
return $arr;
}
//辅助方法:建立计数器(存所有公司名+全部范围+未指定部门),并初始化为0
function buildAllName($arrCopName)
{
$arr = array(
"全部范围"=>0
);
for($i=0;$i<count($arrCopName);$i++)
{
$arr[$arrCopName[$i]["DEPT_NAME"]] = 0;
}
$arr["未指定部门"] = 0;
return $arr;
}
//初始化数组,将值清空为0
function initArr($arr)
{
foreach($arr as $key=>$value)
{
$arr[$key] = 0;
}
return $arr;
}
?>
<?php
$conn -> ConnClose();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题文档</title>
<meta http-equiv="content-type" content="text/html" charset="gb2312" />
<link href="css/style.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="/inc/common2.js"></script>
<script language="javascript" src="js/getNewID.js"></script>
<script language="javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script type="text/javascript" src="js/jquery.KinSlideshow-1.1.js"></script>
<script type="text/javascript">
<!--
$(function(){
var w = Math.round($(window).width()*0.48);
$("#KinSlideshow a img").css("width",w);
$("#KinSlideshow").KinSlideshow({
moveStyle:"left", //设置切换方向为向下 [默认向左切换]
intervalTime:4, //设置间隔时间为8秒 [默认为5秒]
mouseEvent:"mouseover", //设置鼠标事件为“鼠标滑过切换” [默认鼠标点击时切换]
titleFont:{TitleFont_size:12,TitleFont_color:"#fff"} //设置标题文字大小为14px,颜色:#FF0000
});
testimg();//加载活动图片
});
function openDiv(alink){
//打开当前DIV
$("#KinSlideshow").addClass("hiden");
$("div.block").addClass("hiden");
$(alink).parent().parent().attr("id","topDIV");
$("#topDIV").addClass("show");
$("#topDIV").css("overflow","auto");
var arr = $("#topDIV li a");
for(var i=0;i<arr.length;i++){
arr.eq(i).text(arr.eq(i).attr("title"));
}
$(alink).hide();
$(alink).parent().append("<a href='javascript:void(0)' onclick='refresh();'>返回</a>");
//设置分页
$("#topDIV div.pager").attr("id","pager");
$("#pager").show();
var pagesize = parseInt($("#pager strong").text()); //每页显示记录数
var licount = $("#topDIV ul li").length; //总条数
var totalpage = Math.round(licount/pagesize);//总页数
if(totalpage == 0) totalpage = 1;
$("#pager .totalpage").text(totalpage); //显示页数
$("#topDIV ul li").hide();
for(var i=0;i<pagesize;i++){ //初始化第一页
$("#topDIV ul li").eq(i).show();
}
//第一页
$("#pager .firstpage").click(function(){
if($("#pager .curpage").text() == "1"){
alert("已经是第一页了");
return;
}
$("#topDIV ul li").hide();
for(var i=0;i<pagesize;i++){
$("#topDIV ul li").eq(i).fadeIn(1000);
}
$("#pager .curpage").text(1);
//alert("第一页");
});
//前一页
$("#pager .prepage").click(function(){
var curpage = parseInt($("#pager .curpage").text());
if(curpage == 1){
alert("当前已经是第一页了");
}else{
$("#topDIV ul li").hide();
var end = (curpage-1)*pagesize;
var start = end - pagesize;
for(var i=start;i<end;i++){
$("#topDIV ul li").eq(i).fadeIn(1000);
}
$("#pager .curpage").text(curpage-1);
}
//alert("前一页");
});
//下一页
$("#pager .nextpage").click(function(){
var curpage = parseInt($("#pager .curpage").text());
if(curpage == totalpage){
alert("当前已经是最后一页了");
}else{
$("#topDIV ul li").hide();
var start = curpage*pagesize;
var end = start + pagesize;
for(var i=start;i<end;i++){
$("#topDIV ul li").eq(i).fadeIn(1000);
}
$("#pager .curpage").text(curpage+1);
}
//alert("下一页");
});
//最后一页
$("#pager .lastpage").click(function(){
var curpage = parseInt($("#pager .curpage").text());
if(curpage == totalpage) {
alert("已经是最后一页了");
return;
}
var start = (totalpage-1)*pagesize;
var end = licount;
$("#topDIV ul li").hide();
for(var i=start;i<end;i++){
$("#topDIV ul li").eq(i).fadeIn(1000);
}
$("#pager .curpage").text(totalpage);
//alert("最后一页");
});
//模糊搜索
//var keyword = $("#pager input").eq(0).attr("value");
$("#pager input").eq(1).click(function(){
var keyword = $("#pager input").eq(0).attr("value");
for(var i=0;i<arr.length;i++){
var title = arr.eq(i).text();
//alert(title);
if(title.indexOf(keyword)==-1){
$("#topDIV ul li").eq(i).hide();
}else{
$("#topDIV ul li").eq(i).fadeIn(1000);
}
}
$("#topDIV span.pagerwrap").hide();
//alert(licount);
});
}
function refresh(){
window.location.reload();
}
function showAImg(attachmentID,attachmentName,imgSeq){
showAttachGeneral(attachmentID,'',1,0,0,attachmentName,imgSeq);
}
function testimg(){
var i=$("#KinSlideshow a img").length;
var x=i/2;
var y=x;
$("#KinSlideshow a img").each(function(){
var attachmentID = $(this).attr("class");
var attachmentName = $(this).attr("lang");
if(attachmentID != "" && attachmentName != "")
{
$(this).attr("id","img"+attachmentID);
showAImg(attachmentID,attachmentName,y++);
}
if((--i) == x) return false;
});
}
//-->
</script>
</head>
<body>
<div id="KinSlideshow" style="visibility:hidden; overflow:hidden;">
<?php
foreach($activity as $key=>$value)
{
if($key > 5) break;
//if(!$value["ATTACHMENT_ID"]) continue;//如果没有图片,跳出本次循环
?>
<a href='/general/news/show/read_news.php?NEWS_ID=<?php echo $value["NEWS_ID"]; ?>' target="_blank"><img src="images/5.jpg" lang="<?php echo $value["ATTACHMENT_NAME"]; ?>" class="<?php echo $value["ATTACHMENT_ID"]; ?>" alt="<?php echo $value["SUBJECT"]; ?>" /></a>
<?php
}
?>
</div>
<?php
foreach($arra as $key=>$value)
{
if($key == "鑫**" || $key == "全国其他公司" || $key == "未指定部门") continue;
?>
<div class="block"><h1><?php echo $key ?><a href="javascript:void(0)" onclick="openDiv(this);">>>更多</a></h1>
<ul>
<?php
for($k=0;$k<count($value);$k++)
{
?>
<li><a href="publicread.php?NOTIFY_ID=<?php echo $value[$k]["NOTIFY_ID"] ?>&USER_NAME=<?php echo urlencode($value[$k]["PUBUSER"]) ?>&USER_ID=<?php echo $userID[0][0]; ?>" target="_blank" title="<?php echo $value[$k]["SUBJECT"] ?>"><?php echo $value[$k]["SUBJECT"];?></a><span>(<?php echo substr($value[$k]["SEND_TIME"],0,10) ?>)</span><?php echo $value[$k]["PUBUSER"] ?><span class='<?php echo $value[$k]["READERS"] ?>'> </span></li>
<?php
}
if($k==0) echo "该公司下还没有公告。";
?>
</ul>
<div class="pager">模糊搜索:<input type="text" /><input type="button" value="搜索" /><span class="pagerwrap">每页显示:<strong>13</strong>条 当前页:<span class="curpage">1</span>/<span class="totalpage">xxx</span><span class="firstpage"><<</span><span class="prepage"><</span><span class="nextpage">></span><span class="lastpage">>></span></span></div>
</div>
<?php
}
?>
</body>
</html>