在Drupal中设置分页的区块视图时需要分外小心
在近期的一个drupal项目中,我们遇到一个十分奇怪的问题:搜索结果页面的总记录数和总页数永远是一个错误的固定数字。这个极具迷惑性的假象让我们朝着各种错误的方向去寻找问题的答案,并且迟迟没有进展,然而等我们找到真正的问题原因时,结果可以说是让人大跌眼镜。
我们先是禁用了所有自定义开发的部分:把主题切换回drupal默认的前端主题Bartik,同时禁用所有自主开发的模块,然后再一点点重装回去,测试的结果是问题出在主题部分。
但接下来更让人迷惑了,一是我们的主题中只是对默认的搜索结果做了一些非常细小的覆写,不足以引发问题;二是当换成其他主题,比如Zen的时候,也出现同样问题。所以前面的问题出在主题部分的论断又被推翻了。
接下来我们又从异常的数据、关键字索引、缓存等方面去找问题。这一切都无功而返以后,我们还是回到代码部分,循着函数的执行路径逐个往回找,最后发现总记录数在某个区块渲染以后被更改了,而这个区块正好是Views模块生成的一个带分页的视图。
我恍然大悟,一定是Views的Pager ID问题!这个问题我以前曾经遇到过,而且还提醒过自己日后注意,没想到这次还是疏忽了。
没错,就是下图中的这个地方:
这个细小的设置,常常被很多人忽略,因为在绝大多数情况下,保持默认设置是没有问题的。但是记住,一旦页面上有多个分页器(这种情况通常是在把Views生成的一个带分页的视图作为区块嵌入页面的时候出现的),这个设置就变得至关重要。因为同一个页面上的各个分页器必须有各不相同的ID,而这个ID就是通过此处的选项来进行设置。
那么这个Pager ID到底是个什么东西呢?在解决我们项目问题的同时,我也顺便深入看了一下drupal的部分核心代码,对Pager ID也有了一些更深的认识。
原来在Drupal中,我们看到的任何分页器都是基于四个全局数组变量生成的,它们是:
global $pager_page_array; // 存储当前页码
global $pager_total; // 存储总页数
global $pager_total_items; // 存储总记录数
global $pager_limits; // 存储每页的记录数
由于每个变量都是数组,drupal就可以用不同的数组下标来区分多个分页器。这个下标,或者叫索引,就是上面所说的Pager ID。
一般来说,需要显示分页器的模块基本上都是Entity及其派生模块。Entity模块会通过递增Pager ID来自动区分多个分页器,这样多个分页器出现在同一个页面上时就会各自相安无事。
但是Views模块在生成分页器时Pager ID默认是0,这样如果页面上有超过一个分页器,它就会覆盖那个Pager ID为0的分页器。这就是我们项目中遇到的情况——搜索结果页面的分页器被Views生成的区块分页器覆盖掉了。这种情况下,就需要手动设置Pager ID。Pager ID设置为多少是合适的呢?其实只要能互相区分就可以了,一般来说,设置成较大的数字总是比较保险的。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Douyinで作品を公開すると注目やいいねが集まりやすくなりますが、リアルタイムで作品を公開することが難しい場合もありますので、その場合はDouyinの予約公開機能をご利用ください。 Douyin のスケジュールリリース機能を使用すると、ユーザーはスケジュールされた時間に作品を自動的に公開できるため、リリース計画をより適切に計画し、作品の露出と影響力を高めることができます。 1. Douyin で作品を公開する予定時間を設定するにはどうすればよいですか?リリース予定時刻を設定するには、まずDouyinの個人ホームページにアクセスし、右上隅にある「+」ボタンを見つけて、クリックしてリリースページに入ります。公開ページの右下隅に時計アイコンがあります。クリックすると、スケジュールされた公開インターフェイスが表示されます。インターフェースでは、短いビデオ、長いビデオ、ライブブロードキャストなど、公開したい作品の種類を選択できます。次に、作品を公開する時間を設定する必要があります。 TikTokが提供する

