Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Thomas Willingham 2013-06-16 14:59:17 +01:00
commit 33696cc839
59 changed files with 1029 additions and 909 deletions

File diff suppressed because one or more lines are too long

View File

@ -220,7 +220,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#ade43f7ae289e124d5af4985272981e1b">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
</div>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -541,7 +541,7 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
: <a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">text.php</a>
</li>
<li>atom_author()
: <a class="el" href="items_8php.html#adc8bda87ba08626f2a8cde7748d1bdae">items.php</a>
: <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">items.php</a>
</li>
<li>atom_entry()
: <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">items.php</a>

View File

@ -193,7 +193,7 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
: <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">features.php</a>
</li>
<li>get_feed_for()
: <a class="el" href="items_8php.html#a59abb61d7581dc6592257ef022cbfada">items.php</a>
: <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">items.php</a>
</li>
<li>get_first_dim()
: <a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">datetime.php</a>

View File

@ -309,7 +309,7 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
: <a class="el" href="boot_8php.html#af489d0c3166551b93e63a79ff2c9be35">boot.php</a>
</li>
<li>items_fetch()
: <a class="el" href="items_8php.html#ade43f7ae289e124d5af4985272981e1b">items.php</a>
: <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items.php</a>
</li>
</ul>
</div><!-- contents -->

View File

@ -423,7 +423,7 @@ $(document).ready(function(){initNavTree('globals_func_0x61.html','');});
: <a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">text.php</a>
</li>
<li>atom_author()
: <a class="el" href="items_8php.html#adc8bda87ba08626f2a8cde7748d1bdae">items.php</a>
: <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">items.php</a>
</li>
<li>atom_entry()
: <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">items.php</a>

View File

@ -192,7 +192,7 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
: <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">features.php</a>
</li>
<li>get_feed_for()
: <a class="el" href="items_8php.html#a59abb61d7581dc6592257ef022cbfada">items.php</a>
: <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">items.php</a>
</li>
<li>get_first_dim()
: <a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">datetime.php</a>

View File

@ -240,7 +240,7 @@ $(document).ready(function(){initNavTree('globals_func_0x69.html','');});
: <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">items.php</a>
</li>
<li>items_fetch()
: <a class="el" href="items_8php.html#ade43f7ae289e124d5af4985272981e1b">items.php</a>
: <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items.php</a>
</li>
</ul>
</div><!-- contents -->

View File

@ -251,7 +251,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>.</p>
<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>.</p>
</div>
</div>

View File

@ -300,7 +300,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="text_8php.html#a30311fd46e05be0e2cc466118641a4ed">file_tag_save_file()</a>, <a class="el" href="text_8php.html#a48f6d04513d26270e10e9b7d153f7526">file_tag_unsave_file()</a>, <a class="el" href="text_8php.html#abbe4894b4e746e47e1f91c7df27f6e81">file_tag_update_pconfig()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#ade43f7ae289e124d5af4985272981e1b">items_fetch()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
<p>Referenced by <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="text_8php.html#a30311fd46e05be0e2cc466118641a4ed">file_tag_save_file()</a>, <a class="el" href="text_8php.html#a48f6d04513d26270e10e9b7d153f7526">file_tag_unsave_file()</a>, <a class="el" href="text_8php.html#abbe4894b4e746e47e1f91c7df27f6e81">file_tag_update_pconfig()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049">item_store()</a>, <a class="el" href="items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
</div>
</div>

View File

@ -152,7 +152,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67">enumerate_permissions()</a>, <a class="el" href="items_8php.html#ade43f7ae289e124d5af4985272981e1b">items_fetch()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
<p>Referenced by <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67">enumerate_permissions()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
</div>
</div>

View File

@ -498,7 +498,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>(does not return, process is terminated) </dd></dl>
<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, and <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>.</p>
<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, and <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>.</p>
</div>
</div>
@ -572,7 +572,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object()</a>, <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#a8395d189a36abfa0dfff81a2b0e70669">dfrn_deliver()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="include_2network_8php.html#adbc7fe45cc7fd9cd78f6b2f425ee9041">lrdd()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
</div>
</div>

View File

