后台配置前台动态显示图片——善良公社

        在善良公社项目中,首页的图片显示,不仅要求要根据客户的需要来切换图片,而且还是根据后台来配置,后台要求显示哪些图片那么前台就显示哪些图片。

       界面效果如下:下面总共显示了三种图片,可以滑动点击,在上面查看大图

      后台配置前台动态显示图片——善良公社_第1张图片

        实现这些需求我是这样做的:

        在显示图片时利用flash,自己编写了XML文件,Flash读取XML文件,然后设置样式在首页上显示,其XML文件如下:这三张图片是默认的图片

<?xml version="1.0" encoding="utf-8"?>
<photos>
  <photo filename="tp-1.jpg" thumbnail="tp-1.jpg" description="" />  
  <photo filename="tp-2.jpg" thumbnail="tp-2.jpg" description="" />
  <photo filename="tp-3.jpg" thumbnail="tp-3.jpg" description="" />
</photos>
        当这些齐全的时候只需要在前台写上如下,就可以正常显示了。

 <td  style="padding: 8px 8px 1px 8px; word-wrap:break-word; width:350px;">                
       <div id="idPicText"></div>
       <table width="99%" height="102" border="0" cellpadding="0" cellspacing="0">
          <tr>
             <td align="center" valign="top">
                 <script type="text/javascript">//admin/SystemManager/AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0', 'width', '320', 'height', '300', 'src', 'Photos/photo_xml', 'quality', 'high', 'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'movie', 'Photos/photo_xml'); //end AC code
                 </script>
            </td>
         </tr>
      </table>
        紧接着就是如何在后台设置了要显示的图片后怎么在前台显示了,这里涉及到动态修改XML的。
后台界面如下:

后台配置前台动态显示图片——善良公社_第2张图片

当"是否显示"字段为N时不再首页显示该图片,当更改为Y时,在首页相应的图片,如下:

后台配置前台动态显示图片——善良公社_第3张图片

此时的XML文件更改为:

<?xml version="1.0" encoding="utf-8"?>
<photos>
  <photo filename="tp-1.jpg" thumbnail="tp-1.jpg" description="" />
  <photo filename="tp-2.jpg" thumbnail="tp-2.jpg" description="" />
  <photo filename="tp-3.jpg" thumbnail="tp-3.jpg" description="" />
  <photo filename="../../Photos/1_20140204162259.png" thumbnail="../../Photos/1_20140204162259.png" description="" />
</photos>
如何修改XML文件,如下:

            if (EindexImg.IsShow == "N")                   //如果是否显示更改为N时
            {
                string strfile = "photos.xml";             //用到的xml文件名
                string fileName = context.Server.MapPath(strfile); ; //context.Server.MapPath获取当前aspx页所处的路径
                string[] splitByChar = fileName.Split('\\');   //将获取到的路径以\\分割
                string FileName = splitByChar[0] + "/" + splitByChar[1] + "/" + splitByChar[2] + "/" + splitByChar[3] + "/" + splitByChar[4] + "/" + splitByChar[5] + "/" + splitByChar[6] + "/" + "Photos/" + splitByChar[9]; //重新构建正确的xml地址 
                XmlDocument myXml = new XmlDocument();
                try
                {
                    myXml.Load(FileName);   //加载XML文件
                }
                catch
                {
                    myXml.Load(FileName);
                }

                XmlNode rootXml = myXml.SelectSingleNode("photos");   //查询XML文件的根节点("photos")
                    XmlNode root = myXml.DocumentElement;
                    XmlNodeList nodeList = root.ChildNodes;
                    foreach (XmlNode node in nodeList)   //遍历子节点
                    {
                        if (node.Attributes["filename"].Value == EindexImg.IndexImgURL)  //当子节点中的地址与数据库中存入的地址相同
                        {
                            node.ParentNode.RemoveChild(node);     //删除这个节点,不让图片显示
                        }
                    }
                myXml.Save(FileName);  //保存XML文件
            }
      既然知道了当为“N”时如何修改XML,那么当为“Y”时就知道如何修改了。
      总结:其实对节点的操作,早在学习JS时就学了,说白了修改XML也就是对节点的修改,掌握基础知识很有必要,以少集多,慢慢的提高自己!


你可能感兴趣的:(JavaScript,数据库,图片,Flash,界面)