Jump to content

JoieDeMort

Members
  • Posts

    38
  • Joined

  • Last visited

Reputation Activity

  1. Like
    JoieDeMort got a reaction from Michael in Email Piping No Longer Working   
    The extremely odd thing is that mailparse had to be reinstalled. It magically disappeared from the server. !?!?!?!? Once the latest version supporting php 5.5 was installed, everything went back to normal.
     
    No clue.
     
    Thanks again for the help. You hit the nail on the head Paul!
  2. Like
    JoieDeMort got a reaction from Blesta Addons in Web Push   
    I just noticed this today with the latest Mozilla update: web push.
     
    https://support.mozilla.org/en-US/kb/push-notifications-firefox#w_upgraded-notifications
     
    This allows pages to in the background send notifications.
     
    To me, it seems that receiving a web page notification of new orders/tickets/etc when not on the blesta window would be advantageous.
     
    Is this something that is planned?
  3. Like
    JoieDeMort reacted to Abdy in [Plugin] Mass Mailer   
    Simple, Send a email to all your clients, Perfect for send Newsletters or Announcements.
     
    Available in Github: https://github.com/CyanDarkInc/Mass-Mailer
     
    Mini-Update: Language Filter added. you can send mass mails only to Language-Specific users.

  4. Like
    JoieDeMort got a reaction from ariq01 in Mautic Integration   
    Mautic is a free competitor to Infusionsoft, Hubspot, Marketo, etc.
     
    It's marketing automation. https://www.mautic.org/tour/
     
    It's currently integrated with some big names: https://www.mautic.org/integrations/
  5. Like
    JoieDeMort reacted to phireuk in Custom Login Integration From Your Own Site. No. (Data-Toggle="modal")   
    Hello everyone.  This login integration builds on the work done by licenesecart.  See the guide below.
     
    https://licensecart.com/billing/plugin/support_manager/knowledgebase/view/31/external-login-form/1/
     
     
    In my case, pure CSS was not enough to use the custom site integrated login.  The problem appears to be that the  data-toggle="modal" attribute will not work on my site due to the way it's already used in other modals.  The reason is not clear, (if anyone can shed light that would be great).  I simply could not submit a form from a modal window.
     
    So my work around is to use javascript, to submit the form. I will start working on a spam catcher for the form later but for now here is my. ( data-toggle="modal") work around.   Starting from the top of the page.
     
    Before you start, in order for it to work you need to do the following...Be extreamly care full here, as editing this page has risks if you make a mistake.  From licesecart's guide.
     
     
     
     
    Next, on your site, somewhere you need to call the modal.   I used a stacked font awesome icon. 
     
    Font Awesome  (modal link)
    <a href="#openModal" title="Customer Sign-in"> <span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-sign-in fa-stack-1x fa-inverse"></i> </span> </a> Non-fontawesome, basic (modal link)
    <a href="#openModal" title="Customer Sign-in">Sign-in</a> Here is the main modal and the login form.   (I used a combination of the bootstrap core, the blesta bootstrap and this guide from JSFiddle. http://jsfiddle.net/kumarmuthaliar/GG9Sa/1/ )
     
    Remember to use https:// if you have a certificate.
    <!--Start of Blesta Login Modal--> <div id="openModal" class="modalDialog">     <div>         <a href="#close" title="Close" class="close"><i class="fa fa-times"></i></a>             <form id="blestalogin" action="http://yourwebsite.comy/client/login/" method="POST">                 <fieldset>                     <div class="form-group">                         <label for="login_username">Username</label>                         <input type="text" name="username" value="" id="login_username" class="form-control" placeholder="Username" />                     </div>                     <div class="form-group">             <label for="login_password">Password</label>                         <input type="password" name="password" id="login_password" class="form-control" placeholder="Password" />             </div>                         </br>                         <button type="submit" class="btn btn-success btn-block" name="login" value="Login" id="linktoblesta" hidefocus="true"><i class="fa fa-sign-in fa-lg"></i> sign in</button>                 </fieldset>                     </br>                     <a href="http://yourwebsite.comy/client/login/reset/">Reset My Password</a>             </form>     </div> </div> <!--End of Blesta Login Modal--> The form is submitted with javascript at the bottom of your page is best, after the <body> tag.
    <!--Blesta Login javascript--> <script> window.onload = function() { document.getElementById('linktoblesta').onclick = function() { document.getElementById('blestalogin').submit(); return false; }; }; </script> <!--End of Blesta Login script--> Finally, the style sheet uses the JSfiddle exampe, (i removed the white to black gradient) but the rest is standard. 
    Add this to your css file.  I used goolgle fonts, so remember to edit this to your needs.  and also declare google fonts link in your html header (99% will already have done this)
    .modalDialog { position: fixed; font-family: 'Roboto Slab', serif; font-weight: 450; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0, 0, 0, 0.8); z-index: 99999; opacity:0; -webkit-transition: opacity 400ms ease-in; -moz-transition: opacity 400ms ease-in; transition: opacity 400ms ease-in; pointer-events: none; } .modalDialog:target { opacity:1; pointer-events: auto; } .modalDialog > div { width: 300px; position: relative; margin: 5% auto; padding: 5px 20px 13px 20px; border-radius: 10px; background: #fff; } .close { background: #606061; color: #FFFFFF; line-height: 25px; position: absolute; right: -12px; text-align: center; top: -10px; width: 24px; text-decoration: none; font-weight: bold; -webkit-border-radius: 12px; -moz-border-radius: 12px; border-radius: 12px; -moz-box-shadow: 1px 1px 3px #000; -webkit-box-shadow: 1px 1px 3px #000; box-shadow: 1px 1px 3px #000; } .close:hover { background: #00d9ff; } The finished form will look something like this.

     
     
     
     
    Spam will be filtered by blesta. However there is no harm (as far as i can see) in adding an extra layer.  Basically i usually add an extra form field with a null or placeholder value in the form.  This field is hidden from humans with css, but spam bots tend to fill it out by default.  A PHP page then rejects logins where the hidden form has been filled out.  Simple and 90% effective in my experience.
  6. Like
    JoieDeMort reacted to Michael in Blesta Integration 3.3.x (Advanced)   
    Part 1!
     
    So you want to integrate your website into Blesta. Well first off copy all your images / css / javascript into the /app/views/client/bootstrap/
     
    And empty your Blesta's structure.pdt and use the following base template:
    <!DOCTYPE html> <html dir="<?php echo (in_array($this->_("AppController.lang.dir", true), array("ltr", "rtl")) ? $this->_("AppController.lang.dir", true) : "ltr");?>"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php echo (($page_title = (isset($page_title) ? $page_title : $this->_($page_title_lang, true, $get_params))) ? $this->Html->_($page_title, true) . " ~ " : "") . $this->Html->_($system_company->name, true);?></title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="<?php echo $this->view_dir;?>images/favicon.ico" /> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap/3.3.0/js/bootstrap.min.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/json2.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.adapter.jquery.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.html4.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/jquery-client-3.2.0.js"></script> <!-- Begin Content --> <div class="container"> <div class="row<?php echo (!$this->Html->ifSet($show_header, true) ? " login" : "");?>"> <?php if (!empty($active_nav['secondary'])) { ?> <div class="col-md-3"> <div class="list-group"> <?php foreach ($active_nav['secondary'] as $link => $value) { ?> <a href="<?php $this->Html->_($link);?>" class="list-group-item left-nav <?php echo ($value['active'] ? "active" : "");?>"> <i class="<?php $this->Html->_($value['icon']);?>"></i> <?php $this->Html->_($value['name']); ?> </a> <?php } ?> </div> </div> <div class="col-md-9"> <div class="row"> <?php echo $content;?> </div> </div> <?php } else { echo $content; } ?> </div> </div> <div class="modal fade" id="global_modal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="global_modal_title"></h4> </div> <div class="modal-body"><i class="fa fa-spinner fa-spin"></i></div> <div class="modal-footer"></div> </div> </div> </div> <?php echo $this->Javascript->getFiles("body");?> <?php echo $this->Javascript->getInline();?> <?php echo $this->Html->ifSet($body_end);?> </body> </html> Then add your CSS to the head section:
    <!-- Meta Tags --> <meta http-equiv="X-UA-Compatible" content="chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> <meta name="description" content=" " /> <meta name="keywords" lang="en" content=" " xml:lang="en" /> <meta name="revisit-after" content="1 month" /> <meta name="rating" content="Safe For Kids" /> <meta name="author" content="Licensecart" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap/3.3.0/js/bootstrap.min.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/json2.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.adapter.jquery.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.html4.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/jquery-client-3.2.0.js"></script> <!-- CSS Files --> <link href='//fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="//cdn.jsdelivr.net/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"> <link href="//cdn.jsdelivr.net/bootstrap/3.3.0/css/bootstrap-theme.min.css" rel="stylesheet"> <link href="css/global.css" rel="stylesheet"> <link href="css/nivo-lightbox.css" rel="stylesheet"> <link rel="stylesheet" href="css/default/default.css" type="text/css" /> <link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet"> <!-- Facebook Tags --> <meta property="og:site_name" content="Licensecart" /> <meta property="og:image" content="https://licensecart.com/imgs/Facebook.png" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://licensecart.com/" /> <meta property="og:title" content="Licensecart, the number one for Blesta Licenses and SSL Certificates." /> </head> <body> Now add the Blesta files at the bottom of the head and the start of the body:
    <?php echo $this->Javascript->getFiles("head"); echo $this->Html->ifSet($custom_head); ?> <!--[if lt IE 9]> <script src="<?php echo $this->view_dir;?>javascript/html5shiv.js" type="text/javascript"></script> <script src="<?php echo $this->view_dir;?>javascript/respond.min.js" type="text/javascript"></script> <![endif]--> <?php echo $this->Html->ifSet($head);?> </head> <body> <?php echo $this->Html->ifSet($body_start);?> Now add the Blesta CSS above or below your CSS whichever is easier to help override any CSS you need to.
    <!-- Blesta Files --> <link href="<?php echo $this->view_dir;?>css/styles.css" rel="stylesheet" type="text/css" /> <link href="<?php echo $this->view_dir;?>css/slider.css" rel="stylesheet" type="text/css" /> <?php // Theme CSS if (isset($theme_css)) { ?> <link href="<?php $this->Html->_($theme_css);?>" rel="stylesheet" type="text/css" media="screen" /> <?php } if ($this->_("AppController.lang.dir", true) == "rtl") { ?> <link href="<?php echo $this->view_dir;?>css/rtl.css" rel="stylesheet" type="text/css" media="screen" /> <?php } ?> Finally add your javascript to the footer bellow the Blesta JS already there. (If needed you can put the Blesta JS at the bottom of yours.)
    <script type="text/javascript" src="<?php echo $this->view_dir;?>js/jquery.cookie.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>js/jquery.cookiecuttr.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>js/nivo-lightbox.min.js"></script> <script type="text/javascript">$('.tooltips').tooltip()</script> <script type="text/javascript">$(document).ready(function(){$('a').nivoLightbox();});</script> <script type="text/javascript">$(document).ready(function () {$.cookieCuttr();});</script> <script type="text/javascript">$(document).on('click', '.yamm .dropdown-menu', function(e) {e.stopPropagation()})</script> And add your footer code above the Blesta:
    <div class="footerjumbotron"> <div class="container"> <div class="row"> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/blesta-monthly"><div class="sprites1 showcase-mini blesta-mini"></div></a> </div> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/interworx"><div class="sprites1 showcase-mini interworx-mini"></div></a> </div> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/litespeed"><div class="sprites1 showcase-mini litespeed-mini"></div></a> </div> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/kernelcare"><div class="sprites1 showcase-mini kernelcare-mini"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/blesta-monthly"><div class="sprites1 showcase blesta"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/interworx"><div class="sprites1 showcase interworx"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/litespeed"><div class="sprites1 showcase litespeed"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/kernelcare"><div class="sprites1 showcase kernelcare"></div></a> </div> </div> </div> </div> <footer> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-8 col-lg-9"> <p>© 2014 Licensecart. All Rights Reserved.</p> </div> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> <p class="footright"><a href="//blesta.com/" target="_blank"><img class='pull-right' style='text-align: right !important;background-color: #ffffff;margin-top:-10px !important;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;' alt='Powered by Blesta' src='<?php echo $this->view_dir;?>img/poweredbyblestasmall.png' /></a></p> </div> </div> </div> </footer> Now please add the following to your links 
    <?php echo $this->view_dir;?> So overall it should look like this:
    <!DOCTYPE html> <html dir="<?php echo (in_array($this->_("AppController.lang.dir", true), array("ltr", "rtl")) ? $this->_("AppController.lang.dir", true) : "ltr");?>"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php echo (($page_title = (isset($page_title) ? $page_title : $this->_($page_title_lang, true, $get_params))) ? $this->Html->_($page_title, true) . " | " : "") . $this->Html->_($system_company->name, true);?></title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="<?php echo $this->view_dir;?>images/favicon.ico" /> <!-- Meta Tags --> <meta http-equiv="X-UA-Compatible" content="chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> <meta name="description" content=" " /> <meta name="keywords" lang="en" content=" " xml:lang="en" /> <meta name="revisit-after" content="1 month" /> <meta name="rating" content="Safe For Kids" /> <meta name="author" content="Licensecart" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap/3.3.0/js/bootstrap.min.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/json2.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.adapter.jquery.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.html4.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/jquery-client-3.2.0.js"></script> <!-- Blesta Files --> <link href="<?php echo $this->view_dir;?>css/styles.css" rel="stylesheet" type="text/css" /> <link href="<?php echo $this->view_dir;?>css/slider.css" rel="stylesheet" type="text/css" /> <?php // Theme CSS if (isset($theme_css)) { ?> <link href="<?php $this->Html->_($theme_css);?>" rel="stylesheet" type="text/css" media="screen" /> <?php } if ($this->_("AppController.lang.dir", true) == "rtl") { ?> <link href="<?php echo $this->view_dir;?>css/rtl.css" rel="stylesheet" type="text/css" media="screen" /> <?php } ?> <!-- CSS Files --> <link href='//fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="//cdn.jsdelivr.net/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"> <link href="//cdn.jsdelivr.net/bootstrap/3.3.0/css/bootstrap-theme.min.css" rel="stylesheet"> <link href="css/global.css" rel="stylesheet"> <link href="css/nivo-lightbox.css" rel="stylesheet"> <link rel="stylesheet" href="css/default/default.css" type="text/css" /> <link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet"> <!-- Facebook Tags --> <meta property="og:site_name" content="Licensecart" /> <meta property="og:image" content="https://licensecart.com/imgs/Facebook.png" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://licensecart.com/" /> <meta property="og:title" content="Licensecart, the number one for Blesta Licenses and SSL Certificates." /> <?php echo $this->Javascript->getFiles("head"); echo $this->Html->ifSet($custom_head); ?> <!--[if lt IE 9]> <script src="<?php echo $this->view_dir;?>javascript/html5shiv.js" type="text/javascript"></script> <script src="<?php echo $this->view_dir;?>javascript/respond.min.js" type="text/javascript"></script> <![endif]--> <?php echo $this->Html->ifSet($head);?> </head> <body> <?php echo $this->Html->ifSet($body_start);?> <!-- Begin Content --> <div class="container"> <div class="row<?php echo (!$this->Html->ifSet($show_header, true) ? " login" : "");?>"> <?php if (!empty($active_nav['secondary'])) { ?> <div class="col-md-3"> <div class="list-group"> <?php foreach ($active_nav['secondary'] as $link => $value) { ?> <a href="<?php $this->Html->_($link);?>" class="list-group-item left-nav <?php echo ($value['active'] ? "active" : "");?>"> <i class="<?php $this->Html->_($value['icon']);?>"></i> <?php $this->Html->_($value['name']); ?> </a> <?php } ?> </div> </div> <div class="col-md-9"> <div class="row"> <?php echo $content;?> </div> </div> <?php } else { echo $content; } ?> </div> </div> <div class="modal fade" id="global_modal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="global_modal_title"></h4> </div> <div class="modal-body"><i class="fa fa-spinner fa-spin"></i></div> <div class="modal-footer"></div> </div> </div> </div> <div class="footerjumbotron"> <div class="container"> <div class="row"> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/blesta-monthly"><div class="sprites1 showcase-mini blesta-mini"></div></a> </div> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/interworx"><div class="sprites1 showcase-mini interworx-mini"></div></a> </div> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/litespeed"><div class="sprites1 showcase-mini litespeed-mini"></div></a> </div> <div class="col-xs-6 visible-xs-inline"> <a href="//licensecart.com/kernelcare"><div class="sprites1 showcase-mini kernelcare-mini"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/blesta-monthly"><div class="sprites1 showcase blesta"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/interworx"><div class="sprites1 showcase interworx"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/litespeed"><div class="sprites1 showcase litespeed"></div></a> </div> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-xs"> <a href="//licensecart.com/kernelcare"><div class="sprites1 showcase kernelcare"></div></a> </div> </div> </div> </div> <footer> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-8 col-lg-9"> <p>© 2014 Licensecart. All Rights Reserved.</p> </div> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"> <p class="footright"><a href="//blesta.com/" target="_blank"><img class='pull-right' style='text-align: right !important;background-color: #ffffff;margin-top:-10px !important;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;' alt='Powered by Blesta' src='<?php echo $this->view_dir;?>img/poweredbyblestasmall.png' /></a></p> </div> </div> </div> </footer> <?php echo $this->Javascript->getFiles("body");?> <?php echo $this->Javascript->getInline();?> <?php echo $this->Html->ifSet($body_end);?> <script type="text/javascript" src="<?php echo $this->view_dir;?>js/jquery.cookie.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>js/jquery.cookiecuttr.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>js/nivo-lightbox.min.js"></script> <script type="text/javascript">$('.tooltips').tooltip()</script> <script type="text/javascript">$(document).ready(function(){$('a').nivoLightbox();});</script> <script type="text/javascript">$(document).ready(function () {$.cookieCuttr();});</script> <script type="text/javascript">$(document).on('click', '.yamm .dropdown-menu', function(e) {e.stopPropagation()})</script> </body> </html> CONFLICTS!!!
    You will have fun playing around with your Javascript and Blesta's Javascript to get it working however it's easier if everything is as above to play around with it.
     
    You can find out by logging into your client area as a customer. If the right hand side doesn't work, then you need to play with sections. The above is Bootrstrap, Javascript, Blesta's Javascript and Finally our custom code.
     
     
    Part 2!
     
    So now we have the core we need the navigation for us to browse. You want to have a menu for when your logged in and not you can use the following structure:


    <?php if (!$this->Html->ifSet($logged_in)) { ?> Navigation when your are NOT logged in. <?php }else{ ?> Navigation when you are logged in. <?php } ?> Here's my navigation:
    <?php if (!$this->Html->ifSet($logged_in)) { ?> <div class="navbar navbar-default yamm lc-nav"> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="navbar-header"> <button type="button" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button> <a href="./" class="navbar-brand visible-lg" style="margin-top: -4px;margin-right: 20px;"><div class="sprites1 lc-logo lclogo"></div></a> <a href="./" class="navbar-brand visible-sm visible-xs" style="margin-top: -5px;;"><div class="sprites1 lc-logo lclogo"></div></a> <a href="./" class="navbar-brand visible-md" style="margin-top: -5px;;"><div class="sprites1 lc-logo lclogo"></div></a> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Blesta <b class="caret"></b></a> <ul class="dropdown-menu"> <li class="grid-menu"> <div class="row"> <div class="col-sm-4"><a href="//licensecart.com/blesta-monthly"><i class="fa fa-shopping-cart"></i> Blesta Monthly License</a></div> <div class="col-sm-4"><a href="//licensecart.com/blesta-owned"><i class="fa fa-shopping-cart"></i> Blesta Owned License</a></div> <div class="col-sm-4"><a href="//licensecart.com/blesta-one-time"><i class="fa fa-shopping-cart"></i> Blesta One-Time License</a></div> </div> <div class="row"> <div class="col-sm-4"><a href="//licensecart.com/blesta-license-manager"><i class="fa fa-exchange"></i> Blesta License System</a></div> <div class="col-sm-4"><a href="//licensecart.com/blesta-project-manager"><i class="fa fa-briefcase"></i> Blesta Project Management</a></div> <div class="col-sm-4"><a href="//licensecart.com/community-addons"><i class="fa fa-puzzle-piece"></i> Blesta Third Party Addons</a></div> </div> </li> </ul> </li> <!--/ End Grid 12 Menu /--> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Other Products <b class="caret"></b></a> <ul class="dropdown-menu"> <li class="grid-menu"> <div class="row"> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/interworx"><i class="fa fa-cogs"></i> InterWorx</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/litespeed"><i class="fa fa-bolt"></i> LiteSpeed</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/kernelcare"><i class="fa fa-shield"></i> KernelCare</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/craftsrv"><i class="fa fa-gamepad"></i> CraftSRV</a></div> </div> <div class="row"> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/softaculous"><i class="fa fa-download"></i> Softaculous</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/solusvm"><i class="fa fa-cloud"></i> SolusVM</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/ssl-certificates"><i class="fa fa-lock"></i> SSL Certificates</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/webhost-bundle"><i class="fa fa-cubes"></i> WebHost Bundle</a></div> </div> </li> </ul> </li> <!--/ End Grid 12 Menu /--> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Services <b class="caret"></b></a> <ul class="dropdown-menu"> <li class="grid-menu"> <div class="row"> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/integration"><i class="fa fa-magic"></i> Blesta Integration</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/upgrade"><i class="fa fa-wrench"></i> Blesta Upgrade</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/import"><i class="fa fa-truck"></i> Import to Blesta</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/out-of-the-box"><i class="fa fa-tasks"></i> Out of the Box Full service</a></div> </div> </li> </ul> </li> <!--/ End Grid 12 Menu /--> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Company <b class="caret"></b></a> <ul class="dropdown-menu"> <li class="grid-menu"> <div class="row"> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/company"><i class="fa fa-map-marker"></i> About us</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/terms-of-service"><i class="fa fa-gavel"></i> Terms & Conditions</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/privacy-policy"><i class="fa fa-exclamation-triangle"></i> Privacy Policy</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/partners"><i class="fa fa-users"></i> Partners</a></div> </div> <div class="row"> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/portfolio"><i class="fa fa-desktop"></i> Portfolio</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/billing/customers/plugin/support_manager/client_tickets/departments/"><i class="fa fa-life-ring"></i> Submit a ticket</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/careers"><i class="fa fa-suitcase"></i> Our careers</a></div> <div class="col-xs-6 col-sm-3"><a href="//licensecart.com/compare"><i class="fa fa-line-chart"></i> Compare our prices</a></div> </div> </li> </ul> </li> <!--/ End Grid 12 Menu /--> </ul> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Client Area <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <div class="yamm-content"> <form method="post" action="https://licensecart.com/billing/customers/login/" target="_blank"> <div class="form-group"> <div class="input-group"> <div class="input-group-addon"><i class="fa fa-user"></i></div> <input type="text" name="username" class="form-control" id="login_username" placeholder="Username" autocomplete="off"> </div> </div> <div class="form-group"> <div class="input-group"> <div class="input-group-addon"><i class="fa fa-lock"></i></div> <input type="password" name="password" class="form-control" id="login_password" placeholder="Password" autocomplete="off"> </div> </div> <div class="form-group"> <button type="submit" class="btn btn-success btn-block">Login to Client Area</button> </div> </form> </div> </li> </ul> </li> </ul> </div> </div> </div> </div> </div> <?php }else{ ?> <div class="navbar navbar-default yamm lc-nav"> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="navbar-header"> <button type="button" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button> <a href="./" class="navbar-brand visible-lg" style="margin-top: -4px;margin-right: 20px;"><div class="sprites1 lc-logo lclogo"></div></a> <a href="./" class="navbar-brand visible-sm visible-xs" style="margin-top: -5px;;"><div class="sprites1 lc-logo lclogo"></div></a> <a href="./" class="navbar-brand visible-md" style="margin-top: -5px;;"><div class="sprites1 lc-logo lclogo"></div></a> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="<?php echo $this->Html->safe($this->client_uri . "accounts/");?>" class="dropdown-toggle"><i class=""></i> Payment Accounts</a></li> <!--/ End Grid 12 Menu /--> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="<?php echo $this->Html->safe($this->client_uri . "contacts/");?>" class="dropdown-toggle"><i class=""></i> Contacts</a></li> <!--/ End Grid 12 Menu /--> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="<?php echo $this->Html->safe($this->client_uri . "plugin/support_manager/client_main/");?>" class="dropdown-toggle"><i class=""></i> Support</a></li> <!--/ End Grid 12 Menu /--> <!-- Grid 12 Menu --> <li class="dropdown yamm-fw"><a href="<?php echo $this->Html->safe($this->client_uri . "plugin/client_documents/client_main/");?>" class="dropdown-toggle"><i class=""></i> Client Documents</a></li> <!--/ End Grid 12 Menu /--> </ul> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Michael Dance <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="/client/main/edit/"><i class="fa fa-edit fa-fw"></i> Manage Account</a></li> <li><a href="/"><i class="fa fa-circle-o fa-fw"></i> Return to Portal</a></li> <li class="divider"></li> <li><a href="/client/logout/"><i class="fa fa-sign-out fa-fw"></i> Log Out</a></li> </ul> </li> </ul> </div> </div> </div> </div> </div> <?php } ?> You can use the following if you wish to use the Blesta Menu and not the Bootstrap style menu:
    <div class="nav-content"> <div class="nav"> <nav class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only"><?php $this->_("AppController.sreader.navigation");?></span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <div class="container"> <?php $active_nav = null; ?> <ul class="nav navbar-nav"> <?php foreach ($this->Html->ifSet($nav, array()) as $link => $value) { $attributes = array(); $link_attributes = array(); $dropdown = !empty($value['sub']); $active = false; if ($value['active']) { $active = true; $attributes['class'][] = "active"; $active_nav = $value; } if ($dropdown) { $attributes['class'][] = "dropdown"; $link_attributes['class'][] = "dropdown-toggle"; $link_attributes['data-toggle'][] = "dropdown"; // Set parent to active if child is if (!$active) { foreach ($this->Html->ifSet($value['sub'], array()) as $sub_link => $sub_value) { if ($sub_value['active']) { $attributes['class'][] = "active"; break; } } } } ?> <li<?php echo $this->Html->buildAttributes($attributes);?>> <a href="<?php $this->Html->_($link);?>"<?php echo $this->Html->buildAttributes($link_attributes);?>> <i class="<?php $this->Html->_($value['icon']);?>"></i> <?php $this->Html->_($value['name']); if ($dropdown) { ?> <b class="caret"></b> <?php } ?> </a> <?php if (!empty($value['sub'])) { ?> <ul class="dropdown-menu"> <?php foreach ($this->Html->ifSet($value['sub'], array()) as $sub_link => $sub_value) { ?> <li> <a href="<?php $this->Html->_($sub_link);?>"><i class="<?php $this->Html->_($sub_value['icon']);?>"></i> <?php $this->Html->_($sub_value['name']);?></a> </li> <?php } ?> </ul> <?php } ?> </li> <?php } ?> </ul> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <?php $this->Html->_($client->first_name);?> <?php $this->Html->_($client->last_name);?> <b class="caret"></b> </a> <ul class="dropdown-menu"> <li><a href="<?php echo $this->Html->safe($this->client_uri . "main/edit/");?>"><i class="fa fa-edit fa-fw"></i> <?php $this->_("AppController.client_structure.text_update_account");?></a></li> <?php if ($this->Html->ifSet($portal_installed, false)) { ?> <li><a href="<?php echo $this->Html->safe(WEBDIR);?>"><i class="fa fa-circle-o fa-fw"></i> <?php $this->_("AppController.client_structure.text_return_to_portal");?></a></li> <?php } ?> <li class="divider"></li> <li><a href="<?php echo $this->Html->safe($this->client_uri . "logout/");?>"><i class="fa fa-sign-out fa-fw"></i> <?php $this->_("AppController.client_structure.text_logout");?></a></li> </ul> </li> </ul> </div> </div><!-- /.navbar-collapse --> </nav> </div> </div> <?php } } ?> Part 3!
    You might want to custom bits of your integration to include other features like:
     
    Login / Log out:
    <?php if ($this->Html->ifSet($logged_in)) { ?> <a href="<?php echo $this->Html->safe($this->client_uri . "logout/");?>">Logout</a> <?php }else{ ?> <a href="<?php echo $this->Html->safe($this->client_uri . "login/");?>">Login</a> <?php } ?> Page Title:
    <?php echo ($this->Html->ifSet($title) ? $this->Html->_($title, true) : $this->_("AppController.client_structure.default_title", true));?> Show Theme Logo:
    <a href="<?php echo $this->Html->safe($this->base_uri);?>"> <?php if (!empty($theme_logo)) { ?> <img src="<?php $this->Html->_($theme_logo);?>" alt="Logo" /> <?php }else{ ?> <img src="<?php echo $this->view_dir;?>images/logo.png" alt="Blesta" /> <?php } ?> </a> Custom Logo:
    <a href="<?php echo $this->Html->safe($this->base_uri);?>"><img src="urltologo.png"></a> or <a href="<?php echo $this->Html->safe($this->base_uri);?>"><div class="logo"></div></a> or <a href="<?php echo $this->Html->safe($this->base_uri);?>" class="logo"></a> Logged in as Staff:
    <?php if ($this->Html->ifSet($staff_as_client)) { ?> <span class="label label-info pull-right"><a href="<?php echo $this->Html->safe($this->admin_uri . "clients/logoutasclient/");?>"><span class="fa fa-info-circle"></span> <?php $this->_("AppController.client_structure.staff_as_client_note");?></a></span> <?php } ?> Client Name:
    <?php $this->Html->_($client->first_name);?> <?php $this->Html->_($client->last_name);?> Company Name:
    <?php $this->Html->_($client->company);?> Email Address:
    <?php $this->Html->_($client->email);?> Client area Dashboard:
    <?php echo $this->Html->safe($this->client_uri . "");?> Hostname:
    <?php echo $this->Html->safe($this->Html->ifSet($system_company->hostname)); ?> Feel free to ask for help here. This is only for 3.3.1 and up. It varies per requirement.
     
     
    Before:
     

    After:
     

     

     
    Warning!
     
    I have had to change a bit of this tutorial to put this in the HEAD Section:
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap/3.3.0/js/bootstrap.min.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/json2.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.adapter.jquery.js"></script> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.js"></script> <!--[if lt IE 10]><script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/history/history.html4.js"></script><![endif]--> <script type="text/javascript" src="<?php echo $this->view_dir;?>javascript/jquery-client-3.2.0.js"></script> Why? Because the order forms inject Javascript in the content area, and without it loading first you get a broken order form
    My mistake sorry.
  7. Like
    JoieDeMort got a reaction from Michael in Stripe / Coupon Math Bug -- Causes Payment Error   
    I did a test charge for 50% off 9.99 with Stripe, and it worked perfectly with the new file. Obviously, I'm a low sample size.
  8. Like
    JoieDeMort reacted to MemoryX2 in Google Analytics   
    So its actually really easy to set it up already. Just add the script google analytics gives you at the bottom of the structure.pdt for whatever company you want to track.
×
×
  • Create New...