@ -120,8 +120,8 @@ Functions</h2></td></tr>
<tr class="separator:a410f9c743877c125ca06312373346903"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a079e099e15d88d47aeb6ca6d60da7107"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed</a> ($channel, $params)</td></tr>
<tr class="separator:a079e099e15d88d47aeb6ca6d60da7107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59abb61d7581dc6592257ef022cbfada"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a59abb61d7581dc6592257ef022cbfada">get_feed_for</a> (&amp;$a, $dfrn_id, $owner_nick, $last_update, $direction=0)</td></tr>
<tr class="separator:a59abb61d7581dc6592257ef022cbfada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04a35b610acfe54434df08adec39c0c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for</a> ($channel, $observer_hash, $params)</td></tr>
<tr class="separator:a04a35b610acfe54434df08adec39c0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f3c85c584ccd2b98c3ca440e45b40f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8">construct_verb</a> ($item)</td></tr>
<tr class="separator:a8f3c85c584ccd2b98c3ca440e45b40f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9e99613d38a97b39c8cf5449699c2ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object</a> ($item)</td></tr>
@ -190,8 +190,8 @@ Functions</h2></td></tr>
<tr class="separator:ade53043e7bc5ab9cc9ef1e4fed6569d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a218d5e8ffbe261f773225ecded86a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a3a218d5e8ffbe261f773225ecded86a2">lose_sharer</a> ($importer, $contact, $datarray, $item)</td></tr>
<tr class="separator:a3a218d5e8ffbe261f773225ecded86a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc8bda87ba08626f2a8cde7748d1bdae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#adc8bda87ba08626f2a8cde7748d1bdae">atom_author</a> ($tag, $name, $uri, $h, $w, $photo)</td></tr>
<tr class="separator:adc8bda87ba08626f2a8cde7748d1bdae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a016dd86c827d08db89061ea81d15c6cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author</a> ($tag, $name, $uri, $h, $w, $type, $photo)</td></tr>
<tr class="separator:a016dd86c827d08db89061ea81d15c6cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a275108c050f7eb18bcbb5018e6b81cf6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry</a> ($item, $type, $author, $owner, $comment=false, $cid=0)</td></tr>
<tr class="separator:a275108c050f7eb18bcbb5018e6b81cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba98fcbbcd7044a7e9ea34edabc14c87"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos</a> ($s, $uid, $item=null, $cid=0)</td></tr>
@ -224,8 +224,8 @@ Functions</h2></td></tr>
<tr class="separator:adf980098b6de9c3993bc3ff26a8dd6f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a004e89d86b0f29b2c4da20108ecc4091"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed</a> ($uid, $observer_xchan, $mindate)</td></tr>
<tr class="separator:a004e89d86b0f29b2c4da20108ecc4091"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade43f7ae289e124d5af4985272981e1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ade43f7ae289e124d5af4985272981e1b">items_fetch</a> ($arr, $channel=null, $client_mode=<a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">CLIENT_MODE_NORMAL</a>, $module= 'network')</td></tr>
<tr class="separator:ade43f7ae289e124d5af4985272981e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a756738301f2ed96be50232500677d58a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch</a> ($arr, $channel=null, $observer_hash=null, $client_mode=<a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">CLIENT_MODE_NORMAL</a>, $module= 'network')</td></tr>
<tr class="separator:a756738301f2ed96be50232500677d58a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a36e656667193c83aa2cc03a024fc131b"></a>
@ -264,7 +264,7 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="adc8bda87ba08626f2a8cde7748d1bdae"></a>
<a class="anchor" id="a016dd86c827d08db89061ea81d15c6cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@ -298,6 +298,12 @@ Functions</h2></td></tr>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$w</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
@ -364,7 +370,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#a59abb61d7581dc6592257ef022cbfada">get_feed_for()</a>.</p>
<p>Referenced by <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>.</p>
</div>
</div>
@ -806,7 +812,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a59abb61d7581dc6592257ef022cbfada">get_feed_for()</a>, <a class="el" href="items_8php.html#ade43f7ae289e124d5af4985272981e1b">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
@ -907,39 +913,27 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="a59abb61d7581dc6592257ef022cbfada"></a>
<a class="anchor" id="a04a35b610acfe54434df08adec39c0c7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">get_feed_for </td>
<td>(</td>
<td class="paramtype">&amp;&#160;</td>
<td class="paramname"><em>$a</em>, </td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$dfrn_id</em>, </td>
<td class="paramname"><em>$observer_hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$owner_nick</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$last_update</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$direction</em> = <code>0</code>&#160;</td>
<td class="paramname"><em>$params</em>&#160;</td>
</tr>
<tr>
<td></td>
@ -949,6 +943,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>.</p>
</div>
</div>
<a class="anchor" id="aab9c6bae4c40799867596bdaae9829fd"></a>
@ -1137,8 +1133,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>.</p>
</div>
</div>
<a class="anchor" id="a649dc3e53ed794d0ead4b5d037f8d8d7"></a>
@ -1155,8 +1149,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>.</p>
</div>
</div>
<a class="anchor" id="a8ef003b2bc2dc4816bdcf5800aec1049"></a>
@ -1183,7 +1175,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45">local_delivery()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
</div>
</div>
@ -1215,7 +1207,7 @@ Functions</h2></td></tr>
</div>
</div>
<a class="anchor" id="ade43f7ae289e124d5af4985272981e1b"></a>
<a class="anchor" id="a756738301f2ed96be50232500677d58a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@ -1231,6 +1223,12 @@ Functions</h2></td></tr>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$channel</em> = <code>null</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$observer_hash</em> = <code>null</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
@ -1251,6 +1249,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>.</p>
</div>
</div>
<a class="anchor" id="af94c281016c6c912d06e064113336c5c"></a>
@ -1482,7 +1482,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array 'success' =&gt; true or false 'activity' =&gt; the resulting activity if successful </dd></dl>
<p>Referenced by <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, and <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>.</p>
<p>Referenced by <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
</div>
</div>

View File

@ -2,7 +2,7 @@ var items_8php =
[
[ "activity_sanitise", "items_8php.html#a36e656667193c83aa2cc03a024fc131b", null ],
[ "array_sanitise", "items_8php.html#abf7a1b73eb352d79acd36309b0dababd", null ],
[ "atom_author", "items_8php.html#adc8bda87ba08626f2a8cde7748d1bdae", null ],
[ "atom_author", "items_8php.html#a016dd86c827d08db89061ea81d15c6cb", null ],
[ "atom_entry", "items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6", null ],
[ "collect_recipients", "items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70", null ],
[ "compare_permissions", "items_8php.html#a0790a4550b829e85504af548623002ca", null ],
@ -26,7 +26,7 @@ var items_8php =
[ "first_post_date", "items_8php.html#a0cf98bb619f07dd18f602683a55a5f59", null ],
[ "fix_private_photos", "items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87", null ],
[ "get_atom_elements", "items_8php.html#a896c1809d58f2d7a42cfe14577958ddf", null ],
[ "get_feed_for", "items_8php.html#a59abb61d7581dc6592257ef022cbfada", null ],
[ "get_feed_for", "items_8php.html#a04a35b610acfe54434df08adec39c0c7", null ],
[ "get_item_contact", "items_8php.html#aab9c6bae4c40799867596bdaae9829fd", null ],
[ "get_item_elements", "items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361", null ],
[ "get_mail_elements", "items_8php.html#a94ddb1d6c8fa21dd7433677e85168037", null ],
@ -39,7 +39,7 @@ var items_8php =
[ "item_getfeedtags", "items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7", null ],
[ "item_store", "items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049", null ],
[ "item_store_update", "items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53", null ],
[ "items_fetch", "items_8php.html#ade43f7ae289e124d5af4985272981e1b", null ],
[ "items_fetch", "items_8php.html#a756738301f2ed96be50232500677d58a", null ],
[ "limit_body_size", "items_8php.html#af94c281016c6c912d06e064113336c5c", null ],
[ "local_delivery", "items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45", null ],
[ "lose_follower", "items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4", null ],

File diff suppressed because one or more lines are too long

View File

@ -110,7 +110,9 @@ var NAVTREEINDEX4 =
"item_8php.html#abd0e603a6696051af16476eb968d52e7":[5,0,1,35,2],
"items_8php.html":[5,0,0,38],
"items_8php.html#a004e89d86b0f29b2c4da20108ecc4091":[5,0,0,38,56],
"items_8php.html#a016dd86c827d08db89061ea81d15c6cb":[5,0,0,38,2],
"items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70":[5,0,0,38,4],
"items_8php.html#a04a35b610acfe54434df08adec39c0c7":[5,0,0,38,26],
"items_8php.html#a0790a4550b829e85504af548623002ca":[5,0,0,38,5],
"items_8php.html#a079e099e15d88d47aeb6ca6d60da7107":[5,0,0,38,31],
"items_8php.html#a09d425596b9f8663472cf7474ad36d96":[5,0,0,38,35],
@ -128,11 +130,11 @@ var NAVTREEINDEX4 =
"items_8php.html#a53eb3d27e1c55083be93a32f392d54e7":[5,0,0,38,46],
"items_8php.html#a566c601726697e044e75284af7fb6f17":[5,0,0,38,18],
"items_8php.html#a56b2a4abcadfac71175cd50555528cc3":[5,0,0,38,10],
"items_8php.html#a59abb61d7581dc6592257ef022cbfada":[5,0,0,38,26],
"items_8php.html#a5f690fc2484abec07840b4f9dd525bd9":[5,0,0,38,16],
"items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7":[5,0,0,38,36],
"items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55":[5,0,0,38,14],
"items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc":[5,0,0,38,34],
"items_8php.html#a756738301f2ed96be50232500677d58a":[5,0,0,38,39],
"items_8php.html#a77051724d1784074ff187e73a4db93fe":[5,0,0,38,32],
"items_8php.html#a77da7ce9a117601d49ac4a67c71b514f":[5,0,0,38,44],
"items_8php.html#a82955cc578f0fa600acec84475026194":[5,0,0,38,15],
@ -157,8 +159,6 @@ var NAVTREEINDEX4 =
"items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a":[5,0,0,38,17],
"items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0":[5,0,0,38,49],
"items_8php.html#ad34827ed330898456783fb14c7b46154":[5,0,0,38,53],
"items_8php.html#adc8bda87ba08626f2a8cde7748d1bdae":[5,0,0,38,2],
"items_8php.html#ade43f7ae289e124d5af4985272981e1b":[5,0,0,38,39],
"items_8php.html#ade53043e7bc5ab9cc9ef1e4fed6569d4":[5,0,0,38,42],
"items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9":[5,0,0,38,22],
"items_8php.html#ae1c27d1a6379231ac7c0435c8a791d45":[5,0,0,38,41],

View File

@ -246,7 +246,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="boot_8php.html#aebc5ed38c73ade57f360471da712ded2">profile_load()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="boot_8php.html#aebc5ed38c73ade57f360471da712ded2">profile_load()</a>, <a class="el" href="boot_8php.html#a646123ebbb10eb6f5b6ff26f4288da9b">profile_sidebar()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>

View File

@ -226,7 +226,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, and <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>.</p>
<p>Referenced by <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#ab0227978011d8601494a7651fa26acf0">import_xchan()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
</div>
</div>

File diff suppressed because one or more lines are too long

View File

@ -146,7 +146,7 @@ var searchData=
['arr_5fadd_5fhashes',['arr_add_hashes',['../parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868',1,'parse_url.php']]],
['array_5fsanitise',['array_sanitise',['../items_8php.html#abf7a1b73eb352d79acd36309b0dababd',1,'items.php']]],
['array_5fxmlify',['array_xmlify',['../text_8php.html#acedb584f65114a33f389efb796172a91',1,'text.php']]],
['atom_5fauthor',['atom_author',['../items_8php.html#adc8bda87ba08626f2a8cde7748d1bdae',1,'items.php']]],
['atom_5fauthor',['atom_author',['../items_8php.html#a016dd86c827d08db89061ea81d15c6cb',1,'items.php']]],
['atom_5fentry',['atom_entry',['../items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6',1,'items.php']]],
['atom_5ftime',['ATOM_TIME',['../boot_8php.html#ad34c1547020a305915bcc39707744690',1,'boot.php']]],
['attach_2ephp',['attach.php',['../mod_2attach_8php.html',1,'']]],

View File

@ -31,7 +31,7 @@ var searchData=
['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
['get_5fevents',['get_events',['../boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'boot.php']]],
['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a59abb61d7581dc6592257ef022cbfada',1,'items.php']]],
['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a04a35b610acfe54434df08adec39c0c7',1,'items.php']]],
['get_5ffirst_5fdim',['get_first_dim',['../datetime_8php.html#aba971b67f17fecf050813f1eba72367f',1,'datetime.php']]],
['get_5fform_5fsecurity_5ftoken',['get_form_security_token',['../security_8php.html#acd06ef411116115c2f0a92633700db8a',1,'security.php']]],
['get_5fformatsmap',['get_FormatsMap',['../classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4',1,'photo_imagick']]],

View File

@ -73,5 +73,5 @@ var searchData=
['itemplateengine',['ITemplateEngine',['../interfaceITemplateEngine.html',1,'']]],
['itemplateengine_2ephp',['ITemplateEngine.php',['../ITemplateEngine_8php.html',1,'']]],
['items_2ephp',['items.php',['../items_8php.html',1,'']]],
['items_5ffetch',['items_fetch',['../items_8php.html#ade43f7ae289e124d5af4985272981e1b',1,'items.php']]]
['items_5ffetch',['items_fetch',['../items_8php.html#a756738301f2ed96be50232500677d58a',1,'items.php']]]
];

View File

@ -96,7 +96,7 @@ var searchData=
['arr_5fadd_5fhashes',['arr_add_hashes',['../parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868',1,'parse_url.php']]],
['array_5fsanitise',['array_sanitise',['../items_8php.html#abf7a1b73eb352d79acd36309b0dababd',1,'items.php']]],
['array_5fxmlify',['array_xmlify',['../text_8php.html#acedb584f65114a33f389efb796172a91',1,'text.php']]],
['atom_5fauthor',['atom_author',['../items_8php.html#adc8bda87ba08626f2a8cde7748d1bdae',1,'items.php']]],
['atom_5fauthor',['atom_author',['../items_8php.html#a016dd86c827d08db89061ea81d15c6cb',1,'items.php']]],
['atom_5fentry',['atom_entry',['../items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6',1,'items.php']]],
['attach_5fby_5fhash',['attach_by_hash',['../include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36',1,'attach.php']]],
['attach_5fby_5fhash_5fnodata',['attach_by_hash_nodata',['../include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932',1,'attach.php']]],

View File

@ -31,7 +31,7 @@ var searchData=
['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
['get_5fevents',['get_events',['../boot_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'boot.php']]],
['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a59abb61d7581dc6592257ef022cbfada',1,'items.php']]],
['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a04a35b610acfe54434df08adec39c0c7',1,'items.php']]],
['get_5ffirst_5fdim',['get_first_dim',['../datetime_8php.html#aba971b67f17fecf050813f1eba72367f',1,'datetime.php']]],
['get_5fform_5fsecurity_5ftoken',['get_form_security_token',['../security_8php.html#acd06ef411116115c2f0a92633700db8a',1,'security.php']]],
['get_5fformatsmap',['get_FormatsMap',['../classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4',1,'photo_imagick']]],

View File

@ -42,5 +42,5 @@ var searchData=
['item_5fpost_5ftype',['item_post_type',['../text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e',1,'text.php']]],
['item_5fstore',['item_store',['../items_8php.html#a8ef003b2bc2dc4816bdcf5800aec1049',1,'items.php']]],
['item_5fstore_5fupdate',['item_store_update',['../items_8php.html#a2dc4fb9347f6fb804da4f32c107afb53',1,'items.php']]],
['items_5ffetch',['items_fetch',['../items_8php.html#ade43f7ae289e124d5af4985272981e1b',1,'items.php']]]
['items_5ffetch',['items_fetch',['../items_8php.html#a756738301f2ed96be50232500677d58a',1,'items.php']]]
];

