? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

未垤

嘗試以 ZeroBlog 作 tweet

訂閱已訂閱

歸檔
標簽

最新評論:

ZeroTalk 定製欄位(field)

on Oct 08, 2016 ·
2 條評論

【標簽】 ZeroDev

緒言

爲了偷懶,外食記的實作是基於ZeroTalk.
ZeroTalk 主題有標題(title)、正文(body)兩個欄位(其實還有自動生成的id和added)。
下文以添加「城市」(city)欄位爲例介紹ZeroTalk定製欄位的方法。

架構

ZeroNet資料庫,寫入通過data.json文件,讀取通過據json文件生成的sqlite資料庫。添加欄位也從這2個角度入手。

寫入

結構定義

data.json的結構由dbschema.json描述,主要部分是tables.
加入city欄位:

"tables": {
        "topic": {
            "cols": [
                ["city", "TEXT"],

提交

提交通過TopicList.prototype.submitCreateTopic函數。

title = $(".topic-new #topic_title").val().trim();
body = $(".topic-new #topic_body").val().trim();

可以看到,titlebody的處理是一樣的,都是移除多餘空格。類似地,我們加上city:

city = $(".topic-new #topic_city").val().trim();

讀取HTML表單中的數據之後,submitCreateTopic返回User.getData函數,其中涉及到topic結構的是這段:

topic = {
        "topic_id": data.next_topic_id,
        "title": title,
        "body": body,
        "added": Time.timestamp()
};

在其中加上"city": city,即可。

然後User.getData又進一步返回User.publishData函數,在提交數據之後清空表單,
其中清空表單正文的語句爲:

$(".topic-new #topic_body").val("");

類似地,我們清空表單的「城市」欄位:

$(".topic-new #topic_city").val("");

讀取

通過TopicList.prototype.loadTopics函數從sqlite資料庫讀取帖子,
其中sql語句中使用了topic.*, 因此我們剛剛添加的city欄位能被讀取到。

loadTopics中,對每個topic運用TopicList.prototype.applyTopicData函數,
這裏我們把topic.city的內容填入.city元素:

$(".city", elem).text(topic.city);

除了顯示帖子時需要顯示city外,編輯帖子時也需要顯示city:

if (topic.topic_creator_address === Page.site_info.auth_address) {
    ...
    $(".city", elem).attr("data-editable", "city").data("content", topic.city);
}

遷移已有帖子

  1. 編寫腳本修改data.json文件,加上city欄位。
  2. 使用dbRebuild命令重建sqlite資料庫。

習題

  1. 修改HTML和CSS,使city欄位真正顯示在頁面上。
  2. 修改dbschema中的feeds及相應JavaScript, 使得訂閱的newsfeed中也顯示city.
  3. 分別添加地址、電話、營業時間欄位(這些欄位爲空時不顯示)。
閱讀餘下部分

【外食記】緣起

on Oct 08, 2016
【標簽】 EatingOut
  • ZeroNet 上目前沒有餐館點評站點

  • 大衆點評越來越不好用

    • 2015-09后API接口仅限商务合作使用
    • 网页端用户名、密码登录无效,强制手机号快速登录
    • 團購點評很多無實質內容
  • OpenRice 支持的城市太少

ZeroNet 地址:開發中,未發佈。

閱讀餘下部分

博客裝修

on Aug 05, 2016
【標簽】 meta

頭像

ZeroNet/data/blogID/img/avatar.png

樣式

ZeroNet/data/blogID/css/

漢化

並沒有 po 文件之類(也就是說不支持多界面語言),直接改 ZeroNet/data/blogID/index.htmlZeroNet/data/blogID/all.js.

閱讀餘下部分

「未垤」釋義

on Aug 05, 2016
【標簽】 meta

記曰:「蛾子時術之。」蛾,蚍蜉也。蚍蜉之子,微蟲耳。時術蚍蜉之所為,其功乃復成大垤。

-- 鄭玄注《禮記》

那麼,所有學習先輩啣土的微蟲最終都能功成大垤嗎?
未必。
總有學歪的吧。

閱讀餘下部分
Add new post

Title

21 hours ago · 2 min read ·
3 comments

【標簽】
Body
閱讀餘下部分

Title

21 hours ago · 2 min read
【標簽】

0 Comments:

user_name1 day ago
回覆
Body
<< 1 >>
This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More