clearCacheについて

質問全般・改善要望
返信する
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

clearCacheについて

投稿記事 by masco »

$modx->clearCacheでリソースIDを指定すると、そのリソースのキャッシュを削除できるはずですができませんでした。

$page_cache_pathが見つからないようでしたので下記のように変更すると動きました。

sub.document.parser.class.inc.phpの200行目あたりです。


変更前

コード: 全て選択

$_ = array('pages','pc','smartphone','tablet','mobile');
foreach($_ as $uaType)
			{
        		if(is_file(MODX_BASE_PATH . "assets/cache/{$uaType}/{$filename}.pageCache.php"))
        			unlink($page_cache_path);
			}
変更後

コード: 全て選択

$_ = array('pages','pc','smartphone','tablet','mobile');
foreach($_ as $uaType)
			{
			$page_cache_path = MODX_BASE_PATH . "assets/cache/{$uaType}/{$filename}.pageCache.php";
        		if(is_file($page_cache_path))
        			unlink($page_cache_path);
			}
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: clearCacheについて

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... dde4e38d12
ありがとうございます、修正しました
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

Re: sendmailについて

投稿記事 by masco »

yamaさま

clearCacheの件ありがとうございます。

APIのチートシートを作ろうと思い、現在sub.document.parser.class.inc.phpを調べています。

sendmailの挙動ですが現在下記のもので送信可能になっています。
$modx->sendmail($params=array(), $msg='');
$modx->sendmail('example@example.com', $msg='');
$modx->sendmail('subject', $msg='');

しかしコードを見ていると6行目あたりから

コード: 全て選択

	function sendmail($params=array(), $msg='')
	{
		global $modx;
		if(isset($params) && is_string($params))
		{
			if(strpos($params,'=')===false)
			{
				if(strpos($params,'@')!==false) $p['to']	  = $params;
				else                            $p['subject'] = $params;
			}
			else
			{
				$params_array = explode(',',$params);
				foreach($params_array as $k=>$v)
				{
					$k = trim($k);
					$v = trim($v);
					$p[$k] = $v;
				}
			}
		}
このようにあるため、もしかしたら

$modx->sendmail('to=example1@example.com,subject=example,from=example2@example.com', $msg='');

といった記述でも送信可能なのでしょうか?

もし可能だと仮定して変更してみたところ下記のもので動きました。見当外れでしたらすみません。

コード: 全て選択

	function sendmail($params=array(), $msg='')
	{
		global $modx;
		if(isset($params) && is_string($params))
		{
			if(strpos($params,'=')===false)
			{
				if(strpos($params,'@')!==false) $p['to']	  = $params;
				else                            $p['subject'] = $params;
			}
			else
			{
				$params_array = explode(',',$params);
				foreach($params_array as $k=>$v)
				{
					$v = explode('=',$v);
					$v[0] = trim($v[0]);
					$v[1] = trim($v[1]);
					$p[$v[0]] = $v[1];
					//$k = trim($k);
					//$v = trim($v);
					//$p[$k] = $v;
				}
			}
		}
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: clearCacheについて

投稿記事 by yama »

厳密には考えてなかったですが、$modx->sendmail($params=array(), $msg='')が正式な書式で、他は裏ワザ的な扱いという感じになります。開発上の動作確認などのために、自分は裏ワザ的な省略指定を頻繁に使います。
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

Re: clearCacheについて

投稿記事 by masco »

yamaさま

こちらは裏技的な使い方になるのですね。

ありがとうございます。
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

Re: clearCacheについて

投稿記事 by masco »

新しくトピックを立てるほどでもないので。

document.parser.class.inc.phpの3301あたりと
sub.document.parser.class.inc.phpの1021あたりで

APIで拡張子を取得すると思われる

getExtention

ですが綴りとしては

getExtension

ではないでしょうか?

機能は問題ないです。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: clearCacheについて

投稿記事 by yama »

ありがとうございます、修正しますね
返信する