質問: 「最も読まれた」モジュールで時間範囲内の記事のみを表示する方法 2か月前に最も多く読まれたコンテンツのみを表示しようとしています。mod_article_popular/helper.phpファイルをチェックしてみましたが、$ model-> setstateを使用して必要なものを取得する方法がわかりません。日付範囲内の記事のみを表示するにはどうすればよいですか?
回答: フィルター状態を操作するcontentmodelarticlesクラスを確認する必要があります。クラス内のgetstoreidメソッドが答えです:protected function getstoreid($id = '') { // compile the store id. $id .= ':' . serialize($this->getstate('filter.published')); $id .= ':' . $this->getstate('filter.access'); $id .= ':' . $this->getstate('filter.featured'); $id .= ':' . serialize($this->getstate('filter.article_id')); $id .= ':' . $this->getstate('filter.article_id.include'); $id .= ':' . serialize($this->getstate('filter.category_id')); $id .= ':' . $this->getstate('filter.category_id.include'); $id .= ':' . serialize($this->getstate('filter.author_id')); $id .= ':' . $this->getstate('filter.author_id.include'); $id .= ':' . serialize($this->getstate('filter.author_alias')); $id .= ':' . $this->getstate('filter.author_alias.include'); $id .= ':' . $this->getstate('filter.date_filtering'); $id .= ':' . $this->getstate('filter.date_field'); $id .= ':' . $this->getstate('filter.start_date_range'); $id .= ':' . $this->getstate('filter.end_date_range'); $id .= ':' . $this->getstate('filter.relative_date'); return parent::getstoreid($id); } したがって、状態を設定する必要がある2つのフィルター状態は次のとおりです。 $model->setstate('filter.date_filtering', $range); 参考までに、コアファイルを直接編集しているようです。以降のjoomlaの更新によってカスタマイズが上書きされる可能性があるため、これはお勧めできません。お役に立てれば...