X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=page%2Fpage.php;h=e1ca90703fd3374f6eee689c696c10bb2814a2ad;hb=4dd0ea5f89b4c8feb5c2f6d09476c4655f472f26;hp=4ae471bace2d766f8b2059e29094a465e203345f;hpb=b863aa697ede1b8de522fe125f9bfd9e7fb1b782;p=friendica-addons.git diff --git a/page/page.php b/page/page.php index 4ae471ba..e1ca9070 100755 --- a/page/page.php +++ b/page/page.php @@ -1,7 +1,7 @@ * based on pages plugin by @@ -13,6 +13,7 @@ function page_install() { register_hook('network_mod_init', 'addon/page/page.php', 'page_network_mod_init'); register_hook('plugin_settings', 'addon/page/page.php', 'page_plugin_settings'); register_hook('plugin_settings_post', 'addon/page/page.php', 'page_plugin_settings_post'); + register_hook('profile_advanced', 'addon/page/page.php', 'page_profile_advanced'); } @@ -20,20 +21,25 @@ function page_uninstall() { unregister_hook('network_mod_init', 'addon/page/page.php', 'page_network_mod_init'); unregister_hook('plugin_settings', 'addon/page/page.php', 'page_plugin_settings'); unregister_hook('plugin_settings_post', 'addon/page/page.php', 'page_plugin_settings_post'); + unregister_hook('profile_advanced', 'addon/page/page.php', 'page_profile_advanced'); // remove only - obsolete unregister_hook('page_end', 'addon/page/page.php', 'page_page_end'); } -function page_getpage($uid) { +function page_getpage($uid,$showhidden = true,$randomise = false) { $pagelist = array(); - $contacts = q("SELECT `id`, `url`, `name`, `micro`FROM `contact` + $order = (($showhidden) ? '' : " and hidden = 0 "); + $order .= (($randomise) ? ' order by rand() ' : ' order by name asc '); + + $contacts = q("SELECT `id`, `url`, `name`, `micro` FROM `contact` WHERE `network`= 'dfrn' AND `forum` = 1 AND `uid` = %d - order by name asc ", + and blocked = 0 and hidden = 0 and pending = 0 and archive = 0 + $order ", intval($uid) ); @@ -63,7 +69,7 @@ function page_page_end($a,&$b) { $more = false; foreach($contacts as $contact) { - $page .= '
  • ' . $contact['url'] . ' '. + $page .= '
  • ' . $contact['url'] . ' '. $contact["name"]."
  • "; $total_shown ++; if($total_shown == 6) { @@ -89,13 +95,15 @@ function page_network_mod_init($a,$b) { $show_total = intval(get_pconfig(local_user(),'page','max_pages')); if($show_total === false) $show_total = 6; - $contacts = page_getpage($a->user['uid']); + $randomise = intval(get_pconfig(local_user(),'page','randomise')); + + $contacts = page_getpage($a->user['uid'],true,$randomise); $total_shown = 0; $more = false; foreach($contacts as $contact) { - $page .= '
  • ' . $contact['url'] . ' '. + $page .= '
  • ' . $contact['url'] . ' '. $contact["name"]."
  • "; $total_shown ++; if(($show_total) && ($total_shown == $show_total)) { @@ -111,11 +119,50 @@ function page_network_mod_init($a,$b) { $a->page['aside'] = $page . $a->page['aside']; } + +function page_profile_advanced($a,&$b) { + + $profile = intval(get_pconfig($a->profile['profile_uid'],'page','show_on_profile')); + if(! $profile) + return; + + $page = '
    +
    '.t("Forums:").'
    +
    '; + + // place holder in case somebody wants configurability + $show_total = 9999; + + $randomise = true; + + $contacts = page_getpage($a->user['uid'],false,$randomise); + + $total_shown = 0; + $more = false; + + foreach($contacts as $contact) { + $page .= micropro($contact,false,'page-profile-advanced'); + $total_shown ++; + if($total_shown == $show_total) + break; + } + $page .= '
    '; + + if(count($contacts) > 0) + $b .= $page; + +} + + + function page_plugin_settings_post($a,$post) { if(! local_user() || (! x($_POST,'page-settings-submit'))) return; set_pconfig(local_user(),'page','max_pages',intval($_POST['page_max_pages'])); + set_pconfig(local_user(),'page','randomise',intval($_POST['page_random'])); + set_pconfig(local_user(),'page','show_on_profile',intval($_POST['page_profile'])); + info( t('Page settings updated.') . EOL); } @@ -134,6 +181,13 @@ function page_plugin_settings(&$a,&$s) { $max_pages = get_pconfig(local_user(),'page','max_pages'); if($max_pages === false) $max_pages = 6; + + $randomise = intval(get_pconfig(local_user(),'page','randomise')); + $randomise_checked = (($randomise) ? ' checked="checked" ' : ''); + + $profile = intval(get_pconfig(local_user(),'page','show_on_profile')); + $profile_checked = (($profile) ? ' checked="checked" ' : ''); + /* Add some HTML to the existing form */ @@ -142,11 +196,19 @@ function page_plugin_settings(&$a,&$s) { $s .= '
    '; $s .= ''; $s .= ''; - $s .= '
    '; + $s .= '
    '; + $s .= ''; + $s .= ''; + $s .= '
    '; + $s .= ''; + $s .= ''; + $s .= '
    '; + + $s .= ''; /* provide a submit button */ - $s .= '
    '; + $s .= '
    '; }