2

Fivestar モジュールをロードして、選択したノードの評価ウィジェットを外部の php ファイルに表示しようとしています。ページに表示される評価ウィジェットを取得しましたが、機能が低下したバージョンのウィジェット (非 JavaScript、ドロップダウン ウィジェット、および [評価] ボタン) のみが表示されます。ページのソース コードを調べましたが、fivestar モジュールの JavaScript が読み込まれませんでした。 . 次の関数を使用して JavaScript を読み込もうとしましたが、うまくいきませんでした:

Fivestar_add_js(); $path = drupal_get_path('module','fivestar'); drupal_add_js($path.'/js/fivestar.js', 'インライン', 'フッター');

php ファイル内のコードは次のとおりです。

    //require the bootstrap include
    require_once 'includes/bootstrap.inc';

    //Load Drupal
    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

    fivestar_add_css();

    // I have used one of the following two functions one at a time to test.
    fivestar_add_js();
    $path = drupal_get_path('module','fivestar');
    drupal_add_js($path.'/js/fivestar.js', 'inline', 'footer');

    $book = $_GET["book"];
    $chap = $_GET["chap"];
    $prob = $_GET["prob"];

    $string = $book.'/'.$chap.'/'.$prob;
    $query = "SELECT ctcr.nid FROM content_type_comments_ratings AS ctcr WHERE ctcr.field_problem_value = '".$string."'";
    $result=db_query($query);
    $row = db_fetch_array($result);
    if(isset($row['nid']))
    {
        $nid = $row['nid'];
        node_load(FALSE, NULL, TRUE);
        $fivestar = node_load($nid, NULL, TRUE);

        if (function_exists('fivestar_widget_form')) print fivestar_widget_form($fivestar);
    }

ヒントを教えていただけるか、ウェブ上の読み物を教えていただければ幸いです。事前にどうもありがとうございました。

4

1 に答える 1

3

これらすべてを「外部」ページ/ファイルで行うことにより、Drupal テーマ システムを回避します - drupal_add_js()(そしてfivestar_add_js()、最終的にそれを使用しているだけなので) スクリプト タグ自体を出力せず、それらが含まれていることを確認するだけです。の$scripts変数page.tpl.php。その後、その変数の内容を出力します。ページ テンプレートを使用しないため、スクリプト タグは取得されません。

print drupal_get_js();外部ファイルでa を実行して、簡単な修正として追加されたスクリプトを出力することもできますがdrupal_add_js()、これにより、デフォルトの drupal js ファイルもすべて出力されることに注意してください。ファイブスター、例えばjqueryによる)。または、必要なスクリプト タグを自分で作成する必要があります。

何を読むべきかについてのヒントについては、特定の何かを示すのは難しいですが、一般的なテーマシステムについて読みたいと思うかもしれません.

于 2010-09-27T09:49:35.613 に答える