OpenPNE Issue Tracking System: チケット
http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2015-01-05T05:39:16Z
OpenPNE Issue Tracking System
Redmine
OpenPNE 3 - Bug(バグ) #3752 (Won't fix(対応せず)): アクティビティを削除しても添付された画像がDBから削除されない
http://redmine.openpne.jp/issues/3752
2015-01-05T05:39:16Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>opTimelinePlugin 等のプラグインによって投稿された画像付きのアクティビティを削除しても、添付されている画像は削除されずに DB に残ってしまう。</p>
<a name="再現手順"></a>
<h3 >再現手順<a href="#再現手順" class="wiki-anchor">¶</a></h3>
<p>標準のアクティビティ関係のガジェットには画像投稿機能は備わっていないため、ここでは例として opTimelinePlugin を使用する。</p>
<ol>
<li>opTimelinePlugin から画像付きのアクティビティを投稿する</li>
<li>タイムラインに表示された画像付きのアクティビティを削除する
<ul>
<li>または、標準の「SNSメンバーのアクティビティ」ガジェットから画像付きのアクティビティを削除する</li>
</ul>
</li>
<li>管理画面のアップロード画像リスト (/pc_backend.php/monitoring) に、アクティビティに添付されていた画像が表示されたままとなっている</li>
</ol>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p>親チケット <a class="issue tracker-1 status-13 priority-4 priority-default closed parent" title="Bug(バグ): fileを参照するテーブル(activity_imageなど)のレコード削除時に対応するfileレコードが削除されない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3738">#3738</a> を参照。</p>
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(バグ) #3543 (Won't fix(対応せず)): MySQLのStrict Modeが有効な状態でメンバーの新規登録を行うとエラーが発生する
http://redmine.openpne.jp/issues/3543
2014-01-07T05:39:57Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>MySQLの <a href="http://dev.mysql.com/doc/refman/5.1/ja/server-sql-mode.html" class="external">Strict Mode</a> が有効な環境でメンバーの新規登録を行う際に <strong>プリセット</strong> でかつ <strong>日付</strong> の項目を入力すると、次のようなエラーが発生する。</p>
<pre>
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '' for column 'value_datetime' at row 1
</pre>
<p>エラーが発生した SQL は下記の通り。</p>
<pre>
12月 27 17:23:12 symfony [info] {Doctrine_Connection_Statement} execute : INSERT INTO member_profile (value, member_id, profile_id, value_datetime, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?) - (, 6, 2, , 2013-12-27 17:23:12, 2013-12-27 17:23:12)
</pre>
<a name="再現手順"></a>
<h3 >再現手順<a href="#再現手順" class="wiki-anchor">¶</a></h3>
<ol>
<li>MySQL の my.cnf に下記の設定を加える<br /><pre>
[mysqld]
sql_mode=STRICT_ALL_TABLES
</pre></li>
<li>管理画面から招待メールを送信し、メールに記載されたURLから新規登録ページ (/member/register) を開く</li>
<li>プロフィール入力 (/member/registerInput) へ進む</li>
<li>必須項目と <strong>誕生日</strong> を入力する</li>
<li>「送信」をクリックすると500エラーが発生する</li>
</ol>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p><code>MemberProfile::preSave()</code> 内の下記のコードが直接の原因となっている。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">elseif</span> (<span class="string"><span class="delimiter">'</span><span class="content">date</span><span class="delimiter">'</span></span> === <span class="local-variable">$this</span>->getFormType() && <span class="predefined">isset</span>(<span class="local-variable">$modified</span>[<span class="string"><span class="delimiter">'</span><span class="content">value</span><span class="delimiter">'</span></span>]) && <span class="local-variable">$this</span>->getProfile()->isPreset())
{
<span class="local-variable">$this</span>->_set(<span class="string"><span class="delimiter">'</span><span class="content">value_datetime</span><span class="delimiter">'</span></span>, <span class="local-variable">$this</span>->_get(<span class="string"><span class="delimiter">'</span><span class="content">value</span><span class="delimiter">'</span></span>));
}
</span></code></pre>
<p><code>config/doctrine/schema.yml</code> に <code>MemberProfile.value</code> のデフォルト値が <code>""</code> であると記述されているため、value に変更が加えられたか否かに係わらず <code>MemberProfile::preSave()</code> 内で <code>isset($modified['value'])</code> は常に true になる(UPDATE の場合を除く)。<br />すると <code>MemberProfile.value_datetime</code> に空文字列がそのままセットされてしまい、前述の <code>Invalid datetime format</code> エラーが発生してしまう。</p>
<p>なお、プリセットではない日付型のプロフィール項目については value_datetime は使用されない (参照: <a class="changeset" title="member_profile.value_datetime is now for presetting datetime profile. And also "0000-00-00 00:00:..." href="http://redmine.openpne.jp/projects/op3/repository/revisions/b6445a0a40700daa193d1f43280fbef493da02aa">b6445a0a</a>) ためこの問題は発生しない。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p><code>MemberProfile::preSave()</code> 内で <code>value_datetime</code> に対するから文字列の代入が行われないように <code>$modified['value']</code> のチェックを行う。</p>
OpenPNE 3 - Bug(バグ) #3428 (Won't fix(対応せず)): opFormItemGenerator::generateValidator() に渡すフィールドの I...
http://redmine.openpne.jp/issues/3428
2013-10-07T08:29:17Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/lib/config/config/sns_config.yml">source:lib/config/config/sns_config.yml</a> などの opFormItemGenerator で自動生成するフィールドの定義では、しばしば IsRequired や IsTrim が省略されているが、opFormItemGenerator::generateValidator() の下記のコードはそれらの省略を考慮されておらず E_NOTICE レベルのエラーを発生させてしまう。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <span class="function">generateValidator</span>(<span class="local-variable">$field</span>, <span class="local-variable">$choices</span> = <span class="predefined">array</span>())
{
<span class="local-variable">$field</span> = <span class="predefined-constant">self</span>::arrayKeyCamelize(<span class="local-variable">$field</span>);
<span class="local-variable">$option</span> = <span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">required</span><span class="delimiter">'</span></span> => <span class="local-variable">$field</span>[<span class="string"><span class="delimiter">'</span><span class="content">IsRequired</span><span class="delimiter">'</span></span>], <span class="string"><span class="delimiter">'</span><span class="content">trim</span><span class="delimiter">'</span></span> => <span class="local-variable">$field</span>[<span class="string"><span class="delimiter">'</span><span class="content">IsTrim</span><span class="delimiter">'</span></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>isset() を使用し IsRequired 等が定義されていることを確認した上で値を使用するように修正する</p>
OpenPNE 3 - Bug(バグ) #3426 (Won't fix(対応せず)): pc_backend の存在しないアクションに対するテストコードを削除する
http://redmine.openpne.jp/issues/3426
2013-10-07T07:34:35Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/functional/pc_backend/securityActionsTest.php">source:test/functional/pc_backend/securityActionsTest.php</a> は pc_backend の security/index アクションに対するテストコードとなっているが、現状 security/index というモジュール及びアクションは存在せずテストを実行してもエラーで終了する。<br />また <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/functional/pc_backend/mailActionsTest.php">source:test/functional/pc_backend/mailActionsTest.php</a> についても、存在しないアクション mail/index に対するテストコードとなっている。<br />そのため、securityActionsTest.php 及び mailActionsTest.php は不要なファイルと判断し削除する。</p>
OpenPNE 3 - Bug(バグ) #3425 (Won't fix(対応せず)): pc_backendの機能テスト designActionsTest.php の実行に失敗する
http://redmine.openpne.jp/issues/3425
2013-10-07T07:12:38Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/functional/pc_backend/designActionsTest.php">source:test/functional/pc_backend/designActionsTest.php</a> を実行すると下記のエラーが発生し異常終了する。</p>
<pre>
PHP Fatal error: Class 'ProjectConfiguration' not found in /home/upsilon/git/openpne3/master/test/bootstrap/database.php on line 10
Fatal error: Class 'ProjectConfiguration' not found in /home/upsilon/git/openpne3/master/test/bootstrap/database.php on line 10
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>designActionsTest.php 内の記述は次のようになっている。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="inline-delimiter"><?php</span>
<span class="predefined">include</span>(<span class="predefined">dirname</span>(<span class="predefined-constant">__FILE__</span>).<span class="string"><span class="delimiter">'</span><span class="content">/../../bootstrap/database.php</span><span class="delimiter">'</span></span>);
<span class="predefined">include</span>(<span class="predefined">dirname</span>(<span class="predefined-constant">__FILE__</span>).<span class="string"><span class="delimiter">'</span><span class="content">/../../bootstrap/functional.php</span><span class="delimiter">'</span></span>);
<span class="local-variable">$browser</span> = <span class="keyword">new</span> opTestFunctional(<span class="keyword">new</span> opBrowser(), <span class="keyword">new</span> lime_test(<span class="predefined-constant">null</span>, <span class="keyword">new</span> lime_output_color()));
</span></code></pre>
<p>functional.php よりも先に database.php をロードしたために sfAutoload が初期化される前に ProjectConfiguration クラスを呼び出そうとしてエラーとなっている。また、functional.php 内で database.php がロードされるためそもそも database.php のロードは不要である。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>designActionsTest.php から database.php を include する処理を削除する</p>
OpenPNE 3 - Bug(バグ) #3406 (Won't fix(対応せず)): opMobileUserAgent::__construct() で E_STRICT エラーが発生する
http://redmine.openpne.jp/issues/3406
2013-09-24T06:37:42Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opMobileUserAgent::__construct() には Net_UserAgent_Mobile::factory() を呼び出している箇所があるが、Net_UserAgent_Mobile は PHP4 の形式で書かれたクラスのため、静的メソッドとして呼び出される factory() メソッドに static キーワードが付与されていない。そのため、factory() を呼び出した時点で E_STRICT エラーが発生してしまう。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">protected</span> <span class="keyword">function</span> <span class="function">__construct</span>()
{
<span class="predefined">require_once</span> <span class="string"><span class="delimiter">'</span><span class="content">Net/UserAgent/Mobile.php</span><span class="delimiter">'</span></span>;
<span class="predefined">require_once</span> <span class="string"><span class="delimiter">'</span><span class="content">Net/UserAgent/Mobile/NonMobile.php</span><span class="delimiter">'</span></span>;
<span class="predefined-constant">self</span>::<span class="local-variable">$mobile</span> = <span class="constant">Net_UserAgent_Mobile</span>::factory();
<span class="keyword">if</span> (<span class="predefined-constant">self</span>::<span class="local-variable">$mobile</span> <span class="keyword">instanceof</span> <span class="constant">Net_UserAgent_Mobile_Error</span>)
{
<span class="predefined-constant">self</span>::<span class="local-variable">$mobile</span> = <span class="keyword">new</span> <span class="constant">Net_UserAgent_Mobile_NonMobile</span>(<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></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>Net_UserAgent_Mobile::factory() を使用しているのは opMobileUserAgent::_construct() 以外に無いため、factory() を呼び出す前後で一時的に E_STRICT エラーを error_reporting の値から外すことで回避する。</p>
OpenPNE 3 - Bug(バグ) #3405 (Won't fix(対応せず)): アクションの基底クラスとその派生クラスでメソッドのシグニチャが一致していない
http://redmine.openpne.jp/issues/3405
2013-09-20T07:20:45Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opMemberAction::executeLogin() 等のメソッドで、下記のように継承先クラスのメソッドのシグニチャが異なるために E_STRICT エラーが発生している。</p>
<p><code>apps/pc_frontend/modules/member/actions/actions.class.php</code> の executeLogin():</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">public</span> <span class="keyword">function</span> <span class="function">executeLogin</span>(opWebRequest <span class="local-variable">$request</span>)
</span></code></pre>
<p><code>apps/mobile_frontend/modules/member/actions/actions.class.php</code> の executeLogin():</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">public</span> <span class="keyword">function</span> <span class="function">executeLogin</span>(<span class="local-variable">$request</span>)
</span></code></pre>
<p><code>lib/action/opMemberAction.class.php</code> の executeLogin():</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">public</span> <span class="keyword">function</span> <span class="function">executeLogin</span>(<span class="local-variable">$request</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>opWebRequest を引数として受け取る各メソッドを <a href="http://php.net/manual/ja/language.oop5.typehinting.php" class="external">タイプヒンティング</a> を使用する形に統一する</p>
OpenPNE 3 - Bug(バグ) #3404 (Won't fix(対応せず)): テストデータのカテゴライズ機能がfunctionalテストで正しく動作していない
http://redmine.openpne.jp/issues/3404
2013-09-20T05:55:06Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p><a class="changeset" title="added ability to categorize test data (refs #1527)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/9f48bdd61a5c5667e6a573811876e949aff9015d">9f48bdd61a5c5667e6a573811876e949aff9015d</a> によって追加されたテストデータのカテゴライズ機能で、ユニットテストのコード内にて <code>$fixture</code> に 'common' や 'fix_wrong_categorized_community' などを指定することにより使用する fixture を選択できるようになったが、このコミットはfunctionalテスト向けの修正が抜けている。<br />そのため、functionalテスト実行時にはカテゴライズを無視して全てのテストデータがロードされるためデータの重複などによりエラーとなる。</p>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p>テストデータのカテゴライズは <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/database.php">source:test/bootstrap/database.php</a> にて <code>sfDoctrineBuildTask</code> の <code>and-load</code> に渡される fixture のパスを変えることで実現しているが、functional テストでは <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/functional.php">source:test/bootstrap/functional.php</a> を使用するため従来通り <code>test/fixtures/</code> 以下の全てのテストデータをロードしてしまう。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/functional.php">source:test/bootstrap/functional.php</a> 内のデータロード処理に <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/database.php">source:test/bootstrap/database.php</a> を使用するように修正する。</p>
opAshiatoPlugin - Bug(バグ) #3398 (Pending Review(レビュー待ち)): スマートフォン版のプロフィール画面などへのアクセスに対応していない
http://redmine.openpne.jp/issues/3398
2013-09-12T05:28:15Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>スマートフォン端末からプロフィール画面やフレンドリスト画面を閲覧したときにあしあとが記録されない。<br /><a href="https://github.com/ichikawatatsuya/opDiaryPlugin/tree/master" class="external">ichikawatatsuya/opDiaryPlugin</a> のようにスマートフォン対応された opDiaryPlugin でも同様の現象が起こる。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>通常のPC版のプロフィール画面は member/profile アクションであるのに対し、スマートフォン版では member/smtProfile アクションであるため <code>config/config.php</code> に記述されている op_action.post_execute_member_profile イベントが発生しないため。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p><code>config/config.php</code> にスマートフォン版のアクションに対する記述を追加する。</p>
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(バグ) #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>
opCalendarPlugin - Bug(バグ) #1887 (Fixed(完了)): MySQLに依存する関数を含むクエリがある
http://redmine.openpne.jp/issues/1887
2011-01-21T15:57:40Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opCalendarPluginExtension::getScheduleBirthMember() メソッド内で実行されるクエリの一部がMySQLのDATE_FORMAT関数を使用しているため、MySQL以外のDBMSで「バースデイボックス」ガジェットを使用するとInternal Server Errorが返ります。</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>
opCommunityTopicPlugin - Enhancement(機能追加・改善) #1526 (Rejected(差し戻し)): イベントの参加者を編集できるようにしてほしい
http://redmine.openpne.jp/issues/1526
2010-08-21T15:25:10Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="概要"></a>
<h3 >概要<a href="#概要" class="wiki-anchor">¶</a></h3>
<p>普段あまり書き込みをしないメンバーがイベントに参加する際に参加者一覧と実際の参加者が一致しなくなることがあるため、イベントの作成者が参加者を編集(追加・削除)できるようにしてほしいです。</p>