2

そこで、TYPO3 と呼ばれる CMS で拡張機能を作成する必要があります。この拡張機能に関する情報は次のとおりです。

「新しい TYPO3 6.1 Web サイトでは、プレス リリース用の拡張機能 (ExtBase / Fluid に基づく) が必要です。これには以下が含まれている必要があります。

  • 見出し/説明
  • 文章
  • 3枚まで(1枚は必須)
  • リストビューのサムネイル
  • 1 PDFファイル
  • 発売日

現時点では、実際には詳細ビューのデザインがないため、詳細ビューへのリンクはありません。したがって、今はフロントエンドのリスト ビューに集中してください。」

私はこれまでこの CMS を使用したことがなかったので、それについて読んで、この拡張機能を作成するには Extension Builder を使用する必要があることを知りました。そのため、それをダウンロードしてインストールし、TYPO3 サイトで拡張機能の拡張キーを登録しました。この拡張機能を作成しようとしたとき、多くの問題と疑問が見つかりました。そのうちのいくつかは既に解決済みですが、まだ解決されていないものもあります。docs.typo3.orgでこの拡張機能に関する大量の情報を読み、まだ答えが見つかりませんでした。だから、ここでこの質問:

  1. このすべてのフィールドを 1 つのモジュールだけに追加することはできますか、それともフィールドごとに独自のモジュールを作成する必要がありますか?

  2. この拡張機能をサイトに表示するためのフロントエンド プラグインと、編集機会のために管理パネルにこの拡張機能を表示するためのバックエンド モジュールを追加する必要があることはわかっています。もちろん、バックエンドとフロントエンドで拡張機能を完全に編集可能にする必要があります。バックエンドに追加した結果のみが必要で、編集の機会はありません(私の場合は、見出し、テキスト、画像、PDFこの質問の上部に書いたファイルと日付)。したがって、結果として、管理パネルとサイトでこのトピックを追加、編集、削除などできるはずです。私とすべてのサイトのゲストはただ見ることができるはずですそれ。

  3. Extension Builder では、ファイルをダウンロードする機能がまだ実装されていないため、この機会を自分で拡張機能に追加する必要がありますが、どのコードをどのファイルに追加すればよいかわかりません。

  4. また、日付形式に問題があります。日付フィールドに日付を追加しようとすると、次のメッセージが表示されます。

日付「2014-02-01」が認識されませんでした (形式「Ymd\TH:i:sP」の場合)

拡張ファイルで日付形式を見つけようとしましたが、成功しませんでした。

私は 2 か月の開発経験を持つジュニア php 開発者です (そして、ほぼすべての時間を HTML、CSS、および Wordpress で作業してきました)。そのため、この問題を自分で解決するのは非常に困難です。この小さな拡張機能は成功しなかったので、私の質問に対するあなたの助け、アドバイス、回答は私にとって非常に役立ちます:)

事前に感謝し、私の下手な英語で申し訳ありません。

4

1 に答える 1

9

あなたの投稿を初めて読んだときは驚き、2回目は申し訳なく思い、3回目は「この男はとても勇敢だ!」と思いました。それが私があなたを助けることにしたときです。

すでにお気づきのことと思いますが、Ext. ビルダーは、ext に追加機能を追加するために使用できる「フレームワーク」のみを作成します。内線。ビルダーは、extbase と fluid を使用して拡張機能を作成します。まず最初に、extabse と fluid がどのように機能するかを学びます。知っておくべき重要なことは、extbase はコードの「フレームワーク」であり、fluid はテンプレート エンジンです。

Extbase は oop アプローチで動作するため、オブジェクト指向プログラミングについて読んでください。また、Extbase は Model / View / Controller (google it) と CRUD (create Read Update Delete) を使用します。 / ドメイン / モデル - リソース / プライベート / テンプレート (ビュー)

モデルが「データ」を定義します。あなたの内線の各オブジェクト。専用モデルになります。

あなたの最初の質問: 「このすべてのフィールドを 1 つのモジュールだけに追加できますか、それともフィールドごとに独自のモジュールを作成する必要がありますか?」 はい、これらの「フィールド」はすべて同じモデルに属します: プレス リリース。

また、モデルのすべての要求を処理する 1 つのコントローラーが必要です。新しいプレス リリースの作成、読み取り (またはリスト/表示)、更新、または削除です。コントローラーはどのようにデータベースからデータを取得しますか? リポジトリと呼ばれるものを使用して、ここで読むことができます: http://blog.typoplanet.de/2010/01/27/the-repository-and-query-object-of-extbase/

コントローラーはデータフローを処理します。つまり、コントローラーに依頼するとすべてのプレスリリースを提供し、それをビュー (テンプレート) に送信するのはコントローラーであり、この情報をオブジェクトで提供します。たとえば、コントローラーが送信する場合: $pressreleases (例: $this->view->assign('pressreleases', $pressreleases); で行われます); リスト テンプレートに {pressreleases} を追加してみてください。プレスリリース オブジェクトとそこにあるプロパティの素敵なリスト。

これを理解したら、オブジェクトからすべての情報を取得し、流体を使用してビューで使用できます。 http://wiki.typo3.org/Fluid

これにより、通常、extabse がどのように機能するか、データを取得する方法 (モデル)、データベースから取得する方法 (コントローラーとリポジトリ)、およびフロントエンドで表示する方法 (fluid を使用したテンプレート) について少し理解できます。

3 番目の質問: PDF が保存されている場所 (通常は uploads/tx_yourextname/) がわかっている場合、テンプレートでモデルからプロパティを取得すると (デバッグを思い出してください)、PDF 名が DB に保存され、提供されていることがわかります。プロパティとして。たとえば (ショー ビューでオブジェクトが pressrelease と呼ばれる場合)、fluid で {pressrelease.pdf} を使用して PDF 名を取得できます。これを atag に入れる: src='uploads/tx_yourext/{pressrelease.pdf} ... ダウンロード リンクが表示されます。

4the: それはまさにそれが言うことを言います: yyyy-mm-dd の形式で日付を指定しますが、Ymd\TH:i:sP の形式である必要があります。おそらく、プロパティ「リリース日」のタイプがDateTimeであり、Dateではないためですこれはよくある問題です。スタックオーバーフローで答えを探してください

最後に: (フロントエンド) プラグインは ext_localconf.php および ext_tables.php ファイルで定義されます。基本的に、各 TYPO3 プラグインに複数のフォント エンド プラグインを追加できます。しかし、あなたの場合、1つだけで十分です.1つはリストを処理し、リクエストを表示します.

だから、私の勇敢な友人を変えてください。私が書いたことを少しでも理解していただき、TYPO3 を使用することに喜びを感じていただけることを願っています (1 か月または 452 を与えてください。学習曲線は急ではありますが、やりがいがあります)。

于 2014-03-21T19:48:34.377 に答える