Scheduler モジュールについて

Events happening in the community are now at Drupal community events on www.drupal.org.
sakura-mama's picture

こちらでは何度もお世話になっております。。。。

Scheduler モジュールについて質問があります。
状況として、ブログと言うコンテンツタイプを作成しそこに投稿し、メインメニューに表示させています。メインメニューの「ブログ」をクリックするとブログコンテンツに投降したコンテンツを一覧表示させることができます。
コンテンツタイプにはSchedulerが設定してあり、指定の日時になったら記事を公開するようにしてあります。
ここまでは問題ありません。トップにも指定日時前の記事は表示されていません。ここも問題ありません。
しかし、メインメニューの「ブログ」をクリックすると指定日時が到来していない記事がなぜか表示されています。
メインメニューの「ブログ」をクリックしたときに表示されるコンテンツは概要表示になっていて、タイトルをクリックしたときにデフォルト表示されるべきですが、そのデフォルト表示はできなようになっています。

メインメニューをクリックしたときにもSchedulerで設定した指定前投稿記事を表示しないようにはできないものでしょうか?

ひょっとしてブログ記事を一覧表示させる方法を変えないといけないのでしょうか?思いつくことと言えばタクソノミータームなどで記事をまとめてメニュー表示、などと言う方法などですが。

ご指導のほどよろしくお願いいたします。

Comments

qchan's picture

ブログと言うコンテンツタイプを作成しそこに投稿し、メインメニューに表示させています。メインメニューの「ブログ」をクリックするとブログコンテンツに投降したコンテンツを一覧表示させることができます。

このブログページとはどういったページでしょうか。
DrupalコアのBlogモジュールが作っているページだった場合は、非掲載Nodeは並ばないはずですね。
いちどSchedulerを外して手動で非掲載にしてテストしてみてはどうでしょうか。

もしViewsを使ってリストをしているなら、フィルターで掲載されたコンテンツのみを並べる設定にすればよいかと思います。

試したのですが・・・・

sakura-mama's picture

ありがとうございます。
まず、
<このブログページとはどういったページでしょうか。
すいません。表示されるコンテンツタイプはデフォルトの「記事」のことです。
viewsでblogという名前として記事を抽出してます。

DrupalコアのBlogモジュールでも非掲載Nodeが並ぶ。
Schedulerを外して手動で非掲載にしてもNodeが並ぶ。
Viewsはフィルターで掲載されたコンテンツのみを並べる設定にした。

のですが、解決しないのです。
トップページはSchedulerの設定通りに作動しているのです。。。。

qchan's picture

viewsでblogという名前として記事を抽出してます。

なるほど。

こちらから質問していきますね。

1

DrupalコアのBlogモジュールでも非掲載Nodeが並ぶ。

これはDrupalコアのBlogモジュールを有効にしたときに
/blog というURLにならぶNodeのことでしょうか?

2,

Schedulerを外して手動で非掲載にしてもNodeが並ぶ。

Schedulerモジュールを無効(Disable)にしても同じでしょうか?

3,

Viewsはフィルターで掲載されたコンテンツのみを並べる設定にした。

Viewsの編集画面右上のプルダウンメニューに「Export view」があります。
これで吐き出されたコードを貼ってもらうとどなたかに見てもらえるかもしれません。

4, アクセスをコントロールするモジュールを他に入れていないですか?

5,

トップページはSchedulerの設定通りに作動しているのです。。。。

このトップページはご自分で作られたViewですか? 

sakura-mama's picture

1
DrupalコアのBlogモジュールでも非掲載Nodeが並ぶ。

これはDrupalコアのBlogモジュールを有効にしたときに
/blog というURLにならぶNodeのことでしょうか?

・・・・・・・・そうです。

2,
Schedulerを外して手動で非掲載にしてもNodeが並ぶ。

Schedulerモジュールを無効(Disable)にしても同じでしょうか?

・・・・・・Publish on にしたときのことで、モジュール本体を無効にしてはいません。

3,
Viewsはフィルターで掲載されたコンテンツのみを並べる設定にした。

Viewsの編集画面右上のプルダウンメニューに「Export view」があります。
これで吐き出されたコードを貼ってもらうとどなたかに見てもらえるかもしれません。

・・・・・・・すごい長いのでとりあえずviewsに設定したところだけ書き出します。
フォーマット
フォーマット:Unformatted list | 環境設定
表示:Fields | 環境設定

FIELDS
コンテンツ: タイトル
コンテンツ: Post date
コンテンツ: Body

FILTER CRITERIA
コンテンツ: タイプ (= 記事)

SORT CRITERIA
コンテンツ: Post date (desc)

PAGER
Use pager:Full | Paged, 10 items
More link:はい

と、いたってシンプルです。

