OpenPNE Issue Tracking System: チケット
http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2016-05-12T07:10:25Z
OpenPNE Issue Tracking System
Redmine
OpenPNE 3 - Bug(バグ) #3939 (Won't fix(対応せず)): セットアップ手順にexif拡張モジュールが必要であることが記載されていない
http://redmine.openpne.jp/issues/3939
2016-05-12T07:10:25Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="issue tracker-1 status-13 priority-4 priority-default closed" title="Bug(バグ): スマートフォンで画像をアップロードすると画像が横向きになってしまう場合がある (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3560">#3560</a> の修正以降、JPEG 画像のアップロード時に <code>exif_read_data</code> 関数 (exif 拡張に含まれる) が使われるようになったが、セットアップ手順が記載されている <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/revisions/43190aa1/entry/doc/ja/OpenPNE3_Setup_Guide.txt">source:doc/ja/OpenPNE3_Setup_Guide.txt@43190aa1</a> には exif 拡張が必要であることが書かれていない。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>下記の行を <code>doc/ja/OpenPNE3_Setup_Guide.txt</code> に追記する (<code>doc/en/OpenPNE3_Setup_Guide.txt</code> にも対応する訳文を追加)</p>
<pre>
* PHP の exif 拡張モジュールを使用可能
</pre>
OpenPNE 3 - Bug(バグ) #3738 (Won't fix(対応せず)): fileを参照するテーブル(activity_imageなど)のレコード削除時に対応するfileレコード...
http://redmine.openpne.jp/issues/3738
2014-12-08T16:32:29Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>メンバーのプロフィール画像やコミュニティ画像などの file テーブルを介して格納される画像について、ブラウザ上で画像を変更・削除しても対応する file, file_bin レコードがデータベース上に残ったまま削除されない。</p>
<p>削除されずに残った画像は管理画面のアップロード画像リスト (<code>/pc_backend.php/monitoring</code>) からも確認できる。</p>
<p>対象となるテーブル:</p>
<ul>
<li>OpenPNE コア
<ul>
<li>activity_image (<a class="issue tracker-1 status-13 priority-4 priority-default closed child" title="Bug(バグ): アクティビティを削除しても添付された画像がDBから削除されない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3752">#3752</a>)</li>
<li>banner_image (<a class="issue tracker-1 status-13 priority-4 priority-default closed child" title="Bug(バグ): バナー設定でアップロードした画像を削除してもDBから削除されない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3755">#3755</a>)</li>
<li>community (<a class="issue tracker-1 status-13 priority-4 priority-default closed child" title="Bug(バグ): コミュニティ画像が設定されたコミュニティを削除しても画像がDBから削除されない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3753">#3753</a>)</li>
<li>member_image (<a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug(バグ): The record of the File is not deleted when related MemberImage is deleted (MemberImage が削除されたときに ... (Fixed(完了))" href="http://redmine.openpne.jp/issues/453">#453</a> <b>修正済み</b>)</li>
<li>oauth_consumer (<a class="issue tracker-1 status-13 priority-4 priority-default closed child" title="Bug(バグ): 画像付きのOAuthアプリケーションを削除してもDBから画像が削除されない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3756">#3756</a>)</li>
</ul>
</li>
<li>opAlbumPlugin (<a class="issue tracker-1 status-9 priority-4 priority-default" title="Bug(バグ): アルバム・アルバム画像を削除しても画像ファイルが削除されていない (Pending Review(レビュー待ち))" href="http://redmine.openpne.jp/issues/2447">#2447</a>)
<ul>
<li>album</li>
<li>album_image</li>
</ul>
</li>
<li>opCommunityTopicPlugin (<a class="issue tracker-4 status-13 priority-4 priority-default closed child" title="Backport(バックポート): 画像が添付されたコミュニティトピックを削除しても、管理画面のアップロード画像リストに画像が残る (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/2591">#2591</a>)
<ul>
<li>community_event_image</li>
<li>community_event_comment_image</li>
<li>community_topic_image</li>
<li>community_topic_comment_image</li>
</ul>
</li>
<li>opDiaryPlugin (<a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug(バグ): 日記・日記コメントを削除しても添付画像が削除されない (Fixed(完了))" href="http://redmine.openpne.jp/issues/106">#106</a> <b>修正済み</b>)
<ul>
<li>diary_image</li>
<li>diary_comment_image</li>
</ul>
</li>
<li>opMessagePlugin (<a class="issue tracker-1 status-5 priority-3 priority-lowest closed parent" title="Bug(バグ): メッセージを削除しても画像データが削除されていない (Fixed(完了))" href="http://redmine.openpne.jp/issues/190">#190</a>)
<ul>
<li>message_file</li>
</ul></li>
</ul>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="yaml syntaxhl"><span class="CodeRay"><span class="key">HogeImage</span>:
<span class="key">columns</span>:
<span class="key">id</span>: <span class="string"><span class="content">{ type: integer(4), primary: true, autoincrement: true }</span></span>
<span class="key">hoge_id</span>: <span class="string"><span class="content">{ type: integer(4), notnull: true }</span></span>
<span class="key">file_id</span>: <span class="string"><span class="content">{ type: integer(4), notnull: true }</span></span>
<span class="key">relations</span>:
<span class="key">Hoge</span>: <span class="string"><span class="content">{ onDelete: cascade }</span></span>
<span class="key">File</span>: <span class="string"><span class="content">{ onDelete: cascade }</span></span>
</span></code></pre>
<p>例えば上記の様な DB スキーマの定義があったとき、外部キー制約があるため file のレコードが削除されると対応する hoge_image のレコードが削除されるが、逆に hoge_image のレコードが削除されても file のレコードは削除されない。そのため hoge_image のレコードを削除する際に対応する file のレコードを明示的に削除する必要がある。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<a name="HogeImage-を削除する際に関連する-File-が削除されるようにする"></a>
<h4 >HogeImage を削除する際に関連する File が削除されるようにする<a href="#HogeImage-を削除する際に関連する-File-が削除されるようにする" class="wiki-anchor">¶</a></h4>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="keyword">class</span> <span class="class">HogeImage</span> <span class="keyword">extends</span> <span class="constant">BaseHogeImage</span>
{
<span class="keyword">public</span> <span class="keyword">function</span> <span class="function">preDelete</span>(<span class="local-variable">$event</span>)
{
<span class="local-variable">$this</span>-><span class="predefined">File</span>-><span class="predefined">delete</span>();
}
}
</span></code></pre>
<p>File を参照するモデルのクラスに <code>preDelete()</code> メソッドを定義し、その中で <code>$this->File->delete();</code> を実行することで関連する file テーブルのレコードも削除されるようになる。</p>
<a name="Hoge-を削除する際に関連する-HogeImage-を明示的に削除する"></a>
<h4 >Hoge を削除する際に関連する HogeImage を明示的に削除する<a href="#Hoge-を削除する際に関連する-HogeImage-を明示的に削除する" class="wiki-anchor">¶</a></h4>
<p>hoge のレコードを削除した場合は、外部キー制約の <code>ON DELETE CASCADE</code> によりそれを参照する hoge_image のレコードも削除される。しかしこれは DBMS 側で行われるもので Doctrine は関知しないため、削除時に <code>HogeImage::preDelete()</code> は実行されない。<br />これでは Hoge の delete() メソッドを呼び出した場合には前述の修正に関わらず File から画像が削除されず残ってしまうため、<code>Hoge::preDelete()</code> から <code>$this->HogeImage->delete();</code> を明示的に呼び出す必要がある。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="keyword">class</span> <span class="class">Hoge</span> <span class="keyword">extends</span> <span class="constant">BaseHoge</span>
{
<span class="keyword">public</span> <span class="keyword">function</span> <span class="function">preDelete</span>(<span class="local-variable">$event</span>)
{
<span class="comment">// HogeImage::preDelete() を実行させるために明示的に削除する</span>
<span class="local-variable">$this</span>-><span class="constant">HogeImage</span>-><span class="predefined">delete</span>();
}
}
</span></code></pre>
OpenPNE 3 - Bug(バグ) #3447 (Won't fix(対応せず)): zlib 拡張の入っていない環境で opDoctrineRecordTest.php のテストが実行できない
http://redmine.openpne.jp/issues/3447
2013-10-09T08:50:41Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="issue tracker-1 status-13 priority-4 priority-default closed" title="Bug(バグ): 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3134">#3134</a> のテストのために追加された opDoctrineRecordTest.php には gzip タイプのカラムの値を破壊しないか確認するためのテストが含まれているが、このテストは zlib 拡張が有効な環境でないと実行できない。<br /><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/revisions/b9a08942/entry/doc/ja/OpenPNE3_Setup_Guide.txt">source:doc/ja/OpenPNE3_Setup_Guide.txt@b9a08942</a> には OpenPNE の動作に最低限必須とされている拡張に zlib 拡張が含まれていないため、この拡張が有効でない環境でも gzip 関連のテストをスキップして動作するようにすべきである。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>opDoctrineRecordTest 実行時に <code>gzcompress</code> の使用可否をチェックし、それに応じて gzip タイプのカラムに対するテストを行うか否かを分岐するように修正する。</p>
OpenPNE 3 - Enhancement(機能追加・改善) #3396 (Won't fix(対応せず)): opBrowser::post() でファイルのアップロードをテストできるようにする
http://redmine.openpne.jp/issues/3396
2013-09-10T08:45:28Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="概要"></a>
<h3 >概要<a href="#概要" class="wiki-anchor">¶</a></h3>
<p>symfony 標準の sfBrowser では <a class="external" href="http://symfony.com/legacy/doc/jobeet/1_4/ja/11?orm=Doctrine#chapter_11_8902df26b0555ad0fff49192b679964b48a1322d">http://symfony.com/legacy/doc/jobeet/1_4/ja/11?orm=Doctrine#chapter_11_8902df26b0555ad0fff49192b679964b48a1322d</a> のように click() メソッドからファイルパスを指定して POST リクエストを送信することができるが、sfBrowser::post() ではファイルアップロードが考慮されていないためフォームを介さずにリクエストを送信する JSON API などでファイルアップロードのテストを行うことが出来ない。<br />これを改善するために、派生クラスの opBrowser 内でファイルアップロードに対応した post() メソッドを実装する。</p>
<a name="仕様"></a>
<h3 >仕様<a href="#仕様" class="wiki-anchor">¶</a></h3>
<p>opBrowser クラスに、ファイル名を受け付けるための引数を追加した postWithFiles() メソッドを実装する。</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(バグ) #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(バグ) #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>