OpenPNE Issue Tracking System: チケット
http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2016-07-15T10:10:41Z
OpenPNE Issue Tracking System
Redmine
OpenPNE 3 - Backport(バックポート) #3967 (Won't fix(対応せず)): 壊れたテストコードを削除する
http://redmine.openpne.jp/issues/3967
2016-07-15T10:10:41Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="概要"></a>
<h3 >概要<a href="#概要" class="wiki-anchor">¶</a></h3>
<p>現在 OpenPNE3 のテストコードは十分にメンテナンスされておらず、壊れた状態のテストケースが多数存在する。<br />このような状態は CI などにおけるテストコードの自動実行を妨げるだけでなく、退行バグによって既存のテストケースでエラーが発生しても他の大量のエラーに埋もれて発見できないなど、テストコードを十分に活用することができない。<br />過去にこのような壊れたテストコードを全て修正する試みがあった (<a class="issue tracker-5 status-12 priority-4 priority-default closed parent" title="Task(タスク): OpenPNE の既存のテストコードが正常に動作するように修正を行う (Invalid(無効))" href="http://redmine.openpne.jp/issues/3403">#3403</a>) が、エラーとなるテストケースがあまりに多いため「成功か否かに関わらず全てのテストケースが実行される」(Fatal Error による異常終了がない) 状態まで修正するに留まっている。<br />当チケットでは、壊れたテストコードをすべて削除し <code>./symfony test:all</code> によって実行されるすべてのテストコードが正常に実行される状態にする。</p>
OpenPNE 3 - Bug(バグ) #3852 (Won't fix(対応せず)): 機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず...
http://redmine.openpne.jp/issues/3852
2015-11-05T11:30:07Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>MemberConfigTable クラスには MemberConfig をキャッシュするための <code>MemberConfigTable::$results</code> が用意されおり、多くのコードはこのキャッシュがリクエストごとに初期化される前提で実装されているが、機能テスト時には <code>MemberConfigTable::$results</code> のキャッシュがリクエストを跨いで引き継がれてしまうため、テスト時のみ発生する意図しない動作の原因となっている。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>MemberConfigTable クラスには MemberConfig をキャッシュするための <code>MemberConfigTable::$results</code> が用意されているが、通常のブラウザからのアクセスによって OpenPNE が動作する場合はリクエスト毎にこのキャッシュは破棄される。<br />しかし機能テストで使用する opBrowser では、リクエストごとに sfContext の初期化は行うものの静的変数の初期化は行われないため MemberConfigTable のインスタンス(<code>Doctrine_Core::getTable()</code> によって生成されるシングルトン)は残ったままとなり、<code>MemberConfigTable::$results</code> も初期化されない。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>opBrowser がリクエストを実行する度(sfContext を生成するタイミング)に <code>MemberConfigTable::$results</code> の中身を空にする</p>
OpenPNE 3 - Bug(バグ) #3756 (Won't fix(対応せず)): 画像付きのOAuthアプリケーションを削除してもDBから画像が削除されない
http://redmine.openpne.jp/issues/3756
2015-01-06T07:37:16Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="再現手順"></a>
<h3 >再現手順<a href="#再現手順" class="wiki-anchor">¶</a></h3>
<p>事前に OpenPNE に opWebAPIPlugin をインストールする必要があります。</p>
<ol>
<li>管理画面の SNS 設定 (/pc_backend.php/sns/config?category=general) から「外部サービスとの接続設定の使用設定」を「使用する」に変更</li>
<li>「連携済みアプリケーション一覧」(/pc_backend.php/connection/new) を開く
<ul>
<li>このページにアクセスするには直接 URL を入力する必要があります</li>
</ul>
</li>
<li>説明文等を入力し、適当な画像を選択して登録する</li>
<li>登録したアプリケーションが表示される</li>
<li>「連携済みアプリケーション一覧」(/pc_backend.php/connection) を開き、登録したアプリケーションを削除する</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(バグ) #3755 (Won't fix(対応せず)): バナー設定でアップロードした画像を削除してもDBから削除されない
http://redmine.openpne.jp/issues/3755
2015-01-06T07:07:50Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="再現手順"></a>
<h3 >再現手順<a href="#再現手順" class="wiki-anchor">¶</a></h3>
<ol>
<li>管理画面の「デザイン設定」→「バナー設定」(/pc_backend.php/design/banner) を開く</li>
<li>「バナー画像を追加」を開き、適当な画像をアップロードする</li>
<li>バナー設定のページから、先ほど追加した画像を削除する</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>
opCommunityTopicPlugin - Backport(バックポート) #3754 (Won't fix(対応せず)): テスト用のFixtureが壊れている
http://redmine.openpne.jp/issues/3754
2015-01-06T04:42:37Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opCommunityTopicPlugin 内の任意のテストコードを実行すると下記のようなエラーが出力され異常終了する。</p>
<pre>
$ php test/unit/model/CommunityTopicTest.php
PHP Fatal error: Uncaught exception 'Doctrine_Connection_Mysql_Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1055' for key 'PRIMARY'' in /home/upsilon/git/openpne3/master/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php:1082
Stack trace:
#0 /home/upsilon/git/openpne3/master/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection/Statement.php(269): Doctrine_Connection->rethrowException(Object(PDOException), Object(Doctrine_Connection_Statement))
#1 /home/upsilon/git/openpne3/master/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php(1042): Doctrine_Connection_Statement->execute(Array)
#2 /home/upsilon/git/openpne3/master/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php(687): Doctrine_Connection->exec('INSERT INTO mem...', Array)
#3 /home/upsilon/git/openpne3/master/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendo in /home/upsilon/git/openpne3/master/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 1082
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p><a href="https://github.com/tejimaya/opCommunityTopicPlugin/commit/b26343a6caa26d2915eade9455ebf9cfa53f8b65" class="external">b26343a6</a> と <a href="https://github.com/tejimaya/opCommunityTopicPlugin/commit/1c1ac0282d5360348388277dc9b15671e544f7e9" class="external">1c1ac028</a> の各コミットで追加されたテスト用の Fixture に同じ ID のメンバーやコミュニティが含まれており、両方の Fixture が読み込まれる際に ID が衝突してエラーとなる。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p><a href="https://github.com/tejimaya/opCommunityTopicPlugin/commit/1c1ac0282d5360348388277dc9b15671e544f7e9" class="external">1c1ac028</a> で追加された 999_xss_test_data.yml には <a href="https://github.com/tejimaya/opCommunityTopicPlugin/commit/b26343a6caa26d2915eade9455ebf9cfa53f8b65" class="external">b26343a6</a> で 999_test_data.yml に追加されたものとほぼ同じレコードを含んでいるため、999_xss_test_data.yml を残した上で重複するレコードを削除する。</p>
OpenPNE 3 - Bug(バグ) #3475 (Won't fix(対応せず)): 部分 SSL 使用時に SSL 必須のページでカスタム CSS が読み込まれない
http://redmine.openpne.jp/issues/3475
2013-11-01T06:44:51Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>config/OpenPNE.yml にて部分 SSL を有効 (<code>use_ssl: true</code>) にしている環境で、ログイン画面 (member/login) などの SSL 必須のページを Web ブラウザからアクセスする際にカスタム CSS が読み込まれない場合がある。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>カスタム CSS は /cache/css/customizing.css (実体は default/customizingCss アクション) が読み込まれることによって反映される仕組みとなっているが、default/customizingCss アクションは部分 SSL の対象となっていないため常に <code>http://</code> スキームにリダイレクトされてしまう。<br />Google Chrome などの Web ブラウザでは、SSL で保護されている Web ページ内に保護されていない CSS などのコンテンツが含まれている場合は「混在したコンテンツ」としてブロックされるため、結果としてカスタム CSS が読み込まれない状態となる。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>config/OpenPNE.yml.sample の ssl_selectable_actions に default/customizingCss アクションを追加する</p>
OpenPNE 3 - Bug(バグ) #3453 (Won't fix(対応せず)): 管理画面で「Web 全体への年齢公開許可設定」を「メンバーの設定を許可しない」に設定しても新規登録時には...
http://redmine.openpne.jp/issues/3453
2013-10-17T07:41:26Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>管理画面で「Web 全体への年齢公開許可設定」を「メンバーの設定を許可しない」に設定している状態であっても、新規登録時のプロフィール入力画面では年齢の公開範囲に「Web全体に公開」の選択肢が表示され選択できてしまう。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>管理画面の「Web 全体への年齢公開許可設定」で設定された値は、<code>MemberConfigPublicFlagForm::__construct()</code> で使用されている。<br />ここでは「Web 全体への年齢公開許可設定」が「メンバーの設定を許可しない」にセットされていた場合、「年齢の公開範囲」の選択肢から「Web 全体に公開」を除去している。</p>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/revisions/20d13f4/entry/lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php#L31">source:lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php@20d13f4#L31</a>:<br /><pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">if</span> (!opConfig::get(<span class="string"><span class="delimiter">'</span><span class="content">is_allow_web_public_flag_age</span><span class="delimiter">'</span></span>))
{
<span class="local-variable">$widget</span> = <span class="local-variable">$this</span>->widgetSchema[<span class="string"><span class="delimiter">'</span><span class="content">age_public_flag</span><span class="delimiter">'</span></span>];
<span class="local-variable">$choices</span> = <span class="local-variable">$widget</span>->getOption(<span class="string"><span class="delimiter">'</span><span class="content">choices</span><span class="delimiter">'</span></span>);
<span class="predefined">unset</span>(<span class="local-variable">$choices</span>[<span class="integer">4</span>]);
<span class="local-variable">$widget</span>->setOption(<span class="string"><span class="delimiter">'</span><span class="content">choices</span><span class="delimiter">'</span></span>, <span class="local-variable">$choices</span>);
<span class="local-variable">$this</span>->validatorSchema[<span class="string"><span class="delimiter">'</span><span class="content">age_public_flag</span><span class="delimiter">'</span></span>]->setOption(<span class="string"><span class="delimiter">'</span><span class="content">choices</span><span class="delimiter">'</span></span>, <span class="predefined">array_keys</span>(<span class="local-variable">$choices</span>));
}
</span></code></pre></p>
<p>しかし、 <strong>新規登録時</strong> のフォームでは MemberConfigPublicFlagForm などの MemberConfigForm 派生クラスは使用されず MemberConfigForm のインスタンスが直接使用されるため、<code>MemberConfigPublicFlagForm::__construct()</code> が呼ばれることはない。<br />そのため、「Web 全体への年齢公開許可設定」の設定値を考慮することなく <code>MemberConfigForm::generateConfigWidgets()</code> によってウィジェットが追加される。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>「Web 全体に公開」の選択肢の除去を <code>MemberConfigForm::setMemberConfigSettings()</code> メソッドに移動する。<br />このメソッドは、新規登録画面 (MemberConfigForm インスタンスが使われる) および設定変更画面 (MemberConfigForm 派生クラスのインスタンスが使われる) で共通して使用されるため、これらの画面による選択肢の差異が生じなくなる。</p>
OpenPNE 3 - Bug(バグ) #3431 (Won't fix(対応せず)): 機能テストに存在する雛形のままのテストコードを削除する
http://redmine.openpne.jp/issues/3431
2013-10-08T03:15:30Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>OpenPNE に同梱されている機能テストの一部は symfony が提供する雛形のコードのまま手が加えられておらず、中には symfony 1.4 と互換性のないメソッドを使用しているテストも含まれている。<br />これらのテストコードは実装に合わせて修正されない限り自動テストの妨げとなるため削除を行う。</p>
OpenPNE 3 - Bug(バグ) #3416 (Won't fix(対応せず)): 自動ログインCookieを有効にしてログインしているブラウザで新規登録を実行すると member/reg...
http://redmine.openpne.jp/issues/3416
2013-10-04T02:56:18Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<ol>
<li>自動ログインを有効にして <a class="email" href="mailto:sns@example.com">sns@example.com</a> にログインする</li>
<li>友人を招待する (/invite) 画面から招待メールを送信する</li>
<li>届いたメールに書かれている招待 URL (/member/register) を開く</li>
<li>「プロフィール入力ページへ」(/member/registerInput) ボタンをクリックする</li>
<li>404 エラーが表示される</li>
</ol>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p><a class="issue tracker-1 status-5 priority-5 priority-high3 closed" title="Bug(バグ): 既にSNSにログインしているブラウザで新規登録を実行しようとすると、member/regist が404エラーになる (Fixed(完了))" href="http://redmine.openpne.jp/issues/1100">#1100</a> では新規登録時にログイン中のセッションがあった場合に削除する処理が追加されているが、自動ログインが有効な場合が考慮されていない。そのため member/register までは正常に表示されるが、次の画面に遷移したところで自動ログイン Cookie によりログイン状態となってしまう。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>member/register アクション内に自動ログイン Cookie を失効させる処理を追加する</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>
OpenPNE 3 - Bug(バグ) #3364 (Won't fix(対応せず)): スマートフォン向けUIで、ホーム画面以外から「PC表示に切り替え」ボタンを押した場合の挙動が正しくない
http://redmine.openpne.jp/issues/3364
2013-06-17T06:53:09Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>スマートフォン端末で、メンバー検索 (/member/search) やフレンドリスト (/friend/list) のようにURLのパスが2階層以上のページで「PC表示に切り替え」ボタンを押すと、PC向け画面に切り替わらずにホーム画面に移動する。また、「PC表示に切り替え」ボタンを押したページの階層以下でのみPC向け画面で表示される。</p>
<a name="例"></a>
<h4 >例<a href="#例" class="wiki-anchor">¶</a></h4>
<ol>
<li>スマートフォン端末から、コミュニティ検索 (/community/search) を開く</li>
<li>「PC表示に切り替え」ボタンを押す</li>
<li>ホーム画面に移動するが、スマートフォン向け画面のまま表示される</li>
<li>メンバー検索 (/member/search) など異なる階層のページでもスマートフォン向け画面となる</li>
<li>コミュニティ検索 (/community/search) やコミュニティ作成 (/community/edit) ではPC向け画面に切り替わっている</li>
</ol>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/web/js/smt_main.js">source:web/js/smt_main.js</a> の「PC向け表示」ボタンに関するコードは下記のようになっている。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> $(<span class="string"><span class="delimiter">'</span><span class="content">#smt-switch</span><span class="delimiter">'</span></span>)
.show()
.click(<span class="keyword">function</span>() {
document.cookie = <span class="string"><span class="delimiter">"</span><span class="content">disable_smt=1</span><span class="delimiter">"</span></span>;
location.href = $(this).attr(<span class="string"><span class="delimiter">'</span><span class="content">href</span><span class="delimiter">'</span></span>);
});
</span></code></pre>
<p><code>document.cookie</code> によって Cookie を設定しているが path が指定されていない。path が指定されていない場合のデフォルト値は、表示中のページのパスとなる。つまり、コミュニティ検索 (/community/search) ページの場合は /community/ が path にセットされる。よって、この場合は /community/ 以下の階層のページで disable_smt の値が有効となり、それ以外のページでは依然としてスマートフォン向け画面が表示されることになる。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p><a class="issue tracker-2 status-13 priority-4 priority-default closed" title="Enhancement(機能追加・改善): OpenPNEが設置されているURLをJavaScriptコードから取得できるようにする (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3365">#3365</a> によって <code>openpne.baseUrl</code> を追加した上で、Cookie 設定時の path に <code>openpne.baseUrl</code> を指定することによって SNS 内の全てのページで disable_smt の値が有効となるようにする。</p>
OpenPNE 3 - Bug(バグ) #3356 (Won't fix(対応せず)): 日記やアルバムなどに投稿された画像のサムネイル表示が全て正方形に切り抜かれる問題
http://redmine.openpne.jp/issues/3356
2013-06-06T05:56:54Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>画像付きの日記を日記の表示画面 (/diary/:id) などでサムネイル表示した際に、投稿された画像の縦横比に関わらず <strong>長辺が切り落とされた正方形</strong> で表示されてしまう。<br />この挙動は OpenPNE3.8 から追加されたメンバー画像の正方形化 (<a class="issue tracker-2 status-5 priority-5 priority-high3 closed" title="Enhancement(機能追加・改善): デフォルトで生成されるキャッシュ画像を正方形に切り取る (Fixed(完了))" href="http://redmine.openpne.jp/issues/2890">#2890</a>) が他方にも影響したバグであると推測して調査を行う。</p>
<a name="調査時に注意すべき点"></a>
<h3 >調査時に注意すべき点<a href="#調査時に注意すべき点" class="wiki-anchor">¶</a></h3>
<p>このバグに関する調査の注意点として、 <a class="issue tracker-1 status-1 priority-4 priority-default" title="Bug(バグ): ./symfony cc を実行しても web/cache/ ディレクトリ以下に生成されたキャッシュが削除されない (New(新規))" href="http://redmine.openpne.jp/issues/3357">#3357</a> の影響によりサムネイル画像のキャッシュ (web/cache/ 以下に生成される) は ./symfony cc コマンドでは削除されないため、挙動の変化を確認する際には手動でこのキャッシュを削除する必要がある。</p>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p><a class="issue tracker-2 status-5 priority-5 priority-high3 closed" title="Enhancement(機能追加・改善): デフォルトで生成されるキャッシュ画像を正方形に切り取る (Fixed(完了))" href="http://redmine.openpne.jp/issues/2890">#2890</a> の変更が sfImageHandlerPlugin を介する全ての画像に影響していることによるもの。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<ul>
<li>正方形化した画像とそうでない画像でURLを区別しキャッシュの混在を避ける
<ul>
<li>/cache/img/png/w120_h120/hogehoge.png (通常の画像)</li>
<li>/cache/img/png/w120_h120_sq/hogehoge.png (正方形化する画像)</li>
</ul>
</li>
<li>ヘルパー関数 sf_image_path に square オプションを追加し、テンプレートにおいて画像を正方形化した状態で表示するか否かを選択できる状態にする
<ul>
<li>このオプションは、メンバー画像 (nameが m_ から始まる) とコミュニティ画像 (nameが c_ から始まる) についてはデフォルトで true とし、それ以外はデフォルトで false とする。</li>
</ul></li>
</ul>
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>
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>