<?php
/*!
* Jetpack CRM
* https://jetpackcrm.com
*
* Client Portal Render Helper
*
*/
namespace Automattic\JetpackCRM;
defined( 'ZEROBSCRM_PATH' ) || exit( 0 );
/**
*
* Client Portal class that helps rendering the Client Portal HTML.
*
*/
class Client_Portal_Render_Helper {
public $parent_portal;
public function __construct($parent) {
$this->parent_portal = $parent;
}
/**
* Shows an object load error and dies.
*/
function show_single_obj_error_and_die() {
$err = '<center>';
$err .= '<h3>'.__('Error loading object','zero-bs-crm').'</h3>';
$err .= __('Either this object does not exist or you do not have permission to view it.', 'zero-bs-crm');
$err .= '</center>';
echo $err;
die( 0 );
}
#} MS - can you make this work with templates, couldn't so dumped (dumbly) here for now:
function portal_footer() {
// won't return ours :/
##WLREMOVE
global $zbs;
$showpoweredby_public = $zbs->settings->get( 'showpoweredby_public' ) === 1 ? true : false;
if ( $showpoweredby_public ) {
?>
<div class="zerobs-portal-poweredby" style="font-size:11px;position:absolute;bottom:25px;right:50px;font-size:12px;">
<?php echo wp_kses( sprintf( __( 'Client Portal by <a href="%s" target="_blank">Jetpack CRM</a>', 'zero-bs-crm' ), esc_url( $zbs->urls['home'] ) ), $zbs->acceptable_restricted_html ); ?>
</div>
<?php
}
##/WLREMOVE
}
/*
* Outputs html which shows 'you are viewing this as an admin' dialog on portal pages
*/
function portal_viewing_as_admin_banner( $admin_message = '' ) {
global $zbs;
?>
<div class="jpcrm-client-portal-admin-banner">
<div class="alert alert-info">
<strong><?php esc_html_e( 'You are viewing the Client Portal as an admin.', 'zero-bs-crm' ); ?></strong>
<?php if ( ! empty( $admin_message ) ) { ?>
<p class="admin-message"><?php echo esc_html( $admin_message ); ?></p>
<?php } ?>
<?php ##WLREMOVE ?>
<p>
<a href="<?php echo esc_url( $zbs->urls['kbclientportal'] ); ?>" target="_blank"><?php esc_html_e( 'Learn more about the Client Portal', 'zero-bs-crm' ); ?></a>
</p>
<?php ##/WLREMOVE ?>
</div>
<?php $this->admin_message(); ?>
</div>
<?php
}
// upsell shown to admins across whole portal as they view as admin
function admin_message(){
global $zbs;
// temp fix
if (current_user_can( 'admin_zerobs_manage_options' ) && !function_exists('zeroBSCRM_cpp_register_endpoints')){// !zeroBSCRM_isExtensionInstalled('clientportalpro')){
##WLREMOVE ?>
<script type="text/javascript">
jQuery(function(){
jQuery('#zbs-close-cpp-note').on( 'click', function(){
jQuery('.zbs-client-portal-pro-note').remove();
});
});
</script>
<?php ##/WLREMOVE
}
return '';
}
function portal_nav( $selected_item = 'dashboard', $do_echo = true ) {
global $wp_query;
$nav_html = '';
$zbsWarn = '';
$dash_link = zeroBS_portal_link('dash');
$portal_root_url = \jpcrm_get_client_portal_root_url();
$nav_html .= ' <ul id="zbs-nav-tabs">';
foreach ( $this->parent_portal->endpoints as $endpoint ) {
if ( $endpoint->hide_from_menu ) {
continue;
}
$link = $endpoint->slug == 'dashboard' ? esc_url( $portal_root_url ) : esc_url( $portal_root_url . $endpoint->slug );
$class = $endpoint->slug == $selected_item ? 'active' : '';
//produce the menu from the array of menu items (easier to extend :-) ).
// WH: this assumes icon, otehrwise it'll break! :o
$nav_html .= "<li class='" . $class . "'><a href='" . $link . "'><i class='fa " . $endpoint->icon . "'></i>" . $endpoint->name . "</a></li>";
}
$zbs_logout_text = __('Log out',"zero-bs-crm");
$zbs_logout_text = apply_filters('zbs_portal_logout_text', $zbs_logout_text);
$zbs_logout_icon = 'fa-sign-out';
$zbs_logout_icon = apply_filters('zbs_portal_logout_icon', $zbs_logout_icon);
$nav_html .= "<li><a href='". wp_logout_url( $dash_link ) . "'><i class='fa ".$zbs_logout_icon."' aria-hidden='true'></i>" . $zbs_logout_text . "</a></li>";
$nav_html .= '</ul>';
// echo or return nav HTML depending on flag; defaults to echo (legacy support)
if ( $do_echo ) {
echo $nav_html;
} else {
return $nav_html;
}
}
}