4, アクセスをコントロールするモジュールを他に入れていないですか?
・・・・・・・・入れていないです。そういえば今回の事例と関係ないかもしれませんが、Calendarモジュールがうまく作動しなくて放置してあります。モジュールもインストールして有効になったままです。

5,

トップページはSchedulerの設定通りに作動しているのです。。。。

このトップページはご自分で作られたViewですか? 
・・・・・・・・いえ、AdaptiveTheme をベースにCSSでデザインしたぐらいです

よろしくお願いいたします

qchan's picture

どれが原因だったかはっきりさせるために、下に書いた内容は、一つづつ試して結果を見てください。

1,

これはDrupalコアのBlogモジュールを有効にしたときに
/blog というURLにならぶNodeのことでしょうか?

・・・・・・・・そうです。

これは不思議ですね。
viewsで作っていないリストなら非掲載ノードが並ぶのは考えにくいです。

2,

・・・・・・Publish on にしたときのことで、モジュール本体を無効にしてはいません。

モジュール本体を無効にしてみてください。
バックアップしてから、できればアンインストール、キャッシュクリアまで行なってください。

3,

FILTER CRITERIA
コンテンツ: タイプ (= 記事)

ここに
【コンテンツ: 掲載 */】
の項目がなければおかしいですね。
確認して、なければ設定してください。

4,
Calendarモジュールが関係するかわかりませんが、他にもあるなら不要モジュールは
アンインストール、キャッシュクリアしたほうが良いですね。

5,
コアDrupalが作っているトップページが有効に機能しているなら、viewsの設定が怪しいですね。
/blogも同じようにコアが作ってますので非掲載Nodeはでないはずですが。。

dokumori's picture

ユーザーロールと関係しているのではないかと思っています。
anonymous ユーザーが /blog にアクセスした際にも unpublished nodes は表示されますか?

sakura-mama's picture

qchanさん
1,

これはDrupalコアのBlogモジュールを有効にしたときに
/blog というURLにならぶNodeのことでしょうか?

・・・・・・・・そうです。

これは不思議ですね。
viewsで作っていないリストなら非掲載ノードが並ぶのは考えにくいです。

・・・・・・・申し訳ないです。説明が悪すぎました。コンテンツタイプは二つあり、記事とデフォルトのblogと両方あり、そのいずれもviewsでリストを作っています。そのどちらもviewsのリストアップすると非表示にならないです。それと、先ほど気づいたのですが、リストアップしたページは全て同じ状態になります。

2,
・・・・・・Publish on にしたときのことで、モジュール本体を無効にしてはいません。

モジュール本体を無効にしてみてください。
バックアップしてから、できればアンインストール、キャッシュクリアまで行なってください。
・・・・・・完了

3,

FILTER CRITERIA
コンテンツ: タイプ (= 記事)

ここに
【コンテンツ: 掲載 */】
の項目がなければおかしいですね。
確認して、なければ設定してください。

・・・・・・記載しました。

4,
Calendarモジュールが関係するかわかりませんが、他にもあるなら不要モジュールは
アンインストール、キャッシュクリアしたほうが良いですね。

・・・・・・終了しました。

5,
コアDrupalが作っているトップページが有効に機能しているなら、viewsの設定が怪しいですね。
/blogも同じようにコアが作ってますので非掲載Nodeはでないはずですが。。

・・・・・・views を削除して最初から作り直してみることにします。今のを作る途中に予定の変更でviewsをいくつか触っているのでその時におかしくなったのかもしれません。

dokumoriさん、ありがとうございます。
anonymous ユーザーが /blog にアクセスすると、viewsで設定したページにはティザーが表示されて、記事タイトルをクリックするとアクセスできない状態です。
Schedulerの権限をADMINISTRATORのみにすればいいかしら。。。。

qchan's picture

nonymous ユーザーが /blog にアクセスすると、viewsで設定したページにはティザーが表示されて、記事タイトルをクリックするとアクセスできない状態です。

Anonymousユーザーが非掲載コンテンツにアクセスできないのは動きとして正常ですので、
Node Accessの問題では無く、Views周りがあやしい感じがします。
新しく設定したView をExportしてそのまま貼ってもらったほうが良いですね。

なぜか解決

sakura-mama's picture

昨日、すべてのステップを終えた時は解決しなかったのですが、その後見てみると解決していました。
結果、表示されていた記事が表示されなくなっていて、Schedulerの設定の日時とはかなり遅れて正しく作動したようです。
試しに、Schedulerの設定を5分後(公開を5分後にする)に設定したのですがやはりその時間では公開されません。パソコンにずっと入りついていなかったのでいつ公開されたのか正確な時間は判りませんが、この時間差以外は解決したということになると思います。また、どのステップで解決したのかは判断できないという部分はありますが・・・・
ひょっとしたら
3,

