Super NyanCat 簡易線上估價系統

起初會寫這隻程式是因為實在看不下去慶聲資訊原本用的那個ASP程式,HTML語法亂糟糟、報價可竄改,整個檔案看起來就是難看得要死,想要修改根本不知道要怎麼辦

剛好又遇到暑假,就拉了Skyarrow跟我一起跳坑XD

原碼是用VB寫的ASP,加上原作者變數都亂取、排版很糟,以至於我看了好久才了解他在幹嘛(ノ´∀`*)

改寫用的語言是PHP,畢竟支援度高而且感覺比較好寫所以就用它了

我負責後端的部分,Skyarrow負責前端,經過這次的小專案才讓我深刻體驗到Team work是多麼累人的XD

這專案沒有QA,所以我只好自己身兼了,前端遇到的錯誤我可能是通知她或自己處理,但這容易造成兩邊電腦裡的檔案版本不統一(汗

所以在同步版本上費了很大的功夫,每次更新都是一大麻煩(ノд`)

雖說這是別人的專案,但是身為開源人且沒收費的情況下,我跟Skyarrow決定要公開原始碼

提供的原碼僅包含純估價系統,不含寄信的功能,並使用MIT授權發布,也就是說你可以盡情地蹂躪他,只要記得標示作者就好(∈^▽゚)キラッ☆

估價系統的使用方法可以看壓縮檔裡的readme.txt

在架構上不使用Database,而是用文字檔的方式儲存,所以說File System ACL就會變得很重要,請設定的時候多加謹慎些

順帶一提,index.nyan第67行的iconv()是為了要相容NTFS檔名才弄的,如果因此造成亂碼請自行移除

歡迎大家在用過之後有什麼意見或建議都可以提出喔~

Change log:

v1.0 -- 第一次發行

v1.01 -- 新增快取驗證機制(ETag, Last-Modified-Time)、改善快取讀取效能(readfile)

v1.02 -- 修正ETag, Last-Modified驗證機制、新增使用者頁面版本驗證、新增快取控制標頭、更改錯誤訊息

v1.03 -- config.nyan新增目錄寫入檢查、檔案名稱自訂、移除網址設定;show.nyan修正錯字

v1.04 -- 修改以time()為報價單編號來源、TimeStamp改採ISO制

v2.0 -- 大幅改寫

新版檔案下載:https://github.com/atitan/NyanCat

舊版1.04下載:http://atifans.net/download/project/Super NyanCat 1.04.zip

分類
標籤

留言

  1. 無限nyan製 {T/T}

      • 既然是多人工作怎麼不乾脆用版本控制呢
        win下就算用tortoise系列習慣後其實也滿方便的 {||||}
        另外PHP5.3直接掛在checkout.nyan
        而PHP5.4則是SITEURL獲取失敗 {+_+}

        • @malsvent
          當時沒想這麼多就直接硬幹了XD

          發佈前是在PHP 5.4下測試的,應該是沒問題才對

          試試看剛發布的1.03吧 {|||}

          ATI
  2. 您好,今天剛從Google找到您的這隻程式,但掛上網頁後,
    按下『送出』,卻出現『找不到網頁』,頁面檔名為checkout.php,
    確認壓縮檔後,卻時找不到這個檔案。
    請問是我需要修改什麼設定嗎?

    {100}

  3. 為什麼報價單我用中文檔名會無法顯示標題???
    英文的則沒事
    我的php 是5版本的

    • @星宿
      是在linux平台對吧

      試著移除index的iconv()看看

  4. 是LINUX沒錯..
    原本
    $category = htmlspecialchars(iconv("big5","UTF-8",substr($files[$p], 0, -4)));
    我改成
    $category = htmlspecialchars(substr($files[$p], 0, -4));
    依然無法顯示中文檔名的.txt

    反而你那套開發中的另一種版本
    採用物件事導向寫法的就能正常顯示
    有什麼辦法能解決的嘛??

  5. 我是用NAS架的
    PHP版本(php_version): 5.5.9

    你有空的話也可以google「NAS群晖DSM 5.0-4458 傻瓜安装教程」
    檔案在百度硬碟可以下載得到
    我是用vmware配合 usb開機 程式名為:「plpbt-5.0.15-test」

  6. 找到問題所在了
    快取要刪掉==" {012}

  7. 再請教一個問題
    我送出的估價單
    可是我想要把valuations資料夾的生成的檔案
    不要用亂取名的
    改用有規則的編號,採用日期 001++
    例如 TA1030703001 TA1030703002....
    這部份程式碼要如何修正?

    function getRefString() {
    $characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $string = strtoupper( base_convert(time(), 10, 36) );
    if( strlen($string) == 6 )
    $string = '0' . $string;
    $string .= $characters[mt_rand(0, strlen($characters)-1)];
    return $string;
    }

    • @星宿
      檔名不是亂取的,從time()為基準,在最後再加上一個字元做區分

  8. 或者能用資料庫方式儲值
    要做一個能估價記錄查詢的
    可以列出最近估價的報價單
    也可以依估價編號或估價日期做查詢估價單

    • @星宿
      當初寫給人家用的時候,因為一些歷史+人為因素就沒有設計要資料庫

      然後我也很懶,所以之後大概也不會有,你有興趣要幫忙的話可以送pull request到開發版~

  9. pull request??這是什麼東西
    要錢嘛= ="?
    我是想寫一個報價系統,然後我可以查我的報價記錄及修改價格

    項次|品名|數量|單位|價格|折數|小計|備註|狀態
    1|木製桌子| 1| set |$32578 |73%| $23782 ||ok|
    |a.尺寸:250*90*85cm |||||||
    |b.配件:書架*1、置物桶*1 |||||||

    2 .......

    最後可以生成pdf檔給客人

    其中"品名"記錄在同一個欄位,用特殊字元"ξ"來區格下一行
    mysql表格內容如
    木製桌子ξa.尺寸:250*90*85cmξb.配件:書架*1、置物桶*1
    買了php的書翻來翻去還是看不懂= ="

  10. 請問要如何顯示有小數點的金額?如何修改?

    • @EddieTseng
      把/lib/core/nyan_generator.php的intval通通改成floatval,然後修改/js/index.js去顯示小數就可以了

      index.js不是我寫的,所以沒辦法解釋要怎麼改

  11. 試玩了一下~
    舊版會出現
    Parse error: parse error, unexpected '[' in C:\AppServ\www\checkout.php on line 119

    新版而是 商品項目 沒法用中文 會亂碼

    • @GMAX
      用Windows系統最重要的是,檔案要特別存UTF-8

  12. Windows系統 的檔名能轉UTF-8嗎?

    往上爬不到方式文章

  13. 大大~我指的是放在prices資料夾裡的檔案名稱,顯示出來會亂碼,而不是文件內容會亂碼。

    • @GMAX
      把nyan_generator的103行,auto改成BIG-5

  14. 喔喔~感謝大大~等假日我再來試看看~

  15. 你好, {120} 請問商品項目的排列順序如何去設定呢?謝謝

    • @德修
      檔案本身的排序照檔案系統,通常是字母順序
      檔案裡面則是照先後

粗體斜體刪除線連結引用圖片程式碼

注意:您的電子信箱將不會被公開,且網站連結不會被搜尋引擎採計

{124} {123} {122} {121} {120} {119} {118} {117} {116} {115} {114} {113} {112} {111} {100} {025} {024} {023} {022} {021} {020} {019} {018} {017} {016} {015} {014} {013} {012} {011} {010} {009} {008} {007} {006} {005} {004} {003} {002} {001}