3

この状況をどのように処理するかについて、あなたの意見を聞きたかっただけです。

状況: 学校のウェブサイトを開発していますが、教育委員会の厳格なポリシーにより、サイトへの FTP アクセス以外は許可されていません。ただし、この学校では、頻繁に更新する必要がある 10 ~ 12 ページを管理するために、「Web ページ」クラスに 6 人の生徒のグループを用意します。

ページはすべて、ヘッダー、ナビゲーション、サイド ナビゲーション (特定のセクション (スポーツ、学業など) 用)、メイン コンテンツなど、ほとんど同じように見えます。

メイン コンテンツは div "コンテンツ" によって提供されるため、別のファイルで編集された Mysql データベースから #content のすべてのコンテンツをロードすることを考えています (準備済みステートメントを使用することを約束します)。

これについて何か意見はありますか、それとももっと良い方法がありますか? ありがとうございました!

4

2 に答える 2

2

データベースでマークアップを kepp する場合、そのマークアップを取得するには次のことが必要です。

  1. 構成ファイル (存在する場合) を解析し、接続を確立します
  2. クエリを実行してデータをフェッチする
  3. 結果を追加する

マークアップをファイルに保存する場合は、require()言語構造を介してそのマークアップを含めるだけです。

編集

厳密に言えば、動的な HTML コンテンツをテーブルに格納することは悪い考えではありません。これは一般的な方法です。ただし、ヘッダーやナビゲーションなどの静的コンテンツも各ページのテーブルに格納すると、データの重複につながるだけです。

私は個人的に、決して変更しない部分をファイルに保存します。「動的」になりがちな部分は、テーブルに保存します。jquery-ajaxを使用してTinyMCE経由で追加/編集します。

私がそれを行う方法の例:

ファイル: page_view.php

<?php

class Page_View // <- This isn't MVC
{
    private $data = array();

    public function render()
    {
        include('page_template.phtml');
        exit();
    }

    private function getTitle()
    {
       return $this->data['title'];
    }

    private function getBody()
    {
        return $this->data['body'];
    }

    private function getStaticBlock($file)
    {
        include($file);
    }

    public function setBody($body)
    {
       $this->data['body'] = $body;
    }

    public function setTitle($title)
    {
       $this->data['title'] = $title;
    }
}

ファイル: page_template.phtml ?>

<!DOCTYPE html>
<html>
<head>
<title><?php echo $this->getTitle(); ?></title>

<?php $this->getStaticBlock('/templates/blocks/header.phtml'); ?> 

<body>
 <div id="navigation">
  <?php $this->getStaticBlock('/templates/blocks/navigation.phtml'); ?>
 </div>

   <div id="content"><?php echo $this->getBody(); ?></div>

</body>
</head>
</html>

使用例:

<?php


// $data is what you got from a table


$page = new Page_View();
$page->setTitle($data['title']);
$page->setBody($data['body']);

$page->render();
于 2013-02-15T16:30:55.583 に答える
1

はい、データベースに任意の HTML を格納することは、維持と保護にとって悪夢です。新しいソリューションを設計する前に、あなたが達成しようとしていることをより詳しく調べます。

コンテンツ管理システムを強くお勧めします。彼らはこの種の仕事に対処する準備ができており、ゼロから再構築する意味はありません.

選択した学生が頻繁に Web サイトを更新する場合は、サイトのその部分を切り離すことを検討してください。

たとえば、メインの Web サイトが静的で、頻繁に更新される部分がブログである場合は、静的サイトとサブドメインまたはサブディレクトリを設定し、そこに wordpress ブログを配置します。

学生がページの実際のコンテンツを編集する場合は、Drupal のような CMS の方がはるかに効果的です。

于 2013-02-15T17:19:43.053 に答える