FILTER CRITERIA
コンテンツ: タイプ (= 記事)

ここに
【コンテンツ: 掲載 */】
の項目がなければおかしいですね。
確認して、なければ設定してください。

・・・・・・記載しました。

この部分が一番怪しいかもしれません。

きちんと動いているようなので、必要ないかと思いましたが、Exportしたものを貼り付けさせていただきました。見ても判りませんでした(悲)

$view = new view();
$view->name = 'pets';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'book';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master /
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'おすすめ本';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'リセット';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['pager']['options']['id'] = '0';
$handler->display->display_options['pager']['options']['quantity'] = '9';
$handler->display->display_options['pager']['options']['tags']['first'] = '« 先頭';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ 前';
$handler->display->display_options['pager']['options']['tags']['next'] = '次 ›';
$handler->display->display_options['pager']['options']['tags']['last'] = '最終 »';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
/
フィールド: コンテンツ: タイトル /
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/
フィールド: コンテンツ: Post date /
$handler->display->display_options['fields']['created']['id'] = 'created';
$handler->display->display_options['fields']['created']['table'] = 'node';
$handler->display->display_options['fields']['created']['field'] = 'created';
$handler->display->display_options['fields']['created']['label'] = '';
$handler->display->display_options['fields']['created']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['created']['date_format'] = 'custom';
$handler->display->display_options['fields']['created']['custom_date_format'] = 'Y,m,d';
/
フィールド: コンテンツ: Body /
$handler->display->display_options['fields']['body']['id'] = 'body';
$handler->display->display_options['fields']['body']['table'] = 'field_data_body';
$handler->display->display_options['fields']['body']['field'] = 'body';
$handler->display->display_options['fields']['body']['label'] = '';
$handler->display->display_options['fields']['body']['element_label_colon'] = FALSE;
/
Sort criterion: コンテンツ: Post date /
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
$handler->display->display_options['sorts']['created']['granularity'] = 'minute';
/
Filter criterion: コンテンツ: 掲載 /
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/
Filter criterion: コンテンツ: タイプ */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'pets' => 'pets',
);

/* Display: pets /
$handler = $view->new_display('page', 'pets', 'page');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['title'] = 'ペットたち';
$handler->display->display_options['defaults']['header'] = FALSE;
/
ヘッダー: Global: Text area /
$handler->display->display_options['header']['area']['id'] = 'area';
$handler->display->display_options['header']['area']['table'] = 'views';
$handler->display->display_options['header']['area']['field'] = 'area';
$handler->display->display_options['header']['area']['content'] = 'ペットたち。';
$handler->display->display_options['header']['area']['format'] = 'filtered_html';
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/
Filter criterion: コンテンツ: 掲載 /
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/
Filter criterion: コンテンツ: タイプ */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'pets' => 'pets',
);
$handler->display->display_options['path'] = 'pets';
$handler->display->display_options['menu']['type'] = 'tab';
$handler->display->display_options['menu']['title'] = ペットたち';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'main-menu';
$handler->display->display_options['menu']['context'] = 1;
$handler->display->display_options['menu']['context_only_inline'] = 0;

/* Display: blog /
$handler = $view->new_display('page', 'blog', 'page_1');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['title'] = 'Blog';
$handler->display->display_options['defaults']['fields'] = FALSE;
/
フィールド: コンテンツ: タイトル /
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/
フィールド: コンテンツ: Post date /
$handler->display->display_options['fields']['created']['id'] = 'created';
$handler->display->display_options['fields']['created']['table'] = 'node';
$handler->display->display_options['fields']['created']['field'] = 'created';
$handler->display->display_options['fields']['created']['label'] = '';
$handler->display->display_options['fields']['created']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['created']['date_format'] = 'custom';
$handler->display->display_options['fields']['created']['custom_date_format'] = 'Y,m,d';
/
フィールド: コンテンツ: Body /
$handler->display->display_options['fields']['body']['id'] = 'body';
$handler->display->display_options['fields']['body']['table'] = 'field_data_body';
$handler->display->display_options['fields']['body']['field'] = 'body';
$handler->display->display_options['fields']['body']['label'] = '';
$handler->display->display_options['fields']['body']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['body']['type'] = 'text_summary_or_trimmed';
$handler->display->display_options['fields']['body']['settings'] = array(
'trim_length' => '400',
);
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/
Filter criterion: コンテンツ: 掲載 /
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = '1';
$handler->display->display_options['filters']['status']['group'] = 1;
/
Filter criterion: コンテンツ: タイプ */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'article' => 'article',
);
$handler->display->display_options['filters']['type']['group'] = 1;
$handler->display->display_options['filters']['type']['expose']['operator_id'] = 'type_op';
$handler->display->display_options['filters']['type']['expose']['label'] = 'タイプ';
$handler->display->display_options['filters']['type']['expose']['operator'] = 'type_op';
$handler->display->display_options['filters']['type']['expose']['identifier'] = 'type';
$handler->display->display_options['filters']['type']['expose']['remember_roles'] = array(
2 => '2',
1 => 0,
3 => 0,
);
$handler->display->display_options['path'] = 'blog';
$handler->display->display_options['menu']['type'] = 'tab';
$handler->display->display_options['menu']['title'] = 'Blog';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'main-menu';
$handler->display->display_options['menu']['context'] = 1;
$handler->display->display_options['menu']['context_only_inline'] = 0;

