We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 21773
    • 8 Posts
    MODxTAGについて質問させてください。

    ページの更新日を記載したいのですが、これを表示させるMODxTAGはないのでしょうか。
    今は実は「06年07月28日 20時14分20秒 更新」
    となっているにも関わらず、表示されているのは現在の時刻です :’(

    お助けください〜〜。
      • 33488
      • 429 Posts
      DateTimeのスニペットのことかなと思いますが・・確かの現在時刻ですね

      以下のようなスニペットで

      return strftime("%Y/%m/%d %H:%M:%S ",$mox->documentObject['createdon']);
      


      編集日表示なら createdon を editedon にです。
      公開日と連動するようになら・・・

      return strftime("%Y/%m/%d %H:%M:%S",$mox->documentObject['pub_date'] ? $mox->documentObject['pub_date']:$mox->documentObject['createdon']');
      


      で動くんじゃないかなぁ (試してないですけど・・)
      公開日が指定されていたら、公開日をそうでなければドキュメント作成日が表示されます。

      どれでも適当なスニペット名をつけて、それを呼び出して使ってください。





        • 21773
        • 8 Posts
        takizさん、ありがとうございます。

        return strftime("%Y/%m/%d %H:%M:%S ",$mox->documentObject['editedon']);


        を 「editdate」というSnippetName で登録して表示をしてみました!
        結果は「1970/01/01 09:00:00」です。
        何故でしょう?
        何か間違っていますか?
        試しにそのページのデータを更新してみました。変わりませんでした。

        以前のモノは、そうです。DateTime を使っていたので、当たり前に現在の時刻でした。
        Snippet はいろいろいじってみるのですが、日本語表示させたい部分の書き換え程度の技量です。

        また、ご教授お願いします!!
          • 33488
          • 429 Posts
          ごめんなさい、サンプルのコードが間違ってました。
          $moxになっていました、 これを$modxに変えてください。
            • 21773
            • 8 Posts
            takizさん、ありがとうございます!!
            問題なく表示されました!
            うれすぃ〜い♪

            また出来上がったら公開したいと思います。
            でも、今回のは、クライアントの意向上、思いっきりオープンソースデザインの
            Templateをデザイン的に多少いじってます。
            どこかで見た事のあるサイトになる事は間違いないです tongue
              • 15537
              • 10 Posts
              はじめまして
              上記コードを試したところ無事に表示は出来ました。

              が、表示される時間がサーバタイムになっており海外で借りているサーバの場合時差があるのでずれてしまいます。
              サーバオフセットタイムで修正した時間表示にすべくgoogle等で調べて変更はしてみたもののうまくいきませんでした。

              何かヒントでもいただければ助かります。
                • 8382
                • 253 Posts
                kechaさん。もう解決してしまわれたでしょうか?
                MODx設定画面のサーバオフセットタイムは時間単位で設定しますが、
                内部では、すなわち$modx->config[’server_offset_time’]には、秒単位で格納されています。
                従いまして、$modx->documentObject[’editedon’]と全く同じ単位であり、
                そのまま足し引き出来るようになっています。

                この場合、$modx->documentObject[’editedon’]+$modx->config[’server_offset_time’]
                で御希望の時刻は得られるように思うのですが、いかがでしょうか

                P.S.@9/7
                $moxにしてました。ごめんなさい
                  • 15537
                  • 10 Posts
                  eastbindさん はじめまして。
                  早々に返信頂きながら返事が遅くなり申し訳ございませんでした。

                  [b]return strftime("%Y/%m/%d %H:%M:%S ",$modx->documentObject['editedon']+$modx->config['server_offset_time']);[/b]

                  提示頂いたコードに書き換えたところ無事に表示できました。
                  time()関数やら色々試したもののうまくいかず半ば諦めていたので本当に助かりました。

                  MODxについてはまだまだ未熟者で全体像すら掴めていない状態ですが、ここのフォーラムやgoogleで検索しながボチボチとサイトを構築しながら楽しんでいると言う状態です。

                  この様な新参者ですがこれからもよろしくお願いします。
                  有難うございました。