ウェルカムリンクバナー

テスト(数ヶ月にわたって…聞かないでください)を行っています。

戻ってきて確認したところ、アップデート以降、ウェルカムバーはユーザーがログアウトしている場合にのみ表示されるようになったようです。

ログイン状況に関わらず、全員にバーを表示させる方法はありますか?

よろしくお願いします。

Martyn

「いいね!」 1

少しテストしてみましたが、この問題は見られません。バナーの隅にある「x」をクリックして閉じたということはありませんか?もしそうであれば、再度表示するにはブラウザの localStorage をクリアする必要があります。

「いいね!」 3

良い提案です。見てみます。
ありがとうございます。

ローカルストレージをクリアしました。ブラウザデータをクリアしました。Edgeでも試しました(何週間も自分自身をきれいにしようとしていました!)…それでもうまくいきません :frowning:

max trust level および hide for staff 設定をどのように構成しましたか?
テスト用に作成した新規ユーザーで試しましたか?

「いいね!」 3

登録ユーザーと未登録ユーザーで異なるバナーを表示したい、またはバナーのすべてのリンクを未登録ユーザーに表示しないようにしたいと考えています。可能でしょうか?

「いいね!」 1

@Aurora
ログインユーザー用のリンクを作成し、ログアウトユーザー用のリンク(順番に、つまり2つのグループのリンクがあります)をフォローするという方法があります。

その後、CSSで一方のグループまたは他方を非表示にすることができます。
使用できるCSS anon クラスがあります。

たとえば、ログインユーザー用のリンクが2つ、ログアウトユーザー用のリンクが3つあるとします。

  • ログインリンク 1
  • ログインリンク 2
  • ログアウトリンク 1
  • ログアウトリンク 2
  • ログアウトリンク 3

CSSでは次のようにできます。

/* ログアウトユーザー: 最初の2つのリンクを非表示にします */
html.anon .featured-banner-link > div:nth-child(-n+2) {
    display: none !important;
}

/* ログインユーザー: 最後の3つのリンクを非表示にします */
html:not(.anon) .featured-banner-link > div:nth-last-child(-n+3) {
    display: none !important;
}

これでうまくいきますか?

「いいね!」 5

はい!どうもありがとうございます!とても助かります!

「いいね!」 3

リンクエリアのアイコンフィールドで、目的のアイコンを見つけやすくするためにオートコンプリート機能を追加することは可能でしょうか?

もしそれが無理な場合でも、少なくともFontAwesomeのウェブサイトへの直接リンクを含めることで、アイコンプロバイダーがFontAwesomeであることがより明確になり、ソースへ直接誘導することができます。

例えば、コンポーネントをダウンロードしてインストールした後、リンクを作成する際に、それがFontAwesomeであることを知るために、このトピックに戻って再度読み直す必要がありました。アイコンの追加をより速く、より簡単にするための提案です。

編集:ウェブサイトの名前を使用しましたが、アイコンが追加されません。

例えば、こちらです。
image

こちらは無料のようです。

では、どれを使用すればよいのでしょうか?

また、このトピックの要約に関する問題にも気づきました。Welcome Link Banner is a simple banner that allows you to add custom text and 1-4 links と表示されていますが、実際にはそれ以上のリンクを追加できます。6つ追加できましたが、(さらにクリックし続ければ)さらにリンクが追加され続けます。

もし4つが目標なのであれば、4つ目のリンクを追加した後に「+ banner link」が消えるかグレーアウトする方が良いと思います。

「いいね!」 1

便利だと思います。ただし、これはこのTCに限定されるものではありません。TCでは、コア/プラグインと比較していくつかの入力タイプが利用できません。

説明を改善するためにPRを作成できるかどうか確認します。

デフォルトでDiscourseに含まれていないアイコンは、svg_icons設定に追加する必要があるかもしれません。

これが問題の原因だと思われます。

はい、いくらでも追加できます。制限はありません。
1〜4個のリンクで最も効果的に機能するように設計されていることを示唆しています。

「いいね!」 2

ありがとうございます

ああ、利用可能なすべてのアイコンを読み込んでいるわけではないことを知りませんでした。FAのウェブサイトから直接読み込んでいると思っていました。読み込まれていなかったアイコンを追加したところ、表示されるようになりました。本当にありがとうございます。
どのアイコンが利用可能か確認するにはどうすればよいですか?リストがあるのですか、それとも追加してみて、表示されない場合は追加するという方法なのですか?

なるほど。言葉遣いの問題だと思います。例えば、
「ウェルカムリンクバナーは、カスタムテキストとリンクを追加できるシンプルなバナーです(推奨:最大4つのリンク)。」
のような感じでしょうか。

ご協力いただき、本当にありがとうございました。アイコンが表示されるようになって嬉しいです!:slight_smile:

「いいね!」 2

はい、それが一番簡単な方法です。

「いいね!」 2

アップデート中に「Welcome Link Banner」テーマでSCSSコンパイルエラーが発生し、サイトがクラッシュしました。

