質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1185閲覧

osclassのアラートが機能しない

juzujunretsu

総合スコア7

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/04/04 07:10

編集2018/04/04 08:03

前提・実現したいこと

osclassを用いたサイトを作っています。そこでアラート機能を正しく動作させたいと考えています。
ユーザーがアラート登録したワードを含む広告が掲載された際にユーザーにメールが送られるようにしたいです。
会員登録のメールは送られているためメール自体が送られていないわけではないです。

発生している問題・エラーメッセージ

ユーザーマイページのアラートに表示されたメッセージを下に添付します。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fatal error: Uncaught Error: Call to undefined function is_voting_enabled() in /home/judgematch/judge-matching.com/public_html/osclass/oc-content/themes/osclasswizards/loop-user-alerts-list.php:187 Stack trace: #0 /home/judgematch/judge-matching.com/public_html/osclass/oc-includes/osclass/helpers/hDefines.php(238): require() #1 /home/judgematch/judge-matching.com/public_html/osclass/oc-content/themes/osclasswizards/user-alerts.php(71): osc_current_web_theme_path('loop-user-alert...') #2 /home/judgematch/judge-matching.com/public_html/osclass/oc-includes/osclass/helpers/hDefines.php(238): require('/home/judgematc...') #3 /home/judgematch/judge-matching.com/public_html/osclass/oc-includes/osclass/controller/user.php(288): osc_current_web_theme_path('user-alerts.php') #4 /home/judgematch/judge-matching.com/public_html/osclass/oc-includes/osclass/controller/user.php(99): CWebUser->doView('user-alerts.php') #5 /home/judgematch/judge-matching.com/public_html/osclass/index.php(91): CWebUser->doModel() #6 {main} thrown in /home/judgematch/judge-matching.com/public_html/osclass/oc-content/themes/osclasswizards/loop-user-alerts-list.php on line 187

該当のソースコード

<?php } ?>
</figure> </div> <div class="col-sm-8 col-md-8"> <div class="info"> <div class="detail_info"> <h4><a href="<?php echo osc_item_url() ; ?>" title="<?php echo osc_esc_html(osc_item_title()) ; ?>"><?php echo osc_item_title() ; ?></a></h4> <?php if( is_voting_enabled() ){ ?> <div class="rate_me rate_me_star"> <?php osclasswizards_item_star_rating( osc_item_id() ); ?> <span><?php echo osclasswizards_item_avg_rating( osc_item_id()) ; ?></span> </div> <?php } ?>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<?php } ?>
</figure> </div> <div class="col-sm-8 col-md-8"> <div class="info"> <div class="detail_info"> <h4><a href="<?php echo osc_premium_url() ; ?>" class="title" title="<?php echo osc_esc_html(osc_premium_title()) ; ?>"><?php echo osc_premium_title() ; ?></a></h4> <?php if( is_voting_enabled() ){ ?> <div class="rate_me rate_me_star"> <?php osclasswizards_item_star_rating( osc_itemosc_premium_id() ); ?> <span><?php echo osclasswizards_item_avg_rating( osc_premium_id()) ; ?></span> </div> <?php } ?>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<?php } ?>
</figure> </div> <div class="col-sm-8 col-md-8"> <div class="info"> <div class="detail_info"> <h4><a href="<?php echo osc_item_url() ; ?>" title="<?php echo osc_esc_html(osc_item_title()) ; ?>"><?php echo osc_item_title() ; ?></a></h4> <?php if( is_voting_enabled() ){ ?> <div class="rate_me rate_me_star"> <?php osclasswizards_item_star_rating( osc_item_id() ); ?> <span><?php echo osclasswizards_item_avg_rating( osc_item_id()) ; ?></span> </div> <?php } ?>

試したこと

補足情報(FW/ツールのバージョンなど)

osclass 374 を使っています。私phpに関してまったくの素人ですのでソースコードの切り抜き箇所があっているかわからないので、ご指摘いただけるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/04/04 07:40

osclassほぼ分からないのですが、is_voting_enabled()を呼び出しているところのコードはありますか?どの時点でこけているか追っていく必要があるように思います。
m.ts10806

2018/04/04 08:04

コードブロック ``` で囲っていただけると助かります。(分からなければ質問編集画面でコード該当架所を選択して<code>ボタンを押下し、後ろの```のあとに改行を入れてください)
guest

回答1

0

ベストアンサー

エラーは「is_voting_enabled()という関数は定義されていません」ということで、
参照しようとしている機能が何らかの理由で読み込めていないことをさしています。
オープンソースのシステムなのでかなり膨大な量のソースがあり、複雑に絡み合っているので、
全て見切るのは熟練者でも難しいかと思います。


※※いずれにしても現在の状態で全てバックアップをとってから行ってください

まずは、osclass自体を最新化してみてください。
何かのアップデートの際に不要な記述が残ってしまったり、修正が残ってしまったのかもしれません。
最新化されているのであれば、少し前のバージョンに戻すとか。


他に、何か糸口に成るものはないか、少し探してみました。

これで解決するかは分かりませんが、

osclassのフォーラムです。
どうやらis_voting_enabled()は投票関係の機能を呼び出しているようです。
最初の回答者は「利用しないので全部コメントアウトした」というような内容の書き込みをしています。
機能自体の利用がないのであれば、記述を削除してもいいかもしれません。

下記がセットになっているようです。

<?php if( is_voting_enabled() ){ ?> ~~~省略 <?php } ?>

この記述と中の記述も含めて、削除、ですね。

投稿2018/04/04 08:20

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juzujunretsu

2018/04/04 11:28

回答ありがとうございます。この方法を試したところエラーメッセージは消えましたが登録ユーザーにemailは送信されませんでした。 私の目的としましては登録ユーザーにアラートメールを送信することですので、引き続きお力添えをよろしくお願いいたします。
m.ts10806

2018/04/04 21:19

必要な記述まで削ってしまっていませんかね・・・? 質問にあるコードのis_voting_enabled()の関係個所にはメールを送信しそうな記述がないように思えるので影響はないように見えますが。。。
juzujunretsu

2018/04/05 06:38

<?php if( 1==1) { //is_voting_enabled() ){ ?> これが3か所あったのでそれをすべてと、 <?php //osclasswizards_item_star_rating( osc_item_id() ); ?> <span><?php //echo osclasswizards_item_avg_rating( osc_item_id()) ; ?></span> </div> これを削りました。 元記事に書いてあった箇所をすべて削ったのですがそれがいけなかったのでしょうか・・・
m.ts10806

2018/04/05 06:46

かもしれませんね。 一気に全てではなく1つずつ削っていった方が良いかもしれません。
juzujunretsu

2018/04/05 06:49

ありがとうございます。試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問