<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>車輪の再発明記録</title>
<link>https://ameblo.jp/pcsg/</link>
<atom:link href="https://rssblog.ameba.jp/pcsg/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>無駄なことを再発明するブログです。</description>
<language>ja</language>
<item>
<title>update_access_collection()メソッド</title>
<description>
<![CDATA[ update_access_collection(collection_id, members)メソッド<br><br>説明<br>アクセスコレクションの更新は、メンバーシップ。<br>共通変数<br>CONFIG<br><pre><br>1collection_idをintに変換<br>2members変数がnullの場合<br>2.1members変数を配列で初期化<br>3collections = get_write_access_array()を代入<br>指定したユーザーが使用してオブジェクトを保存するために許可されているアクセス許可の配列を返します。<br>4collections内にcollection_idのkeyが存在する場合<br>4.1cur_members = get_members_of_access_collection(collection_id, true)<br>友人のコレクションのすべてのメンバーを取得する<br>4.2cur_membersがnullであった場合<br>4.2.1cur_members変数を配列で初期化<br>4.3remove_members = array_diff(cur_members, members)を代入<br>cur_membersにありmembersにないものを抽出する<br>4.4add_members = array_diff(members, cur_members) を代入<br>membersにありcur_membersにないものを抽出する<br>4.5params = array(<br>'collection_id' =&gt; collection_id, <br>'members' =&gt; members, <br>'add_members' =&gt; add_members, <br>'remove_members' =&gt; remove_members)を代入する<br>4.6add_membersをforeachで回す(guid)<br>4.6.1add_user_to_access_collection(guid, collection_id)<br>指定したユーザーのコレクションにユーザーを追加します<br>4.7remove_membersをforeachで回す(guid)<br>4.7.1remove_user_from_access_collection(guid, collection_id)<br>アクセスコレクションからユーザーを削除します。<br>4.8trueを返す<br>5falseを返す<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11266045881.html</link>
<pubDate>Fri, 01 Jun 2012 11:38:13 +0900</pubDate>
</item>
<item>
<title>create_access_collection()メソッド</title>
<description>
<![CDATA[ create_access_collection(name, owner_guid = 0, site_guid = 0)メソッド<br><br>説明<br>指定されたユーザーが所有している新しいアクセス制御コレクションを作成します。<br>共通変数<br>CONFIG<br><pre><br>1name = trim($name)<br>前後についている空文字を除去する<br>2nameに値がない場合<br>2.1falseを返す<br>3owner_guidが0であった場合<br>3.1owner_guid = get_loggedin_userid()<br>ログインしているユーザーのidを返す<br>4site_guidが0でかつ、CONFIG.site_guidがnullでない場合<br>4.1site_guid = CONFIG.site_guidを代入<br>5name = sanitise_string(name)<br>name変数をエスケープする<br>6"INSERT INTO " + CONFIG.dbprefix + "access_collections" +<br>"SET name = '" + name + "', " +<br>"owner_guid = " + owner_guid + "," +<br>"site_guid = " + site_guid<br>上記SQL文をq変数に代入する<br>7insert_data(q)を実行できなかった場合<br>7.1falseを返す<br>8params = array('collection_id' =&gt; id)を代入する<br>※C#で作成する場合Dictionaryクラスを使用する<br>9trigger_plugin_hook('access:collections:addcollection', 'collection', params, true)が実行できなかった場合<br>9.1falseを返す<br>10idを返す<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11266044799.html</link>
<pubDate>Fri, 01 Jun 2012 11:36:19 +0900</pubDate>
</item>
<item>
<title>get_write_access_array()メソッド</title>
<description>
<![CDATA[ get_write_access_array(user_id = 0, site_id = 0, flush = false)メソッド<br><br>説明<br>指定したユーザーが使用してオブジェクトを保存するために許可されているアクセス許可の配列を返します。<br>共通変数<br>CONFIG<br>静的変数<br>access_array<br><pre><br>1user_idが0であった場合<br>1.1user_id = get_loggedin_userid()<br>ログインユーザーのuseridを返します。<br>2site_idが0でかつ、CONFIG.site_idがnullでない場合<br>2.1site_id = CONFIG.site_idを代入<br>3user_idをintに変換<br>4site_idをintに変換<br>5access_array[user_id]がnullまたは、flushがtrueであった場合<br>5.1"SELECT ag.* FROM " + CONFIG.dbprefix + "access_collections ag " +<br>" WHERE (ag.site_guid = " + site_id + " OR ag.site_guid = 0)" +<br>" AND (ag.owner_guid = " + user_id + ")" +<br>" AND ag.id &gt;= 3"<br>上記SQLをquery変数に代入する<br>5.2get_data(query)に値が存在する場合(collections変数に代入する)<br>データベースからデータを取得する<br>5.2.1取得したデータをforeachで回す(collectionに代入)<br>5.2.1.1tmp_access_array[collection.id] = collection.nameを代入する<br>5.3access_array[user_id] = tmp_access_arrayに代入<br>6access_array[user_id]がnullまたは、flushがtrueでなかった場合<br>6.1tmp_access_array = access_array[user_id]を代入<br>7tmp_access_array = <br>trigger_plugin_hook('access:collections:write', 'user',array('user_id' =&gt; user_id, 'site_id' =&gt; site_id), tmp_access_array)<br>配列など、さまざまなパラメータを使用して、プラグインフックをトリガーします。<br>8tmp_access_arrayを返す<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11266042280.html</link>
<pubDate>Fri, 01 Jun 2012 11:31:13 +0900</pubDate>
</item>
<item>
<title>has_access_to_entity()メソッド</title>
<description>
<![CDATA[ has_access_to_entity(entity, user = null)メソッド<br><br>説明<br>特定のユーザーが特定のエンティティへのアクセス権を持っているかどうかを判断<br>共通変数<br>CONFIG<br><pre><br>1user変数がnullであった場合<br>1.1access_bit = get_access_sql_suffix("e")を代入<br>指定されたクエリへのアクセス制限のSQLコードを追加します。<br>2user変数がnullでなかった場合<br>2.1access_bit = get_access_sql_suffix("e", user.getGUID())を代入<br>指定されたクエリへのアクセス制限のSQLコードを追加します。<br>3"SELECT guid from " + CONFIG.dbprefix + "entities e WHERE e.guid = " + entity.getGUID() +<br>" AND " + access_bit<br>上記SQLをquery変数に代入する<br>4get_data(query)にデータが存在する場合<br>データベースからデータを取得する<br>4.1trueを返す<br>5get_data(query)にデータが存在しない場合<br>5.1falseを返す<br><br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11266041453.html</link>
<pubDate>Fri, 01 Jun 2012 11:29:36 +0900</pubDate>
</item>
<item>
<title>get_access_sql_suffix()メソッド</title>
<description>
<![CDATA[ get_access_sql_suffix(table_prefix = '', owner = null)メソッド<br><br>説明<br>指定されたクエリへのアクセス制限のSQLコードを追加します。<br>このコードは、特権モードで実行された場合は、空白を返すことに注意してください。<br>共通変数<br>ENTITY_SHOW_HIDDEN_OVERRIDE , CONFIG<br><pre><br>1sql変数をブランクで初期化<br>2friends_bit変数をブランクで初期化<br>3enemies_bit変数をブランクで初期化<br>4table_prefixに値がある場合<br>4.1table_prefixにsanitise_string(table_prefix) + “.”を代入<br>5ownerがnullであった場合<br>5.1owner = get_loggedin_userid()を代入<br>6ownerに値がない場合(言い方が微妙だがそんなイメージ)<br>6.1ownerに-1を代入<br>7ignore_access = elgg_check_access_overrides(owner)を代入<br>アクセスシステムは無視されているかどうかを決定します。<br>8access = get_access_list(owner)を代入<br>9ignore_accessがtrueであった場合<br>9.1sql = “ (1 = 1) “を代入<br>10ownerが-1でなかった場合<br>10.1table_prefix + “access_id = " + ACCESS_FRIENDS + <br>"AND “ + table_prefix + "owner_guid IN (" +<br>"SELECT guid_one FROM " + CONFIG-&gt;dbprefix + “entity_relationships"<br>"WHERE relationship = 'friend' AND guid_two = " + owner + ")"<br>上記SQL文をfriends_bitに代入<br>10.2friends_bitに'(' + friends_bit + ') OR 'を代入<br>10.3CONFIG-&gt;user_block_and_filter_enabledがnullでなく値が存在する場合(微妙)<br>10.3.1enemies_bit = get_annotation_sql('elgg_block_list', able_prefix + "owner_guid", owner, false)を代入<br>注釈の制限を追加<br>10.3.2enemies_bit = 下記文字列を代入<br>'(' + enemies_bit + 'AND ' + get_annotation_sql('elgg_filter_list', owner, table_prefix + "owner_guid", false) + ") "<br>11sqlに値がない場合<br>11.1friends_bit  + " (" + table_prefix + "access_id IN " + access +<br>"OR (" + table_prefix + "owner_guid = " + owner + ")" +<br>"OR (" + table_prefix + "access_id = " + ACCESS_PRIVATE<br>"AND " + table_prefix + "owner_guid = " + owner + "))"<br>上記SQL文をsqlに代入<br>12enemies_bitに値がない場合<br>12.1sql = enemies_bit + " AND (" + sql + ")"を代入<br>13ENTITY_SHOW_HIDDEN_OVERRIDEに値がない場合(falseかもしれない<br>13.1sql = sql + " and " + table_prefix + "enabled='yes'"を代入<br>14'(' + $sql + ')'を返す<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11266040076.html</link>
<pubDate>Fri, 01 Jun 2012 11:24:28 +0900</pubDate>
</item>
<item>
<title>get_annotation_sql()メソッド</title>
<description>
<![CDATA[ get_annotation_sql(annotation_name, entity_guid, owner_guid, exists)メソッド<br><br>説明<br>注釈の制限を追加<br>特定のユーザーが持っている場合（またはオプションで偽）が真であるSQLのフラグメントを返します。<br>共通変数<br>CONFIG<br><pre><br>1existsがtrueであった場合<br>1.1not変数に空文字を代入<br>2existsがfalseであった場合<br>2.1not変数に”NOT”を代入<br>3not + " EXISTS (SELECT * FROM " + CONFIG-&gt;dbprefix + "annotations a " +<br>"INNER JOIN " + CONFIG-&gt;dbprefix + "metastrings ms ON (a.name_id = ms.id) "<br>"WHERE ms.string = '" + annotation_name + "' " +<br>"AND a.entity_guid = " + entity_guid + " " +<br>"AND a.owner_guid = " + owner_guid + ")"<br>上記SQL文をsql変数に代入する<br>4sqlを返す<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11266038028.html</link>
<pubDate>Fri, 01 Jun 2012 11:21:40 +0900</pubDate>
</item>
<item>
<title>access_get_show_hidden_status()メソッド</title>
<description>
<![CDATA[ 説明<br>これは、置換されます。プラグインでは使用しないでください！<br>共通変数<br>ENTITY_SHOW_HIDDEN_OVERRIDE<br><pre><br>1ENTITY_SHOW_HIDDEN_OVERRIDEを返す<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11258317709.html</link>
<pubDate>Wed, 23 May 2012 12:05:50 +0900</pubDate>
</item>
<item>
<title>access_show_hidden_entities(show_hidden)メソッド</title>
<description>
<![CDATA[ 説明<br>これは、置換されます。プラグインでは使用しないでください！<br>共通変数<br>ENTITY_SHOW_HIDDEN_OVERRIDE<br><pre><br>1ENTITY_SHOW_HIDDEN_OVERRIDE = show_hiddenを代入<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11258317373.html</link>
<pubDate>Wed, 23 May 2012 11:59:27 +0900</pubDate>
</item>
<item>
<title>get_default_access(ElggUser user = null)メソッド</title>
<description>
<![CDATA[ 説明<br>新しいコンテンツのデフォルトのアクセス許可を取得します。<br>共通変数<br>CONFIG<br><pre><br>1CONFIG-&gt;allow_user_default_accessに値がなかった場合(未確認)<br>1.1CONFIG-&gt;default_accessを返す<br>2userがnull　または、get_loggedin_user()がnullであった場合<br>※userがnullであった場合get_loggedin_user()の戻り値をuserへ代入する(未確認)<br>2.1CONFIG-&gt;default_accessを返す<br>3user-&gt;getPrivateSetting('elgg_default_access') の戻り値がfalseまたはnullでなかった場合<br>3.1user-&gt;getPrivateSetting('elgg_default_access')を返す<br>4user-&gt;getPrivateSetting('elgg_default_access') の戻り値がfalseまたはnullであった場合<br>4.1CONFIG-&gt;default_accessを返す<br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11258314079.html</link>
<pubDate>Wed, 23 May 2012 11:52:27 +0900</pubDate>
</item>
<item>
<title>get_access_array()メソッド</title>
<description>
<![CDATA[ get_access_array(user_id = 0, site_id = 0, flush = false)メソッド<br><br>説明<br>アクセスを無視して設定します。<br>共通変数<br>CONFIG, init_finished<br>静的変数 <br>access_array<br><pre><br>1access_arrayに値がない　または、init_finishedがfalseであった場合<br>1.1access_arrayを配列で初期化する<br>2user_idが0であった場合<br>2.1user_id = $SESSION['id']を代入<br>3site_idが0　かつ、CONFIG-&gt;site_idに値がセットされていた場合<br>3.1site_id = CONFIG-&gt;site_idを代入<br>4user_idをintに変換<br>5site_idをintに変換<br>6access_array[$user_id])に値がなく または、flushがtrueであった場合<br>6.1tmp_access_array変数をarray(ACCESS_PUBLIC)で初期化<br>6.2isloggedin()がtrueであった場合<br>※ユーザーがログインしているか？<br>6.2.1 tmp_access_array[] = ACCESS_LOGGED_INを代入<br>6.2.2"SELECT am.access_collection_id FROM " + CONFIG-&gt;dbprefix + <br>"access_collection_membership am " +<br>" LEFT JOIN " + CONFIG-&gt;dbprefix + <br>" access_collections ag ON ag.id = am.access_collection_id " +<br>" WHERE am.user_guid = " + user_id + <br>" AND (ag.site_guid = " + site_id + " OR ag.site_guid = 0)"<br>上記SQL文をquery変数へ代入<br>6.2.3collections = get_data(query)で取得したデータを代入<br>6.2.4collectionsをforeachでまわす(collection)<br>6.2.4.1collection-&gt; access_collection_idに値が存在する場合<br>6.2.4.1.1<br>tmp_access_array[] = collection-&gt; access_collection_idを代入<br>6.2.5"SELECT ag.id FROM " + CONFIG-&gt;dbprefix + "access_collections ag  " +<br>" WHERE ag.owner_guid = " + user_id + <br>" AND (ag.site_guid = " + site_id + " OR ag.site_guid = 0)"<br>上記SQL文をquery変数へ代入<br>6.2.6collections = get_data(query)で取得したデータを代入<br>6.2.7collectionsをforeachでまわす(collection)<br>6.2.7.1collection-&gt;idに値が存在する場合<br>6.2.7.1.1tmp_access_array[] = collection-&gt;idを代入<br>6.2.8ignore_access = elgg_check_access_overrides(user_id)<br>アクセスシステムは無視されているかどうかを決定します。<br>6.2.9ignore_accessがtrueであった場合<br>6.2.9.1tmp_access_array[] = ACCESS_PRIVATEを代入<br>6.2.9.2access_array[user_id] = tmp_access_arrayを代入<br>6.3isloggedin()がfalseであった場合<br>6.3.1tmp_return = tmp_access_arrayを代入<br>7access_array[$user_id])に値があり または、flushがfalseであった場合<br>7.1tmp_access_array = access_array[user_id]を代入<br>8trigger_plugin_hook<br>('access:collections:read', 'user', <br>array('user_id' =&gt; user_id, 'site_id' =&gt; site_id), tmp_access_array)を返す<br>※配列など、さまざまなパラメータを使用して、プラグインフックをトリガーします。<br>※array('user_id' =&gt; user_id, 'site_id' =&gt; site_id)について<br>C#で実装する場合はDictionaryクラスを使用する<br><br></pre>
]]>
</description>
<link>https://ameblo.jp/pcsg/entry-11258301610.html</link>
<pubDate>Wed, 23 May 2012 11:21:12 +0900</pubDate>
</item>
</channel>
</rss>
