CMS外での開発


7

質問があります。すでに構築されたサイトがあります。CMSにはJoomlaを使用し、「Diametric」というRocketThemeのテーマを使用しています。ページの作成を検討しており、そのスタイリングはテンプレートの範囲からかなり外れてしまいます。コード化されたHTML / CSSページを開発して、たとえばBootstrap Frameworkを使用して、現在のドメインのファイルパス内に保存することは可能ですか?私が理解しているように、それはCMS外のページですが、まだドメイン内です。これを行う際に何か見落としていますか?Joomlaから問題のある動作を期待できますか?

回答:


8

index.phpなどのフォルダーのファイルで、\joomlaroot\yourfolder\index.phpJoomlaサイトのフレームワークのみをロードし、次のコードを使用します。

それが完了すると、「すべてJoomla」に完全にアクセスできるようになります。

<?php
if (!defined('_JEXEC')) {
    define( '_JEXEC', 1 );
    define('JPATH_BASE', dirname(dirname(__FILE__)));
    require_once ( JPATH_BASE .'../includes/defines.php' );
    require_once ( JPATH_BASE .'../includes/framework.php' );
    defined('DS') or define('DS', DIRECTORY_SEPARATOR);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <title>My Outside-of-Joomla Page</title>
    </head>
    <body>
        <?php
        $user = jFactory::getUser();
        if($user->id){
            echo '<h1>Hello '.$user->name.'</h1>';
        }else{
            echo 'You are not logged into Joomla';
        }
        ?>
    </body>
</html>

また、\cliフォルダ内には、そのためのフレームワークだけをロードするサンプルがあります。「cli」を使用します。Joomlaサイトでスケジュールされたタスクなどを実行するのに非常に便利です。


これが正確に何をしているのかを理解するのに少し苦労しています。少し分解してくれませんか。
パラノイドペンギン2014

完全に機能するindex.phpファイルを含めるように回答を編集しました。つまり、フレームワークがロードされた状態で、Joomla CMSを使用しているかのようにすべてに完全にアクセスできますが、いずれも必要ありません。データベースにアクセスしている間、必要に応じてJoomlaから他のほとんどの機能を使用して、設計とコードのすべてを組み込むことができます。
GDP、

1
うわー、これは本当に素晴らしいです、これがこの方法でできるとは思いもしませんでした。これはドキュメントからですか?検索時にこの情報を見つけることができませんでした。
パラノイドペンギン2014

そうですが、すべてのバージョンのドキュメントなどで迷子になります
GDP

このスクリプトをフォローしている人にとって、ディレクトリパスに問題があります。インクルードパスの前にある2つのドット「..」を削除するか、「define( 'DS'、DIRECTORY_SEPARATOR);」を配置できます。JPATH_BASEが定義され、これらのコードが使用された後require_once(JPATH_BASE .DS.'includes'.DS.'defines.php '); require_once(JPATH_BASE .DS.'includes'.DS.'framework.php ');
David Addoteye、2015年

3

あなたはできる。たとえば、Akeeba Admin Tools Proを使用する場合、いくつかの例外を設ける必要がありますが、通常、Joomlaは、使用していないフォルダーやファイルに何があるかを気にしません。

しかし、おそらくそうすべきではありません。メニュー項目ごとにアクティブなテンプレートを割り当てることができます。したがって、単に「サブサイト」に、希望どおりのテンプレートを割り当てます。私はあなたのニーズに合ったシンプルなテンプレートを見つけること、あるいは作ることさえ難しいと思います。

また、RocketThemeテンプレートを使用すると、設定を変更して「テンプレートの上書き」を比較的簡単に作成し、メニュー項目に割り当てることができます。基本的に、テンプレートから「コピーとして保存」またはテンプレートマネージャから「複製」を使用します。


@ ville-niemeテンプレートのオーバーライドに興味がありますが、特定のページの特定のセクションをスタイリングするだけです。テーブルを囲みたい場合は、全体的な<div class = "special-table>で言ってから、次のスタイリングにオーバーライドを割り当てます。zurb.com / playground / responsive-tables どこでこれを実行しますか?カスタムJSも含めたいのは問題ですか?私はコーディングにまったく慣れていませんが、JoomlaまたはWordpressテンプレートをデザインしたことはありません
ParanoidPenguin

@ParanoidPenguinいいえ、CSSまたはJSをJoomlaページに追加することはそれほど難しくありません。実はいろいろなやり方があるので、具体的なアドバイスは難しいです。テンプレートでそれを行う必要はありません。単一のページを想定している場合、つまり、これを他の場所で行う必要がない場合は、ページに割り当てられたカスタムHTMLモジュールを作成し、非wysiwygモードでjsとcssをそのページに貼り付けるだけです。または、より多くのスタイルで実行できる多くの拡張機能のいずれかを使用できます。または、テンプレートに追加します。または...あなたはアイデアを得ます。エディターでクラス属性を追加できます。
Ville Niemi 2014

...これはかなり基本的なことかもしれないので、私の熱意は少し大きいかもしれませんが、あなたはちょうど私の夜を作ったようなものです。今夜これを試してみると、うまくいけば上品なテーブルができあがります。ご協力ありがとうございます。
パラノイドペンギン2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.