2017-01-23 8 views
0

私にはほとんど知識がありません。私は何か間違っているのは分かっているけど、何?Joomlaメンバー関数への呼び出しget()on null

Joomlaマスターブートストラップテンプレートから自分のJoomlaテンプレートにsassコンパイラを追加します。それはうまくいくが、うまくいかない。私はバックエンドでそれをオンまたはオフにすることはできません。私はparams.phpが、/functions/tpl-init.phpを持っていない私のテンプレートで

include 'includes/params.php'; 
if ($params->get('compile_sass', '0') === '1') { 
    require_once "includes/sass.php"; 
} 

: Masterbootstrapのコードはこれです。変数$ compile_sassをそこに追加しました。私のコードは次のようになります:

require_once __DIR__ . '/functions/tpl-init.php'; 
if ($params->get('compile_sass', '0') === '1') { 
    require_once "includes/html/sass.php"; 
} 

動作しません。私はエラーを取得する:

ヌル

上のメンバ関数のget()の呼び出しだから私はにこれを変更:動作しますが、今コンパイラが永続的にオンになっている

require_once __DIR__ . '/functions/tpl-init.php'; 
require_once "includes/html/sass.php"; 

これを修正するにはどうすればよいですか?テンプレート

$app = JFactory::getApplication('site'); 
$temp = $app->getTemplate(true); 
$param = $temp->params->get('compile_sass', '0'); 

外部からこの

テンプレートパラメータはMasterbootstrapテンプレートをアクティブにする必要があります覚えていますかする必要があるテンプレート外部からテンプレートのparamsを取得するために

答えて

0

。あなたはこの

$db = JFactory::getDbo(); 
$query = $db->getQuery(true); 
$query ->select('params') 
     ->from('#__template_styles') 
     ->where('`template` = ' . $db->q('masterbootstrap')) // Check Spelling of template 
     ->where('client_id = 0'); // client_id = 0 for Site and client_id = 1 for Admin 
$db->setQuery($query); 
$params = json_decode($db->loadResult()); 
echo $params->compile_sass; 

ベター行うために必要なすべてのテンプレートのparamを取得するには

は、あなたのtemplateDetails.xmlファイルを使用してではなく、外部のテンプレートに応じて、独自のテンプレートに似たのparamを作成することです。

0

私は友人から助けを得ました。彼は1分でそれを解決した。それはとてもシンプルです...解決策を見つけた後で通常はあります:

require_once __DIR__ . '/functions/tpl-init.php'; 
    if ($compile_sass === '1') 
    { 
    require_once "includes/html/sass.php"; 
    } 
関連する問題