View File

@ -359,7 +359,7 @@ Functions</h2></td></tr>
<p>Profile owner - everything is visible</p>
<p>Authenticated visitor. Unless pre-verified, check that the contact belongs to this $owner_id and load the groups the visitor belongs to. If pre-verified, the caller is expected to have already done this and passed the groups into this function.</p>
<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -144,7 +144,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down()</a>.</p>
</div>
</div>

View File

@ -0,0 +1,29 @@
# A sample configuration for The Red Matrix on Nginx. One should also take care to block access to dot files, etc, in their standard.conf.
server {
listen 80;
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/ssl.crt;
ssl_certificate_key /path/to/ssl.key;
root /var/www/example.com;
index index.php;
access_log /var/log/nginx/example.com.log;
include standard.conf;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass php;
fastcgi_read_timeout 300;
}
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?q=$1 last;
}
location / {
try_files $uri $uri/ /index.php;
}
}

View File

@ -129,19 +129,35 @@ function del_config($family,$key) {
function load_pconfig($uid,$family) {
global $a;
$r = q("SELECT * FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d",
dbesc($family),
intval($uid)
);
if(count($r)) {
if(($uid) && (! array_key_exists($uid,$a->config)))
$a->config[$uid] = array();
if($family) {
$r = q("SELECT * FROM `pconfig` WHERE `cat` = '%s' AND `uid` = %d",
dbesc($family),
intval($uid)
);
}
else {
$r = q("SELECT * FROM `pconfig` WHERE `uid` = %d",
intval($uid)
);
}
if($r) {
foreach($r as $rr) {
$k = $rr['k'];
$a->config[$uid][$family][$k] = $rr['v'];
$c = $rr['cat'];
if(! array_key_exists($c,$a->config[$uid]))
$a->config[$uid][$c] = array();
$a->config[$uid][$c][$k] = $rr['v'];
}
} else if ($family != 'config') {
}
// else if ($family != 'config') {
// Negative caching
$a->config[$uid][$family] = "!<unset>!";
}
// $a->config[$uid][$family] = "!<unset>!";
// }
}

View File

@ -114,8 +114,8 @@ function localize_item(&$item){
if($author_link && $author_name && $item_url) {
$author = '[url=' . chanlink_url($item['author']['xchan_url']) . ']' . $item['author']['xchan_name'] . '[/url]';
$objauthor = '[url=' . chanlink_url($author_link) . ']' . $author_name . '[/url]';
$author = '[zrl=' . chanlink_url($item['author']['xchan_url']) . ']' . $item['author']['xchan_name'] . '[/zrl]';
$objauthor = '[zrl=' . chanlink_url($author_link) . ']' . $author_name . '[/zrl]';
switch($obj->type) {
case ACTIVITY_OBJ_PHOTO:
@ -132,7 +132,7 @@ function localize_item(&$item){
break;
}
$plink = '[url=' . zid($item_url) . ']' . $post_type . '[/url]';
$plink = '[zrl=' . zid($item_url) . ']' . $post_type . '[/zrl]';
if(activity_match($item['verb'],ACTIVITY_LIKE)) {
$bodyverb = t('%1$s likes %2$s\'s %3$s');
@ -165,9 +165,9 @@ function localize_item(&$item){
$Bname = $obj['title'];
$A = '[url=' . chanlink_url($Alink) . ']' . $Aname . '[/url]';
$B = '[url=' . chanlink_url($Blink) . ']' . $Bname . '[/url]';
if ($Bphoto!="") $Bphoto = '[url=' . chanlink_url($Blink) . '][img=80x80]' . $Bphoto . '[/img][/url]';
$A = '[zrl=' . chanlink_url($Alink) . ']' . $Aname . '[/zrl]';
$B = '[zrl=' . chanlink_url($Blink) . ']' . $Bname . '[/zrl]';
if ($Bphoto!="") $Bphoto = '[zrl=' . chanlink_url($Blink) . '][zmg=80x80]' . $Bphoto . '[/zmg][/zrl]';
$item['body'] = $item['localize'] = sprintf( t('%1$s is now connected with %2$s'), $A, $B);
$item['body'] .= "\n\n\n" . $Bphoto;
@ -193,9 +193,9 @@ function localize_item(&$item){
}
$Bname = $obj['title'];
$A = '[url=' . chanlink_url($Alink) . ']' . $Aname . '[/url]';
$B = '[url=' . chanlink_url($Blink) . ']' . $Bname . '[/url]';
if ($Bphoto!="") $Bphoto = '[url=' . chanlink_url($Blink) . '][img=80x80]' . $Bphoto . '[/img][/url]';
$A = '[zrl=' . chanlink_url($Alink) . ']' . $Aname . '[/zrl]';
$B = '[zrl=' . chanlink_url($Blink) . ']' . $Bname . '[/zrl]';
if ($Bphoto!="") $Bphoto = '[zrl=' . chanlink_url($Blink) . '][zmg=80x80]' . $Bphoto . '[/zmg][/zrl]';
// we can't have a translation string with three positions but no distinguishable text
// So here is the translate string.
@ -220,7 +220,7 @@ function localize_item(&$item){
$Aname = $item['author']['xchan_name'];
$Alink = $item['author']['xchan_url'];
$A = '[url=' . chanlink_url($Alink) . ']' . $Aname . '[/url]';
$A = '[zrl=' . chanlink_url($Alink) . ']' . $Aname . '[/zrl]';
$txt = t('%1$s is currently %2$s');
@ -237,8 +237,8 @@ function localize_item(&$item){
if(count($r)==0) return;
$obj=$r[0];
$author = '[url=' . zid($item['author-link']) . ']' . $item['author-name'] . '[/url]';
$objauthor = '[url=' . zid($obj['author-link']) . ']' . $obj['author-name'] . '[/url]';
$author = '[zrl=' . zid($item['author-link']) . ']' . $item['author-name'] . '[/zrl]';
$objauthor = '[zrl=' . zid($obj['author-link']) . ']' . $obj['author-name'] . '[/zrl]';
switch($obj['verb']){
case ACTIVITY_POST:
@ -253,17 +253,17 @@ function localize_item(&$item){
default:
if($obj['resource_id']){
$post_type = t('photo');
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$m=array(); preg_match("/\[[zu]rl=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = t('status');
}
}
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
$plink = '[zrl=' . $obj['plink'] . ']' . $post_type . '[/zrl]';
$parsedobj = parse_xml_string($xmlhead.$item['object']);
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
$tag = sprintf('#[zrl=%s]%s[/zrl]', $parsedobj->id, $parsedobj->content);
$item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
}
@ -288,9 +288,9 @@ function localize_item(&$item){
$target = $r[0];
$Bname = $target['author-name'];
$Blink = $target['author-link'];
$A = '[url=' . zid($Alink) . ']' . $Aname . '[/url]';
$B = '[url=' . zid($Blink) . ']' . $Bname . '[/url]';
$P = '[url=' . $target['plink'] . ']' . t('post/item') . '[/url]';
$A = '[zrl=' . zid($Alink) . ']' . $Aname . '[/zrl]';
$B = '[zrl=' . zid($Blink) . ']' . $Bname . '[/zrl]';
$P = '[zrl=' . $target['plink'] . ']' . t('post/item') . '[/zrl]';
$item['body'] = sprintf( t('%1$s marked %2$s\'s %3$s as favorite'), $A, $B, $P)."\n";
}
@ -298,25 +298,26 @@ function localize_item(&$item){
}
*/
/*
$matches = null;
if(strpos($item['body'],'[url') !== false) {
if(preg_match_all('/@\[url=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
if(strpos($item['body'],'[zrl') !== false) {
if(preg_match_all('/@\[zrl=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
foreach($matches as $mtch) {
if(! strpos($mtch[1],'zid='))
$item['body'] = str_replace($mtch[0],'@[url=' . zid($mtch[1]). ']',$item['body']);
$item['body'] = str_replace($mtch[0],'@[zrl=' . zid($mtch[1]). ']',$item['body']);
}
}
}
if(strpos($item['body'],'[img') !== false) {
if(strpos($item['body'],'[zmg') !== false) {
// add zid's to public images
if(preg_match_all('/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
if(preg_match_all('/\[zrl=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[zmg(.*?)\]h(.*?)\[\/zmg\]\[\/zrl\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
foreach($matches as $mtch) {
$item['body'] = str_replace($mtch[0],'[url=' . zid( $mtch[1] . '/photos/' . $mtch[2] . '/image/' . $mtch[3]) . '][img' . $mtch[4] . ']h' . $mtch[5] . '[/img][/url]',$item['body']);
$item['body'] = str_replace($mtch[0],'[zrl=' . zid( $mtch[1] . '/photos/' . $mtch[2] . '/image/' . $mtch[3]) . '][zmg' . $mtch[4] . ']h' . $mtch[5] . '[/zmg][/zrl]',$item['body']);
}
}
}
*/
// add sparkle links to appropriate permalinks
// $x = stristr($item['plink'],'/display/');
@ -364,7 +365,7 @@ function visible_activity($item) {
*
*/
if(!function_exists('conversation')) {
function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$tstart = dba_timer();
@ -373,6 +374,8 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
$ssl_state = ((local_user()) ? true : false);
if(local_user())
load_pconfig(local_user(),'');
$arr_blocked = null;
@ -677,6 +680,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
}
else
{
// Normal View
// logger('conv: items: ' . print_r($items,true));
@ -789,7 +793,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') {
return $o;
}}
}
function best_link_url($item) {

View File

@ -23,11 +23,14 @@ function deliver_run($argv, $argc) {
if($r[0]['outq_posturl'] === z_root() . '/post') {
// local delivery
// we should probably batch these and save a few delivery processes
$msg = array('body' => json_encode(array('pickup' => array(array('notify' => json_decode($r[0]['outq_notify'],true),'message' => json_decode($r[0]['outq_msg'],true))))));
zot_import($msg);
$r = q("delete from outq where outq_hash = '%s' limit 1",
dbesc($argv[$x])
);
// If there is no outq_msg, this is a refresh_all message which does not require local handling
if($r[0]['outq_msg']) {
$msg = array('body' => json_encode(array('pickup' => array(array('notify' => json_decode($r[0]['outq_notify'],true),'message' => json_decode($r[0]['outq_msg'],true))))));
zot_import($msg);
$r = q("delete from outq where outq_hash = '%s' limit 1",
dbesc($argv[$x])
);
}
}
else {
$result = zot_zot($r[0]['outq_posturl'],$r[0]['outq_notify']);

View File

@ -41,11 +41,16 @@ function directory_run($argv, $argc){
$url = DIRECTORY_FALLBACK_MASTER . '/post';
}
// ensure the upstream directory is updated
$packet = zot_build_packet($channel,'refresh');
$z = zot_zot($url,$packet);
// re-queue if unsuccessful
// Now update all the connections
proc_run('php','notifier','refresh_all',$channel['channel_id']);
}
if (array_search(__file__,get_included_files())===0){

View File

@ -114,7 +114,7 @@ function notification($params) {
// "a post"
$dest_str = sprintf(t('%1$s commented on [zrl=%2$s]a %3$s[/zrl]'),
'[url=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/url]',
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink,
$item_post_type);

View File

@ -183,16 +183,17 @@ function get_public_feed($channel,$params) {
$records = 40;
$direction = 'desc';
if(is_array($params)) {
$type = ((x($params,'type')) ? $params['type'] : $type);
$begin = ((x($params,'begin')) ? $params['begin'] : $begin);
$end = ((x($params,'end')) ? $params['end'] : $end);
$start = ((x($params,'start')) ? $params['start'] : $start);
$records = ((x($params,'records')) ? $params['records'] : $records);
$direction = ((x($params,'direction')) ? $params['direction'] : $direction);
}
if(! $params)
$params = array();
$params['type'] = ((x($params,'type')) ? $params['type'] : 'xml');
$params['begin'] = ((x($params,'begin')) ? $params['begin'] : '0000-00-00 00:00:00');
$params['end'] = ((x($params,'end')) ? $params['end'] : datetime_convert('UTC','UTC','now'));
$params['start'] = ((x($params,'start')) ? $params['start'] : 0);
$params['records'] = ((x($params,'records')) ? $params['records'] : 40);
$params['direction'] = ((x($params,'direction')) ? $params['direction'] : 'desc');
switch($type) {
switch($params['type']) {
case 'json':
header("Content-type: application/atom+json");
break;
@ -202,204 +203,63 @@ function get_public_feed($channel,$params) {
break;
}
return get_feed_for($channel,get_observer_hash(),$params);
}
function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
function get_feed_for($channel, $observer_hash, $params) {
if(! channel)
http_status_exit(401);
if(! perm_is_allowed($channel['channel_id'],$observer_hash,'view_stream'))
http_status_exit(403);
$items = items_fetch(array(
'wall' => '1',
'datequery' => $params['begin'],
'datequery2' => $params['end'],
'start' => $params['start'], // FIXME
'records' => $params['records'], // FIXME
'direction' => $params['direction'], // FIXME
'order' => 'post'
), $channel, $observer_hash, CLIENT_MODE_NORMAL, get_app()->module);
$sitefeed = ((strlen($owner_nick)) ? false : true); // not yet implemented, need to rewrite huge chunks of following logic
$public_feed = (($dfrn_id) ? false : true);
$starred = false; // not yet implemented, possible security issues
$converse = false;
if($public_feed && $a->argc > 2) {
for($x = 2; $x < $a->argc; $x++) {
if($a->argv[$x] == 'converse')
$converse = true;
if($a->argv[$x] == 'starred')
$starred = true;
if($a->argv[$x] === 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1]))
$category = $a->argv[$x+1];
}
}
// default permissions - anonymous user
$sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' ";
$r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`self` = 1 AND `user`.`nickname` = '%s' LIMIT 1",
dbesc($owner_nick)
);
if(! count($r))
killme();
$owner = $r[0];
$owner_id = $owner['user_uid'];
$owner_nick = $owner['nickname'];
// feed_birthday no longer exists
// $birthday = feed_birthday($owner_id,$owner['timezone']);
if(! $public_feed) {
$sql_extra = '';
switch($direction) {
case (-1):
$sql_extra = sprintf(" AND `issued_id` = '%s' ", dbesc($dfrn_id));
$my_id = $dfrn_id;
break;
case 0:
$sql_extra = sprintf(" AND `issued_id` = '%s' AND `duplex` = 1 ", dbesc($dfrn_id));
$my_id = '1:' . $dfrn_id;
break;
case 1:
$sql_extra = sprintf(" AND `dfrn_id` = '%s' AND `duplex` = 1 ", dbesc($dfrn_id));
$my_id = '0:' . $dfrn_id;
break;
default:
return false;
break; // NOTREACHED
}
$r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `contact`.`uid` = %d $sql_extra LIMIT 1",
intval($owner_id)
);
if(! count($r))
killme();
$contact = $r[0];
require_once('include/security.php');
$groups = init_groups_visitor($contact['id']);
if(count($groups)) {
for($x = 0; $x < count($groups); $x ++)
$groups[$x] = '<' . intval($groups[$x]) . '>' ;
$gs = implode('|', $groups);
}
else
$gs = '<<>>' ; // Impossible to match
$sql_extra = sprintf("
AND ( `allow_cid` = '' OR `allow_cid` REGEXP '<%d>' )
AND ( `deny_cid` = '' OR NOT `deny_cid` REGEXP '<%d>' )
AND ( `allow_gid` = '' OR `allow_gid` REGEXP '%s' )
AND ( `deny_gid` = '' OR NOT `deny_gid` REGEXP '%s')
",
intval($contact['id']),
intval($contact['id']),
dbesc($gs),
dbesc($gs)
);
}
if($public_feed)
$sort = 'DESC';
else
$sort = 'ASC';
if(! strlen($last_update))
$last_update = 'now -30 days';
if(isset($category)) {
$sql_extra .= file_tag_file_query('item',$category,'category');
}
if($public_feed) {
if(! $converse)
$sql_extra .= " AND `contact`.`self` = 1 ";
}
$check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s');
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`network`, `contact`.`photo`, `contact`.`url`,
`contact`.`name_date`, `contact`.`uri_date`, `contact`.`avatar_date`,
`contact`.`thumb`, `contact`.`dfrn_id`, `contact`.`self`,
`contact`.`id` AS `contact-id`, `contact`.`uid` AS `contact-uid`,
`sign`.`signed_text`, `sign`.`signature`, `sign`.`signer`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`parent` != 0
AND `item`.`wall` = 1 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND ( `item`.`edited` > '%s' OR `item`.`changed` > '%s' )
$sql_extra
ORDER BY `parent` %s, `created` ASC LIMIT 0, 300",
intval($owner_id),
dbesc($check_date),
dbesc($check_date),
dbesc($sort)
);
// Will check further below if this actually returned results.
// We will provide an empty feed if that is the case.
$items = $r;
$items = fetch_post_tags($items);
$feed_template = get_markup_template(($dfrn_id) ? 'atom_feed_dfrn.tpl' : 'atom_feed.tpl');
$feed_template = get_markup_template('atom_feed.tpl');
$atom = '';
$hubxml = feed_hublinks();
$salmon = feed_salmonlinks($owner_nick);
$atom .= replace_macros($feed_template, array(
'$version' => xmlify(RED_VERSION),
'$feed_id' => xmlify($a->get_baseurl() . '/channel/' . $owner_nick),
'$feed_title' => xmlify($owner['name']),
'$red' => xmlify(RED_PLATFORM),
'$feed_id' => xmlify($channel['channel_url']),
'$feed_title' => xmlify($channel['channel_name']),
'$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', 'now' , ATOM_TIME)) ,
'$hub' => $hubxml,
'$salmon' => $salmon,
'$name' => xmlify($owner['name']),
'$profile_page' => xmlify($owner['url']),
'$photo' => xmlify($owner['photo']),
'$thumb' => xmlify($owner['thumb']),
'$picdate' => xmlify(datetime_convert('UTC','UTC',$owner['avatar_date'] . '+00:00' , ATOM_TIME)) ,
'$uridate' => xmlify(datetime_convert('UTC','UTC',$owner['uri_date'] . '+00:00' , ATOM_TIME)) ,
'$namdate' => xmlify(datetime_convert('UTC','UTC',$owner['name_date'] . '+00:00' , ATOM_TIME)) ,
'$birthday' => ((strlen($birthday)) ? '<dfrn:birthday>' . xmlify($birthday) . '</dfrn:birthday>' : ''),
'$community' => (($owner['page-flags'] == PAGE_COMMUNITY) ? '<dfrn:community>1</dfrn:community>' : '')
'$hub' => '', // feed_hublinks(),
'$salmon' => '', // feed_salmonlinks($channel['channel_address']),
'$name' => xmlify($channel['channel_name']),
'$profile_page' => xmlify($channel['channel_url']),
'$mimephoto' => xmlify($channel['xchan_photo_mimetype']),
'$photo' => xmlify($channel['xchan_photo_l']),
'$thumb' => xmlify($channel['xchan_photo_m']),
'$picdate' => '',
'$uridate' => '',
'$namdate' => '',
'$birthday' => '',
'$community' => '',
));
call_hooks('atom_feed', $atom);
if(! count($items)) {
call_hooks('atom_feed_end', $atom);
$atom .= '</feed>' . "\r\n";
return $atom;
}
foreach($items as $item) {
// prevent private email from leaking.
if($item['network'] === NETWORK_MAIL)
continue;
// public feeds get html, our own nodes use bbcode
if($public_feed) {
$type = 'html';
// catch any email that's in a public conversation and make sure it doesn't leak
if($item['private'])
if($items) {
$type = 'html';
foreach($items as $item) {
if($item['item_private'])
continue;
}
else {
$type = 'text';
}
$atom .= atom_entry($item,$type,null,$owner,true);
$atom .= atom_entry($item,$type,null,$owner,true);
}
}
call_hooks('atom_feed_end', $atom);
@ -420,8 +280,7 @@ function construct_activity_object($item) {
if($item['object']) {
$o = '<as:object>' . "\r\n";
$r = parse_xml_string($item['object'],false);
$r = json_decode($item['object'],false);
if(! $r)
return '';
@ -431,7 +290,8 @@ function construct_activity_object($item) {
$o .= '<id>' . xmlify($r->id) . '</id>' . "\r\n";
if($r->title)
$o .= '<title>' . xmlify($r->title) . '</title>' . "\r\n";
if($r->link) {
if($r->links) {
// FIXME!!
if(substr($r->link,0,1) === '<') {
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
$o .= $r->link;
@ -452,7 +312,7 @@ function construct_activity_target($item) {
if($item['target']) {
$o = '<as:target>' . "\r\n";
$r = parse_xml_string($item['target'],false);
$r = json_decode($item['target'],false);
if(! $r)
return '';
if($r->type)
@ -461,7 +321,8 @@ function construct_activity_target($item) {
$o .= '<id>' . xmlify($r->id) . '</id>' . "\r\n";
if($r->title)
$o .= '<title>' . xmlify($r->title) . '</title>' . "\r\n";
if($r->link) {
if($r->links) {
// FIXME !!!
if(substr($r->link,0,1) === '<') {
if(strstr($r->link,'&') && (! strstr($r->link,'&amp;')))
$r->link = str_replace('&','&amp;', $r->link);
@ -2070,45 +1931,51 @@ function tgroup_check($uid,$item) {
// check that the message originated elsewhere and is a top-level post
if(($item['wall']) || ($item['origin']) || ($item['mid'] != $item['parent-mid']))
if($arr['mid'] != $arr['parent_mid'])
return false;
if(! perm_is_allowed($uid,$item['author_xchan'],'tag_deliver'))
return false;
$u = q("select * from user where uid = %d limit 1",
$u = q("select * from channel where channel_id = %d limit 1",
intval($uid)
);
if(! count($u))
if(! $u)
return false;
$community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
$prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false);
$terms = get_terms_oftype($item['term'],TERM_MENTION);
logger('tgroup_check: post mentions: ' . print_r($terms,true), LOGGER_DATA);
$link = normalise_link($a->get_baseurl() . '/channel/' . $u[0]['nickname']);
$link = normalise_link($a->get_baseurl() . '/channel/' . $u[0]['channel_address']);
// Diaspora uses their own hardwired link URL in @-tags
// instead of the one we supply with webfinger
$dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']);
$body = preg_replace("/\[share\](.*?)\[\/share\]/ism", '', $item['body']);
$cnt = preg_match_all('/[\@\!]\[zrl\=(.*?)\](.*?)\[\/zrl\]/ism',$body,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
if(link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) {
if($terms) {
foreach($terms as $term) {
if(($term['term'] == $u[0]['channel_name']) && link_compare($term['url'],$link)) {
$mention = true;
logger('tgroup_check: mention found: ' . $mtch[2]);
break;
}
}
}
if($mention) {
logger('tgroup_check: mention found for ' . $u[0]['channel_name']);
}
if(! $mention)
else
return false;
if((! $community_page) && (! $prvgroup))
return false;
// At this point we've determined that the person receiving this post was mentioned in it.
// Now let's check if this mention was inside a reshare so we don't spam a forum
$body = preg_replace('/\[share(.*?)\[\/share\]/','',$item['body']);
$pattern = '/@\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/zrl\]/';
if(! preg_match($pattern,$body,$matches)) {
logger('tgroup_check: mention was in a reshare - ignoring');
return false;
}
return true;
@ -4092,7 +3959,7 @@ function lose_sharer($importer,$contact,$datarray,$item) {
}
function atom_author($tag,$name,$uri,$h,$w,$photo) {
function atom_author($tag,$name,$uri,$h,$w,$type,$photo) {
$o = '';
if(! $tag)
return $o;
@ -4106,8 +3973,8 @@ function atom_author($tag,$name,$uri,$h,$w,$photo) {
$o .= "<$tag>\r\n";
$o .= "<name>$name</name>\r\n";
$o .= "<uri>$uri</uri>\r\n";
$o .= '<link rel="photo" type="image/jpeg" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
$o .= '<link rel="avatar" type="image/jpeg" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
$o .= '<link rel="photo" type="' . $type . '" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
$o .= '<link rel="avatar" type="' . $type . '" media:width="' . $w . '" media:height="' . $h . '" href="' . $photo . '" />' . "\r\n";
call_hooks('atom_author', $o);
@ -4135,35 +4002,36 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
$o = "\r\n\r\n<entry>\r\n";
if(is_array($author))
$o .= atom_author('author',$author['name'],$author['url'],80,80,$author['thumb']);
$o .= atom_author('author',$author['xchan_name'],$author['xchan_url'],80,80,$author['xchan_photo_mimetype'],$author['xchan_photo_m']);
else
$o .= atom_author('author',(($item['author-name']) ? $item['author-name'] : $item['name']),(($item['author-link']) ? $item['author-link'] : $item['url']),80,80,(($item['author-avatar']) ? $item['author-avatar'] : $item['thumb']));
if(strlen($item['owner-name']))
$o .= atom_author('dfrn:owner',$item['owner-name'],$item['owner-link'],80,80,$item['owner-avatar']);
$o .= atom_author('author',$item['author']['xchan_name'],$item['author']['xchan_url'],80,80,$item['author']['xchan_photo_mimetype'], $item['author']['xchan_photo_m']);
$o .= atom_author('zot:owner',$item['owner']['xchan_name'],$item['owner']['xchan_url'],80,80,$item['owner']['xchan_photo_mimetype'],$item['owner']['xchan_photo_m']);
if(($item['parent'] != $item['id']) || ($item['parent_mid'] !== $item['mid']) || (($item['thr_parent'] !== '') && ($item['thr_parent'] !== $item['mid']))) {
$parent_item = (($item['thr_parent']) ? $item['thr_parent'] : $item['parent_mid']);
$o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['parent']) . '" />' . "\r\n";
$o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n";
}
$o .= '<id>' . xmlify($item['mid']) . '</id>' . "\r\n";
$o .= '<title>' . xmlify($item['title']) . '</title>' . "\r\n";
$o .= '<published>' . xmlify(datetime_convert('UTC','UTC',$item['created'] . '+00:00',ATOM_TIME)) . '</published>' . "\r\n";
$o .= '<updated>' . xmlify(datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME)) . '</updated>' . "\r\n";
$o .= '<dfrn:env>' . base64url_encode($body, true) . '</dfrn:env>' . "\r\n";
$o .= '<zot:env>' . base64url_encode($body, true) . '</zot:env>' . "\r\n";
// FIXME for other content types
$o .= '<content type="' . $type . '" >' . xmlify((($type === 'html') ? bbcode($body) : $body)) . '</content>' . "\r\n";
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id']) . '" />' . "\r\n";
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n";
if($item['location']) {
$o .= '<dfrn:location>' . xmlify($item['location']) . '</dfrn:location>' . "\r\n";
$o .= '<zot:location>' . xmlify($item['location']) . '</zot:location>' . "\r\n";
$o .= '<poco:address><poco:formatted>' . xmlify($item['location']) . '</poco:formatted></poco:address>' . "\r\n";
}
if($item['coord'])
$o .= '<georss:point>' . xmlify($item['coord']) . '</georss:point>' . "\r\n";
if(($item['private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid']))
$o .= '<dfrn:private>' . (($item['private']) ? $item['private'] : 1) . '</dfrn:private>' . "\r\n";
if(($item['item_private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid']))
$o .= '<zot:private>' . (($item['item_private']) ? $item['item_private'] : 1) . '</zot:private>' . "\r\n";
if($item['app'])
@ -4179,18 +4047,20 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
if(strlen($actarg))
$o .= $actarg;
$tags = item_getfeedtags($item);
if(count($tags)) {
foreach($tags as $t) {
$o .= '<category scheme="X-DFRN:' . xmlify($t[0]) . ':' . xmlify($t[1]) . '" term="' . xmlify($t[2]) . '" />' . "\r\n";
}
}
// FIXME
// $tags = item_getfeedtags($item);
// if(count($tags)) {
// foreach($tags as $t) {
// $o .= '<category scheme="X-DFRN:' . xmlify($t[0]) . ':' . xmlify($t[1]) . '" term="' . xmlify($t[2]) . '" />' . "\r\n";
// }
// }
$o .= item_getfeedattach($item);
// FIXME
// $o .= item_getfeedattach($item);
$mentioned = get_mentions($item,$tags);
if($mentioned)
$o .= $mentioned;
// $mentioned = get_mentions($item,$tags);
// if($mentioned)
// $o .= $mentioned;
call_hooks('atom_entry', $o);
@ -4764,10 +4634,12 @@ function zot_feed($uid,$observer_xchan,$mindate) {
function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$module = 'network') {
function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = CLIENT_MODE_NORMAL,$module = 'network') {
$result = array('success' => false);
$a = get_app();
$sql_extra = '';
$sql_nets = '';
$sql_options = '';
@ -4782,7 +4654,10 @@ function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$mod
}
if($arr['star'])
$sql_options .= " and (item_flags & " . intval(ITEM_STARRED) . ")";
$sql_options .= " and (item_flags & " . intval(ITEM_STARRED) . ") ";
if($arr['wall'])
$sql_options .= " and (item_flags & " . intval(ITEM_WALL) . ") ";
$sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ") $sql_options ) ";
@ -4892,6 +4767,9 @@ function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$mod
$start = dba_timer();
require_once('include/security.php');
$sql_extra .= item_permissions_sql($channel['channel_id']);
if($arr['nouveau'] && ($client_mode & CLIENT_MODELOAD) && $channel) {
// "New Item View" - show all items unthreaded in reverse created date order
@ -4908,7 +4786,7 @@ function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$mod
$items = fetch_post_tags($items,true);
}
elseif($client_mode & CLIENT_MODE_UPDATE) {
else {
// Normal conversation view
@ -4917,7 +4795,7 @@ function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$mod
else
$ordering = "commented";
if($client_mode & CLIENT_MODE_LOAD) {
if(($client_mode & CLIENT_MODE_LOAD) || ($client_mode & CLIENT_MODE_NORMAL)) {
// Fetch a page full of parent items for this page
@ -4955,7 +4833,6 @@ function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$mod
WHERE $item_uids AND item.item_restrict = 0
AND item.parent IN ( %s )
$sql_extra ",
intval(local_user()),
dbesc($parents_str)
);
@ -4969,10 +4846,9 @@ function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$mod
$fourth = dba_timer();
require_once('include/conversation.php');
$items = conv_sort($items,$ordering);
//logger('items: ' . print_r($items,true));
}
@ -4980,8 +4856,10 @@ function items_fetch($arr,$channel = null,$client_mode = CLIENT_MODE_NORMAL,$mod
$items = array();
}
if($parents_str)
if($parents_str && $arr['mark_seen'])
$update_unseen = ' AND parent IN ( ' . dbesc($parents_str) . ' )';
// FIXME finish mark unseen sql
}
return $items;
}

View File

@ -53,6 +53,7 @@ require_once('include/html2plain.php');
*
* ZOT
* permission_update abook_id
* refresh_all channel_id
* relay item_id (item was relayed to owner, we will deliver it as owner)
*
*/
@ -136,6 +137,7 @@ function notifier_run($argv, $argc){
$recipients = array();
$url_recipients = array();
$normal_mode = true;
$packet_type = 'undefined';
if($cmd === 'mail') {
$normal_mode = false;
@ -186,6 +188,27 @@ function notifier_run($argv, $argc){
$recipients[] = $suggest[0]['cid'];
$item = $suggest[0];
}
elseif($cmd === 'refresh_all') {
$s = q("select * from channel where channel_id = %d limit 1",
intval($item_id)
);
if($s)
$channel = $s[0];
$uid = $item_id;
$recipients = array();
$r = q("select * from abook where abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d)",
intval($item_id),
intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING)
);
if($r) {
foreach($r as $rr) {
$recipients[] = $rr['abook_xchan'];
}
}
$private = false;
$packet_type = 'refresh';
}
else {
// Normal items
@ -213,6 +236,12 @@ function notifier_run($argv, $argc){
return;
}
if($target_item['item_restrict'] & ITEM_WEBPAGE) {
logger('notifier: target item ITEM_WEBPAGE', LOGGER_DEBUG);
return;
}
$s = q("select * from channel where channel_id = %d limit 1",
intval($target_item['uid'])
);
@ -346,18 +375,34 @@ function notifier_run($argv, $argc){
foreach($hubs as $hub) {
$hash = random_string();
$n = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash);
q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($target_item['aid']),
intval($target_item['uid']),
dbesc($hub['hubloc_callback']),
intval(1),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc($n),
dbesc(json_encode($encoded_item))
);
if($packet_type === 'refresh') {
$n = zot_build_packet($channel,'refresh');
q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($channel['channel_account']),
intval($channel['channel_id']),
dbesc($hub['hubloc_callback']),
intval(1),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc($n),
dbesc('')
);
}
else {
$n = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash);
q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($target_item['aid']),
intval($target_item['uid']),
dbesc($hub['hubloc_callback']),
intval(1),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc($n),
dbesc(json_encode($encoded_item))
);
}
$deliver[] = $hash;
if(count($deliver) >= $deliveries_per_process) {

View File

@ -98,7 +98,7 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
// If they're blocked - they can't read or write
if(($x) && (($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED) || ($x[0]['abook_flags'] & ABOOK_FLAG_PENDING))) {
if(($x) && ($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED)) {
$ret[$perm_name] = false;
continue;
}
@ -164,13 +164,17 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
// If PERMS_CONTACTS or PERMS_SPECIFIC, they need to be in your address book
// $x is a valid address book entry
if(! $x) {
$ret[$perm_name] = false;
continue;
}
// They are in your address book, but haven't been approved
if($x[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
$ret[$perm_name] = false;
continue;
}
if(($r) && ($r[0][$channel_perm] & PERMS_CONTACTS)) {
@ -242,7 +246,7 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
// If they're blocked - they can't read or write
if(($x) && (($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED) || ($x[0]['abook_flags'] & ABOOK_FLAG_PENDING)))
if(($x) && ($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED))
return false;
if(($x) && (! $global_perms[$permission][2]) && ($x[0]['abook_flags'] & ABOOK_FLAG_IGNORED))
@ -287,6 +291,10 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
return false;
}
if($x[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
return false;
}
if($r[0][$channel_perm] & PERMS_CONTACTS) {
return true;
}

View File

@ -1017,9 +1017,11 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
$channel = $r[0];
$tag_delivery = tgroup_check($channel['channel_id'],$arr);
$perm = (($arr['mid'] == $arr['parent_mid']) ? 'send_stream' : 'post_comments');
if(! perm_is_allowed($channel['channel_id'],$sender['hash'],$perm)) {
if((! perm_is_allowed($channel['channel_id'],$sender['hash'],$perm)) && (! $tag_delivery)) {
logger("permission denied for delivery {$channel['channel_id']}");
$result[] = array($d['hash'],'permission denied');
continue;

View File

@ -48,6 +48,7 @@ if(! $install) {
load_config('config');
load_config('system');
load_config('feature');
require_once("session.php");
load_hooks();

View File

@ -247,8 +247,8 @@ ACL.prototype.populate = function(data){
var height = Math.ceil(data.tot / that.nw) * 42;
that.list_content.height(height);
$(data.items).each(function(){
html = "<div class='acl-list-item {4} {5}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
html = html.format( this.photo, this.name, this.type, this.xid, '', this.network, this.link );
html = "<div class='acl-list-item {4} {5} {7}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
html = html.format( this.photo, this.name, this.type, this.xid, '', this.network, this.link, this.taggable );
if (this.uids!=undefined) that.group_uids[this.id] = this.uids;
//console.log(html);
that.list_content.append(html);

View File

@ -118,6 +118,7 @@
var scroll_next = false;
var next_page = 1;
var page_load = true;
var loadingPage = false;
$(function() {
$.ajaxSetup({cache: false});
@ -395,6 +396,10 @@ function updateConvItems(mode,data) {
// $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
});
if(loadingPage) {
loadingPage = false;
}
}
if(mode === 'replace') {
// clear existing content
@ -916,6 +921,7 @@ $(".autotime").timeago();
}
$(window).scroll(function () {
if(typeof buildCmd == 'function') {
$('#more').hide();
@ -927,12 +933,15 @@ $(window).scroll(function () {
}
if($(window).scrollTop() + $(window).height() == $(document).height()) {
$('#more').hide();
$('#no-more').hide();
// alert('scroll');
next_page++;
scroll_next = true;
liveUpdate();
if(! loadingPage) {
$('#more').hide();
$('#no-more').hide();
// alert('scroll');
next_page++;
scroll_next = true;
loadingPage = true;
liveUpdate();
}
}
}

View File

@ -123,7 +123,7 @@ function acl_init(&$a){
}
if ($type=='' || $type=='c') {
$r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick
$r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d AND not ( abook_flags & %d ) $sql_extra2 order by xchan_name asc" ,
intval(local_user()),
@ -142,7 +142,7 @@ function acl_init(&$a){
);
}
elseif($type == 'a') {
$r = q("SELECT abook_id as id, xchan_name as name, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag FROM abook left join xchan on abook_xchan = xchan_hash
$r = q("SELECT abook_id as id, xchan_name as name, xchan_hash as hash, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag , abook_their_perms FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d
$sql_extra3
ORDER BY xchan_name ASC ",
@ -196,13 +196,15 @@ function acl_init(&$a){
if(count($r)) {
foreach($r as $g){
$contacts[] = array(
"type" => "c",
"photo" => $g['micro'],
"name" => $g['name'],
"id" => $g['id'],
"xid" => $g['hash'],
"link" => $g['nick'],
"nick" => substr($g['nick'],0,strpos($g['nick'],'@'))
"type" => "c",
"photo" => $g['micro'],
"name" => $g['name'],
"id" => $g['id'],
"xid" => $g['hash'],
"link" => $g['nick'],
"nick" => substr($g['nick'],0,strpos($g['nick'],'@')),
"network" => '',
"taggable" => (($g['abook_their_perms'] & PERMS_W_TAGWALL) ? 'taggable' : '')
);
}
}
@ -251,6 +253,7 @@ function navbar_complete(&$a) {
}
if(! $url) {
require_once("include/dir_fns.php");
$directory = find_upstream_directory($dirmode);
if($directory) {

View File

@ -23,6 +23,7 @@ function dirsearch_content(&$a) {
}
$name = ((x($_REQUEST,'name')) ? $_REQUEST['name'] : '');
$hub = ((x($_REQUEST,'hub')) ? $_REQUEST['hub'] : '');
$address = ((x($_REQUEST,'address')) ? $_REQUEST['address'] : '');
$locale = ((x($_REQUEST,'locale')) ? $_REQUEST['locale'] : '');
$region = ((x($_REQUEST,'region')) ? $_REQUEST['region'] : '');
@ -38,6 +39,8 @@ function dirsearch_content(&$a) {
if($name)
$sql_extra .= " OR xchan_name like '" . protect_sprintf( '%' . dbesc($name) . '%' ) . "' ";
if($hub)
$sql_extra .= " OR xchan_hash in (select hubloc_hash from hubloc where hubloc_host = '" . protect_sprintf(dbesc($hub)) . "') ";
if($address)
$sql_extra .= " OR xchan_addr like '" . protect_sprintf( '%' . dbesc($address) . '%' ) . "' ";
if($city)
@ -96,7 +99,6 @@ function dirsearch_content(&$a) {
$order = " ORDER BY `xchan_name` ASC ";
$r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and not ( xchan_flags & %d ) $order $qlimit ",
intval(XCHAN_FLAGS_HIDDEN)
);

View File

@ -13,7 +13,7 @@ function feed_init(&$a) {
$channel = '';
if(argc() > 1) {
$r = q("select * from channel where channel_address = '%s' limit 1",
$r = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_address = '%s' limit 1",
dbesc(argv(1))
);
if(!($r && count($r)))
@ -21,11 +21,6 @@ function feed_init(&$a) {
$channel = $r[0];
// check site and channel permissions
if(!($channel['channel_r_stream'] & PERMS_PUBLIC))
killme();
if((intval(get_config('system','block_public'))) && (! get_account_id()))
killme();

View File

@ -5,9 +5,13 @@
require_once('include/Contact.php');
require_once('include/zot.php');
require_once('include/identity.php');
function import_post(&$a) {
if(! $a->get_account()) {
return;
}
$data = null;
$seize = ((x($_REQUEST,'make_primary')) ? intval($_REQUEST['make_primary']) : 0);
@ -22,6 +26,7 @@ function import_post(&$a) {
if($filesize) {
$data = @file_get_contents($src);
}
unlink($src);
}
if(! $src) {
@ -326,6 +331,10 @@ function import_post(&$a) {
function import_content(&$a) {
if(! $a->get_account()) {
notice( t('You must be logged in to use this feature.'));
return '';
}
$o = replace_macros(get_markup_template('channel_import.tpl'),array(
'$title' => t('Import Channel'),

View File

@ -799,15 +799,23 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
if(strpos($tag,'[zrl='))
//...do nothing
return $replaced;
//base tag has the tags name only
$basetag = str_replace('_',' ',substr($tag,1));
//create text for link
$url = $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag);
$newtag = '#[zrl=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/zrl]';
//replace tag by the link
$body = str_replace($tag, $newtag, $body);
$replaced = true;
if($tag == '#getzot') {
$basetag = 'getzot';
$url = 'http://getzot.com';
$newtag = '#[zrl=' . $url . ']' . $basetag . '[/zrl]';
$body = str_replace($tag,$newtag,$body);
$replace = true;
}
else {
//base tag has the tags name only
$basetag = str_replace('_',' ',substr($tag,1));
//create text for link
$url = $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag);
$newtag = '#[zrl=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/zrl]';
//replace tag by the link
$body = str_replace($tag, $newtag, $body);
$replaced = true;
}
//is the link already in str_tags?
if(! stristr($str_tags,$newtag)) {
//append or set str_tags

View File

@ -9,13 +9,20 @@ require_once('include/Contact.php');
function message_aside(&$a) {
$a->set_widget('newmessage',replace_macros(get_markup_template('message_side.tpl'), array(
$a->set_widget('msgaside',replace_macros(get_markup_template('message_side.tpl'), array(
'$tabs'=> array(),
'$check'=>array(
'label' => t('Check Mail'),
'url' => $a->get_baseurl(true) . '/message',
'sel' => (argv(1) == ''),
),
'$new'=>array(
'label' => t('New Message'),
'url' => $a->get_baseurl(true) . '/message/new',
'sel'=> (argv(1) == 'new'),
)
)));
}

85
sample-lighttpd.conf Normal file
View File

@ -0,0 +1,85 @@
# See http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions
### LOAD MODULES
server.modules = (
"mod_access",
"mod_accesslog",
"mod_fastcgi",
"mod_redirect",
"mod_rewrite"
)
### BASIC STUFF
server.port = 80
server.username = "http"
server.groupname = "http"
server.document-root = "/path/to/your/www/files" #adjust to your setup
server.errorlog = "/var/log/lighttpd/error.log"
accesslog.filename = "/var/log/lighttpd/access.log"
### DISABLE DIR LISTING
dir-listing.activate = "disable"
### DISABLE REJECT EXPECT HEADER
### (needed for curl POST requests - otherwise they fail with error 417)
server.reject-expect-100-with-417 = "disable"
### DEFINE SUPPORTED INDEX FILENAMES
index-file.names = (
"index.html",
"index.htm",
"index.php"
)
### DEFINE SUPPORTED MIME TYPES
mimetype.assign = (
".html" => "text/html",
".htm" => "text/html",
".css" => "text/css",
".txt" => "text/plain",
".svg" => "image/svg+xml",
".jpg" => "image/jpeg",
".png" => "image/png"
)
### DONT EVER SERVE FILES WITH EXTENSION
static-file.exclude-extensions = ( ".php" )
### PHP WITH PHP-FPM
### (needs php-fpm installed and running)
fastcgi.server = (
".php" => (
"localhost" => (
"socket" => "/run/php-fpm/php-fpm.sock",
"broken-scriptfilename" => "enable",
"allow-x-sendfile" => "enable"
)
)
)
### ENABLE SSL
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.ca-file = "/etc/lighttpd/certs/ca-certs.crt" #adjust to your needs
ssl.pemfile = "/etc/lighttpd/certs/red-ssl.crt" #adjust to your needs
}
### RISTRICT ACCESS TO DIRECTORYS AND FILES
$HTTP["url"] =~ "\.(out|log|htaccess)$" {
url.access-deny = ("")
}
$HTTP["url"] =~ "(^|/)\.git" {
url.access-deny = ("")
}
### URL REWRITE RULES
url.rewrite-if-not-file = (
"^\/([^\?]*)\?(.*)$" => "/index.php?q=$1&$2",
"^\/(.*)$" => "/index.php?q=$1"
)

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
2013-06-06.336
2013-06-16.346

View File

@ -3389,6 +3389,8 @@ color-stop(0.82, #b00)
);
}
/*
nav:hover {
background-image: linear-gradient(bottom, #f00 26%, #b00 82%);
@ -3406,6 +3408,8 @@ color-stop(0.82, #b00)
);
}
*/
nav a,
nav a:active,
nav a:visited,
@ -3735,6 +3739,10 @@ ul.menu-popup {
float: left;
margin: 4px;
}
.acl-list-item.taggable {
background-color: #ccccff;
}
.acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;}
.acl-list-item a {
font-size: 8px;

View File

@ -44,6 +44,7 @@
if ($colour_scheme === 'fancyred') {$shadows = true; $navcolour = 'black'; $displaystyle = 'fancy'; $linkcolour = 'f00'; $shiny = "opaque";}
// Dark themes are very different - we need to do some of these from scratch, so don't bother setting vars for anything else
if ($colour_scheme === 'dark') {$colour = 'dark'; $navcolour = 'black';}
if ($colour_scheme === 'redbasic'){$navcolour = 'red';}
}
// This is probably the easiest place to apply global settings. Don't bother with site line height and such. Instead, check pconfig for global user settings.

View File

@ -1,8 +1,3 @@
{{*
* AUTOMATICALLY GENERATED TEMPLATE
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
*
*}}
<div id="acl-wrapper">
<input id="acl-search">
<a href="#" id="acl-showall">{{$showall}}</a>

View File

@ -1,14 +1,10 @@
{{*
* AUTOMATICALLY GENERATED TEMPLATE
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
*
*}}
<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:thr="http://purl.org/syndication/thread/1.0"
xmlns:at="http://purl.org/atompub/tombstones/1.0"
xmlns:media="http://purl.org/syndication/atommedia"
xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0"
xmlns:zot="http://purl.org/zot"
xmlns:as="http://activitystrea.ms/spec/1.0/"
xmlns:georss="http://www.georss.org/georss"
xmlns:poco="http://portablecontacts.net/spec/1.0"
@ -17,18 +13,20 @@
<id>{{$feed_id}}</id>
<title>{{$feed_title}}</title>
<generator uri="http://friendica.com" version="{{$version}}">Friendica</generator>
<generator uri="http://getzot.com" version="{{$version}}">{{$red}}</generator>
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
{{if $hub}}
{{$hub}}
{{/if}}
{{if $salmon}}
{{$salmon}}
{{$community}}
{{/if}}
<updated>{{$feed_updated}}</updated>
<dfrn:owner>
<name dfrn:updated="{{$namdate}}" >{{$name}}</name>
<uri dfrn:updated="{{$uridate}}" >{{$profile_page}}</uri>
<link rel="photo" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
<link rel="avatar" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
{{$birthday}}
</dfrn:owner>
<zot:owner>
<name>{{$name}}</name>
<uri>{{$profile_page}}</uri>
<link rel="photo" type="{{$mimephoto}}" media:width="175" media:height="175" href="{{$photo}}" />
<link rel="avatar" type="{{$mimephoto}}" media:width="175" media:height="175" href="{{$photo}}" />
</zot:owner>

View File

@ -1,9 +1,5 @@
{{*
* AUTOMATICALLY GENERATED TEMPLATE
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
*
*}}
<div id="message-sidebar" class="widget">
<div id="message-check"><a href="{{$check.url}}" class="{{if $check.sel}}checkmessage-selected{{/if}}">{{$check.label}}</a> </div>
<div id="message-new"><a href="{{$new.url}}" class="{{if $new.sel}}newmessage-selected{{/if}}">{{$new.label}}</a> </div>
<ul class="message-ul">