OpenPNE Issue Tracking System: チケット
http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2017-02-16T11:33:52Z
OpenPNE Issue Tracking System
Redmine
opWebAPIPlugin - Bug(バグ) #4156 (New(新規)): MySQLのONLY_FULL_GROUP_BYが有効な状態でコミュニティ一覧のフィードを取得するとエラー
http://redmine.openpne.jp/issues/4156
2017-02-16T11:33:52Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-概要"></a>
<h3 >Overview (概要)<a href="#Overview-概要" class="wiki-anchor">¶</a></h3>
<p>MySQL 5.7 の Strict Mode が有効な状態での動作確認 (<a class="issue tracker-5 status-2 priority-4 priority-default parent" title="Task(タスク): MySQLのStrict Modeを有効にした場合に生じる問題を調査 (Accepted(着手))" href="http://redmine.openpne.jp/issues/4033">#4033</a>) を行った際に発生した。</p>
<p>コミュニティ一覧のフィード (<code>/api.php/feeds/community</code>) を取得すると下記のエラーが発生する:</p>
<pre>
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'openpne.c3.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by.
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="sql syntaxhl"><span class="CodeRay"><span class="class">SELECT</span> <span class="keyword">DISTINCT</span> c3.id
<span class="keyword">FROM</span> community c3
<span class="keyword">LEFT</span> <span class="keyword">JOIN</span> community_member c4 <span class="keyword">ON</span> c3.id = c4.community_id
<span class="keyword">GROUP</span> <span class="keyword">BY</span> c4.community_id
<span class="keyword">ORDER</span> <span class="keyword">BY</span> c3.created_at <span class="directive">DESC</span>
LIMIT <span class="integer">25</span>
</span></code></pre>
<p>上記のクエリで、<code>c3.id</code> が GROUP BY に含まれていないためエラーが発生している。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>修正内容を記入</p>
opRankingPlugin - Bug(バグ) #4155 (New(新規)): MySQLのONLY_FULL_GROUP_BYが有効な状態でコミュニティ盛り上がり度ランキング画面を表示す...
http://redmine.openpne.jp/issues/4155
2017-02-16T07:20:26Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-概要"></a>
<h3 >Overview (概要)<a href="#Overview-概要" class="wiki-anchor">¶</a></h3>
<p>MySQL 5.7 の Strict Mode が有効な状態での動作確認 (<a class="issue tracker-5 status-2 priority-4 priority-default parent" title="Task(タスク): MySQLのStrict Modeを有効にした場合に生じる問題を調査 (Accepted(着手))" href="http://redmine.openpne.jp/issues/4033">#4033</a>) を行った際に発生した。</p>
<p>コミュニティ盛り上がり度ランキング画面を開くと下記のエラーが発生する:</p>
<pre>
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'openpne.c.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="sql syntaxhl"><span class="CodeRay"><span class="class">SELECT</span> c.id <span class="keyword">AS</span> c__id, c2.id <span class="keyword">AS</span> c2__id, c2.community_id <span class="keyword">AS</span> c2__1, <span class="predefined">COUNT</span>(*) <span class="keyword">AS</span> c__0, c2.community_id <span class="keyword">AS</span> c2__1
<span class="keyword">FROM</span> community_topic_comment c
<span class="keyword">LEFT</span> <span class="keyword">JOIN</span> community_topic c2 <span class="keyword">ON</span> c.community_topic_id = c2.id
<span class="keyword">WHERE</span> (c.created_at >= <span class="string"><span class="delimiter">'</span><span class="content">2017-02-15</span><span class="delimiter">'</span></span> <span class="keyword">AND</span> c.created_at < <span class="string"><span class="delimiter">'</span><span class="content">2017-02-16</span><span class="delimiter">'</span></span>)
<span class="keyword">GROUP</span> <span class="keyword">BY</span> c2.community_id
<span class="keyword">ORDER</span> <span class="keyword">BY</span> <span class="predefined">COUNT</span>(*) <span class="directive">DESC</span>
LIMIT <span class="integer">10</span>
</span></code></pre>
<p>上記のクエリで、<code>c.id</code> が GROUP BY に含まれていないためエラーが発生している。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>修正内容を記入</p>
opRankingPlugin - Bug(バグ) #4154 (New(新規)): MySQLのONLY_FULL_GROUP_BYが有効な状態でコミュニティ参加人数ランキング画面を表示するとエラー
http://redmine.openpne.jp/issues/4154
2017-02-16T07:18:21Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-概要"></a>
<h3 >Overview (概要)<a href="#Overview-概要" class="wiki-anchor">¶</a></h3>
<p>MySQL 5.7 の Strict Mode が有効な状態での動作確認 (<a class="issue tracker-5 status-2 priority-4 priority-default parent" title="Task(タスク): MySQLのStrict Modeを有効にした場合に生じる問題を調査 (Accepted(着手))" href="http://redmine.openpne.jp/issues/4033">#4033</a>) を行った際に発生した。</p>
<p>コミュニティ参加人数ランキング画面を開くと下記のエラーが発生する:</p>
<pre>
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'openpne.c.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by.
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="sql syntaxhl"><span class="CodeRay"><span class="class">SELECT</span> c.id <span class="keyword">AS</span> c__id, c.community_id <span class="keyword">AS</span> c__community_id, <span class="predefined">COUNT</span>(*) <span class="keyword">AS</span> c__0
<span class="keyword">FROM</span> community_member c
<span class="keyword">GROUP</span> <span class="keyword">BY</span> c.community_id
<span class="keyword">ORDER</span> <span class="keyword">BY</span> <span class="predefined">COUNT</span>(*) <span class="directive">DESC</span>
LIMIT <span class="integer">10</span>
</span></code></pre>
<p>上記のクエリで、<code>c.id</code> が GROUP BY に含まれていないためエラーが発生している。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>修正内容を記入</p>
opRankingPlugin - Bug(バグ) #4153 (New(新規)): MySQLのONLY_FULL_GROUP_BYが有効な状態でフレンド数ランキング画面を表示するとエラー
http://redmine.openpne.jp/issues/4153
2017-02-16T07:16:05Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-概要"></a>
<h3 >Overview (概要)<a href="#Overview-概要" class="wiki-anchor">¶</a></h3>
<p>MySQL 5.7 の Strict Mode が有効な状態での動作確認 (<a class="issue tracker-5 status-2 priority-4 priority-default parent" title="Task(タスク): MySQLのStrict Modeを有効にした場合に生じる問題を調査 (Accepted(着手))" href="http://redmine.openpne.jp/issues/4033">#4033</a>) を行った際に発生した。</p>
<p>フレンド数ランキング画面を開くと下記のエラーが発生する:</p>
<pre>
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'openpne.m.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="sql syntaxhl"><span class="CodeRay"><span class="class">SELECT</span> m.id <span class="keyword">AS</span> m__id, m.member_id_to <span class="keyword">AS</span> m__member_id_to, <span class="predefined">COUNT</span>(*) <span class="keyword">AS</span> m__0
<span class="keyword">FROM</span> member_relationship m
<span class="keyword">LEFT</span> <span class="keyword">JOIN</span> member m2 <span class="keyword">ON</span> m.member_id_to = m2.id
<span class="keyword">WHERE</span> (m.is_friend = <span class="string"><span class="delimiter">'</span><span class="content">1</span><span class="delimiter">'</span></span> <span class="keyword">AND</span> m2.is_active = <span class="string"><span class="delimiter">'</span><span class="content">1</span><span class="delimiter">'</span></span>)
<span class="keyword">GROUP</span> <span class="keyword">BY</span> m2.id
<span class="keyword">ORDER</span> <span class="keyword">BY</span> <span class="predefined">COUNT</span>(*) <span class="directive">DESC</span>
LIMIT <span class="integer">10</span>
</span></code></pre>
<p>上記のクエリで、<code>m.id</code> が GROUP BY に含まれていないためエラーが発生している。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>修正内容を記入</p>
opRankingPlugin - Bug(バグ) #4152 (New(新規)): MySQLのONLY_FULL_GROUP_BYが有効な状態でアクセス数ランキング画面を表示するとエラー
http://redmine.openpne.jp/issues/4152
2017-02-16T07:02:03Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-概要"></a>
<h3 >Overview (概要)<a href="#Overview-概要" class="wiki-anchor">¶</a></h3>
<p>MySQL 5.7 の Strict Mode が有効な状態での動作確認 (<a class="issue tracker-5 status-2 priority-4 priority-default parent" title="Task(タスク): MySQLのStrict Modeを有効にした場合に生じる問題を調査 (Accepted(着手))" href="http://redmine.openpne.jp/issues/4033">#4033</a>) を行った際に発生した。</p>
<p>アクセス数ランキング画面を開くと下記のエラーが発生する:</p>
<pre>
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'openpne.a.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<pre><code class="sql syntaxhl"><span class="CodeRay"><span class="class">SELECT</span> a.id <span class="keyword">AS</span> a__id, a.member_id_to <span class="keyword">AS</span> a__member_id_to, <span class="predefined">COUNT</span>(*) <span class="keyword">AS</span> a__0
<span class="keyword">FROM</span> ashiato a
<span class="keyword">WHERE</span> (a.created_at >= <span class="string"><span class="delimiter">'</span><span class="content">2017-02-15</span><span class="delimiter">'</span></span> <span class="keyword">AND</span> a.created_at < <span class="string"><span class="delimiter">'</span><span class="content">2017-02-16</span><span class="delimiter">'</span></span>)
<span class="keyword">GROUP</span> <span class="keyword">BY</span> a.member_id_to
<span class="keyword">ORDER</span> <span class="keyword">BY</span> <span class="predefined">COUNT</span>(*) <span class="directive">DESC</span>
LIMIT <span class="integer">10</span>
</span></code></pre>
<p>上記のクエリで、<code>a.id</code> が GROUP BY に含まれていないためエラーが発生している。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>修正内容を記入</p>
opSkinThemePlugin - Bug(バグ) #4026 (Pending Review(レビュー待ち)): PC向けのテンプレートのみ存在する画面をスマートフォンで閲覧するとテーマC...
http://redmine.openpne.jp/issues/4026
2016-10-19T06:01:24Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>opSkinThemePlugin は、リクエストのあった User-Agent に応じて PC 向けの CSS とスマートフォン向けの CSS を分けて出力できるが、スマートフォンで PC 向けのテンプレートのみ用意された画面を開くと PC, スマートフォン向けのいずれの CSS も読み込まれない現象が起こる。<br />具体的には opAuthMailAddressPlugin の新規登録画面 (/opAuthMailAddress/requestRegisterURL) などで発生する。</p>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p><code>opThemeEvent::enableSkinByTheme()</code> メソッドでは、<code>opWebRequest::isSmartphone()</code> の結果が true の場合にはスマートフォン向け CSS のみを設定し、false の場合には PC 向け CSS のみを設定という動作となっている。<br />しかし、スマートフォンから閲覧した場合は表示される画面が常にスマートフォン向けのレイアウトであるとは限らず、PC 向けテンプレートのみ用意されている画面であれば PC 向けのレイアウトで表示される。<br />そのため、スマートフォンからの閲覧でかつ PC 向けのレイアウトが表示される場合に、PC 向け CSS が設定されておらずスキンが適用されていない状態で表示されていた。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p><code>opWebRequest::isSmartphone()</code> の結果が true の場合にはスマートフォン向け CSS と PC 向け CSS の両方が設定されるように修正する。</p>
opPluginChannelServerPlugin - Bug(バグ) #3950 (New(新規)): REST APIの allreleases.xml がバージョンの降順に並んでいない
http://redmine.openpne.jp/issues/3950
2016-05-24T02:35:48Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>PEAR チャンネルサーバーの REST インタフェースに含まれる <code>allreleases.xml</code> は最新のリリースが最初に来るように並んでいる必要がありますが、現在の plugins.openpne.jp では古いリリースから順に並んでいるためこの仕様に合致していません。</p>
<blockquote>
<p>Releases in this file are ordered, the latest version has to be first.</p>
<p><a href="https://pear.php.net/manual/en/core.rest.php#core.rest.fileformats.r-package-allreleasesxml" class="external">Manual :: PEAR channel server REST interface</a></p>
</blockquote>
<p>例: opCommunityTopicPlugin の allreleases.xml<br /><a class="external" href="http://plugins.openpne.jp/pluginRest/r/opcommunitytopicplugin/allreleases.xml">http://plugins.openpne.jp/pluginRest/r/opcommunitytopicplugin/allreleases.xml</a></p>
<p>この不具合により OpenPNE のプラグインインストール時に、</p>
<pre>
$ ./symfony opPlugin:install opCommunityTopicPlugin
</pre>
<p>のようにバージョン指定を省略して <code>opPlugin:install</code> を実行すると、OpenPNE 3.8.19 の場合は opCommunityTopicPlugin v0.9.10 がインストールされます。<br />これは、<code>allreleases.xml</code> に含まれるリリースのうち <code>stable</code> かつ最初に登場するリリースが選択されることによるものです。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p><a href="https://github.com/tejimaya/opPluginChannelServerPlugin/blob/1.0.2/apps/pc_frontend/modules/pluginRest/templates/releaseAllSuccess.xml.php#L11-L13" class="external">apps/pc_frontend/modules/pluginRest/templates/releaseAllSuccess.xml.php</a>:</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="inline-delimiter"><?php</span> <span class="keyword">foreach</span> (<span class="local-variable">$package</span>-><span class="constant">PluginRelease</span> <span class="keyword">as</span> <span class="local-variable">$release</span>): <span class="inline-delimiter">?></span>
<span class="tag"><r></span><span class="tag"><v></span><span class="inline-delimiter"><?php</span> <span class="predefined">echo</span> <span class="local-variable">$release</span>->version <span class="inline-delimiter">?></span><span class="tag"></v></span><span class="tag"><s></span><span class="inline-delimiter"><?php</span> <span class="predefined">echo</span> <span class="local-variable">$release</span>->stability <span class="inline-delimiter">?></span><span class="tag"></s></span><span class="tag"></r></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">endforeach</span>; <span class="inline-delimiter">?></span>
</span></code></pre>
<p>上記テンプレート内でリリース情報を出力する際に <code>PluginRelease</code> がソートされないまま出力していることが原因です。ここでは <code>PluginPackage->PluginRelease</code> を参照していますが、この場合は <code>PluginRelease</code> が順不同で列挙されます。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p><code>PluginPackage</code> をバージョン番号順にソートして出力する。<code>PluginPackage</code> クラスの他のメソッドでは <a href="https://secure.php.net/manual/ja/function.version-compare.php" class="external">version_compare 関数</a> を使用してソートしているため、これに合わせて修正する。</p>
opOpenSocialPlugin - Bug(バグ) #3936 (Pending Review(レビュー待ち)): SNSメンバーによるアプリ追加を許可しても「新しいアプリをインストールす...
http://redmine.openpne.jp/issues/3936
2016-04-27T05:21:19Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>管理画面から opOpenSocialPlugin の「アプリ設定」(/pc_backend.php/opOpenSocialPlugin) にある「SNSメンバーのアプリ追加を許可」を「許可」または「SNS管理者の許可が必要」にセットすると、管理画面だけでなく SNS メンバーが OpenSocial アプリをインストールすることができるようになる。</p>
<p>しかし、「アプリを新しく追加する」(/application/install) のページへ移動するためのリンクが、すでにアプリを追加しているメンバーにしか表示されないため、SNS メンバーが新たにアプリをインストールしたい場合には既にインストールされている他の適当なアプリを追加する必要がある。</p>
<p>アプリが追加されていないメンバーの表示:<br /><img src="http://redmine.openpne.jp/attachments/download/618/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2016-04-27_13.07.36.png" style="width:734px;" alt="" /></p>
<p>アプリが追加されているメンバーの表示:<br /><img src="http://redmine.openpne.jp/attachments/download/617/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2016-04-27_13.05.21.png" style="width:735px;" alt="" /></p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/plg-open-social/repository/revisions/6d81bffd/entry/apps/pc_frontend/modules/application/templates/listSuccess.php#L31">source:apps/pc_frontend/modules/application/templates/listSuccess.php@6d81bffd#L31</a></p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="inline-delimiter"><?php</span> <span class="keyword">if</span> (<span class="local-variable">$isOwner</span> && <span class="predefined">isset</span>(<span class="local-variable">$memberApplications</span>) && <span class="predefined">count</span>(<span class="local-variable">$memberApplications</span>)) : <span class="inline-delimiter">?></span>
<span class="inline-delimiter"><?php</span> <span class="predefined">echo</span> sortable_element(<span class="string"><span class="delimiter">'</span><span class="content">order</span><span class="delimiter">'</span></span>, <span class="predefined">array</span>(
<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">@application_sort</span><span class="delimiter">'</span></span>,
<span class="string"><span class="delimiter">'</span><span class="content">tag</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">div</span><span class="delimiter">'</span></span>,
<span class="string"><span class="delimiter">'</span><span class="content">only</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">sortable</span><span class="delimiter">'</span></span>,
<span class="string"><span class="delimiter">'</span><span class="content">with</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">Sortable.serialize("order")+"&</span><span class="delimiter">'</span></span>.<span class="predefined">urlencode</span>(<span class="local-variable">$form</span>->getCSRFFieldName()).<span class="string"><span class="delimiter">'</span><span class="content">=</span><span class="delimiter">'</span></span>.<span class="predefined">urlencode</span>(<span class="local-variable">$form</span>->getCSRFToken()).<span class="string"><span class="delimiter">'</span><span class="content">"</span><span class="delimiter">'</span></span>
)); <span class="inline-delimiter">?></span>
<span class="tag"><div</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">moreInfo</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><ul</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">moreInfo</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><li></span>
<span class="inline-delimiter"><?php</span> <span class="predefined">echo</span> link_to(__(<span class="string"><span class="delimiter">'</span><span class="content">App Gallery</span><span class="delimiter">'</span></span>), <span class="string"><span class="delimiter">'</span><span class="content">@application_gallery</span><span class="delimiter">'</span></span>) <span class="inline-delimiter">?></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">if</span> (<span class="local-variable">$isOwner</span>): <span class="inline-delimiter">?></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">if</span> (<span class="local-variable">$isInstallApp</span>): <span class="inline-delimiter">?></span>
<span class="tag"><li></span><span class="inline-delimiter"><?php</span> <span class="predefined">echo</span> link_to(__(<span class="string"><span class="delimiter">'</span><span class="content">Install new App</span><span class="delimiter">'</span></span>), <span class="string"><span class="delimiter">'</span><span class="content">@application_install</span><span class="delimiter">'</span></span>) <span class="inline-delimiter">?></span><span class="tag"></li></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">endif</span>; <span class="inline-delimiter">?></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">if</span> (<span class="local-variable">$isInstalledApp</span>): <span class="inline-delimiter">?></span>
<span class="tag"><li></span><span class="inline-delimiter"><?php</span> <span class="predefined">echo</span> link_to(__(<span class="string"><span class="delimiter">'</span><span class="content">Apps Installed by You</span><span class="delimiter">'</span></span>), <span class="string"><span class="delimiter">'</span><span class="content">@application_installed_list</span><span class="delimiter">'</span></span>) <span class="inline-delimiter">?></span><span class="tag"></li></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">endif</span>; <span class="inline-delimiter">?></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">endif</span>; <span class="inline-delimiter">?></span>
<span class="tag"></li></span>
<span class="tag"></ul></span>
<span class="tag"></div></span>
<span class="inline-delimiter"><?php</span> <span class="keyword">endif</span>; <span class="inline-delimiter">?></span>
</span></code></pre>
<p>上記のコードのうち <code>sortable_element</code> はメンバーが持っているアプリケーションを並べ替えるために必要な部分となっているが、<code>div.moreInfo</code> に表示される項目についてはメンバーがアプリケーションを持っているか否かは関係なく <code>$isOwner</code> が true であれば表示すべき部分であるため、この if の条件が適切でないことが原因であるといえる。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>メンバーがアプリケーションを持っているか否かに関わらず <code>$isOwner</code> が true であれば <code>div.moreInfo</code> を表示する</p>
opOpenSocialPlugin - Bug(バグ) #3932 (New(新規)): pc,mobile両方のContentを持つアプリがホーム画面およびプロフィール画面に表示されない
http://redmine.openpne.jp/issues/3932
2016-04-20T10:32:46Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="external" href="https://gist.github.com/upsilon/951203">https://gist.github.com/upsilon/951203</a> のように PC, mobile 向けの両方の Content を持つアプリが、ホーム画面とプロフィール画面の「アプリケーションボックス」ガジェットの位置に表示されない。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/plg-open-social/repository/revisions/6d81bffd/entry/apps/pc_frontend/modules/application/actions/components.class.php#L106">source:apps/pc_frontend/modules/application/actions/components.class.php@6d81bffd#L106</a></p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">public</span> <span class="keyword">function</span> <span class="function">executeRenderHomeApplications</span>(sfWebRequest <span class="local-variable">$request</span>)
{
<span class="local-variable">$this</span>->memberApplications = <span class="constant">Doctrine</span>::getTable(<span class="string"><span class="delimiter">'</span><span class="content">MemberApplication</span><span class="delimiter">'</span></span>)->getMemberApplications(<span class="predefined-constant">null</span>, <span class="predefined-constant">null</span>, <span class="predefined-constant">true</span>, <span class="predefined-constant">true</span>, <span class="predefined-constant">false</span>);
}
</span></code></pre>
<p>ホーム画面でアプリケーションを表示するアクションでは、上記のように <code>MemberApplicationTable::getMemberApplications()</code> メソッドの引数 <code>$isMobile</code> に false を指定している。</p>
<p><code>MemberApplicationTable::getMemberApplications()</code> メソッドの引数 <code>$isPc</code>, <code>$isMobile</code> は true, false, null の三値が想定されており、true, false の場合は <code>application.is_pc = ?</code> のような条件が加わり、null の場合は is_pc, is_mobile のそれぞれに対する条件が付かなくなる。<br />この場合、<code>$isPc</code> に true、<code>$isMobile</code> に false が指定されているため、<code>application.is_pc = 1 AND application.is_mobile = 0</code> のような条件が加わることになり、is_mobile が 1 であるアプリケーションは is_pc の値に関わらず条件に該当しなくなる。</p>
<p>このことが、mobile 向け Content を持つアプリケーションが PC 向けの Content も持つか否かに関わらずホーム画面およびプロフィール画面で非表示となる原因である。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>pc_frontend のホーム画面およびプロフィール画面の場合、<code>application.is_mobile</code> の値に関わらず <code>application.is_pc = 1</code> のみ満たしていれば十分であるため、<code>MemberApplicationTable::getMemberApplications()</code> メソッドの引数 <code>$isMobile</code> には false ではなく null に修正する必要がある。</p>
opOpenSocialPlugin - Bug(バグ) #2145 (Fixed(完了)): [api] /albums/@me/@self で取得したアルバムのサムネイルが未設定の場合 th...
http://redmine.openpne.jp/issues/2145
2011-06-03T13:42:13Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><code>/albums/@me/@self</code> でアルバムのコレクションを取得すると、サムネイルが未設定のアルバムに <code>http://sns.example.com/cache/img/jpg/w180_h180/.jpg</code> のようなURLが入ってしまう。</p>
<pre><code class="javascript syntaxhl"><span class="CodeRay">{
<span class="key"><span class="delimiter">"</span><span class="content">entry</span><span class="delimiter">"</span></span>: [
{
<span class="key"><span class="delimiter">"</span><span class="content">id</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">1</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">title</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">test</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">description</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">aaaaa</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">mediaItemCount</span><span class="delimiter">"</span></span>: <span class="integer">2</span>,
<span class="key"><span class="delimiter">"</span><span class="content">ownerId</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">3</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">thumbnailUrl</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http:</span><span class="content">\/</span><span class="content">\/</span><span class="content">sns.localhost</span><span class="content">\/</span><span class="content">sqlite</span><span class="content">\/</span><span class="content">cache</span><span class="content">\/</span><span class="content">img</span><span class="content">\/</span><span class="content">jpg</span><span class="content">\/</span><span class="content">w180_h180</span><span class="content">\/</span><span class="content">.jpg</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">mediaType</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">IMAGE</span><span class="delimiter">"</span></span>
}
],
<span class="key"><span class="delimiter">"</span><span class="content">startIndex</span><span class="delimiter">"</span></span>:<span class="integer">0</span>,
<span class="key"><span class="delimiter">"</span><span class="content">totalResults</span><span class="delimiter">"</span></span>:<span class="integer">1</span>,
<span class="key"><span class="delimiter">"</span><span class="content">itemsPerPage</span><span class="delimiter">"</span></span>:<span class="integer">10</span>
}
</span></code></pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p><code>lib/util/opJsonDbOpensocialService.class.php</code> で以下のようにサムネイルの有無をチェックしている箇所があるが、サムネイルが未設定の場合 (album.file_id = null) は <code>$object->getFile()</code> メソッドの実行時に File オブジェクトのインスタンスが新規に生成されてしまうため条件式が偽にならずURLの生成が行われてしまう。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">thumbnailUrl</span><span class="delimiter">'</span></span>] = <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
<span class="keyword">if</span> (<span class="local-variable">$object</span>->getFile())
{
sfContext::getInstance()->getConfiguration()->loadHelpers(<span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">Asset</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">sfImage</span><span class="delimiter">'</span></span>));
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">thumbnailUrl</span><span class="delimiter">'</span></span>] = sf_image_path(<span class="local-variable">$object</span>->getFile(), <span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">size</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">180x180</span><span class="delimiter">'</span></span>), <span class="predefined-constant">true</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>getFile()</code> メソッドではなく <code>getFileId()</code> メソッドを使用してサムネイルの有無をチェックする。</p>
opOpenSocialPlugin - Bug(バグ) #2072 (Fixed(完了)): [api] /mediaitems/@me/@self/{albumId} で取得できるコレクショ...
http://redmine.openpne.jp/issues/2072
2011-05-10T09:21:04Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>/mediaitems/@me/@self/{albumId} でアルバムに含まれるMediaItemのコレクションを取得すると、下記のように albumId フィールドがMediaItemのidの値になってしまう。</p>
<pre><code class="javascript syntaxhl"><span class="CodeRay">{
<span class="key"><span class="delimiter">"</span><span class="content">entry</span><span class="delimiter">"</span></span>: [
{
<span class="key"><span class="delimiter">"</span><span class="content">albumId</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">1</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">created</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">2011-05-10 17:57:37</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">description</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">0f7d8518b483d10f86a6d90edeb97979fd0af43a_png</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">fileSize</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">0</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">id</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">1</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">lastUpdated</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">2011-05-10 17:57:37</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">thumbnailUrl</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://sns.localhost/sqlite/cache/img/png/w180_h180/a_1_0f7d8518b483d10f86a6d90edeb97979fd0af43a_png.png</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">title</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">0f7d8518b483d10f86a6d90edeb97979fd0af43a_png</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">IMAGE</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">url</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://sns.localhost/sqlite/cache/img/png/w_h/a_1_0f7d8518b483d10f86a6d90edeb97979fd0af43a_png.png</span><span class="delimiter">"</span></span>
},
{
<span class="key"><span class="delimiter">"</span><span class="content">albumId</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">2</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">created</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">2011-05-10 17:57:38</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">description</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">c51bc5e4eb6eec85258f088f9900c0f059d9c394_png</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">fileSize</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">0</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">id</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">2</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">lastUpdated</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">2011-05-10 17:57:38</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">thumbnailUrl</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://sns.localhost/sqlite/cache/img/png/w180_h180/a_1_c51bc5e4eb6eec85258f088f9900c0f059d9c394_png.png</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">title</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">c51bc5e4eb6eec85258f088f9900c0f059d9c394_png</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">IMAGE</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">url</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://sns.localhost/sqlite/cache/img/png/w_h/a_1_c51bc5e4eb6eec85258f088f9900c0f059d9c394_png.png</span><span class="delimiter">"</span></span>
}
],
<span class="key"><span class="delimiter">"</span><span class="content">itemsPerPage</span><span class="delimiter">"</span></span>: <span class="integer">10</span>,
<span class="key"><span class="delimiter">"</span><span class="content">startIndex</span><span class="delimiter">"</span></span>: <span class="integer">0</span>,
<span class="key"><span class="delimiter">"</span><span class="content">totalResults</span><span class="delimiter">"</span></span>: <span class="integer">2</span>
}
</span></code></pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>lib/util/opJsonDbOpensocialService.class.php にて、下記のように albumId にalbum_imageテーブルのidの値を入れている箇所があるため。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="keyword">foreach</span> (<span class="local-variable">$objects</span> <span class="keyword">as</span> <span class="local-variable">$object</span>)
{
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">albumId</span><span class="delimiter">'</span></span>] = <span class="local-variable">$object</span>->getId();
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">created</span><span class="delimiter">'</span></span>] = <span class="local-variable">$object</span>->getCreatedAt();
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">description</span><span class="delimiter">'</span></span>] = opOpenSocialToolKit::convertEmojiForApi(<span class="local-variable">$object</span>->getDescription());
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">fileSize</span><span class="delimiter">'</span></span>] = <span class="local-variable">$object</span>->getFilesize();
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">id</span><span class="delimiter">'</span></span>] = <span class="local-variable">$object</span>->getId();
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">lastUpdated</span><span class="delimiter">'</span></span>] = <span class="local-variable">$object</span>->getUpdatedAt();
<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">thumbnailUrl</span><span class="delimiter">'</span></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>$result['albumId'] にalbum_imageテーブルの <strong>album_id</strong> の値を入れるように修正する。</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>
opWikifyPlugin - Bug(バグ) #1891 (Fixed(完了)): URLの「#」や「/」などの文字もエンコードされてしまう
http://redmine.openpne.jp/issues/1891
2011-01-24T12:25:02Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>リンク構文を使用して <code>[[aaa#bbb]]</code> や <code>[[aaa/bbb]]</code> のように記述すると、 <code>http://example.com/wiki/aaa%23bbb</code> や <code>http://example.com/wiki/aaa%2Fbbb</code> のように変換されてしまい、アンカーやサブページ(MediaWiki)などが正しく機能しない。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>PHPのurlencode()が「#」や「/」もエスケープするため、これらの文字を分けてエンコードする必要がある。</p>
opWikifyPlugin - Bug(バグ) #1890 (New(新規)): 「最新日記」ページで日記の本文要約にタグが出力されてしまう
http://redmine.openpne.jp/issues/1890
2011-01-24T12:05:28Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>日記の先頭近くにリンク構文が含まれていると、最新日記ページの日記の本文要約に「<a class="wikilink" target="_blank" href="http:// ...」とタグが出力されてしまう。<br />ただしエスケープされているため脆弱性ではない。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>OpenPNE3のコアに対して行った <a class="external" href="https://github.com/upsilon/OpenPNE3/commit/ace43b7">https://github.com/upsilon/OpenPNE3/commit/ace43b7</a> の機能追加では、イベントの受信先が $isStrip の値を知ることができないため常にタグを出力することになる。<br /><a class="issue tracker-2 status-1 priority-4 priority-default" title="Enhancement(機能追加・改善): 日記のコメントやコミュニティのトピックなどでリンク構文を使うことができない (New(新規))" href="http://redmine.openpne.jp/issues/1889">#1889</a> の修正を行うことでも解決できるが、いずれにせよpull-requestは修正する必要がある。</p>
opRichTextareaSyntaxHighlightP - Bug(バグ) #777 (New(新規)): 表示するコード中にURLが含まれているとaタグに置き換わってしまう
http://redmine.openpne.jp/issues/777
2010-03-03T09:48:17Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="手順"></a>
<h3 >手順<a href="#手順" class="wiki-anchor">¶</a></h3>
<ol>
<li>日記作成画面でタイトルを入れ、本文に<br /><pre><code><op:source lang="html">
http://www.example.com/
</op:source>
</code></pre>と入力する</li>
<li>「確定」をクリック</li>
<li>日記本文に<br /><pre><code><a href="http://www.example.com/" target="_blank">http://www.example.com/</a>
</code></pre>と表示されます</li>
</ol>