tad
(Tad)
1
こんにちは、
Discourse やオープンソース全般に新しく参加しました。私はコーディングは行いません(HTML/CSS 以外)、しかし、要素を別の場所に移動させるために、コードをある場所から別の場所にコピー&ペーストする方法を直感的に理解できることが多いです。私が求めているカスタマイズは、すでに自分でできる範囲を超えていません。
私が作成したユーザーフィールドを、標準的なユーザーフィールドの下の通常の場所ではなく、ユーザーカードの「ユーザー名」の直下に表示させたいと考えています。そのため、非常に小さなカスタマイズを行いたいのですが、これは私のより大きな疑問にもつながります:テーマやコードにアクセスするにはどうすればよいのでしょうか?
この(非常に基本的な)疑問に答えようとして、ローカルインストールで操作する必要があるコードに関連するファイルを見つけられたと思います:discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs。しかし、新しいフォーラムを discourcehosting.com でホストしているため、ファイルにアクセスできない状態で、どのようにそのファイルを編集すればよいか分かりません。
この質問が非常に基本的で、私がその過程でどれほど無知に見えるかについてお詫び申し上げます。しかし、これは善意に基づいたものです。
ありがとうございます。
maiki
(maiki)
2
Beginner's guide to using Discourse Themes から始めて、やりたいことに合わせた特定のテーマ化ガイドへのリンクをたどってください。
tad
(Tad)
3
リンクをありがとうございます、maikiさん。過去数日間、そのガイドを十数回確認して、見落としがないか確認しました。ヘッダーやボディなどのスタイルやコードのカスタマイズ方法や場所については理解していますが、私が目指している変更が、実質的に「新しいテーマ」を作成することになるのか、それとも単にいくつかの場面で要素の表示位置を微調整するだけなのか、その点について明確にしたいと考えています。
maiki
(maiki)
4
テーマコンポーネントだったと思います。
深く考えすぎず、ただテーマを作成してみましょう。楽しいですよ!きっとわかりますよ。
tad
(Tad)
5
discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs というローカルファイルを変更することで、目的の効果が得られました。ただし、セルフホストしていない場合、そのファイルをどのように編集すればよいのか確信が持てません…
RGJ
(Richard - Communiteq)
6
テーマコンポーネントを使用して HBS テンプレートをオーバーライドすることが可能で、これは管理用 Web インターフェースから実行できます。
その手順は以下の通りです:Developing Discourse Themes & Theme Components
したがって、あなたの場合は新しいテーマコンポーネントを作成し、そこに以下のコードを入力してください。
<script type="text/x-handlebars" data-template-name="components/user-card-contents">
</script>
その後、修正したファイルの内容をこれらの script タグの間のコピーしてください。
Discourse ファイルを直接編集することは、a) 当社のホスティングでは不可能であり、b) アップグレード時にサイトが完全に破損するため一般的に推奨されません。上記の方法が正解です。当社のホスティングを利用しているかどうかに関わらずです!
単にユーザーカードに 1 つのユーザーフィールドを追加したいだけなら、プラグインアウトレットを使用することも検討してください。これは、同じ記事の もう少し上の部分 および こちら で説明されています。プラグインアウトレットを使用する場合はコード変更が少なくて済むため、アップグレード時の互換性が向上します。ただし、必要な機能に対応する利用可能なプラグインアウトレットが存在する必要があるため、柔軟性は若干劣ります。