OpenPNE Issue Tracking System: チケット
http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2012-09-14T08:47:29Z
OpenPNE Issue Tracking System
Redmine
OpenPNE 3 - Bug(バグ) #3202 (Won't fix(対応せず)): ActivityDataTable::updateActivity() メソッドで画像付きのアクティビテ...
http://redmine.openpne.jp/issues/3202
2012-09-14T08:47:29Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>ActivityDataTable::updateActivity() メソッドには、オプションとして file_id を含む配列を渡すことで画像付きのアクティビティを作成する機能があるが、このオプションを使用すると下記のようなエラーが発生してしまう。</p>
<pre>
SQLSTATE[23000]: Integrity constraint violation: 19 activity_image.mime_type may not be NULL, referer: http://sns.localhost:18080/sqlite/
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="local-variable">$activityImage</span> = <span class="keyword">new</span> <span class="constant">ActivityImage</span>();
<span class="keyword">if</span> (<span class="predefined">isset</span>(<span class="local-variable">$image</span>[<span class="string"><span class="delimiter">'</span><span class="content">file_id</span><span class="delimiter">'</span></span>]))
{
<span class="local-variable">$activityImage</span>->setFileId(<span class="local-variable">$image</span>[<span class="string"><span class="delimiter">'</span><span class="content">file_id</span><span class="delimiter">'</span></span>]);
}
<span class="keyword">elseif</span> (<span class="predefined">isset</span>(<span class="local-variable">$image</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri</span><span class="delimiter">'</span></span>]) && <span class="predefined">isset</span>(<span class="local-variable">$image</span>[<span class="string"><span class="delimiter">'</span><span class="content">mime_type</span><span class="delimiter">'</span></span>]))
{
<span class="local-variable">$activityImage</span>->setUri(<span class="local-variable">$image</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri</span><span class="delimiter">'</span></span>]);
<span class="local-variable">$activityImage</span>->setMimeType(<span class="local-variable">$image</span>[<span class="string"><span class="delimiter">'</span><span class="content">mime_type</span><span class="delimiter">'</span></span>]);
}
</span></code></pre>
<p>ActivityDataTable::updateActivity() メソッド内の images オプションを扱う上記のコードで、file_id をオプションに指定した画像について activity_image.mime_type の値が設定されておらず、activity_image テーブルの NOT NULL 制約によってエラーが発生している。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>添付される画像の MIME タイプを file テーブルから取得し activity_image.mime_type にセットする。</p>
OpenPNE 3 - Enhancement(機能追加・改善) #3201 (Won't fix(対応せず)): activity/post.json の画像投稿機能をJavaScriptから...
http://redmine.openpne.jp/issues/3201
2012-09-14T07:10:58Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-概要"></a>
<h3 >Overview (概要)<a href="#Overview-概要" class="wiki-anchor">¶</a></h3>
<p>JSON API の activity/post.json で画像を含むアクティビティの投稿を行う場合、XHR ではファイルのアップロードを行うことが出来ないため iframe 要素を動的に作成してそこで API を呼ぶ必要がある (e.g. <a href="http://lagoscript.org/jquery/upload" class="external">jQuery.upload</a> )。</p>
<p>この方法で API を呼び出す場合はレスポンスの Content-Type が <code>application/json</code> となっていると、iframe 読み込み時にブラウザによるダウンロードダイアログが表示されたり、iframe 要素から取得できる contentWindow.document (または contentDocument) の内容に(ブラウザの拡張機能等によって整形された)HTMLタグが混入したりすることがあるため不都合となる。</p>
<p>このため、activity/post.json (及び、今後追加される画像アップロード機能を含んだAPI) については強制的に Content-Type を <code>text/html</code> にするオプションが必要である。</p>
<a name="Spec-仕様"></a>
<h3 >Spec (仕様)<a href="#Spec-仕様" class="wiki-anchor">¶</a></h3>
<p><code>forceHtml</code> パラメータを追加、forceHtml=1 の場合は Content-Type を <code>text/html</code> にする(レスポンス本文はそのまま)</p>
OpenPNE 3 - Bug(バグ) #3199 (Won't fix(対応せず)): OpenPNE.yml.sample に記述されているデフォルトの設定が OpenPNE.yml に記述...
http://redmine.openpne.jp/issues/3199
2012-09-11T09:33:35Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opProjectConfiguration::setOpenPNEConfiguration() メソッドにて、</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="local-variable">$path</span> = <span class="constant">OPENPNE3_CONFIG_DIR</span>.<span class="string"><span class="delimiter">'</span><span class="content">/OpenPNE.yml</span><span class="delimiter">'</span></span>;
<span class="local-variable">$config</span> = sfYaml::load(<span class="local-variable">$path</span>.<span class="string"><span class="delimiter">'</span><span class="content">.sample</span><span class="delimiter">'</span></span>);
<span class="keyword">if</span> (<span class="predefined">is_readable</span>(<span class="local-variable">$path</span>))
{
<span class="local-variable">$config</span> = <span class="predefined">array_merge</span>(<span class="local-variable">$config</span>, sfYaml::load(<span class="local-variable">$path</span>));
}
</span></code></pre>
<p>のように OpenPNE.yml.sample の設定を OpenPNE.yml とマージする箇所があるが、array_merge 関数を使用しているため多次元配列である OpenPNE.yml 内の設定を正しくマージできていない。結果として OpenPNE.yml.sample はデフォルト設定値として機能できていない。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p><del>array_merge の代わりに array_replace_recursive 関数を使用する。</del> (PHP5.3以前で使用不可)</p>
<p><code>sfToolkit::arrayDeepMerge()</code> メソッドを使用する。</p>
OpenPNE 3 - Bug(バグ) #3198 (Won't fix(対応せず)): opJsonApiActions 内で Content-Type の設定が2度呼び出されている
http://redmine.openpne.jp/issues/3198
2012-09-11T08:12:10Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opJsonApiActions クラス内で <code>$this->getResponse()->setContentType('application/json')</code> が execute() メソッドと renderJSON() メソッドで 2 度呼び出されている。また、これによって各 API のアクション内で Content-Type の設定を上書きすることが出来ない。</p>
<p>(現象補足)<br />apiを使用しているプラグインでは、使用しているjavascriptライブラリとの都合上、content-typeが「text/html」である必要があるものがあります。<br />(デフォルトでライブラリの中でstringをjsonオブジェクトに変換します。)<br />そのため、actionsのexecuteXxx()内でcontent-typeの書き換えを行っています。<br />その変更をopJsonApiActionsのrenderJSON()で「application/json」に再度置き換えられるために不具合発生となります。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>opJsonApiActions::renderJSON() メソッド内の setContentType の呼び出しが不要なため除去する。</p>
OpenPNE 3 - Bug(バグ) #3195 (Won't fix(対応せず)): ImageMagickによる画像生成に失敗する
http://redmine.openpne.jp/issues/3195
2012-09-11T04:59:27Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>OpenPNE.yml にて <code>use_imagemagick</code> を 1 または 2 に設定した場合、メンバーがアップロードした画像の表示に失敗する。</p>
<p>Apahceのエラーログには下記のようなエラーが出力される。</p>
<pre>
[Tue Sep 11 12:04:21 2012] [warn] [client 127.0.0.1] mod_fcgid: stderr: convert: unable to open image `/tmp/IGITF7GbcmB': No such file or directory @ error/blob.c/OpenBlob/2638.. convert: no decode delegate for this image format `/tmp/IGITF7GbcmB' @ error/constitute.c/ReadImage/544.. convert: no images defined `GIF:/home/upsilon/git/openpne3/sqlite/web/cache/img/gif/w120_h120/dc_3_f9d604c23c6725aad2f6dbfb8b2e9388c45b00ff_gif.gif' @ error/convert.c/ConvertImageCommand/3044., referer: http://sns.localhost:18080/sqlite/diary/4?comment_count=4
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="diff syntaxhl"><span class="CodeRay"><span class="line comment">diff --git a/lib/plugins/sfImageHandlerPlugin/lib/image/generator/sfImageGeneratorImageTransform.php b/lib/plugins/sfImageHandlerPlugin/lib/image/generator/sfImageGeneratorImageTransform.php</span>
<span class="line comment">index 4b442c9..b9fab74 100644</span>
<span class="line head"><span class="head">--- </span><span class="filename">a/lib/plugins/sfImageHandlerPlugin/lib/image/generator/sfImageGeneratorImageTransform.php</span></span>
<span class="line head"><span class="head">+++ </span><span class="filename">b/lib/plugins/sfImageHandlerPlugin/lib/image/generator/sfImageGeneratorImageTransform.php</span></span>
<span class="change"><span class="change">@@</span> -64,7 +81,16 <span class="change">@@</span></span> <span class="keyword">abstract</span> <span class="keyword">class</span> <span class="class">sfImageGeneratorImageTransform</span> <span class="keyword">extends</span> sfImageGenerator
<span class="keyword">if</span> (<span class="local-variable">$this</span>->width && <span class="local-variable">$this</span>->height)
{
<span class="line insert"><span class="insert">+</span> <span class="local-variable">$this</span>->transform->crop(<span class="local-variable">$srcW</span>, <span class="local-variable">$srcH</span>, <span class="local-variable">$srcX</span>, <span class="local-variable">$srcY</span>);</span>
<span class="line insert"><span class="insert">+</span> <span class="local-variable">$tmpoutputfilename</span> = <span class="predefined">tempnam</span>(sys_get_temp_dir(), <span class="string"><span class="delimiter">'</span><span class="content">IGITF</span><span class="delimiter">'</span></span>);</span>
<span class="line insert"><span class="insert">+</span> <span class="local-variable">$result</span> = <span class="local-variable">$this</span>->transform->save(<span class="local-variable">$tmpoutputfilename</span>);</span>
<span class="line insert"><span class="insert">+</span> <span class="keyword">if</span> (<span class="constant">PEAR</span>::isError(<span class="local-variable">$result</span>))</span>
<span class="line insert"><span class="insert">+</span> {</span>
<span class="line insert"><span class="insert">+</span> <span class="keyword">throw</span> <span class="keyword">new</span> sfException(<span class="local-variable">$result</span>->getMessage());</span>
<span class="line insert"><span class="insert">+</span> }</span>
<span class="line insert"><span class="insert">+</span> <span class="local-variable">$this</span>->transform->load(<span class="local-variable">$tmpoutputfilename</span>);</span>
<span class="local-variable">$this</span>->transform->fit(<span class="local-variable">$this</span>->width, <span class="local-variable">$this</span>->height);
<span class="line insert"><span class="insert">+</span> <span class="predefined">unlink</span>(<span class="local-variable">$tmpoutputfilename</span>); </span>
}
}
</span></code></pre>
<p><a class="changeset" title="fixed to generate image for square size. (fixes #2890)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/4ff9ae5331ed12261ea80dec8c69b38eae1bacf8">4ff9ae5331ed12261ea80dec8c69b38eae1bacf8</a> に含まれる上記の修正において、画像の加工途中に生成された一時ファイルを load した後に unlink する処理が追加されている。GD を使用する場合には問題にならないが、ImageMagick を使用する場合は load メソッドを実行しても即座にファイルの内容がメモリ上にロードされるものではない(save メソッドが呼び出されるタイミングで convert コマンドが実行される)ため、save メソッドを実行する前に 変換元のファイルを削除してしまうと前述のようなエラーが発生してしまう。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>sfImageGeneratorImage::doResize() に渡される $tmpfilename のファイルは最終的に sfImageGenerator::__destruct() メソッドにて削除されるため、doResize() メソッド内では $tmpfilename を削除する必要はない。そのため、現在の実装のように $tmpfilename で渡されたファイルを unlink するのではなく、crop後の $tmpoutputfilename を $tmpfilename に rename することで上書きするように修正を施す。</p>
OpenPNE 3 - Bug(バグ) #3168 (Won't fix(対応せず)): OpenPNE.yml の ssl_base_url に api.php 向けの設定が存在しない
http://redmine.openpne.jp/issues/3168
2012-08-22T05:04:25Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>OpenPNE をサブディレクトリに設置している環境でブラウザから SSL でアクセスすると、 <code>openpne.apiBase</code> が下記のようにサブディレクトリを考慮しない値になってしまう。</p>
<pre><code class="html syntaxhl"><span class="CodeRay"><span class="tag"><script</span> <span class="attribute-name">type</span>=<span class="string"><span class="delimiter">"</span><span class="content">text/javascript</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="inline"><span class="comment">//<![CDATA[</span>
<span class="keyword">var</span> openpne = {<span class="key"><span class="delimiter">"</span><span class="content">apiKey</span><span class="delimiter">"</span></span>:<span class="string"><span class="delimiter">"</span><span class="content">98432...624ba</span><span class="delimiter">"</span></span>,<span class="key"><span class="delimiter">"</span><span class="content">apiBase</span><span class="delimiter">"</span></span>:<span class="string"><span class="delimiter">"</span><span class="content">\/</span><span class="content">api.php</span><span class="content">\/</span><span class="delimiter">"</span></span>};
<span class="comment">//]]></span></span>
<span class="tag"></script></span>
</span></code></pre>
<p>例えば <code>https://example.com/sns/</code> に OpenPNE を設置しているならば <code>openpne.apiBase</code> の値は <code>\/sns\/api.php\/</code> となるのが正しい。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>OpenPNE.yml の <code>ssl_base_url</code> は現在 pc_frontend, mobile_frontend, pc_backend 向けの設定項目があるが、api に対する項目は存在していない。アプリケーションを跨いだ URL を生成する際に opApplicationConfiguration::getAppRouting() の下記の箇所で <code>$sslBaseUrls['api']</code> の値を取得しようとすると <code>NULL</code> が返ってしまうため、その先の処理で意図しない挙動を起こしてしまう。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="local-variable">$options</span> = <span class="local-variable">$context</span>->getRouting()->getOptions();
<span class="keyword">if</span> (<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">context</span><span class="delimiter">'</span></span>][<span class="string"><span class="delimiter">'</span><span class="content">is_secure</span><span class="delimiter">'</span></span>])
{
<span class="local-variable">$sslBaseUrls</span> = sfConfig::get(<span class="string"><span class="delimiter">'</span><span class="content">op_ssl_base_url</span><span class="delimiter">'</span></span>);
<span class="local-variable">$url</span> = <span class="local-variable">$sslBaseUrls</span>[<span class="local-variable">$application</span>];
<span class="local-variable">$isDefault</span> = <span class="string"><span class="delimiter">'</span><span class="content">https://example.com</span><span class="delimiter">'</span></span> === <span class="local-variable">$url</span>;
}
<span class="keyword">else</span>
{
<span class="local-variable">$url</span> = sfConfig::get(<span class="string"><span class="delimiter">'</span><span class="content">op_base_url</span><span class="delimiter">'</span></span>);
<span class="local-variable">$isDefault</span> = <span class="string"><span class="delimiter">'</span><span class="content">http://example.com</span><span class="delimiter">'</span></span> === <span class="local-variable">$url</span>;
}
</span></code></pre>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>下記のように <code>ssl_base_url</code> に api アプリケーション向けの設定項目を OpenPNE.yml.sample に追加する。</p>
<pre><code class="yaml syntaxhl"><span class="CodeRay"><span class="comment"># SSL用URL (Cookie の値を引き継ぐため、 base_url と同一ドメイン・パスである必要があります)</span>
<span class="comment"># Base URL for SSL (Set same domain and same path with "base_url" configuration to take over a value of Cookie)</span>
<span class="key">ssl_base_url</span>:
<span class="key">pc_frontend</span>: <span class="string"><span class="delimiter">"</span><span class="content">https://example.com</span><span class="delimiter">"</span></span>
<span class="key">mobile_frontend</span>: <span class="string"><span class="delimiter">"</span><span class="content">https://example.com</span><span class="delimiter">"</span></span>
<span class="key">pc_backend</span>: <span class="string"><span class="delimiter">"</span><span class="content">https://example.com</span><span class="delimiter">"</span></span>
<span class="key">api</span>: <span class="string"><span class="delimiter">"</span><span class="content">https://example.com</span><span class="delimiter">"</span></span>
</span></code></pre>
OpenPNE 3 - Bug(バグ) #3165 (Won't fix(対応せず)): ./symfony ccでキャッシュをクリアした直後だけメッセージが翻訳されずに表示される
http://redmine.openpne.jp/issues/3165
2012-08-15T02:31:11Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><code>./symfony cc</code> を実行した後にブラウザでホーム画面等を閲覧すると、ナビゲーションと SnsTerm で設定される語句を除いてメッセージが翻訳されずに表示されてしまう。リロードすると正常に設定された言語でメッセージが表示される。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>git bisect を使用して原因となるコミットを探索した結果 <a class="changeset" title="fixed for coding standard (fixes #2698)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/94515d98f87747603b42b4397c0561039bff011a">94515d98f87747603b42b4397c0561039bff011a</a> に行き着いた。</p>
<p>このコミット内には <code>b/lib/i18n/opI18N.class.php</code> に対する下記の修正ミスがあり、これを正したところ上記の現象は起きなかったためこの変更が原因と思われる。</p>
<pre><code class="diff syntaxhl"><span class="CodeRay"><span class="change"><span class="change">@@</span> -74,7 +74,7 <span class="change">@@</span></span> class opI18N extends sfI18N
{
$this->generateApplicationMessages($dirs);
<span class="line delete"><span class="delete">-</span> if (<span class="eyecatcher">null === $dirs</span>)</span>
<span class="line insert"><span class="insert">+</span> if (<span class="eyecatcher">!is_null($dirs)</span>)</span>
{
$this->messageSource = $this->createMessageSource();
}
</span></code></pre>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>修正ミスの箇所を直す</p>
OpenPNE 3 - Bug(バグ) #3052 (Won't fix(対応せず)): activity/community.json 実行時にDoctrineでエラーが発生する場合がある
http://redmine.openpne.jp/issues/3052
2012-05-10T06:56:21Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>activity/community.json 呼び出し時に下記のようなエラーがhttpdのエラーログに出力されて500エラーとなる。<br /><pre>
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
</pre></p>
<p>is_active: 0 のメンバー(仮登録中のメンバー)が1人以上いる場合に発生する。</p>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p>マイフレンドまで公開のアクティビティを取得するための条件の中で、is_active: 0 のメンバーを対象外とするためにサブクエリ内に <code>member_id_to NOT IN ?</code> を追加していたが、この形式の DQL を Doctrine が正しくパースできず、最終的にパラメーター数が一致しない SQL とパラメーターの組が生成されていたためにエラーとなっていた。</p>
<p>inactiveIds が空の場合は opDoctrineQuery::andWhereIn() により <code>->andWhere('0 = 1');</code> に書き換えられるため問題が発生しない。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p>問題箇所のクエリでは Member モデルを必ず leftJoin しているため、opActivateListener により is_active のチェックが自動的に追加される。</p>
<p>このクエリにおいて is_active: 0 のメンバーを除外するには Member に対する絞り込みのみで十分であるため、マイフレンドまで公開のアクティビティを抽出する部分からは is_active: 0 を除外する条件を冗長と判断し削除した。</p>
OpenPNE 3 - Bug(バグ) #2948 (Won't fix(対応せず)): opWidgetFormRichTextareaにprototype.js依存なJavaScriptコー...
http://redmine.openpne.jp/issues/2948
2012-04-12T11:09:51Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><code>lib/widget/opWidgetFormRichTextarea.class.php</code> に含まれているJavaScriptコードがprototype.js依存のままjQueryに移行されていない。</p>
OpenPNE 3 - Bug(バグ) #2882 (Won't fix(対応せず)): opValidatorDate で「年」に 0 を入力した場合に空値として認識される
http://redmine.openpne.jp/issues/2882
2012-03-13T09:13:24Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>opValidatorDate を使用しているフォーム(コミュニティイベントの作成画面など)で、日付を入力する項目の「年」に <code>0</code> を入力すると空値として扱われる。</p>
<ul>
<li>コミュニティイベントの作成画面の場合、「募集期日」の「年」に <code>0</code> と入力された状態(「月」「日」は入力しない)で送信しても「正しくありません。」と表示されずにイベントの作成が完了する。</li>
</ul>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p>lib/validator/opValidatorDate.class.php の 100 行目付近</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="comment">// if one date value is empty, all others must be empty too</span>
<span class="local-variable">$empties</span> =
(!<span class="predefined">isset</span>(<span class="local-variable">$value</span>[<span class="string"><span class="delimiter">'</span><span class="content">year</span><span class="delimiter">'</span></span>]) || !<span class="local-variable">$value</span>[<span class="string"><span class="delimiter">'</span><span class="content">year</span><span class="delimiter">'</span></span>] ? <span class="integer">1</span> : <span class="integer">0</span>) +
(!<span class="predefined">isset</span>(<span class="local-variable">$value</span>[<span class="string"><span class="delimiter">'</span><span class="content">month</span><span class="delimiter">'</span></span>]) || !<span class="local-variable">$value</span>[<span class="string"><span class="delimiter">'</span><span class="content">month</span><span class="delimiter">'</span></span>] ? <span class="integer">1</span> : <span class="integer">0</span>) +
(!<span class="predefined">isset</span>(<span class="local-variable">$value</span>[<span class="string"><span class="delimiter">'</span><span class="content">day</span><span class="delimiter">'</span></span>]) || !<span class="local-variable">$value</span>[<span class="string"><span class="delimiter">'</span><span class="content">day</span><span class="delimiter">'</span></span>] ? <span class="integer">1</span> : <span class="integer">0</span>);
</span></code></pre>
<p>この判定で、「年」(<code>$value['year']</code>) に <code>"0"</code> が入力されると <code>!isset($value['year']) || !$value['year']</code> が <code>true</code> となり空値と判定されることが原因。</p>
<p>参照: <a href="http://php.net/manual/ja/types.comparisons.php" class="external">PHP: PHP 型の比較表 - Manual</a></p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p>修正内容を記入</p>
OpenPNE 3 - Bug(バグ) #2773 (Won't fix(対応せず)): テンプレートを使用するアクティビティの表示時に、対応するテンプレートが activity_templat...
http://redmine.openpne.jp/issues/2773
2012-02-02T08:49:25Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opCommunityTopicPlugin や opDiaryPlugin など、activity_template.yml を使用したアクティビティ投稿機能を持つプラグインで発生します。<br />これらのプラグインによって投稿されたアクティビティが残っている状態で、activity_template.yml を使用するプラグインを全て無効化すると <code>Configuration "config/activity_template.yml" does not exist or is unreadable.</code> とエラーが出力されます。</p>
<a name="再現する手順"></a>
<h4 >再現する手順<a href="#再現する手順" class="wiki-anchor">¶</a></h4>
<ol>
<li>opCommunityTopicPlugin を OpenPNE3 に追加・使用可能にする</li>
<li>pc_backend にて、
<ul>
<li>opCommunityTopicPlugin 設定画面 (/pc_backend.php/opCommunityTopicPlugin) から「アクティビティ更新設定」を「使用する」に設定し、コミュニティトピック作成時にアクティビティが投稿される状態にする</li>
<li>ガジェット設定画面 (/pc_backend.php/design/gadget) から、ホーム画面に「アクティビティ」ガジェットが表示される状態にする</li>
</ul>
</li>
<li>SNSにログインし、コミュニティのトピックを作成する</li>
<li>トピック作成時に投稿されたアクティビティがホーム画面に表示される</li>
<li>pc_backend のプラグイン設定 (/pc_backend.php/plugin/list) から opCommunityTopicPlugin 及び opDiaryPlugin を無効化する</li>
<li>ホーム画面を再度表示すると500エラーが表示される</li>
</ol>
<p>Apacheのエラーログには <code>Configuration "config/activity_template.yml" does not exist or is unreadable.</code> と出力されます。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>OpenPNE コア側に activity_template.yml が存在しない(opCommunityTopicPlugin および opDiaryPlugin 内には存在する)ことによるものです。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>このエラーは lib/config/config に空の activity_template.yml を作成することで解決します。<br />なお、後から opCommunityTopicPlugin 等が無効化された場合にそのプラグインのテンプレートを必要としているアクティビティは空白として表示されます。</p>
opOpenSocialPlugin - Bug(バグ) #2237 (Won't fix(対応せず)): [api] アルバム内の画像取得時に MediaItem のファイルサイズが 0 にな...
http://redmine.openpne.jp/issues/2237
2011-06-22T01:16:42Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>RESTful API や osapi 等でアルバム画像を取得すると、fileSize フィールドの値が常に 0 となってしまう。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>opAlbumPlugin でアルバム画像の保存時に filesize カラムに値がセットされないこと (<a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug(バグ): [PATCH] AlbumPhotoForm での画像アップロード時に album_image のレコードの filesize カラムに値がセットされていない (Fixed(完了))" href="http://redmine.openpne.jp/issues/2236">#2236</a> を参照) が原因。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>opOpenSocialPlugin 側ではこの問題について対処しない。</p>
opOpenSocialPlugin - Backport(バックポート) #2126 (Won't fix(対応せず)): [pc] modalboxを2回目以降に表示すると、読み込みが完了す...
http://redmine.openpne.jp/issues/2126
2011-05-20T16:22:56Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-概要"></a>
<h3 >Overview (概要)<a href="#Overview-概要" class="wiki-anchor">¶</a></h3>
<p>requestShareApp等でモーダルボックスを表示させる際に前回表示時の内容が消去されずに残ってしまうため、2回目以降表示するとき読み込みが完了するまでの間に以前の内容が表示されたままとなってしまう。</p>
<a name="Spec-仕様"></a>
<h3 >Spec (仕様)<a href="#Spec-仕様" class="wiki-anchor">¶</a></h3>
<p>モーダルボックスを閉じるときにiframeの内容を消去する。</p>
opOpenSocialPlugin - Bug(バグ) #1932 (Won't fix(対応せず)): applicationActions::executeInvitePost() 内のコ...
http://redmine.openpne.jp/issues/1932
2011-02-25T06:48:00Z
Youichi Kimura
kim.upsilon@bucyou.net
<p>applicationActions::executeInvitePost() メソッド内の処理で、result と resultIds を混同している箇所があるため application/invitePost のレスポンスが正しい値になりません。</p>
OpenPNE 3 - Bug(バグ) #1839 (Won't fix(対応せず)): [PATCH] 一部のファイルに不要な実行権限が設定されている
http://redmine.openpne.jp/issues/1839
2010-12-09T07:37:47Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>直接実行できないphpファイルや画像ファイルなどに実行可能権限が設定されています。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p>ソースツリー内にELFファイルは存在しないため、ファイルの一行目がシバン行 (先頭が「#!」で開始) であるか否かで実行権限を設定します</p>
<pre>
find * -type f ! -regex '.*\.git.*' -print0 | xargs -0r -Ifile sh -c 'head -n1 file | grep -q "^#!" && chmod +x file || chmod -x file'
</pre>