世界で最も人気のあるショートビデオ プラットフォームの 1 つである Douyin を使用すると、誰もがクリエイターになって人生のあらゆる瞬間を共有できます。 Douyin ユーザーにとって、タグは非常に重要な機能であり、ユーザーがコンテンツをより適切に分類して取得できるようになり、プラットフォームが適切なコンテンツをより正確にユーザーにプッシュできるようになります。では、Douyin タグはどこに設定されているのでしょうか?この記事ではDouyinでのタグの設定方法と使い方を詳しく解説します。 1.Douyinタグはどこに設定されていますか? Douyin でタグを使用すると、ユーザーが自分の作品をより適切に分類およびラベル付けできるようになり、他のユーザーが作品を見つけてフォローしやすくなります。ラベルを設定する方法は次のとおりです。 1. Douyin APP を開き、アカウントにログインします。 2. 画面下部の「+」記号をクリックし、「公開」ボタンを選択します。 3.

1. Weibo クライアントを開き、編集ページで 3 つの小さな点をクリックし、[予約投稿] をクリックします。 2. 予約投稿をクリックすると、公開時間の右側に時間オプションが表示されますので、時間を設定し、記事を編集し、右下の黄色の文字をクリックして投稿を予約します。 3. モバイル版 Weibo は現在予約公開をサポートしていないため、この機能は PC クライアントでのみ使用できます。

おやすみモードで電話に応答することさえ、非常に煩わしい経験になる可能性があります。名前が示すように、おやすみモードでは、すべての着信通知と電子メール、メッセージなどからの警告がオフになります。これらのソリューション セットに従って問題を修正できます。解決策 1 – フォーカス モードを有効にする 携帯電話でフォーカス モードを有効にします。ステップ 1 – 上から下にスワイプしてコントロール センターにアクセスします。ステップ 2 – 次に、携帯電話の「フォーカスモード」を有効にします。フォーカス モードでは、電話機のサイレント モードが有効になります。携帯電話に着信通知が表示されることはありません。解決策 2 – フォーカス モード設定を変更する フォーカス モード設定に問題がある場合は、修正する必要があります。ステップ 1 – iPhone の設定ウィンドウを開きます。ステップ 2 – 次に、フォーカス モード設定をオンにします

Damai.comでチケットを購入する際、チケット購入時間を正確に把握するために、ユーザーはチケットを取得するためにフローティングクロックを設定することができます。詳細な設定方法は以下にありますので、一緒に学びましょう。フローティング クロックを Damai にバインドする方法 1. 携帯電話でフローティング クロック アプリをクリックして開き、インターフェイスに入り、以下の図に示すように、フラッシュ セール チェックが設定されている場所をクリックします。新しいレコードを追加するページで、Damai.com をクリックしてチケット購入リンク ページをコピーします。 3. 次に、以下のフラッシュセール時間と通知時間を設定し、[カレンダーに保存]の後ろにあるスイッチボタンをオンにして、下の[保存]をクリックします。 4. 以下の図に示すように、[カウントダウン] をクリックしてオンにします。 5. リマインダー時間が来たら、下の [ピクチャーインピクチャーの開始] ボタンをクリックします。 6. チケット購入時間になったら

1. まず、携帯電話のデスクトップをクリックして QQ に入り、左上隅のアバターをクリックします。 2. 左下の[設定]をクリックします。 3. クリックして[アクセシビリティ]を開きます。 4. 次に、[Enter キーを押してメッセージを送信する] スイッチをクリックしてオンにするだけです。

Douyin の推奨と選択はどこにありますか? Douyin のショート ビデオには、選択と推奨の 2 つのカテゴリがあります。ほとんどのユーザーは、推奨と選択の設定方法がわかりません。次に、エディターがユーザーに提供する Douyin チュートリアルです。オーディオおすすめの設定方法やおすすめの設定方法を解説していますので、興味のある方はぜひご覧ください! Douyin の使用方法のチュートリアル Douyin の推奨事項と選択を設定する場所 1. まず、Douyin ショートビデオ APP を開いてメインページに入り、右下隅の [Me] 領域をクリックして、右上隅の [3 本の水平線] を選択します; 2. 次に、右側の機能バーが展開され、ページをスライドして下部の [設定] を選択します; 3. 次に、設定機能ページで [個人情報管理] サービスを見つけます; 4. 最後に個人情報にジャンプします情報管理ページ、スライド [パーソナライズコンテンツのおすすめ] 】背面のボタンを設定できます。

1. まずWeiboに入り、右下隅の「私」をクリックして[カスタマーサービス]を選択します。 2.検索ボックスに「ウォーターマーク」と入力し、「Weibo画像ウォーターマークを設定」を選択します。 3. インターフェース内の[リンク]をクリックします。 4. 新しく開いたウィンドウで[画像ウォーターマーク設定]をクリックします。 5. 最後に[ピクチャーセンター]にチェックを入れ、[保存]をクリックします。
