タグクラウドプラグインで設置したページャーのエラー 投稿する

投稿者:オフィスニコ  投稿日時:2023-08-26 23:03:14
お世話になっております。
タグクラウドを使用することになりました。
ブログの記事に該当タグが出力されるように設定し、そのタグで書かれた記事の一覧を表示するため
標準ページのプラグインブロックでtagcloudを選択し、下記の記述で同一タグの記事一覧を作成しました。
しかしページャーのページ送り時にエラーが出てしまいます。

記事一覧ページでは下記の様にしました。
<ul>
<!-- block:id="tag" cms:label="2" cms:count="12" -->
<li>
<a cms:id="entry_link">
<div>
<img cms:id="thumbnail" alt=""/><!-- cms:id="no_thumbnail" --><!-- /cms:id="no_thumbnail" -->
<div>
<div><!-- cms:id="title_plain" -->タイトル<!-- /cms:id="title_plain" --></div>
</div>
</div>
</a>
<span>Date:<!-- cms:id="create_date" cms:format="Y/m/d" -->2021/01/01<!-- /cms:id="create_date" --></span>
</li>
<!-- /block:id="tag" -->
</ul>

ページャーは下記の様にしました。
<div>
<!-- p_block:id="s_has_prev_page" --><a p_block:id="s_prev_page"><span>前のページ</span></a><!-- /p_block:id="s_has_prev_page" -->					
<div>
<!-- p_block:id="s_pager" cms:pager_num="5" --><span cms:id="pager_item"><a href="#">1</a></span><!-- /p_block:id="s_pager" -->
</div>
<!-- p_block:id="s_has_next_page" --><a p_block:id="s_next_page"><span>次のページ</span></a><!-- /p_block:id="s_has_next_page" -->
</div>

エラー内容は下記です。
Fatal error: Uncaught Error: Class "Entry" not found in /***/***/***/***/***/common/site_include/plugin/tag_cloud/logic/TagCloudBlockEntryLogic.class.php:76 Stack trace: #0 /***/***/***/***/***/common/site_include/plugin/tag_cloud/tag_cloud.php(210): TagCloudBlockEntryLogic->getTotal() #1 /***/***/***/***/***/common/util/CMSPlugin.class.php(438): TagCloudPlugin->onPageOutput() #2 /***/***/***/***/***/common/site_include/CMSPage.class.php(75): CMSPlugin::callEventFunc() #3 /***/***/***/***/***/common/site_include/CMSPageController.class.php(268): CMSPage->main() #4 /***/***/***/***/***/common/site_include/CMSPageController.class.php(124): CMSPageController->onNotFound() #5 /***/***/***/***/***/common/lib/soy2_build.php(236): CMSPageController->execute() #6 /***/***/***/***/***/common/site_include/SOYCMSOutputContents.class.php(64): SOY2PageController::run() #7 /***/***/***/***/***/common/site_include/SOYCMSOutputContents.class.php(110): SOYCMSOutputContents::execute_normal() #8 /***/***/***/***/***/common/site.func.php(42): SOYCMSOutputContents->execute() #9 /virtual/nico/public_html/officenico.net/newsite/index.php(12): execute_site() #10 {main} thrown in /***/***/***/***/***/common/site_include/plugin/tag_cloud/logic/TagCloudBlockEntryLogic.class.php on line 76

soycmsのバージョンは 3.13.0
PHPのバージョンは8.1.16

です。

おかしな部分があるようでしたらご指摘ください。

どうぞよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2023-08-27 04:23:18
/***/***/***/***/***/common/site_include/plugin/tag_cloud/logic/TagCloudBlockEntryLogic.class.php
上記のファイルの69行目付近にあります
$sql = "SELECT COUNT(ent.id) AS TOTAL FROM Entry ent ".
の上の行に
$dao = soycms_get_hash_table_dao("entry");
$sql = "SELECT COUNT(ent.id) AS TOTAL FROM Entry ent ".
のように$dao = soycms_get_hash_table_dao("entry");の一行を加えてください。

86行目付近にあります
$dao = new SOY2DAO();
try{
	$res = $dao->executeQuery($sql, $binds);
}catch(Exception $e){
	return 0;
}
の一番上の行を
//$dao = new SOY2DAO();
try{
	$res = $dao->executeQuery($sql, $binds);
}catch(Exception $e){
	return 0;
}
のようにコメントアウトしてみてください。

今回のエラーはこれで解消されるはずです。
投稿者:オフィスニコ  投稿日時:2023-08-27 11:54:21
ありがとうごいます!
エラーの表示はなくなりました。が、、、
「404 Not Found」になってしまいます。

ラベルIDを変更してみたりしましたが、変わらずです。

ページ送りのURLは下記でした。
https://******/サイトID/tag/page-1?tagcloud=17