こんにちは、

最近、Discourseフォーラムで**「Welcome Link Banner」**テーマをアップデートした際に、重大な問題が発生しました。

:stop_sign: 問題の概要:

  • テーマをアップデートした後、サイトは即座にクラッシュしました。
  • セーフモード(/safe-mode)にもアクセスできませんでした。
  • ログに記録されたエラーは次のとおりです。
CssSyntaxError: common.scss でセミコロンが欠落しています (MiniRacer::RuntimeError)
  • このSCSSエラーにより、Discourseはアセットをコンパイルできず、フロントエンドが完全に失敗しました。

:magnifying_glass_tilted_left: 原因:

  • 「Welcome Link Banner」テーマ内の更新されたcommon.scssファイルに構文エラー(セミコロン;の欠落)がありました。
  • その結果、アセットコンパイルが破損し、Discourseは基本的なUIさえ提供できなくなりました。

:hammer_and_wrench: 解決方法:

ウェブインターフェース(セーフモードさえも)にアクセスできなかったため、手動で修正する必要がありました。

  1. サーバーにSSHで接続します。

  2. アプリコンテナに入ります。

    ./launcher enter app
    
  3. Railsコンソールを開きます。

    RAILS_ENV=production rails c
    
  4. 問題のあるテーマを無効にします。

    Theme.where(name: "Welcome Link Banner").update_all(enabled: false)
    
  5. Railsコンソールを終了します。

  6. コンパイルされたすべてのアセットをクリアします。

    RAILS_ENV=production rake assets:clobber
    
  7. アプリを再構築します。

    ./launcher rebuild app
    

これらの手順の後、フォーラムはオンラインに戻りました。


:light_bulb: 提案:

  • テーマのアップロード/アップデート中に、本番サイトに適用する前に、追加のSCSS構文チェックを実装することを検討してください。
  • これにより、軽微なCSSのミスによるサイト全体のクラッシュを回避できる可能性があります。
「いいね!」 1

奇妙ですね。このコンポーネントの CSS にはセミコロンの欠落はありません。
履歴にも変更が見られません。:thinking:

ちなみに、/safe-mode が機能しない場合は、URL に直接 ?safe_mode=no_themes を追加してみてください。

「いいね!」 3

私も確認しましたが、この問題は見つかりませんでした。コンポーネントはカスタマイズされましたか?それとも、アップデートプロセスで何か問題が発生しましたか?

「いいね!」 1

別のコンポーネントと競合する可能性があります。現在開発中です。

「いいね!」 2

1 - バナーを閉じましたが、いくつかのことをテストしたいので、元に戻す必要があります。どうすればよいですか?
2 - モバイルで、チャンネルページにいるとき、バナーがレイアウト全体を完全に破壊していることに気づきました。

3 - CSSを使用する以外に、特定のページからバナーを除外することは可能ですか? homepage,discovery,all のドロップダウンメニューがあることは知っていますが、それは限定的すぎます。

キャッシュをクリアすると役立つかもしれません。localStorageに保存されているからです。

それを実行しましたが、うまくいきませんでした。

Cloudflareを使用しており、そのキャッシュで問題が発生しました。もう少し待つべきでしょうか、それともlocalStorageなので関係ないのでしょうか?

これについては専門家ではありません。推測しているだけです…

開発者ツールウィンドウから削除する方法はありますか?以前、取り組んでいたウェブサイトで作業していたときに、そこで何かを削除したことを覚えています。

更新:ChatGPTに返信に従って手伝ってもらったところ、以下のようになりました。

ブラウザのキャッシュをクリアしても、破棄状態が保存されているlocalStorageには影響しません。localStorageから項目を手動で削除する必要があります。

これを行ってください:

  1. Discourseサイトを開きます。

  2. F12を押すか、右クリックして「検証」を選択し、開発者ツールを開きます。

  3. コンソール」タブに移動します。

  4. 次のコードを貼り付けてEnterキーを押します:

    localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");
    
  5. ページを更新します。

これにより破棄状態がリセットされ、Welcome Banner Linkが再度表示されるはずです。


その後、手動でもできるか尋ねたところ、はい、できるとのことでした。Applicationタブに移動し、サイドバーのStorage > Localstorageで「entry」を削除します。

image


正しい方向を示していただき、ありがとうございます!

さて、質問ですが、デスクトップではこのように行うことができますが、モバイルではどうすればよいでしょうか?ChatGPTによると、これをアドレスバーに追加して「実行」できるとのことでしたが、うまくいきませんでした:

javascript:localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");

編集:うまくいきました!私が間違っていたようです。ChatGPTは、新しいタブではなく、フォーラムを開いてから、その同じタブでjavascript:localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");を実行する必要があることを明確にしてくれました。私は新しいタブで実行していました。

繰り返しになりますが、返信のおかげで間違いなく絞り込むことができました。ありがとうございます。:raising_hands:

「いいね!」 1