jQueryのバージョンを対象のプラグインに合わせて切り替えるのが筋だと思うのですが、
逆に面倒になったのでjparallaxをjquery1.7.1に対応させました。
簡単です。
マウス情報の取得の部分
jQuery().mousemove(function(mouse)
を
jQuery('*').mousemove(function(mouse)
にするだけです。
画面全部のマウス情報を拾いますけど、そこは好きにしてください。
あと、よくわかんないですがやっぱりなんか範囲外にあるマウスが拾えないことがあるので
オプションで
mouseActiveOutside:true
にするも、ソースコード内では使ってないように見えたので
そのすぐ階下のコード
if(mouseport.xinside&&mouseport.yinside&&!mouseport.active)
を
if(settings.mouseActiveOutside||(mouseport.xinside&&mouseport.yinside&&!mouseport.active))
って感じで
settings.mouseActiveOutside
がtrueの際は常に通るようにすればイメージ通りな気がします。
以上
2012年4月9日月曜日
2012年3月19日月曜日
sfTwigPluginのぐぬぬぬぬ
sfTwigPluginを導入するとmodule.ymlを見て
ビューをsfTwigPartialViewとかsfPHPとか切り替わる仕組みが
あるわけですが
これモジュールを超えてパーシャルファイルを呼び出すと
{{ 'module/list'|include_partial() }}
とか殺るんですよね?
これおもいっきり動作しないわけでソース見て動作見ると
PartialHelper.phpとかにあったりするわけですが
get_partial()の中で
$class = sfConfig::get('mod_'.strtolower($moduleName).'_partial_view_class', 'sf').'PartialView';
$view = new $class($context, $moduleName, $actionName, '');
こんなんやってまして、
'mod_content_view_class' => string 'sfTwig' (length=6)
'mod_content_partial_view_class' => string 'sfTwig' (length=6)
こんなんなってんですよ。
こっちが欲しいのは
'mod_module_view_class' => string 'sfTwig' (length=6)
'mod_ module_partial_view_class' => string 'sfTwig' (length=6)
なんすよ。
自分のルートしかコンフィグ持ってないようでモジュールを超えると手に入らず
おもいっきりデフォルトのsfPHPに行っちゃうわけですよ。
仕方ないからTwigを必ず使うことにして
$class = 'sfTwigPartialView';
ビューをsfTwigPartialViewとかsfPHPとか切り替わる仕組みが
あるわけですが
これモジュールを超えてパーシャルファイルを呼び出すと
{{ 'module/list'|include_partial() }}
とか殺るんですよね?
これおもいっきり動作しないわけでソース見て動作見ると
PartialHelper.phpとかにあったりするわけですが
get_partial()の中で
$class = sfConfig::get('mod_'.strtolower($moduleName).'_partial_view_class', 'sf').'PartialView';
$view = new $class($context, $moduleName, $actionName, '');
こんなんやってまして、
'mod_content_view_class' => string 'sfTwig' (length=6)
'mod_content_partial_view_class' => string 'sfTwig' (length=6)
こんなんなってんですよ。
こっちが欲しいのは
'mod_module_view_class' => string 'sfTwig' (length=6)
'mod_ module_partial_view_class' => string 'sfTwig' (length=6)
なんすよ。
自分のルートしかコンフィグ持ってないようでモジュールを超えると手に入らず
おもいっきりデフォルトのsfPHPに行っちゃうわけですよ。
仕方ないからTwigを必ず使うことにして
$class = 'sfTwigPartialView';
ってしちゃいましたよ。
そしたらbackendでcacheが自動的にできる際にphpしかつくらねーわけで
そのせいでビューがTwigに対応してない。
backendのときはしょうがないのでsfPHPにする必要が出た。
if('frontend' == sfConfig::get('sf_app'))
{
$class = 'sfTwigPartialView';
}
これで対処とか、もうやってられねー。
つかTwig使う利点に出くわせなくなってきたよ。。。
2012年3月13日火曜日
symfonyでjQueryによるAjax。 sfDoctrinePagerに対応とか自分自身を書き換える系
JobeetでJQueryを使ったAjaxの解説があるのだけれども、状況が特殊すぎてさっぱりわからなく、
自分で応用が効かなかった。
jQueryの記事をいろいろ見てやっと望みどおりの動作になりました。
ぶっちゃけ、Web開発経験ないので本当に辛い気がする。。。
リンククリックでAjaxを走らせるには
って感じになるんじゃないでしょうか。
まず、リンクをクリックするとそもそも、リンク先に飛んじゃうので
それを殺すのにreturn falseしてやる必要がある。
loadですげ変わる部分自体が
<div id=xxx>
<a href='search?page=x'>next</a>
って感じで<div id=xxx>自体を生成しなおすので
$('#xxx a').click(function()
でやると新しくすげ替えたタグを見つけられなくて通常のリンク処理が走ってしまう。
そこで、click関数では無くlive('click')にてイベントを処理すると行けるもんですね。
さらにloadにて投げるパラメータ?page=xはクリックした<a>タグの中の
href=に書いて有るためパラメータを自力で取得する必要がある。
href自体は
$(this).attr('href')で取れるのであとはパラメータを分解出来ればいいのだけれども
ぐぐったら現在のURLを分解するgetUrlVars()っつーサンプルがあったので改造して
引数でurlをわたして分解するように改造。(どう考えてもこっちのほうが汎用性あるとおもうんだけどな。。。)
とかするとはれて2と言う値がとれるようです。
でloadのパラメータに{page: page}とかって付け加えればOK。
この書き方はTwigでも同じなのでちょっと便利。
あとはpagerを含めてそのまんま処理すればOK。
例のaction.class.php内で
とやって
searchSuccess.phpでは
<div id="yyy">
{{ 'job/list'|include_partial({pager: pager}) }}
</div>
とかyyy付けとけばそこ全体が変わると。
_listのページャ部分には
<div id="xxx">
<a href="<?php echo url_for('category', $category) ?>?page=1">
<img src="/images/first.png" alt="First page" title="First page" />
</a>
といった感じで<div id="xxx">で囲っとけばページャだけにイベントが発生する仕組みと。
ぶっちゃけ、自分の処理はcategoryをモジュールで分けないで?category=hogeで処理するようにしているので、jobeetの処理まんまでは無いけれども、つまりは、そういった感じでやればいけるって話です。
自分で応用が効かなかった。
jQueryの記事をいろいろ見てやっと望みどおりの動作になりました。
ぶっちゃけ、Web開発経験ないので本当に辛い気がする。。。
リンククリックでAjaxを走らせるには
$(document).ready(function() { $('#xxx a').live("click", function() { var page = getUrlVars($(this).attr('href'))['page']; $('#yyy').load( "search", {page: page} ); return false; }); });
って感じになるんじゃないでしょうか。
まず、リンクをクリックするとそもそも、リンク先に飛んじゃうので
それを殺すのにreturn falseしてやる必要がある。
loadですげ変わる部分自体が
<div id=xxx>
<a href='search?page=x'>next</a>
って感じで<div id=xxx>自体を生成しなおすので
$('#xxx a').click(function()
でやると新しくすげ替えたタグを見つけられなくて通常のリンク処理が走ってしまう。
そこで、click関数では無くlive('click')にてイベントを処理すると行けるもんですね。
さらにloadにて投げるパラメータ?page=xはクリックした<a>タグの中の
href=に書いて有るためパラメータを自力で取得する必要がある。
href自体は
$(this).attr('href')で取れるのであとはパラメータを分解出来ればいいのだけれども
ぐぐったら現在のURLを分解するgetUrlVars()っつーサンプルがあったので改造して
引数でurlをわたして分解するように改造。(どう考えてもこっちのほうが汎用性あるとおもうんだけどな。。。)
function getUrlVars($url) { var vars = [], hash; var hashes = $url.slice($url.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } getUrlVars('http://www.jobeet.com/search?page=2')['page'];
とかするとはれて2と言う値がとれるようです。
でloadのパラメータに{page: page}とかって付け加えればOK。
この書き方はTwigでも同じなのでちょっと便利。
あとはpagerを含めてそのまんま処理すればOK。
例のaction.class.php内で
if ($request->isXmlHttpRequest()) { return $this->renderPartial('job/list', array( 'pager' => $this->pager )); }
とやって
searchSuccess.phpでは
<div id="yyy">
{{ 'job/list'|include_partial({pager: pager}) }}
</div>
とかyyy付けとけばそこ全体が変わると。
_listのページャ部分には
<div id="xxx">
<a href="<?php echo url_for('category', $category) ?>?page=1">
<img src="/images/first.png" alt="First page" title="First page" />
</a>
といった感じで<div id="xxx">で囲っとけばページャだけにイベントが発生する仕組みと。
ぶっちゃけ、自分の処理はcategoryをモジュールで分けないで?category=hogeで処理するようにしているので、jobeetの処理まんまでは無いけれども、つまりは、そういった感じでやればいけるって話です。
2012年3月6日火曜日
sfTwigPluginに新しい関数を追加
plugins\sfTwigPlugin\lib\view\sfTwigView.class.php
にある
public function configure()
{
parent::configure();
....
$this->twig->addFunction('test', new Twig_Function_Function('test'));
$this->twig->addFilter('test', new Twig_Filter_Function('test'));
にある
class sfTwigView extends sfPHPView
{
....
{
parent::configure();
....
$this->twig->addFunction('test', new Twig_Function_Function('test'));
function test(){echo 'test function is called';}
とすれば
<p> {{ test() }} </p>
で
test function is called
と表示される
ちなみに
とやると
<p> {{ ''|test() }} </p>
と呼べる。
果たして、これを使ってPHPの組み込み関数を呼べるように出来るのか
2012年3月2日金曜日
プログラムの質問に「そもそも〇〇が問題だ」と答える意図
よく質問箱などで質問者に対して、
結構具体的なPGの質問に対して
「そもそもなぜそれが必要か考えなければいけません」って発言をみるんだが、
ちょっとした大きなお世話だ。(ちょっとと大きなが面白いところです)
問題をすべて解決して欲しいって頼んでいるわけではないのだから、
その質問に答えられる人が答えてあげればいいじゃないか。
回答する際に、何か間違ったことを言ったらいけないって思っているんだろうか。
根本的に問題点を考える事はとても重要で、そのアドバイスは正論だと思うけど、
おおきなお世話だ。
質問サイトのstack over flowはとても良いシステムだと思うよ。
「いいね!」 と 「いらね」 が選べるので、こう言うのは無視かいらねを選択できるわ。
結構具体的なPGの質問に対して
「そもそもなぜそれが必要か考えなければいけません」って発言をみるんだが、
ちょっとした大きなお世話だ。(ちょっとと大きなが面白いところです)
問題をすべて解決して欲しいって頼んでいるわけではないのだから、
その質問に答えられる人が答えてあげればいいじゃないか。
回答する際に、何か間違ったことを言ったらいけないって思っているんだろうか。
根本的に問題点を考える事はとても重要で、そのアドバイスは正論だと思うけど、
おおきなお世話だ。
質問サイトのstack over flowはとても良いシステムだと思うよ。
「いいね!」 と 「いらね」 が選べるので、こう言うのは無視かいらねを選択できるわ。
2012年2月24日金曜日
sfTwigPluginの導入検証
symfony1.4を使っているのでテンプレートエンジンはphpのままなのですが、
Twigと言うのを導入検証してみました。
http://twig.sensiolabs.org/
プラグインは
https://github.com/henrikbjorn/sfTwigPlugin
にあり、docフォルダのインストレーションを参考にすればいけます。
ドキュメントにはデフォルトのlayoutを殺すように書いてありますが、
これは残したままでもよくて
layout.html
xxxSuccess.html
を新たに作成すればいいようです。
layout.hrml移行の際におもいっきり
<?php include_http_metas() ?>
と言うのが出てくるのでこれは
{{ ''|include_http_metas() }}
といった感じで置き換えます。
ちなみに
http://d.hatena.ne.jp/cocoiti/20091230
こちらを参考にさせていただいておりますので、
こちらを見れば全部わかると思います。
ここで、問題が出たのですが、
<body>
ぼくはまちちゃん
{{ sf_content }}
</body>
と記述すると
<p>まで表示されてhtmlのタグがエスケープされてしまいます。
これで回避することが出来たのですがいちいちめんどくさかったので
new Twig_Extension_Escaper(false)
にしてしまったところエスケープがされなくなりましたがそれはそれで問題なので
必要なところに{{ name|e }}とエスケープを明示的に指示することになりました。
従来のsfPHPViewの感覚で使っては合わない形なのでしょうか。
従来のlayout.php
xxxxSuccess.php
の感じで適応していのですが、無理な相談なのでしょうか。
何かいい解決方法を知っている方がいたら教えてもらえないでしょうか。
ちなみに当方html php symfonyを最近いきなりまとめて始めたので
なにがなんだかさっぱりです。。。
Twigと言うのを導入検証してみました。
http://twig.sensiolabs.org/
プラグインは
https://github.com/henrikbjorn/sfTwigPlugin
にあり、docフォルダのインストレーションを参考にすればいけます。
ドキュメントにはデフォルトのlayoutを殺すように書いてありますが、
これは残したままでもよくて
layout.html
xxxSuccess.html
を新たに作成すればいいようです。
layout.hrml移行の際におもいっきり
<?php include_http_metas() ?>
と言うのが出てくるのでこれは
{{ ''|include_http_metas() }}
といった感じで置き換えます。
ちなみに
http://d.hatena.ne.jp/cocoiti/20091230
こちらを参考にさせていただいておりますので、
こちらを見れば全部わかると思います。
ここで、問題が出たのですが、
<body>
ぼくはまちちゃん
{{ sf_content }}
</body>
とすると
xxxSuccess.html
に
<p>
こんにちは! こんにちは!</p>
と記述すると
<p>まで表示されてhtmlのタグがエスケープされてしまいます。
{% autoescape true %} Everything will be automatically escaped in this block {% endautoescape %}
これで回避することが出来たのですがいちいちめんどくさかったので
new Twig_Extension_Escaper(false)
にしてしまったところエスケープがされなくなりましたがそれはそれで問題なので
必要なところに{{ name|e }}とエスケープを明示的に指示することになりました。
従来のsfPHPViewの感覚で使っては合わない形なのでしょうか。
従来のlayout.php
xxxxSuccess.php
の感じで適応していのですが、無理な相談なのでしょうか。
何かいい解決方法を知っている方がいたら教えてもらえないでしょうか。
ちなみに当方html php symfonyを最近いきなりまとめて始めたので
なにがなんだかさっぱりです。。。
2012年2月16日木曜日
Developers Game Party
http://kokucheese.com/event/index/27087/
ゲーム開発者がゲームを持ち寄り(複数本でも可)
みんなでゲームをプレイしながらワイワイと話し合う。
要はゲーム大会です。
参加者は「ゲーム業界人」と言う事ですので
自分が作ったゲームを持ってきて、宣伝して頂いても構いません!
むしろ…
俺の作ったゲームのココを見てくれ!
とアピールして頂いた方が盛り上がります!
もちろん、普通にゲームしたい人も歓迎いたします。
ゲーム開発者がゲームを持ち寄り(複数本でも可)
みんなでゲームをプレイしながらワイワイと話し合う。
要はゲーム大会です。
参加者は「ゲーム業界人」と言う事ですので
自分が作ったゲームを持ってきて、宣伝して頂いても構いません!
むしろ…
俺の作ったゲームのココを見てくれ!
とアピールして頂いた方が盛り上がります!
もちろん、普通にゲームしたい人も歓迎いたします。
是非
登録:
投稿 (Atom)