/* Display: book /
$handler = $view->new_display('page', 'book', 'page_2');
$handler->display->display_options['defaults']['fields'] = FALSE;
/
フィールド: コンテンツ: タイトル /
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/
フィールド: コンテンツ: Body /
$handler->display->display_options['fields']['body']['id'] = 'body';
$handler->display->display_options['fields']['body']['table'] = 'field_data_body';
$handler->display->display_options['fields']['body']['field'] = 'body';
$handler->display->display_options['fields']['body']['label'] = '';
$handler->display->display_options['fields']['body']['element_label_colon'] = FALSE;
/
フィールド: コンテンツ: 目次 /
$handler->display->display_options['fields']['field_mokuji']['id'] = 'field_mokuji';
$handler->display->display_options['fields']['field_mokuji']['table'] = 'field_data_field_mokuji';
$handler->display->display_options['fields']['field_mokuji']['field'] = 'field_mokuji';
$handler->display->display_options['fields']['field_mokuji']['label'] = '';
$handler->display->display_options['fields']['field_mokuji']['element_label_colon'] = FALSE;
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/
Filter criterion: コンテンツ: 掲載 /
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/
Filter criterion: コンテンツ: タイプ */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'book' => 'book',
);
$handler->display->display_options['path'] = 'linst/book';
$handler->display->display_options['menu']['type'] = 'tab';
$handler->display->display_options['menu']['title'] = 'おすすめ本';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'main-menu';
$handler->display->display_options['menu']['context'] = 0;
$handler->display->display_options['menu']['context_only_inline'] = 0;
$translatables['pets'] = array(
t('Master'),
t('おすすめ本'),
t('more'),
t('Apply'),
t('リセット'),
t('Sort by'),
t('Asc'),
t('Desc'),
t('Items per page'),
t('- All -'),
t('Offset'),
t('« 先頭'),
t('‹ 前'),
t('次 ›'),
t('最終 »'),
t('pets'),
t('ペットたち'),
t('ペットたち。'),
t('blog'),
t('Blog'),
t('タイプ'),
t('book'),
);

ひとまず動いてよかったです。

qchan's picture

ひとまず動いてよかったです。

Viewsの設定でおかしなところはありませんでした。
1~5の作業中にはなんどもキャッシュクリアをして、Schedulerモジュールもアンインストールして
いますので、詰まっていたところが解消されたのかもしれません。

設定時間通りに動作しないところはCRONの設定ではないかと推測します。
このモジュールはCRONと同期して動きます。5分後に公開としていても、CRONが回らないと実行されません。
sakura-mamaさんがCRONの設定をどうされているか確認したほうが良いですね。
admin/config/system/cron から設定できるDrupalコアのCRON設定は最低1時間に一回しか回りません。
使われてるサーバーでCronが設定できるか、聞いてみてください。
頻繁に全部のCRONを回すと負荷がかかりますので、READMEにはSchedulerモジュールだけのCron呼び出し方法が書いてあります。

モジュールのページ
Please check if cron is running correctly if scheduler does not publish your scheduled nodes. http://drupal.org/project/scheduler

README.txtファイルの記載。

http://drupalcode.org/project/scheduler.git/blob/557611ca1bd0770084eab1a...
50 The scheduler will run with Drupal's cron.php, and will (un)publish nodes
51 timed on or before the time at which cron runs. If you'd like finer
52 granularity to scheduler, but don't want to run Drupal's cron more often (due
53 to its taking too many cycles to run every minute, for example), you can set
54 up another cron job for the scheduler to run independently. Scheduler's cron
55 is at /scheduler/cron; a sample crontab entry to run scheduler every minute
56 would look like:
57
58 * * * * * /usr/bin/wget -O - -q "http://example.com/scheduler/cron"

sakura-mama's picture

Viewsの設定でおかしなところはありませんでした

と聞き、安心いたしました。

使っているサーバーでCronは使えますが、
モジュールページの記述は見逃していたこともあり、手動で実行しています。
自動でできるように設定することにしました。

これでスケジュール通りに作動すると思います。
単純なことが原因だったようですが、とても助かりました。

いつもありがとうございます。

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: