clearCacheについて

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

clearCacheについて

投稿記事by masco » 2015年5月09日(土) 16:54

$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
管理人
記事: 2875
登録日時: 2009年7月29日(水) 02:50

Re: clearCacheについて

投稿記事by yama » 2015年5月09日(土) 20:28

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

Re: sendmailについて

投稿記事by masco » 2015年5月12日(火) 14:18

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
管理人
記事: 2875
登録日時: 2009年7月29日(水) 02:50

Re: clearCacheについて

投稿記事by yama » 2015年5月13日(水) 10:29

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

Re: clearCacheについて

投稿記事by masco » 2015年5月13日(水) 13:54

yamaさま

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

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

Re: clearCacheについて

投稿記事by masco » 2015年5月21日(木) 09:07

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

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

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

getExtention

ですが綴りとしては

getExtension

ではないでしょうか?

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

Re: clearCacheについて

投稿記事by yama » 2015年5月21日(木) 19:23

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