ページ 11

clearCacheについて

Posted: 2015年5月09日(土) 16:54
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);
			}

Re: clearCacheについて

Posted: 2015年5月09日(土) 20:28
by yama
https://github.com/modxcms-jp/evolution ... dde4e38d12
ありがとうございます、修正しました

Re: sendmailについて

Posted: 2015年5月12日(火) 14:18
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;
				}
			}
		}

Re: clearCacheについて

Posted: 2015年5月13日(水) 10:29
by yama
厳密には考えてなかったですが、$modx->sendmail($params=array(), $msg='')が正式な書式で、他は裏ワザ的な扱いという感じになります。開発上の動作確認などのために、自分は裏ワザ的な省略指定を頻繁に使います。

Re: clearCacheについて

Posted: 2015年5月13日(水) 13:54
by masco
yamaさま

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

ありがとうございます。

Re: clearCacheについて

Posted: 2015年5月21日(木) 09:07
by masco
新しくトピックを立てるほどでもないので。

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

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

getExtention

ですが綴りとしては

getExtension

ではないでしょうか?

機能は問題ないです。

Re: clearCacheについて

Posted: 2015年5月21日(木) 19:23
by yama
ありがとうございます、修正しますね