個別のプライベートメッセージスレッドを表示すると、スレッドメッセージが古いものから新しいものへと表示され、その後に[Reply]フィールドが表示されます。最初に[返信]フィールドを表示し、次にスレッドメッセージを新しいものから最も古いものへと表示します。この方法でページの順序を逆にするにはどうすればよいですか?昇順ではなく降順でテーマを変更するためのコードを見つけることができません。
このようなもの:
[回答欄]
[2017年1月6日11:30 amのメッセージ]
[2017年1月6日11:05 amのメッセージ]
[2017年1月6日の午前10時のメッセージ]
[2017年1月5日11:45 amのメッセージ]
...次のような現在のレイアウト/順序の代わりに:
[2017年1月5日11:45 amのメッセージ]
[2017年1月6日の午前10時のメッセージ]
[2017年1月6日11:05 amのメッセージ]
[2017年1月6日11:30 amのメッセージ]
[回答欄]
モジュールをハックする以外に、それを機能させる他の方法はありますか?
フックを提供しない限り、別のphpファイル/モジュールからモジュールを変更する方法はありません。
私は盲目でなければならず、その真上(行1098)にコメントで書かれています:* @see hook_query_privatemsg_messages_alter()
ドキュメントを見つけました hook_query_privatemsg_messages_alter 。フックはモジュール内、より具体的には.moduleファイル内にあり、Word hook
をモジュールの実際の名前に置き換えます。
mymodule.moduleの内部にカスタムモジュールを作成します(ここでは、モジュールの名前がmymoduleであると仮定しています)
_/**
* Implements hook_query_privatemsg_messages_alter().
*/
function mymodule_query_privatemsg_messages_alter($query) {
$query
->orderBy('pm.timestamp', 'DESC')
->orderBy('pmi.mid', 'DESC');
}
_
サイドノート:
フックをtemplate_something_something()と混同しないでください。これらは、template.phpファイル内にあります。例: template_preprocess_node そして、Word template
をテーマの実際の名前に置き換えます。
Sssweatはありません。他に1つお邪魔してもよろしいですか?返信ボックスをメッセージスレッドの上に移動します。これがモジュールで処理される場所を見つけました(privatemsg.pages.inc、892および926行目)。 incファイルをハックせずに、これらの2行をどのようにオーバーライドします(「ウェイト」値を調整して、返信ボックスがメッセージスレッドよりも低くなるようにします)。どういうわけかカスタムモジュールで行われますか?
hook_privatemsg_view_alter を使用するとします。
悲しいことに、それは返信やメッセージには機能しません。それでも、Devel配列を使用してdpm($content)
をダンプすると、重みが変更されました。ポケットベルでのみ機能します。これはバグのようです。
_/**
* Implements hook_privatemsg_view_alter().
*/
function mymodule_privatemsg_view_alter($content) {
$content['pager']['#weight'] = -3; // does not work
$content['reply']['#weight'] = -5; // does not work
// nor it does not work when doing $content['message']['#weight'] = -5;
}
_
モジュールから_$content['pager']['#weight']
_ = 3および_$content['reply']['#weight'] = -5;
_をコメント化すると、フックが機能します。