それからもう1点、、
タグクラウドの記事一覧ページで集まった各記事へのリンクが
https://******/記事名
となってしまっており、ブログの記事に飛べないようです。

使い方が間違っているのでしょうか。。

何度も申し訳ないです。
よろしくお願いいたします。
投稿者:オフィスニコ  投稿日時:2023-08-28 16:07:56
お世話になります。
記事一覧で表示されている各記事へのリンクについては
当方の設定ミスでした。

「タイトルにブログのエントリーページへのリンクを付加する」へのチェック漏れが原因でした。

ページ送りについては、まだ解決しておりません。

どうぞよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2023-08-28 18:36:10
404NotFoundに関してですが、
/CMSインストールディレクトリ/common/site_include/CMSPageController.class.class.php

$this->onNotFound();
のコードのすべての箇所で
var_dump($e);
$this->onNotFound();
にして、アクセスした時に表示されるエラーを教えてください。
投稿者:オフィスニコ  投稿日時:2023-08-28 18:46:09
ありがとうございます。

指示のとおりに書き換え、表示されたエラーは下記になります。


Warning: Undefined variable $e in /***/***/***/***/インストールディレクトリ/common/site_include/CMSPageController.class.php on line 129
NULL

404 Not Found
The requested URL was not found on this server.
お探しのページが見つかりませんでした。
お探しのページはファイル名が変更されたか、削除された可能性がございます。
誠に恐れ入りますが、お探しのページのURLが正しいかどうかをご確認ください。
トップページに戻るには、「トップページ」をクリックしてください。
投稿者:齋藤毅  投稿日時:2023-08-28 19:55:49
ご確認をありがとうございます。
if(TagCloudUtil::getPageIdSettedTagCloudBlock() != $_SERVER["SOYCMS_PAGE_ID"] || !TagCloudUtil::checkIsTagExists($args[0])) $this->onNotFound();
129行目という事は上記のコード周辺のエラーになりますか?
投稿者:オフィスニコ  投稿日時:2023-08-28 20:05:09
ご連絡ありがとうございます^

129行目ですと。。
ご指摘の箇所のようです。
投稿者:齋藤毅  投稿日時:2023-08-29 04:57:42
<!-- block:id="tag" cms:label="2" cms:count="12" -->
上記のコードはブログページに設置しているという事で良いですか?

タグクラウドプラグインのプラグインブロックですが、ブログページでの設定は想定されておらず、404NotFoundが出るようになっています。
特別な理由がない限りタグクラウドのプラグインブロックは標準ページに設置してほしいのですが、必ずブログページに設置しなければならないといったことはありますか?

別件ですが、今回の調査中でタグクラウドのページャに一部不備がありましたので修正しています。
修正版は下記のページからダウンロードできます。
https://saitodev.co/soycms
投稿者:オフィスニコ  投稿日時:2023-08-29 07:58:57
おはようございます^

ご指摘のコードは、標準ページに設置しています。
タグをブログの記事ページに設置し、そのタグのリンクから該当タグを集めて表示するページを標準ページで作成しています。

SOYCMSの最新版ありがとうございます。
早速バージョンアップいたしました!

どうぞよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2023-08-29 08:46:09
ご指摘のコードは、標準ページに設置しています。
タグをブログの記事ページに設置し、そのタグのリンクから該当タグを集めて表示するページを標準ページで作成しています。
上記の設定内容ですと、これ以上の調査は難しいです。
私が直接確認して良いサーバであれば、メールなどでSOY CMSとFTPのアカウントの情報を教えてください。
投稿者:オフィスニコ  投稿日時:2023-08-29 22:42:42
お世話になっております。
先ほど情報をお送りいたしましたので、ご確認よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2023-08-30 05:18:06
アカウントの情報をありがとうございます。
管理画面のURLがありませんでしたので、そちらもメール経由でお伝えください。
投稿者:オフィスニコ  投稿日時:2023-08-30 07:47:34
申し訳ございません;
只今送信いたしました。
投稿者:齋藤毅  投稿日時:2023-08-30 09:00:30
コードを直接確認しましたところ、
記事詳細ページに設置していました
<!-- b_block:id="entry" -->

<!-- 途中省略 -->

<!-- cms:id="tag_cloud_tag_list" -->
<li><a cms:id="tag_cloud_tag_link"><!-- cms:id="tag_cloud_tag_word" -->タグ<!-- /cms:id="tag_cloud_tag_word" --></a></li>
<!-- /cms:id="tag_cloud_tag_list" -->

<!-- 途中省略 -->
<!-- /b_block:id="entry" -->
こちらのコードがページャ未対応でした。

ページャを使えるようにコードを書き換えました。
投稿者:オフィスニコ  投稿日時:2023-08-30 10:35:13
ありがとうございました!
確認したところ、ページャーが機能しました。

書き換えていただいたコードなのですが
当初と変更が無いようなのですが、当方でする作業はありますか?
ログインして投稿する