我可以做些什么来更好地构建我的文件目录


What can I do to better structure my File Directory?

我正在开发一个动态博客/投资组合:

参考链接:http://www.andrewryan.me/

我已经在我的个人网站上工作了一个多月了。我一直在修改,因为我觉得我把整个事情都设置错了。我知道我在某种程度上,我终于在寻求帮助。

我一直致力于动态网站结构,我想知道一些事情:

  1. 动态内容的最佳实践

    • 我在根文件夹中有这个网站的框架。这包括索引和样式
      (连同脚本文件夹、图像文件夹和其他杂项文件类型..)

    • 最新的博客条目是在索引页面上调出的。如果他们想看我所有的专业帖子/主题,他们只会去任何给定的小节
      (例如:index.php?p=professional)

    • 从那里;如果用户想完整地查看一篇博客文章,他们只需点击该文章,然后会进一步动态地将其拉上来
      (例如:index.php?p=professional/thispost(idfk))

  2. 如何在动态内容中创建动态内容

    • 页面和子页面然后在个人文件夹中的链上继续(例如:index.php>index.php?p=personal)
  3. 如何制作可更新的内容,一旦页面上传到相应的文件夹,这些内容就会归档

    • 我应该考虑为此使用数据库还是XML?如果是的话,有人能给我介绍一下制作这种网站的好教程吗?对此无需过多解释

这是我的文件结构:

root/   
  > images/  
    ||--> x.png   
  > pages/  
    ||--> personal.php  
    ||--> professional.php  
    ||--> contact.php   
    ||--> 404.php  
    ||--> contact.php 
    > personal/  
        |||--> personalposts.php  
    > professional
        |||--> professionalposts.php  
    > gallery/  
        |||--> galleryposts.php   
  > scripts  
    ||--> scripts.php/js/etc
  |--> .htaccess
  |--> index.php  
  |--> style.css    
  |--> robots.txt  
  |--> humans.txt

以及动态页面的代码:

<?php
    $pages_dir = 'pages'; //Scans the pages directory
    if (!empty($_GET['p'])) { //If not empty it will get the file
        $pages = scandir ($pages_dir, 0); //Sets up files as array
        unset ($pages[0], $pages[1]); //Unsets the first two. These are just dots.
        $p = $_GET['p'];
        if (in_array($p.'.php',$pages)) {
            include ($pages_dir.'/'.$p.'.php');
        } else {
        include($pages_dir.'/404.php'); //DENIED!
        }
    } else {
        include($pages_dir.'/blog.php'); //if it's the index page
    }
?>  

我或多或少想知道我是否把结构搞对了,或者是否有更好的方法来做到这一点。我希望能够使这个网站一次,只是在需要时自动更新它的内容。

啊哈,我一直在等的问题。我在一个网站上工作就是这样。首先,你必须将你的网站分成几个页面(每个页面都有不同的布局)。例如,要注销,您需要这样的东西:sitename.com/?action=退出

要回家,你可以访问sitename.com,如果你尝试/?p=somethingThatDoesnt存在,然后你仍然可以进入主页(或错误页面)

如果你可以访问你的web根目录下的某些内容,那么它会更好。然后,您应该在/root/content/中保留所有的.php文件,在/root/www/中只保留一个index.php

如果玩家登录(如果他是管理员,也可以选择),我会用这个代码给他一个页面

// Check if alternate page requested
if (!empty($_GET["p"]) and !empty($_SESSION['id']))
{
    $page = $_GET["p"];
    if (!empty($pages[$page]))
    {
        $page_array = $pages[$page];
        if ( (!empty($page_array['auth'])) && ($user['Auth'] < $page_array['auth']) )
        {
            $page_array = $pages['index'];
        }
    }
    else
    {
        $page = '';
    }
}

然后,你做你的基本工作:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang='en'>  
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
        <title><? echo $page_array['title'] ?></title>
        <link rel="stylesheet" href="css/3p/reset.css" type="text/css"/>
        <link rel="stylesheet" href="css/3p/formalize.css" type="text/css"/>
        <link href="css/bootstrap.css" rel="stylesheet">
        <link href="css/main.css" rel="stylesheet">
        <link href="css/bootstrap-responsive.css" rel="stylesheet">
    </head>  
    <body>  
            <?php
                    require("../content/header.php");
                    require($page_array['require']);
                    require("../content/footer.php");
            ?>
    </body>
</html>

以下是page_array:的内容

$pages = Array();
$pages['admin'] = Array(
    'auth' => 3,
    'require' => "../admin/index.php",
    'title' => "Administration - NPG CP"
);
$pages['index'] = Array(
    'require' => "../content/index.php",
    'title' => "Home - NPG CP"
);
$pages['friends'] = Array(
    'require' => "../content/index.php",
    'title' => "Friends - NPG CP"
);
$pages['pm'] = Array(
    'require' => "../content/index.php",
    'title' => "Messages - NPG CP"
);
$pages['stats'] = Array(
    'require' => "../content/index.php",
    'title' => "Statistics - NPG CP"
);

在我的网站上,我只使用一个可查看的文件来处理其他所有内容。我希望我帮了你。我可以给你我网站的源代码,只需给我发电子邮件至[my_username]@gmail.com即可:)