From 65bea5e02c70dd9b08f4903e958f18efa7bff365 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 7 Jun 2015 16:19:59 -0700 Subject: frontpage changes --- mod/home.php | 248 +++++------------------------------------------------------ 1 file changed, 19 insertions(+), 229 deletions(-) (limited to 'mod') diff --git a/mod/home.php b/mod/home.php index 03133a217..89c6596c2 100644 --- a/mod/home.php +++ b/mod/home.php @@ -20,7 +20,7 @@ function home_init(&$a) { if(! $dest) $dest = get_config('system','startpage'); if(! $dest) - $dest = z_root() . '/apps'; + $dest = z_root() . '/network'; goaway($dest); } @@ -37,9 +37,6 @@ function home_content(&$a, $update = 0, $load = false) { $o = ''; - if($load) - $_SESSION['loadtime'] = datetime_convert(); - if(x($_SESSION,'theme')) unset($_SESSION['theme']); if(x($_SESSION,'mobile_theme')) @@ -47,238 +44,31 @@ function home_content(&$a, $update = 0, $load = false) { $splash = ((argc() > 1 && argv(1) === 'splash') ? true : false); - if(get_config('system','projecthome')) { - $o .= file_get_contents('assets/home.html'); - $a->page['template'] = 'full'; - $a->page['title'] = t('$Projectname'); - return $o; - } - - - // Deprecated - $channel_address = get_config("system", "site_channel" ); - - // See if the sys channel set a homepage - if (! $channel_address) { - require_once('include/identity.php'); - $u = get_sys_channel(); - if ($u) { - $u = array($u); - // change to channel_id when below deprecated and skip the $u=... - $channel_address = $u[0]['channel_address']; - } - } - - if($channel_address) { - $page_id = 'home'; - $randpage_id = 'home-%'; - - $u = q("select channel_id from channel where channel_address = '%s' limit 1", - dbesc($channel_address) - ); - - $randfunc = db_getfunc('RAND'); - - $r = q("select item.* from item left join item_id on item.id = item_id.iid - where item.uid = %d and ( sid = '%s' or sid like '%s' ) and service = 'WEBPAGE' and - item_restrict = %d ORDER BY $randfunc limit 1", - intval($u[0]['channel_id']), - dbesc($page_id), - dbesc($randpage_id), - intval(ITEM_WEBPAGE) - ); - - if($r) { - xchan_query($r); - $r = fetch_post_tags($r,true); - - if($r[0]['layout_mid']) { - $l = q("select body from item where mid = '%s' and uid = %d limit 1", - dbesc($r[0]['layout_mid']), - intval($u[0]['channel_id']) - ); + call_hooks('home_content',$o); + if($o) + return $o; - if($l) { - require_once('include/comanche.php'); - comanche_parser($a,$l[0]['body']); - $a->pdl = $l[0]['body']; - } + $startpage = get_config('system','frontpage'); + if($startpage) { + if(strpos($startpage,'include:') !== false) { + $file = trim(str_replace('include:' , '', $startpage)); + if(file_exists($file)) { + $o .= file_get_contents($file); + return $o; } - - $a->profile = array('profile_uid' => $u[0]['channel_id']); - $a->profile_uid = $u[0]['channel_id']; - $o .= prepare_page($r[0]); - return $o; } + goaway($z_root() . '/' . $startpage); } - // Nope, we didn't find an item. Let's see if there's any html - - if(file_exists('home.html')) { - $o .= file_get_contents('home.html'); - } - else { - $sitename = get_config('system','sitename'); - if($sitename) - $o .= '

' . sprintf( t("Welcome to %s") ,$sitename) . '

'; - - if(intval(get_config('system','block_public')) && (! local_channel()) && (! remote_channel())) { - // If there's nothing special happening, just spit out a login box - - if (! $a->config['system']['no_login_on_homepage']) - $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1); - return $o; - } - else { - - if(get_config('system','disable_discover_tab')) { - call_hooks('home_content',$o); - return $o; - } - - if(! $update) { - - $maxheight = get_config('system','home_divmore_height'); - if(! $maxheight) - $maxheight = 75; - - $o .= '
' . "\r\n"; - $o .= "\r\n"; - - $a->page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array( - '$baseurl' => z_root(), - '$pgtype' => 'home', - '$uid' => ((local_channel()) ? local_channel() : '0'), - '$gid' => '0', - '$cid' => '0', - '$cmin' => '0', - '$cmax' => '99', - '$star' => '0', - '$liked' => '0', - '$conv' => '0', - '$spam' => '0', - '$fh' => '1', - '$nouveau' => '0', - '$wall' => '0', - '$list' => '0', - '$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1), - '$search' => '', - '$order' => 'comment', - '$file' => '', - '$cats' => '', - '$tags' => '', - '$dend' => '', - '$mid' => '', - '$verb' => '', - '$dbegin' => '' - )); - } - - if($update && ! $load) { - // only setup pagination on initial page view - $pager_sql = ''; - } - else { - $a->set_pager_itemspage(20); - $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($a->pager['itemspage']), intval($a->pager['start'])); - } - - require_once('include/identity.php'); - - if(get_config('system','site_firehose')) { - require_once('include/security.php'); - $uids = " and item.uid in ( " . stream_perms_api_uids(PERMS_PUBLIC) . " ) and item_private = 0 and (item_flags & " . intval(ITEM_WALL) . " ) > 0 "; - } - else { - $sys = get_sys_channel(); - $uids = " and item.uid = " . intval($sys['channel_id']) . " "; - $a->data['firehose'] = intval($sys['channel_id']); - } - - $page_mode = 'list'; - - $simple_update = (($update) ? " and item.item_unseen = 1 " : ''); - - if($update && $_SESSION['loadtime']) - $simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) "; - if($load) - $simple_update = ''; - - //logger('update: ' . $update . ' load: ' . $load); - - if($update) { - - $ordering = "commented"; - - if($load) { - - // Fetch a page full of parent items for this page - - $r = q("SELECT distinct item.id AS item_id, $ordering FROM item - left join abook on item.author_xchan = abook.abook_xchan - WHERE true $uids AND item.item_restrict = 0 - AND item.parent = item.id - and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null) - $sql_extra3 $sql_extra $sql_nets - ORDER BY $ordering DESC $pager_sql ", - intval(ABOOK_FLAG_BLOCKED) - ); - - - } - elseif($update) { - - $r = q("SELECT distinct item.id AS item_id, $ordering FROM item - left join abook on item.author_xchan = abook.abook_xchan - WHERE true $uids AND item.item_restrict = 0 - AND item.parent = item.id $simple_update - and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null) - $sql_extra3 $sql_extra $sql_nets", - intval(ABOOK_FLAG_BLOCKED) - ); - $_SESSION['loadtime'] = datetime_convert(); - } - // Then fetch all the children of the parents that are on this page - $parents_str = ''; - $update_unseen = ''; - - if($r) { - - $parents_str = ids_to_querystr($r,'item_id'); - - $items = q("SELECT item.*, item.id AS item_id FROM item - WHERE true $uids AND item.item_restrict = 0 - AND item.parent IN ( %s ) - $sql_extra ", - dbesc($parents_str) - ); - - xchan_query($items,true,(-1)); - $items = fetch_post_tags($items,true); - $items = conv_sort($items,$ordering); - } - else { - $items = array(); - } - - } - - // fake it - $mode = ('network'); - - $o .= conversation($a,$items,$mode,$update,$page_mode); - - if(($items) && (! $update)) - $o .= alt_pager($a,count($items)); - - return $o; + $sitename = get_config('system','sitename'); + if($sitename) + $o .= '

' . sprintf( t("Welcome to %s") ,$sitename) . '

'; - } - call_hooks('home_content',$o); - return $o; + if(intval(get_config('system','block_public')) && (! local_channel()) && (! remote_channel())) { + // If there's nothing special happening, just spit out a login box + if (! $a->config['system']['no_login_on_homepage']) + $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1); } return $o; -- cgit v1.2.3 From 0537ff1e4a220f08e708c7edfb53b26622d3313f Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 7 Jun 2015 18:15:26 -0700 Subject: frontpage tweaks --- mod/admin.php | 3 +++ mod/home.php | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'mod') diff --git a/mod/admin.php b/mod/admin.php index 54ee04776..830c468c1 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -277,6 +277,7 @@ function admin_page_site_post(&$a){ $abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0); $register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : ''); + $frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : ''); $allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : ''); $allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : ''); @@ -305,6 +306,7 @@ function admin_page_site_post(&$a){ set_config('system', 'delivery_interval', $delivery_interval); set_config('system', 'poll_interval', $poll_interval); set_config('system', 'maxloadavg', $maxloadavg); + set_config('system', 'frontpage', $frontpage); set_config('system', 'sitename', $sitename); set_config('system', 'no_login_on_homepage', $no_login_on_homepage); set_config('system', 'verify_email', $verify_email); @@ -464,6 +466,7 @@ function admin_page_site(&$a) { '$register_policy' => array('register_policy', t("Does this site allow new member registration?"), get_config('system','register_policy'), "", $register_choices), '$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), "This is displayed on the public server site list.", $access_choices), '$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")), + '$frontpage' => array('frontpage', t("Site page to show visitors (default login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream or 'include:home.html' to include a file.")), '$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')), '$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")), '$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")), diff --git a/mod/home.php b/mod/home.php index 89c6596c2..9f1c77131 100644 --- a/mod/home.php +++ b/mod/home.php @@ -49,16 +49,18 @@ function home_content(&$a, $update = 0, $load = false) { if($o) return $o; - $startpage = get_config('system','frontpage'); - if($startpage) { - if(strpos($startpage,'include:') !== false) { - $file = trim(str_replace('include:' , '', $startpage)); + $frontpage = get_config('system','frontpage'); + if($frontpage) { + if(strpos($frontpage,'include:') !== false) { + $file = trim(str_replace('include:' , '', $frontpage)); if(file_exists($file)) { + $a->page['template'] = 'full'; + $a->page['title'] = t('$Projectname'); $o .= file_get_contents($file); return $o; } } - goaway($z_root() . '/' . $startpage); + goaway(z_root() . '/' . $frontpage); } $sitename = get_config('system','sitename'); -- cgit v1.2.3 From 60cfea5d1f807824525ef2e49606753d6b4860f1 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 7 Jun 2015 18:27:05 -0700 Subject: reverse logic of homepage login setting --- mod/admin.php | 9 ++++++--- mod/home.php | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'mod') diff --git a/mod/admin.php b/mod/admin.php index 830c468c1..aeb2bcd41 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -285,7 +285,7 @@ function admin_page_site_post(&$a){ $block_public = ((x($_POST,'block_public')) ? True : False); $force_publish = ((x($_POST,'publish_all')) ? True : False); $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? True : False); - $no_login_on_homepage = ((x($_POST,'no_login_on_homepage')) ? True : False); + $login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False); $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : ''); $no_community_page = !((x($_POST,'no_community_page')) ? True : False); $default_expire_days = ((array_key_exists('default_expire_days',$_POST)) ? intval($_POST['default_expire_days']) : 0); @@ -308,7 +308,7 @@ function admin_page_site_post(&$a){ set_config('system', 'maxloadavg', $maxloadavg); set_config('system', 'frontpage', $frontpage); set_config('system', 'sitename', $sitename); - set_config('system', 'no_login_on_homepage', $no_login_on_homepage); + set_config('system', 'login_on_homepage', login_on_homepage); set_config('system', 'verify_email', $verify_email); set_config('system', 'default_expire_days', $default_expire_days); @@ -441,6 +441,9 @@ function admin_page_site(&$a) { // SSL_POLICY_FULL => t("Force all links to use SSL") // ); + + $homelogin = get_config('system','login_on_homepage'); + $t = get_markup_template("admin_site.tpl"); return replace_macros($t, array( '$title' => t('Administration'), @@ -475,7 +478,7 @@ function admin_page_site(&$a) { '$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")), '$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")), '$disable_discover_tab' => array('disable_discover_tab', t("Disable discovery tab"), get_config('system','disable_discover_tab'), t("Remove the tab in the network view with public content pulled from sources chosen for this site.")), - '$no_login_on_homepage' => array('no_login_on_homepage', t("No login on Homepage"), get_config('system','no_login_on_homepage'), t("Check to hide the login form from your sites homepage when visitors arrive who are not logged in (e.g. when you put the content of the homepage in via the site channel).")), + '$login_on_homepage' => array('login_on_homepage', t("login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")), '$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""), '$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""), diff --git a/mod/home.php b/mod/home.php index 9f1c77131..aa89d9ff4 100644 --- a/mod/home.php +++ b/mod/home.php @@ -69,7 +69,8 @@ function home_content(&$a, $update = 0, $load = false) { if(intval(get_config('system','block_public')) && (! local_channel()) && (! remote_channel())) { // If there's nothing special happening, just spit out a login box - if (! $a->config['system']['no_login_on_homepage']) + $loginbox = get_config('system',login_on_homepage'); + if(intval($loginbox) || $loginbox === false) $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1); } -- cgit v1.2.3 From 3c5a5a9ebfcc3acd7f4b454384a584a778144367 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 7 Jun 2015 18:59:14 -0700 Subject: more frontpage tweaks --- mod/admin.php | 4 ++-- mod/home.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'mod') diff --git a/mod/admin.php b/mod/admin.php index aeb2bcd41..4b80a9a32 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -308,7 +308,7 @@ function admin_page_site_post(&$a){ set_config('system', 'maxloadavg', $maxloadavg); set_config('system', 'frontpage', $frontpage); set_config('system', 'sitename', $sitename); - set_config('system', 'login_on_homepage', login_on_homepage); + set_config('system', 'login_on_homepage', $login_on_homepage); set_config('system', 'verify_email', $verify_email); set_config('system', 'default_expire_days', $default_expire_days); @@ -469,7 +469,7 @@ function admin_page_site(&$a) { '$register_policy' => array('register_policy', t("Does this site allow new member registration?"), get_config('system','register_policy'), "", $register_choices), '$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), "This is displayed on the public server site list.", $access_choices), '$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")), - '$frontpage' => array('frontpage', t("Site page to show visitors (default login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream or 'include:home.html' to include a file.")), + '$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")), '$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')), '$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")), '$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")), diff --git a/mod/home.php b/mod/home.php index aa89d9ff4..39b42b630 100644 --- a/mod/home.php +++ b/mod/home.php @@ -69,7 +69,7 @@ function home_content(&$a, $update = 0, $load = false) { if(intval(get_config('system','block_public')) && (! local_channel()) && (! remote_channel())) { // If there's nothing special happening, just spit out a login box - $loginbox = get_config('system',login_on_homepage'); + $loginbox = get_config('system','login_on_homepage'); if(intval($loginbox) || $loginbox === false) $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1); } -- cgit v1.2.3 From 9823541c4b98f6cf5e659a8379d0ea0eeeb0c529 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 7 Jun 2015 21:36:50 -0700 Subject: make sure these are included --- mod/public.php | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++ mod/update_public.php | 37 ++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 mod/public.php create mode 100644 mod/update_public.php (limited to 'mod') diff --git a/mod/public.php b/mod/public.php new file mode 100644 index 000000000..57c12e283 --- /dev/null +++ b/mod/public.php @@ -0,0 +1,152 @@ +' . "\r\n"; + $o .= "\r\n"; + + $a->page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array( + '$baseurl' => z_root(), + '$pgtype' => 'public', + '$uid' => ((local_channel()) ? local_channel() : '0'), + '$gid' => '0', + '$cid' => '0', + '$cmin' => '0', + '$cmax' => '99', + '$star' => '0', + '$liked' => '0', + '$conv' => '0', + '$spam' => '0', + '$fh' => '1', + '$nouveau' => '0', + '$wall' => '0', + '$list' => '0', + '$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1), + '$search' => '', + '$order' => 'comment', + '$file' => '', + '$cats' => '', + '$tags' => '', + '$dend' => '', + '$mid' => '', + '$verb' => '', + '$dbegin' => '' + )); + } + + if($update && ! $load) { + // only setup pagination on initial page view + $pager_sql = ''; + } + else { + $a->set_pager_itemspage(20); + $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($a->pager['itemspage']), intval($a->pager['start'])); + } + + require_once('include/identity.php'); + + if(get_config('system','site_firehose')) { + require_once('include/security.php'); + $uids = " and item.uid in ( " . stream_perms_api_uids(PERMS_PUBLIC) . " ) and item_private = 0 and (item_flags & " . intval(ITEM_WALL) . " ) > 0 "; + } + else { + $sys = get_sys_channel(); + $uids = " and item.uid = " . intval($sys['channel_id']) . " "; + $a->data['firehose'] = intval($sys['channel_id']); + } + + $page_mode = 'list'; + + $simple_update = (($update) ? " and item.item_unseen = 1 " : ''); + + if($update && $_SESSION['loadtime']) + $simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) "; + if($load) + $simple_update = ''; + + //logger('update: ' . $update . ' load: ' . $load); + + if($update) { + + $ordering = "commented"; + + if($load) { + + // Fetch a page full of parent items for this page + + $r = q("SELECT distinct item.id AS item_id, $ordering FROM item + left join abook on item.author_xchan = abook.abook_xchan + WHERE true $uids AND item.item_restrict = 0 + AND item.parent = item.id + and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null) + $sql_extra3 $sql_extra $sql_nets + ORDER BY $ordering DESC $pager_sql ", + intval(ABOOK_FLAG_BLOCKED) + ); + + + } + elseif($update) { + + $r = q("SELECT distinct item.id AS item_id, $ordering FROM item + left join abook on item.author_xchan = abook.abook_xchan + WHERE true $uids AND item.item_restrict = 0 + AND item.parent = item.id $simple_update + and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null) + $sql_extra3 $sql_extra $sql_nets", + intval(ABOOK_FLAG_BLOCKED) + ); + $_SESSION['loadtime'] = datetime_convert(); + } + // Then fetch all the children of the parents that are on this page + $parents_str = ''; + $update_unseen = ''; + + if($r) { + + $parents_str = ids_to_querystr($r,'item_id'); + + $items = q("SELECT item.*, item.id AS item_id FROM item + WHERE true $uids AND item.item_restrict = 0 + AND item.parent IN ( %s ) + $sql_extra ", + dbesc($parents_str) + ); + + xchan_query($items,true,(-1)); + $items = fetch_post_tags($items,true); + $items = conv_sort($items,$ordering); + } + else { + $items = array(); + } + + } + + // fake it + $mode = ('network'); + + $o .= conversation($a,$items,$mode,$update,$page_mode); + + if(($items) && (! $update)) + $o .= alt_pager($a,count($items)); + + return $o; + +} \ No newline at end of file diff --git a/mod/update_public.php b/mod/update_public.php new file mode 100644 index 000000000..d0a08e0e6 --- /dev/null +++ b/mod/update_public.php @@ -0,0 +1,37 @@ + 1) && (argv(1) == 'load')) ? 1 : 0); + header("Content-type: text/html"); + echo "\r\n"; + echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '
' : '
'); + + $text = public_content($a,$profile_uid, $load); + $pattern = "/]*) src=\"([^\"]*)\"/"; + $replace = "'; + $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i"; + $text = preg_replace($pattern, $replace, $text); + $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; + $text = preg_replace($pattern, $replace, $text); + } + + echo str_replace("\t",' ',$text); + echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '
' : ''); + echo "\r\n"; + killme(); + +} \ No newline at end of file -- cgit v1.2.3 From 5b482c1daf1774b185df1e165d04df3de21fb730 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 7 Jun 2015 23:04:46 -0700 Subject: magic auth issues on dreamhost --- mod/magic.php | 2 -- mod/post.php | 7 ++++++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'mod') diff --git a/mod/magic.php b/mod/magic.php index df8ac39a8..2fee87241 100644 --- a/mod/magic.php +++ b/mod/magic.php @@ -133,7 +133,6 @@ function magic_init(&$a) { $channel['token'] = $token; $channel['token_sig'] = $token_sig; - $r = q("insert into verify ( type, channel, token, meta, created) values ('%s','%d','%s','%s','%s')", dbesc('auth'), intval($channel['channel_id']), @@ -141,7 +140,6 @@ function magic_init(&$a) { dbesc($x[0]['hubloc_url']), dbesc(datetime_convert()) ); - $target_url = $x[0]['hubloc_callback'] . '/?f=&auth=' . urlencode($channel['channel_address'] . '@' . $a->get_hostname()) . '&sec=' . $token . '&dest=' . urlencode($dest) . '&version=' . ZOT_REVISION; diff --git a/mod/post.php b/mod/post.php index 95931a3f0..908b9eb1d 100644 --- a/mod/post.php +++ b/mod/post.php @@ -757,8 +757,13 @@ function post_post(&$a) { $sender_hash = make_xchan_hash($arr['guid'],$arr['guid_sig']); // garbage collect any old unused notifications + + // This was and should be 10 minutes but my hosting provider has time lag between the DB and + // the web server. We should probably convert this to webserver time rather than DB time so + // that the different clocks won't affect it and allow us to keep the time short. + q("delete from verify where type = 'auth' and created < %s - INTERVAL %s", - db_utcnow(), db_quoteinterval('10 MINUTE') + db_utcnow(), db_quoteinterval('30 MINUTE') ); $y = q("select xchan_pubkey from xchan where xchan_hash = '%s' limit 1", -- cgit v1.2.3 From 39f0e6fe622b2080bede823d19b36c9961c64f1d Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 8 Jun 2015 16:55:17 -0700 Subject: add site_dead flag to prevent delivery to dead sites. Allow sys channel webpages to be viewed even if site is configured "block public". --- mod/page.php | 17 ++++++++++++----- mod/public.php | 5 ++++- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'mod') diff --git a/mod/page.php b/mod/page.php index 25b4d8888..648bd81fd 100644 --- a/mod/page.php +++ b/mod/page.php @@ -11,10 +11,11 @@ function page_init(&$a) { $profile = 0; profile_load($a,$which,$profile); - if($a->profile['profile_uid']) - head_set_icon($a->profile['thumb']); + if($a->profile['profile_uid']) + head_set_icon($a->profile['thumb']); + // load the item here in the init function because we need to extract // the page layout and initialise the correct theme. @@ -22,9 +23,11 @@ function page_init(&$a) { $observer = $a->get_observer(); $ob_hash = (($observer) ? $observer['xchan_hash'] : ''); - $perms = get_all_perms($a->profile['profile_uid'],$ob_hash); - if(! $perms['view_pages']) { + // perm_is_allowed is denied unconditionally when 'site blocked to unauthenticated members'. + // This bypasses that restriction for sys channel (public) content + + if((! perm_is_allowed($a->profile['profile_uid'],$ob_hash,'view_pages')) && (! is_sys_channel($a->profile['profile_uid']))) { notice( t('Permission denied.') . EOL); return; } @@ -58,6 +61,8 @@ function page_init(&$a) { require_once('include/security.php'); $sql_options = item_permissions_sql($u[0]['channel_id']); +dbg(1); + $r = q("select item.* from item left join item_id on item.id = item_id.iid where item.uid = %d and sid = '%s' and (( service = 'WEBPAGE' and item_restrict = %d ) or ( service = 'PDL' and item_restrict = %d )) $sql_options $revision limit 1", @@ -77,6 +82,8 @@ function page_init(&$a) { dbesc($page_id), intval(ITEM_WEBPAGE) ); + +dbg(0); if($x) { // Yes, it's there. You just aren't allowed to see it. notice( t('Permission denied.') . EOL); @@ -119,7 +126,7 @@ function page_content(&$a) { return; if($r[0]['item_restrict'] == ITEM_PDL) { - $r[0]['body'] = t('Ipsum Lorem'); + $r[0]['body'] = t('Lorem Ipsum'); $r[0]['mimetype'] = 'text/plain'; $r[0]['title'] = ''; diff --git a/mod/public.php b/mod/public.php index 57c12e283..1f23a1999 100644 --- a/mod/public.php +++ b/mod/public.php @@ -60,17 +60,20 @@ function public_content(&$a, $update = 0, $load = false) { } require_once('include/identity.php'); + require_once('include/security.php'); if(get_config('system','site_firehose')) { - require_once('include/security.php'); $uids = " and item.uid in ( " . stream_perms_api_uids(PERMS_PUBLIC) . " ) and item_private = 0 and (item_flags & " . intval(ITEM_WALL) . " ) > 0 "; } else { $sys = get_sys_channel(); $uids = " and item.uid = " . intval($sys['channel_id']) . " "; + $sql_extra = item_permissions_sql($sys['channel_id']); $a->data['firehose'] = intval($sys['channel_id']); } + + $page_mode = 'list'; $simple_update = (($update) ? " and item.item_unseen = 1 " : ''); -- cgit v1.2.3 From 507e10fa451cd7302dbcc9b7adadff26eb8c5d5e Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 8 Jun 2015 16:57:30 -0700 Subject: remove debugging --- mod/page.php | 3 --- 1 file changed, 3 deletions(-) (limited to 'mod') diff --git a/mod/page.php b/mod/page.php index 648bd81fd..3cb63a2bc 100644 --- a/mod/page.php +++ b/mod/page.php @@ -61,8 +61,6 @@ function page_init(&$a) { require_once('include/security.php'); $sql_options = item_permissions_sql($u[0]['channel_id']); -dbg(1); - $r = q("select item.* from item left join item_id on item.id = item_id.iid where item.uid = %d and sid = '%s' and (( service = 'WEBPAGE' and item_restrict = %d ) or ( service = 'PDL' and item_restrict = %d )) $sql_options $revision limit 1", @@ -83,7 +81,6 @@ dbg(1); intval(ITEM_WEBPAGE) ); -dbg(0); if($x) { // Yes, it's there. You just aren't allowed to see it. notice( t('Permission denied.') . EOL); -- cgit v1.2.3 From 54b61f817d8911dec26e3aa2aee32fad25f67571 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 8 Jun 2015 21:19:05 -0700 Subject: provide a mechanism for loading the frontpage without redirecting. --- mod/home.php | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'mod') diff --git a/mod/home.php b/mod/home.php index 39b42b630..42f448aae 100644 --- a/mod/home.php +++ b/mod/home.php @@ -60,6 +60,11 @@ function home_content(&$a, $update = 0, $load = false) { return $o; } } + if(intval(get_config('system','mirror_frontpage'))) { + $o = '' . t('$Projectname') . ''; + echo $o; + killme(); + } goaway(z_root() . '/' . $frontpage); } -- cgit v1.2.3 From 805e2a28ee81febee2742587a1640b5fae1387a2 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 9 Jun 2015 16:29:51 -0700 Subject: add nomadic identities as webfinger aliases --- mod/wfinger.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'mod') diff --git a/mod/wfinger.php b/mod/wfinger.php index eba17de51..1493dd6ba 100644 --- a/mod/wfinger.php +++ b/mod/wfinger.php @@ -55,14 +55,23 @@ function wfinger_init(&$a) { if($resource && $r) { + $h = q("select hubloc_addr from hubloc where hubloc_hash = '%s'", + dbesc($r[0]['channel_hash']) + ); + $result['subject'] = $resource; $aliases = array( - 'acct:' . $r[0]['channel_address'] . '@' . $a->get_hostname(), z_root() . '/channel/' . $r[0]['channel_address'], z_root() . '/~' . $r[0]['channel_address'] ); + if($h) { + foreach($h as $hh) { + $aliases[] = 'acct:' . $hh['hubloc_addr']; + } + } + $result['aliases'] = array(); $result['properties'] = array('http://webfinger.net/ns/name' => $r[0]['channel_name']); -- cgit v1.2.3