Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP dan Typecho untuk membina laman web perkongsian makanan

Cara menggunakan PHP dan Typecho untuk membina laman web perkongsian makanan

WBOY
WBOYasal
2023-07-20 22:49:581287semak imbas

Cara menggunakan PHP dan Typecho untuk membina laman web perkongsian makanan

Pengenalan:
Makanan telah menjadi bahagian penting dalam kehidupan orang ramai bukan sahaja menikmati keseronokan rasa yang dibawa oleh makanan, tetapi juga bersedia untuk berkongsi idea memasak dan makanan mereka pengalaman. Membina laman web perkongsian makanan membolehkan orang ramai berkomunikasi, berkongsi dan mendapatkan lebih banyak maklumat tentang makanan. Artikel ini akan memperkenalkan cara menggunakan PHP dan Typecho untuk membina tapak web perkongsian makanan, dan menyediakan contoh kod untuk rujukan.

1. Pengenalan kepada Typecho
Typecho ialah enjin blog PHP sumber terbuka yang ringkas, pantas, ia digemari oleh majoriti pembangun untuk kod yang diperkemas, prestasi yang cekap dan ekosistem pemalam yang kaya. Typecho menyokong pembangunan tema tersuai dan pemalam, yang sangat sesuai untuk membina pelbagai blog peribadi dan tapak web komuniti.

2. Penyediaan persekitaran

  1. Persekitaran pelayan: Persekitaran PHP, pangkalan data MySQL.
  2. Pasang Typecho: Muat naik kod sumber Typecho ke pelayan, cipta pangkalan data dan lengkapkan konfigurasi yang berkaitan.

3. Wujudkan jadual pangkalan data
Laman web perkongsian makanan perlu menyimpan data seperti pengguna, artikel dan ulasan, jadi struktur jadual yang sepadan perlu dibuat dalam pangkalan data MySQL. Berikut ialah contoh kod untuk membuat jadual:

