0

私は現在、2 つのプロジェクトに取り組んでいます。1 つは、物事を練習し、いくつかの概念を把握するための小さなフラッシュ ゲーム サイトで、もう 1 つは、ブログとゲーム開発広告のハイブリッドです。皆さんへの私の質問は、投稿を読み込む最も効率的な方法は何かということです。指定された数のエントリを含むページを生成し、後で定義するカテゴリに基づいて並べ替えることができます。それは私の無知かもしれませんが、保存するものがかなりあるため、それぞれをファイルに保存するのはかなり効率が悪いようです。小さなフラッシュゲームサイトからの基本的なゲームの「投稿」の例。実際にはすべての div コンテナであり、後で整理するためにタグシステムのようなものを追加できます

    <div class="game">
                <a href="games/game.php?game=somegame"><img src="images/somegame.png"></a>
                <div id="content">
                    <a href="games/game.php?game=somegame"><header>Game name</header></a>
                    <p>
                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

                    </p>
                </div>
            </div>
4

3 に答える 3

0

このような XML ファイルを作成できます。XML ファイルを読み取る方法はいくつかあります。私の推測では、それを Flash に読み込みたいと考えています。したがって、actionscript を見ていることになります。そのために、簡単に情報を見つけて学習を開始できます。(例: http://gotoandlearn.com/play.php?id=64 )

それはあなたが望むものに依存します。その場で XML ファイルの情報を使用して div ブロックを生成できます。

<games>
    <game>
        <name>Some name</name>
        <link>"games/game.php?game=somegame</link>
        <image>"images/somegame.png"</image>
        <content>Lorem Ipsum</content>
    </game>
    <game>
        <name>Second name</name>
        <link>"games/game.php?game=secondgame</link>
        <image>"images/secondgame.png"</image>
        <content>Lorem Ipsum</content>
    </game>
</games>
于 2013-03-21T05:03:57.350 に答える
0

(ローカル) ホストのフォルダーに 3 つのファイルを配置し、index.php を実行します。

/wwwroot/post.tpl

<article id="{$postId}" class="{$postType}">
    <div class="content" style="width:450px;float:left;margin-right:20px;">     
        <h3><a href="single-post.php?id={$postId}">{$postTitle}</a></h3>
        <p>{$postContent}</p>
    </div>
    <a href="single-post.php?id={$postId}"><img style="height:150px;" src="{$postPreviewImage}"></a>
</article><br clear="all"/>

/wwwroot/main.tpl

<!doctype html>
<html>
<head>
  <meta charset="UTF-8"/>
  <title>{$pageTitle}</title>
  <script type="text/javascript" src="//code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
  <h1>{$pageH1}</h1>
  <hr>
  Filter posts: 
  <select id="filter">
    <option id="all">Show all posts</option>
    {$filterOptions}
  </select>
  <hr>
  {$posts}
  <script>
    $().ready(function() {
      $("#filter").change(function() {
        for(var b = $(this).find(":selected").attr("id"), d = document.getElementsByTagName("article"), c = 0;c < d.length;c++) {
          var a = d[c];
          "all" === b || b === a.className ? $(a).fadeIn() : b !== a.className && $(a).fadeOut()
        }
      });
    });
  </script>
</body>
</html>

/wwwroot/index.php

<?php
// get categories from DB
$postCategoriesFromDb = array(
    array(
        'slug' => 'games',
        'name' => 'Games'
    ),
    array(
        'slug' => 'dev',
        'name' => 'Development'
    )
);

// get posts from DB
$postsFromDb = array(
    array(
      'id'      => 1,
      'type'    => 'games',
      'image'   => 'http://openmatt.org/wp-content/uploads/2012/12/Game-On-banner.png',
      'title'   => 'A post about games',
      'content' => 'This is the content of my game post.. lorem ipsum..'
    ),
    array(
      'id'      => 2,
      'type'    => 'dev',
      'image'   => 'http://gregrickaby.com/wp-content/uploads/2012/03/github-logo.png',
      'title'   => 'A post about development',
      'content' => 'This is the content of my dev post.. lorem ipsum..'
    )
);

// function to populate single post template with post data
function getPostHtml($postData) {
    $html = file_get_contents(__DIR__ . '/post.tpl');

    $vars = array(
        '{$postId}'           => $postData['id'],
        '{$postType}'         => $postData['type'],
        '{$postPreviewImage}' => $postData['image'],
        '{$postTitle}'        => $postData['title'],
        '{$postContent}'      => $postData['content']
    );

    return strtr($html, $vars);
}

// create HTML for each post
$posts = '';    
foreach ($postsFromDb as $post) {
    $posts .= getPostHtml($post);
}

// create HTML for category filter
$options = '';  
foreach ($postCategoriesFromDb as $cat) {
    $options .= sprintf('<option id="%s">%s</option>', $cat['slug'], $cat['name']);
}

// get main page template
$html = file_get_contents(__DIR__ . '/main.tpl');

// template vars
$vars = array(
    '{$pageTitle}'     => 'Page title',
    '{$pageH1}'        => 'Hello World!',
    '{$filterOptions}' => $options,
    '{$posts}'         => $posts
);

// output to client
echo strtr($html, $vars);
于 2013-03-21T06:07:39.913 に答える
0

あなたは開発の世界では新しいようです (問題ではありません)。すぐに使えるソリューションを探したいと思うかもしれません。

頭に浮かぶもの:Tumblr、Wordpressなど...

本当に自分でハックしたい場合は、「フレームワーク」を使用することをお勧めします。これは、プログラミング言語の上に追加のレイヤーとして表示され、ギャップを埋めたり、使いやすくしたりできます。

laravel ( http://laravel.com/docs ) を使用することを強くお勧めします。使い方は非常に簡単で、ドキュメントを読めばすぐに慣れることができます。

それが役に立てば幸い

于 2013-03-21T04:44:42.060 に答える