web-dev-qa-db-ja.com

String Overridesは "Read more"文字列を上書きしていません

この質問についてdrupal.orgにサポートリクエストを提出しましたが、誰かが答えを知っている可能性があるため、ここでも質問する必要があると考えました。

ティーザーの[もっと読む]リンクを変更して、「全文」と表示したい。 String Overrides モジュールを指摘されたため、組み込みの文字列を変更するのが非常に簡単になったと思われます。 UIはそれほど複雑ではないため、何が問題を起こしているのかはわかりませんが、機能していません。設定を保存し、すべてのキャッシュをフラッシュしました。

何か考えはありますか?

enter image description here

2
Kenny Wyland

多少の調整が必要かもしれませんが、hook_preprocess_node()でテキストを変更できます。 「もっと読む」に設定した場合は、後でstringoverridesで上書きするか、一度に変更することができます。

テーマのtemplate.phpに、以下を追加します。

/** 
 * hook_preprocess_node()。
を実装します*/
 function MYTHEME_process_node(&$ vars){
 //デフォルトのテキストを変更続きを読むリンク。
 if(isset($ vars ['links'] ['node'] ['#links'] ['node-readmore'])){
 $ vars [ 'links'] ['node'] ['#links'] ['node-readmore'] ['title'] = t( 'Read more'); 
} 
} 


関連モジュール:
http://drupal.org/project/readmorecontrol
http://drupal.org/project/read_more
http://drupal.org/project/linkoutreadmore

4
enzipher

何時間もこれと戦った後、私は問題の原因を見つけました。

これはコアの問題だと思います(実際にはバグではありません)。 node.moduleでは、ティーザービューで[もっと読む]リンクを作成するときに、node_build_content()に次のコードが含まれます。

'title' => t('Read more<span class="element-invisible"> about @title</span>', array('@title' => $node_title_stripped)),

そのため、Strings Overrideが文字列比較を行っている場合は、「Read more」が「Read more<span class="element-invisible"> about My Title</span>」とは明らかに異なるため、一致しません。

Node.moduleを編集して、「続きを読む」のテキストを残りのHTMLから次のように分離します。

'title' => t('Read more').t('<span class="element-invisible"> about @title</span>', array('@title' => $node_title_stripped)),

次に、システムは2つの文字列「Read more」と「<span class="element-invisible"> about My Title</span>」をレンダリングします。

2
Kenny Wyland