CREATE TABLE `typecho_users` (
  `uid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(32) NOT NULL,
  `password` VARCHAR(64) NOT NULL,
  `mail` VARCHAR(64) NOT NULL,
  `screenName` VARCHAR(32) NOT NULL,
  `created` INT(10) UNSIGNED DEFAULT 0,
  `activated` INT(10) UNSIGNED DEFAULT 0,
  `group` VARCHAR(16) NOT NULL DEFAULT 'subscriber',
  PRIMARY KEY (`uid`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;

CREATE TABLE `typecho_contents` (
  `cid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` TEXT NOT NULL,
  `text` MEDIUMTEXT NOT NULL,
  `created` INT(10) UNSIGNED DEFAULT 0,
  `modified` INT(10) UNSIGNED DEFAULT 0,
  `type` VARCHAR(16) NOT NULL DEFAULT 'post',
  `status` VARCHAR(16) NOT NULL DEFAULT 'publish',
  `authorId` INT(10) UNSIGNED DEFAULT 0,
  `template` VARCHAR(32) DEFAULT NULL,
  PRIMARY KEY (`cid`),
  KEY `type` (`type`),
  KEY `status` (`status`),
  KEY `authorId` (`authorId`),
  FULLTEXT KEY `text` (`text`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;

CREATE TABLE `typecho_comments` (
  `coid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `cid` INT(10) UNSIGNED DEFAULT 0,
  `created` INT(10) UNSIGNED DEFAULT 0,
  `author` VARCHAR(32) NOT NULL,
  `authorId` INT(10) UNSIGNED DEFAULT 0,
  `ownerId` INT(10) UNSIGNED DEFAULT 0,
  `mail` VARCHAR(64) DEFAULT NULL,
  `url` VARCHAR(64) DEFAULT NULL,
  `ip` VARCHAR(64) DEFAULT NULL,
  `agent` VARCHAR(255) DEFAULT NULL,
  `text` MEDIUMTEXT NOT NULL,
  `type` VARCHAR(16) NOT NULL DEFAULT 'comment',
  `status` VARCHAR(16) NOT NULL DEFAULT 'approved',
  `parent` INT(10) UNSIGNED DEFAULT 0,
  PRIMARY KEY (`coid`),
  KEY `created` (`created`),
  KEY `authorId` (`authorId`),
  KEY `ownerId` (`ownerId`),
  KEY `status` (`status`),
  KEY `cid` (`cid`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;

CREATE TABLE `typecho_relationships` (
  `cid` INT(10) UNSIGNED NOT NULL DEFAULT 0,
  `mid` INT(10) UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY (`cid`,`mid`),
  KEY `mid` (`mid`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;

4. Buat templat tema
Templat tema Typecho menentukan rupa dan susun atur tapak web perkongsian makanan. Berikut adalah contoh kod template tema yang mudah:

<?php
/**
 * 美食分享主题模板
 *
 * @package custom
 */

if (!defined('__TYPECHO_ROOT_DIR__')) exit;
$this->need('header.php');
?>

<div class="content">
  <?php while($this->next()): ?>
    <article class="post">
      <h2 class="title"><a href="<?php $this->permalink() ?>"><?php $this->title() ?></a></h2>
      <p class="meta"><?php $this->date('F j, Y'); ?></p>
      <div class="entry">
        <?php $this->content('- 阅读全文 -'); ?>
      </div>
    </article>
  <?php endwhile; ?>
</div>

<?php $this->need('footer.php'); ?>

5. Paparan muka depan
Laman web perkongsian makanan perlu memaparkan gambar makanan dan penerangan yang dimuat naik oleh pengguna Kod berikut adalah contoh paparan muka depan:

<?php if ($this->is('post')): ?>
  <h2 class="post-title"><?php $this->title() ?></h2>
  <div class="post-meta">
    <span class="time"><?php $this->date('F j, Y'); ?></span>
  </div>
  <div class="post-content">
    <?php $this->content(); ?>
  </div>
<?php else: ?>
  <?php $this->widget('Widget_Archive@index', 'pageSize=10&type=post')->to($posts); ?>
  <?php while($posts->next()): ?>
    <div class="post">
      <h2 class="post-title"><a href="<?php $posts->permalink() ?>"><?php $posts->title() ?></a></h2>
      <p class="post-meta"><span class="time"><?php $posts->date('F j, Y'); ?></span></p>
    </div>
  <?php endwhile; ?>
<?php endif; ?>

6. Pengguna pendaftaran dan log masuk
Untuk membolehkan pengguna menyiarkan perkongsian makanan mereka sendiri, kami perlu menyediakan fungsi pendaftaran dan log masuk pengguna. Kod berikut adalah contoh pendaftaran dan log masuk pengguna:

<?php if($this->user->hasLogin()): ?>
  <!-- 用户已登录,显示用户信息和注销按钮 -->
  <p><?php $this->user->screenName(); ?>,欢迎回来!</p>
  <a href="<?php $this->options->logoutUrl(); ?>">注销</a>
<?php else: ?>
  <!-- 用户未登录,显示登录表单 -->
  <form method="post" action="<?php $this->options->loginAction(); ?>">
    <p><label for="name">用户名:</label><input type="text" name="name" id="name" /></p>
    <p><label for="password">密码:</label><input type="password" name="password" id="password" /></p>
    <p><button type="submit">登录</button></p>
  </form>
<?php endif; ?>

7. Pelaksanaan fungsi perkongsian makanan
Selepas pengguna log masuk, kami perlu menyediakan borang untuk pengguna menghantar perkongsian makanan. Kod berikut ialah contoh fungsi perkongsian makanan:

<?php if($this->user->hasLogin()): ?>
  <!-- 用户已登录,显示美食分享表单 -->
  <form method="post" action="<?php $this->options->index('/action/food-share'); ?>">
    <p><label for="title">标题:</label><input type="text" name="title" id="title" /></p>
    <p><label for="content">内容:</label><textarea name="content" id="content" rows="5"></textarea></p>
    <p><label for="image">图片:</label><input type="file" name="image" id="image" /></p>
    <p><button type="submit">分享</button></p>
  </form>
<?php else: ?>
  <p>请先<a href="<?php $this->options->loginUrl(); ?>">登录</a>后再分享美食。</p>
<?php endif; ?>

8. Ringkasan
Membina laman web perkongsian makanan melalui PHP dan Typecho tidaklah rumit Anda hanya perlu melengkapkan penyediaan persekitaran, mewujudkan jadual pangkalan data, mencipta templat tema dan melaksanakan yang berkaitan fungsi. Melalui pengenalan artikel ini, saya berharap ia dapat membantu pembaca pada mulanya memahami langkah asas dan kod sampel untuk menggunakan Typecho untuk membangunkan laman web perkongsian makanan. Jika perlu, anda boleh melanjutkan dan menyesuaikan kod sampel mengikut keperluan sebenar untuk memenuhi keperluan yang lebih diperibadikan.

Rujukan:

  1. Dokumentasi rasmi Typecho: https://typecho.org/
  2. Komuniti komunikasi Typecho: https://bbs.haobird.com/

Di atas adalah penggunaan PHP dan Typecho untuk mencipta laman web perkongsian makanan Pengenalan ringkas, semoga bermanfaat kepada pembaca. Semoga anda membina laman web perkongsian makanan yang unik!

Atas ialah kandungan terperinci Cara menggunakan PHP dan Typecho untuk membina laman web perkongsian makanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn