LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

Re: jQueryライブラリーの共通規格preload on XOOPS Cube Legacy 2.1

投稿ツリー


このトピックの投稿一覧へ

domifara

なし Re: jQueryライブラリーの共通規格preload on XOOPS Cube Legacy 2.1

msg# 1.1.1.1
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011/4/28 5:39 | 最終変更
domifara  Ensign   投稿数: 300
モジュールの利用する場合は、
前述のスレッドの、
preloadだとたとえばこのページ
だけこのjsを上げるなんてのが面倒だけど

XCL2.2と同様に、ソース内の必要なとき
		$root = XCube_Root::getSingleton();
		$jQuery = $root->mContext->getAttribute('headerScript');

			$jQuery->addLibrary('/modules/'.$mydirname.'/ckeditor/ckeditor.js');
			$jQuery->addLibrary('/modules/'.$mydirname.'/ckeditor/adapters/jquery.js');

略 なんたら

と利用したいのだけど

最後の最後に動くようにするには
どうすればいいのかな、わかんない。

かなり無理して、こんなのでどうでしょう

preload/Jquery.class.php

<?php
/**
 * A simple description for this script
 *
 * PHP Version 5.2.4 or Upper version
 *
 * @package    Jquery
 * @author     Hidehito NOZAWA aka Suin <http://suin.asia/> ,remodeling version domifara
 * @copyright  2010 Hidehito NOZAWA
 * @license    http://www.gnu.org/licenses/gpl-2.0.html GNU GPL v2 or later
 *
*************
XOOPS_ROOT_PATH.'/site_custom.ini.php'
*************
[jQuery]
usePrototype=0
;prototypeUrl= url of prototype.js library file
;funcNamePrefix=j
;GoogleApiKey=
;MainVersion=1 or url of jQuery Main library file
;UIVersion=1 or url of jQuery UI library file
;DefaultStylesheet = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/smoothness/jquery-ui.css';
;feed_url = url of RSS feed

*/

if ( !defined('XOOPS_ROOT_PATH') ) exit;

class Jquery extends XCube_ActionFilter
{
	function preBlockFilter()
	{
		if ( !preg_match('/XOOPS Cube Legacy 2\.1/', XOOPS_VERSION) ) return;

		$jQuery = new Jquery_HeaderScript();
		$this->mRoot->mContext->setAttribute('headerScript',$jQuery);
		XCube_DelegateUtils::call('Site.JQuery.AddFunction', new XCube_Ref($jQuery));
	}

	function postFilter()
	{
		if ( !preg_match('/XOOPS Cube Legacy 2\.1/', XOOPS_VERSION) ) return;

		$jQuery = $this->mRoot->mContext->getAttribute('headerScript');
		XCube_DelegateUtils::call('Site.JQuery.AddFunction', new XCube_Ref($jQuery));
		$this->mRoot->mDelegateManager->add('Legacy_RenderSystem.BeginRender', array(&$this, 'hook'));
	}
	function hook(&$xoopsTpl)
	{
		if (array_key_exists('xoops_module_header',$xoopsTpl->_tpl_vars) || basename(dirname($_SERVER['SCRIPT_FILENAME'])) == basename(XOOPS_ROOT_PATH)  ) {
			if (!defined('_JQUERY_PEROLAD_LOADED')) {
				$jQuery = $this->mRoot->mContext->getAttribute('headerScript');
				$moduleHeader = $xoopsTpl->get_template_vars('xoops_module_header');
				$moduleHeader =  $jQuery->createLibraryTag() . $moduleHeader . $jQuery->createOnloadFunctionTag();
				$xoopsTpl->assign('xoops_module_header', $moduleHeader);
				define('_JQUERY_PEROLAD_LOADED', 1);
			}
		}
	}
}

class Jquery_HeaderScript
{
以下前レスと同じなので省略

 Jquery.class.php.zip  4KB 4/29
投票数:5 平均点:10.00

  条件検索へ


Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities