From 9b9621e10d669e7d1bc18a781c40bfc5687330c3 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 31 Jul 2016 20:14:25 -0700 Subject: add a few more path macros to portable menu elements (channelurl, pageurl, storeurl and baseurl) --- Zotlabs/Module/Impel.php | 4 ++++ Zotlabs/Module/Menu.php | 6 +++--- include/channel.php | 11 +---------- include/import.php | 9 +++++++++ include/menu.php | 10 ++++++++-- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/Zotlabs/Module/Impel.php b/Zotlabs/Module/Impel.php index 735c311d0..c1bf45a77 100644 --- a/Zotlabs/Module/Impel.php +++ b/Zotlabs/Module/Impel.php @@ -88,7 +88,11 @@ class Impel extends \Zotlabs\Web\Controller { foreach($j['items'] as $it) { $mitem = array(); + $mitem['mitem_link'] = str_replace('[channelurl]',z_root() . '/channel/' . $channel['channel_address'],$it['link']); + $mitem['mitem_link'] = str_replace('[pageurl]',z_root() . '/page/' . $channel['channel_address'],$it['link']); + $mitem['mitem_link'] = str_replace('[storeurl]',z_root() . '/store/' . $channel['channel_address'],$it['link']); $mitem['mitem_link'] = str_replace('[baseurl]',z_root(),$it['link']); + $mitem['mitem_desc'] = escape_tags($it['desc']); $mitem['mitem_order'] = intval($it['order']); if(is_array($it['flags'])) { diff --git a/Zotlabs/Module/Menu.php b/Zotlabs/Module/Menu.php index e98053f8c..1dec65c1f 100644 --- a/Zotlabs/Module/Menu.php +++ b/Zotlabs/Module/Menu.php @@ -65,7 +65,7 @@ class Menu extends \Zotlabs\Web\Controller { - function get() { + function get() { $uid = local_channel(); @@ -81,7 +81,7 @@ class Menu extends \Zotlabs\Web\Controller { if(argc() == 1) { - + $channel = (($sys) ? $sys : \App::get_channel()); // list menus $x = menu_list($uid); @@ -89,7 +89,7 @@ class Menu extends \Zotlabs\Web\Controller { for($y = 0; $y < count($x); $y ++) { $m = menu_fetch($x[$y]['menu_name'],$uid,get_observer_hash()); if($m) - $x[$y]['element'] = '[element]' . base64url_encode(json_encode(menu_element($m))) . '[/element]'; + $x[$y]['element'] = '[element]' . base64url_encode(json_encode(menu_element($channel,$m))) . '[/element]'; $x[$y]['bookmark'] = (($x[$y]['menu_flags'] & MENU_BOOKMARK) ? true : false); } } diff --git a/include/channel.php b/include/channel.php index 88dd818e6..c07cd14e2 100644 --- a/include/channel.php +++ b/include/channel.php @@ -640,19 +640,10 @@ function identity_basic_export($channel_id, $items = false) { for($y = 0; $y < count($x); $y ++) { $m = menu_fetch($x[$y]['menu_name'],$channel_id,$ret['channel']['channel_hash']); if($m) - $ret['menu'][] = menu_element($m); + $ret['menu'][] = menu_element($ret['channel'],$m); } } - $x = menu_list($channel_id); - if($x) { - $ret['menu'] = array(); - for($y = 0; $y < count($x); $y ++) { - $m = menu_fetch($x[$y]['menu_name'],$channel_id,$ret['channel']['channel_hash']); - if($m) - $ret['menu'][] = menu_element($m); - } - } $addon = array('channel_id' => $channel_id,'data' => $ret); call_hooks('identity_basic_export',$addon); diff --git a/include/import.php b/include/import.php index 0b2cd38df..27e0bfac6 100644 --- a/include/import.php +++ b/include/import.php @@ -784,7 +784,11 @@ function import_menus($channel,$menus) { foreach($menu['items'] as $it) { $mitem = array(); + $mitem['mitem_link'] = str_replace('[channelurl]',z_root() . '/channel/' . $channel['channel_address'],$it['link']); + $mitem['mitem_link'] = str_replace('[pageurl]',z_root() . '/page/' . $channel['channel_address'],$it['link']); + $mitem['mitem_link'] = str_replace('[storeurl]',z_root() . '/store/' . $channel['channel_address'],$it['link']); $mitem['mitem_link'] = str_replace('[baseurl]',z_root(),$it['link']); + $mitem['mitem_desc'] = escape_tags($it['desc']); $mitem['mitem_order'] = intval($it['order']); if(is_array($it['flags'])) { @@ -864,7 +868,12 @@ function sync_menus($channel,$menus) { foreach($menu['items'] as $it) { $mitem = array(); + + $mitem['mitem_link'] = str_replace('[channelurl]',z_root() . '/channel/' . $channel['channel_address'],$it['link']); + $mitem['mitem_link'] = str_replace('[pageurl]',z_root() . '/page/' . $channel['channel_address'],$it['link']); + $mitem['mitem_link'] = str_replace('[storeurl]',z_root() . '/store/' . $channel['channel_address'],$it['link']); $mitem['mitem_link'] = str_replace('[baseurl]',z_root(),$it['link']); + $mitem['mitem_desc'] = escape_tags($it['desc']); $mitem['mitem_order'] = intval($it['order']); if(is_array($it['flags'])) { diff --git a/include/menu.php b/include/menu.php index e8f1d8eb8..71d0e3ffe 100644 --- a/include/menu.php +++ b/include/menu.php @@ -25,7 +25,7 @@ function menu_fetch($name,$uid,$observer_xchan) { return null; } -function menu_element($menu) { +function menu_element($channel,$menu) { $arr = array(); $arr['type'] = 'menu'; @@ -46,7 +46,12 @@ function menu_element($menu) { $arr['items'] = array(); foreach($menu['items'] as $it) { $entry = array(); + + $entry['link'] = str_replace(z_root() . '/channel/' . $channel['channel_address'],'[channelurl]',$it['mitem_link']); + $entry['link'] = str_replace(z_root() . '/page/' . $channel['channel_address'],'[pageurl]',$it['mitem_link']); + $entry['link'] = str_replace(z_root() . '/store/' . $channel['channel_address'],'[storeurl]',$it['mitem_link']); $entry['link'] = str_replace(z_root(),'[baseurl]',$it['mitem_link']); + $entry['desc'] = $it['mitem_desc']; $entry['order'] = $it['mitem_order']; if($it['mitem_flags']) { @@ -389,12 +394,13 @@ function menu_del_item($menu_id,$uid,$item_id) { function menu_sync_packet($uid,$observer_hash,$menu_id,$delete = false) { $r = menu_fetch_id($menu_id,$uid); + $c = channelx_by_n($uid); if($r) { $m = menu_fetch($r['menu_name'],$uid,$observer_hash); if($m) { if($delete) $m['menu_delete'] = 1; - build_sync_packet($uid,array('menu' => array(menu_element($m)))); + build_sync_packet($uid,array('menu' => array(menu_element($c,$m)))); } } } -- cgit v1.2.3