aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <git@macgirvin.com>2016-07-31 20:14:25 -0700
committerredmatrix <git@macgirvin.com>2016-07-31 20:14:25 -0700
commit9b9621e10d669e7d1bc18a781c40bfc5687330c3 (patch)
treef84527d4c04d002b2ed4060de15921cc27de3cc2
parent86eb923f296ff911e3f516e9052b3edc55a02c8a (diff)
downloadvolse-hubzilla-9b9621e10d669e7d1bc18a781c40bfc5687330c3.tar.gz
volse-hubzilla-9b9621e10d669e7d1bc18a781c40bfc5687330c3.tar.bz2
volse-hubzilla-9b9621e10d669e7d1bc18a781c40bfc5687330c3.zip
add a few more path macros to portable menu elements (channelurl, pageurl, storeurl and baseurl)
-rw-r--r--Zotlabs/Module/Impel.php4
-rw-r--r--Zotlabs/Module/Menu.php6
-rw-r--r--include/channel.php11
-rw-r--r--include/import.php9
-rw-r--r--include/menu.php10
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))));
}
}
}