Jump to content


Popular Content

Showing content with the highest reputation on 04/14/2019 in all areas

  1. 1 point
    oh boy. 🙂 checking scripts.min.js would be one thought - certainly compare what .js/css scripts Six calls to your custom theme.. if you try to verify an email when using the Six template, does it work with that ?? so you've updated to v7.6+ which now uses Font Awesome 5 Pro... editing the header.tpl template would be use the usual way as that's where the icon is defined... <li> <a id="btnGetSupport" href="submitticket.php"> <i class="fa fa-envelope-o"></i> <p> {$LANG.getsupport} <span>&raquo;</span> </p> </a> </li> you could even update the template to use FA5 icons - there are other parts of that template of yours that do.
  2. 1 point
    really? I love new(ish) users. 🙂 on *any* page? you can't out of the box - that variable would only exist on specific pages in the client area (e.g the productdetails pages)... to use it in a template where it wasn't automatically available, you'd need to write a hook to make it available (and you'd have to specify which service you were wanting to check the active status of too).
  3. 1 point
    in setup -> general settings -> general -> WHMCS System URL, is that address https://dashboard.oppidumcloud.host or http://dashboard.oppidumcloud.host ?? to me, that error suggests that it is still http:// and not https://
  4. 1 point
    To be honest this plugins fails at being production ready has issues detecting most of our WP installs. The new version 1.30 does not even work and is not coded in PHP 5.6. We have yet to move to PHP 7 because most of the plugins that we do use and our customers like is not coded in php 7 so were not going to switch for some junk plugin. As with the rest of Module gardens plugins we have canceled do to constant failures. I would really love it if this plugin worked as advertised but it does not. Support has been and joke and offensive. SolusVM Extended cPanel Extended
  5. 1 point
    You know, someone like you should be hired at $50 an hour to re-write some of the help / doc articles. I suspect, WHMCS could set-aside a $4,000 budget to invest into your organization and it would pay mega dividends. The spell check thing? jeeze. I mean, mistakes happen but 9 months? Dang... 6 years is no joke. You are a great customer and community role-model. How do you think sentq compares to you? If you guys duked it out on WHCMS wisdom test, you think he would wreck you? If you had access to the actual code, you think you could learn twice as much? Would you even want to learn more? Like that stuff is fun for you? Cheers p.s. - tell your friggin' lawyers to back off!
  6. 1 point
    oh no - it shouldn't have led to more questions! lol i've just instructed my lawyers to begin proceedings for libel against you - I strenuously deny having any part in writing the WHMCS core program! 🙂 as I posted earlier, WHMCS seemingly don't even have a spellchecker! the thing about using WHMCS is that the documentation is so limited, that if you want to do anything worthwhile with it, you really have to get your hands dirty and start playing with the code... and that's increasingly becoming more the case as recent versions are more dependant upon hooks than previous versions - I mean who in their right mind creates a software package where you need to use PHP to alter the menus and sidebars... it's insane... fine, I can do it... but a new user has no chance without reading the documentation... and even then... 🙄 i'm pretty sure before I got my license 2013 (21st March to be exact - 6th year anniversary coming up... jeez six years of banging my head against the brick wall of WHMCS!), I had never played with Smarty - but it's so flexible (especially as it can use PHP) that i'm always reluctant to abandon it to write a hook, but sometimes it's necessary. the trick with WHMCS is when you find that doing x works with one aspect of WHMCS, it probably works with others - so it's just a case of trying to apply the correct solution to a given situation. and there are many people that know more about WHMCS than I do - they just choose not to share that knowledge. 😞 e.g., the WHMCS internal developers will know lots more because a) they're writing the code (not me!) and b) they have access to the decrypted code... which I don't. in this instance, it was just a case of double-checking the knowledgebase database tables and seeing that there are no date fields in the structure...
  7. 1 point
    i'm still inclined to think so. there are none - but a lot of WHMCS is probably still how it was 10 years ago, and this may be one of those occasions. but if the database doesn't store the updated date (or any date), then you're into the realms of having to store the date yourself when you update/create an article in the admin area... but I don't think that there are any specific hook points triggered when editing an article, so no simple way to do this. you can't extract what hasn't been saved. 🙂 no - just what has been programmed to be returned to be available to the template. not necessarily - as you saw with the useful/votes hook that I wrote that just amended the array with new content and returned it to the template... if the dates were naturally in the table, you could use that hook for this, but there are no dates stored. i'm not saying that it couldn't ultimately be done, just that there isn't a quick "here's a hook" solution... it's likely going to need an addon module for this, probably with custom database tables too.
  8. 1 point
    No. 😭 i've always had a secondary system running in the background just in case I need to move on quickly... yep - if they only understood that better documentation would make it easier for more developers to get involved with WHMCS, which would be a good thing.... every update comes with 4 things that you potentially have to deal with... new features - often not even asked for! old features, that you might rely upon, removed without warning. old bugs that never get fixed. new bugs introduced. if you designed billing software today, it shouldn't look anything like WHMCS - the cart should be better (it's the same order process that's been used for the last 6+ years) - actually, when you take a step back, the cart is horrendous when you think of the simple things that it should be able to do, but can't... the admin area hasn't changed dramatically from when I first started, and I thought it looked dated back then... I could go on but i'm pretty sure I said the same thing before v7... control, loss of income, coding quality embarrassment....?? who knows. interesting that their latest release is 8,000 files (compared to 8,500 with WHMCS), yet their filesize is 20MB, WHMCS v7.6 is now 75Mb (and 150MB+ when installed).
  9. 1 point
    I suspect that I was being sarcastic. 😀 and i'm not dismissing your concerns about the feature, it's just that others raised them a year ago.... it is what it is and if you've upgraded, you're stuck with it sadly. worse than that, they did it with buggy limited documentation, no built-in menu/sidebar manager... no normal user should ever be expected to write a hook to change a sidebar / navbar. the lack of documentation strikes again... if WHMCS was open source, we could at least review the code to try and figure how a function worked... but with it being encoded, that places an extremely high importance on the quality/detail of the documentation... if it's missing (as per usual), then you're left spending time, by trial & error, trying to figure out how a feature works... I don't waste my time doing that any more. WHMCS instincts tell it to always encode everything unless the customer needs to have access to a file - i'd much prefer to see it where only the licensing stuff was encoded... especially if they aren't going to employ the staff to write proper documentation... there's an endless loop where only the devs (who can see the code) knows how a function works, so only they can really write the docs... yet they're too busy writing/testing the code, so we don't get to see any docs... so we can't test the feature... which leads to more buggy code getting released... which leads to more work for the support guys or here... which leads to more maintenance releases and the loop just goes on. i'd hope with access to the code, development would be faster because we wouldn't need to wait for WHMCS to fix issues, we can do it ourselves... i'd really like to see WHMCS be a lot more dynamic, rather than a slow lumbering elephant dragging itself to the next maintenance update... but it never will be. btw - the trivial stuff that WHMCS intentionally keep secret is ridiculous... they protect the details like they were state secrets that mustn't fall into the wrong hands. WHMCS think they know best.... they don't like giving us choices, they prefer to make the decisions for us, often without consulting us first, and we're all supposed to follow like sheep and be grateful for their intentions. Market Connect was a bad idea that I objected to at the time - I just see it mainly as an income source for WHMCS... plus 15 months later, they still haven't designed it properly. for every good new feature, I can give you many more that are bad, poorly implemented or just old bugs that never get fixed... i've never been a big fan of v7. it might be worth throwing a ticket at support, saying you previously did URL redirection this way, how do we make it work with Friendly URLs... they might have a fix / htaccess tweak that would help... if they haven't, then you've lost nothing in asking. a good question.... personally, I don't mind HOW they want us to make changes, as long as it's easy for it to be done... and for that, the emphasis is on quality, detailed, well-maintained documentation... even with my near-infinite patience, I sometimes lose the will to keep banging my head against the same brick wall. if another product ever kills WHMCS, it won't necessarily be because it's a better product, it will be because of the utter disillusionment / frustration some users have with WHMCS.... for those users using WHMCS as is with minimum modification, they'll be happy to carry on with WHMCS... but for anyone wanting to modify it, it's like walking into a movable minefield... with WHMCS moving the mines around themselves! 💣 it has to be v8 - v7 is what it is and will remain that way... but v8 is the last real chance to send the software in a better direction.... i've low expectations... actually, with each subsequent release, I set my expectations lower, and sometimes they still fail to match them. I think you meant selling things for WHMCS.
  10. 1 point
    There is nothing exciting about the new SEO friendly URL’s when an obscure setting on the Admin side decides to change all URL’s format in some core code you cannot touch or edit. I had my WHMCS installation with specific URL’s to language. Example: /news/article faq/article And language based. /news-in-another-language/article /faq-in-other-language/article Some said this was not possible with WHMCS. It is. But requires some heavy work both rewriting the URL’s in templates, then adding some hooks for the sidebar and having custom .htaccess rules (besides the WHMCS ones) to change the WHMCS language tab them based on the detected URL. If you go to an article that is based on English, it will of course load the article in English but if you go to the other URL on the same article, WHMCS would automatically change to that language to match the URL. This is how I have it. The problem with the new approach is that re-writing those URL’s in the templates is not as straight ward anymore with the new routepath. What is even worse. The new friendly URLs in 7.5 added .html extensions to my news and FAQ articles, so I get 404 error because that was not true before. The old URL friendly setting didn’t add .html extension on the back. I want it back as before, without adding .html to the news and FAQ articles. This is not SEO friendly, its worse than it was before. Even worse, some URL’s do not work. The renewal link does not work unless I add index.php to the URL. Of course this is hardcoded in the sidebar do I cannot change it without a hook!!! The search on the knowledge base template was also broken, I fixed this by replacing the post URL with the old format and it works. Strangely, the same new format is also used in the search post for the download section and that works. I’m starting to get really pissed about hiding stuff in the encoded files. Voting works but it redirects to an url again with .html on the end, so you get an 404 after voting an article. If you go back to the article you see the voting message to it works. This would stupid simple to fix if I just remove .html (where that setting is) but I cannot find and I assume its encoded somewhere in the URL friendly setting which means I will have to make a new rewrite rule to detect them and remove it. All because WHMCS does let me access the code to change this in 20 seconds. Moving the sidebar links to the protected core from the template files was an horrible move. I had to create special hooks for my SEO url’s that are triggered each time just because I was not able to change the link format on them. Now it seems the routepath is also encoded because I cannot find where to modify this. I’m seriously looking more and more a look at the open competition that only cores 1% of its files and not because it has more features but because I’m getting annoyed of WHMCS considering their own customers idiots. I don’t need WHMCS telling me what URL formats you have to use and then changing this on all the templates. I don’t need them to auto generate the sidebars for me either. Just like I don’t want the market store or an option to upload a logo or change the colors. JUST GIVE ME ACCESS to the old plain code where I can use whatever tool I want to make my changes. WHMCS is being dumbed down to the point of no return. Its seems they are really starting to hate developers that use an IDE or prefer to edit things on their own. Now you could argue, but it has more features…Does it? The way it worked on v5 was more robust and more open to change than today. I cannot even wait to see what happens when they change all URL’s and put all the rest of the code under IonCube where you cannot change anything anymore on the template files. This is marking it almost impossible to create very advanced sites or themes with WHMCS. I should not be hacking my design to fix URL’s. I should not be creating PHP code or rewrite rules to fix URL’s. Is it really this hard to just change links…??? The only way WHMCS is going to keep me in the future is if they decide to have some NDA agreement for some companies where they give them access to the code because otherwise I will slowly move to something I can edit with regular PHP code. I don’t want a black box. WHY is WHMCS making it harder and harder to make design changes to template files? I’m seriously starting to question if they are not planning on removing themes and template files completely in the future and just offer a boxed site where people change their text and logo that its it. Because this is where it seems they are moving. I’m really afraid of investing more time on WHMCS since at least 1 or more year. I hope something is coming that is more open and friendly for power users and on each new release I look and I don’t bother to upgrade because there is nothing new except for kids and children that want to open an affiliate program selling things with WHMCS. What happen to WHMCS? Some years back, even huge hosting companies where using WHMCS. I remember even HostDime if I remember correctly was using them. They were on part with Ubersmith and other big systems. I wonder how many big telcos or companies are using WHMCS because no serious service provider will use them if they cannot completely integrate it on their own platforms and fit the software to do what they want instead of working around it.
  11. 1 point
    there's a lot to ground to cover here, but i'll start by saying that hooks are the most flexible way to do this - not least, because once written, you won't need to re-add the code each time you update WHMCS... and also because there are loads of examples in the forum of nav/sidebar hooks written by myself and sentq - probably whatever you want to do has been posted previously (or is a variation of something already posted)... the downside to hooks is get them wrong, and you can blank out the client area - or sometimes even the admin area! now, having said all that, what you are really asking is: can I make these example changes in the templates? to which the answer is YES! - the coding could get tricky down the road, but if you really want to, it's an option (at least for most things). personally, my first thought would be to change something using a hook, but if I think a hook solution is going to take a while to code/test, then as my father would say, "Sod this for a game of soldiers!" and i'd fix it in the template! so as best I can, i'm going to work though your brief example list and show you how to do them using hooks and/or template tweaks... if I start with removing a navbar child - and I appreciate your questions are really about sidebars, and i'll get to them, but the hook principles are the same whether you're talking about navbars, sidebars or even the homepage panels. so, let's remove the "Home" button from the navbar - as a hook, it would be... <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) { if (!is_null($primaryNavbar->getChild('Home'))) { $primaryNavbar->removeChild('Home'); } }); if you want to do it in the template, then you would simply add a bit of Smarty (if statement) to the includes/navbar.tpl template... {foreach $navbar as $item} {if $item->getName() neq 'Home'} <li menuItemName="{$item->getName()}"{if $item->hasChildren()} class="dropdown"{elseif $item->getClass()} class="{$item->getClass()}"{/if} id="{$item->getId()}"> <a {if $item->hasChildren()}class="dropdown-toggle" data-toggle="dropdown" href="#"{else}href="{$item->getUri()}"{/if}{if $item->getAttribute('target')} target="{$item->getAttribute('target')}"{/if}> {if $item->hasIcon()}<i class="{$item->getIcon()}"></i> {/if} {$item->getLabel()} {if $item->hasBadge()} <span class="badge">{$item->getBadge()}</span>{/if} {if $item->hasChildren()} <b class="caret"></b>{/if} </a> {if $item->hasChildren()} <ul class="dropdown-menu"> {foreach $item->getChildren() as $childItem} <li menuItemName="{$childItem->getName()}"{if $childItem->getClass()} class="{$childItem->getClass()}"{/if} id="{$childItem->getId()}"> <a href="{$childItem->getUri()}"{if $childItem->getAttribute('target')} target="{$childItem->getAttribute('target')}"{/if}> {if $childItem->hasIcon()}<i class="{$childItem->getIcon()}"></i> {/if} {$childItem->getLabel()} {if $childItem->hasBadge()} <span class="badge">{$childItem->getBadge()}</span>{/if} </a> </li> {/foreach} </ul> {/if} </li> {/if} {/foreach} next, let's change the link of the "Home" button on the navbar from index.php to Google - firstly as a hook... <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) { if (!is_null($primaryNavbar->getChild('Home'))) { $primaryNavbar->getChild('Home') ->setURI('http://www.google.com'); } }); ... or as a template tweak, you would change line 3 of navbar.tpl from... <a {if $item->hasChildren()}class="dropdown-toggle" data-toggle="dropdown" href="#"{else}href="{$item->getUri()}"{/if}{if $item->getAttribute('target')} target="{$item->getAttribute('target')}"{/if}> to... <a {if $item->hasChildren()}class="dropdown-toggle" data-toggle="dropdown" href="#"{else}href="{if $item->getName() eq 'Home'}http://www.google.com{else}{$item->getUri()}{/if}"{/if}{if $item->getAttribute('target')} target="{$item->getAttribute('target')}"{/if}> technically, you might run into an issue if you have a child with the same name in both primary and secondary navbars (or sidebars), but I don't think that will occur by default, you'd likely have to engineer the problem to see it! if it ever occurred, it could be easily coded around, but i'm trying to keep the coding simple in these examples. now, your question was really about sidebars, and I assume changing links of a specific child in a sidebar... so let's take the support sidebar shown in the Knowledgebase page... again, i'm going to change the link of the 'Knowledgebase' child to Google - you could change it to another page of your site or whatever you like... so as a hook, it would be... <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaSecondarySidebar', 1, function(MenuItem $secondarySidebar) { if (!is_null($secondarySidebar->getChild('Support'))) { $secondarySidebar->getChild('Support') ->getChild('Knowledgebase') ->setURI('http://www.google.com'); } }); or as a template tweak to six/includes/sidebar.tpl ~ line19... <a menuItemName="{$childItem->getName()}" href="{if $childItem->getName() eq 'Knowledgebase'}http://www.google.com{else}{$childItem->getUri()}{/if}" class="list-group-item{if $childItem->isDisabled()} disabled{/if}{if $childItem->getClass()} {$childItem->getClass()}{/if}{if $childItem->isCurrent()} active{/if}"{if $childItem->getAttribute('dataToggleTab')} data-toggle="tab"{/if}{if $childItem->getAttribute('target')} target="{$childItem->getAttribute('target')}"{/if} id="{$childItem->getId()}"> in these template examples, i'm just changing one link... but if you were changing a lot of sidebar links, then you just follow the standard {if} {elseif} and {else} method of checking your conditions. for continuity, i'll stick with using the Knowledgebase child, and now we'll change it's icon to a book as a hook... <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaSecondarySidebar', 1, function(MenuItem $secondarySidebar) { if (!is_null($secondarySidebar->getChild('Support'))) { $secondarySidebar->getChild('Support') ->getChild('Knowledgebase') ->setIcon('fa-book fa-fw'); } }); or as a tweak to sidebar.tpl ~ line21... {if $childItem->hasIcon()}<i class="{if $childItem->getName() eq 'Knowledgebase'}fa fa-book fa-fw{else}{$childItem->getIcon()}{/if}"></i> {/if} as a hook... <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaSecondarySidebar', 1, function(MenuItem $secondarySidebar) { if (!is_null($secondarySidebar->getChild('Support'))) { $secondarySidebar->getChild('Support') ->getChild('Knowledgebase') ->setLabel('<b><u>Brian</u></b>'); } }); and as a sidebar tweak in sidebar.tpl ~ line 22... {if $childItem->getName() eq 'Knowledgebase'}<b><u>Brian</u></b>{else}{$childItem->getLabel()}{/if} let's assume the client is logged in and then we'd have access to the $clientsdetails array - in the sidebar template, you could do this to show their firstname in the child label... {if $childItem->getName() eq 'Knowledgebase'}Hello {$clientsdetails.firstname}{else}{$childItem->getLabel()}{/if} and similarly, you could use a language string in the same way as in any other template... in a hook, you'd use the Lang::trans method. https://forum.whmcs.com/showthread.php?114986-Changing-Breadcrumbs-display-EVERY-step-of-the-Navigation https://forum.whmcs.com/showthread.php?124946-template-THEMENAME-includes-pageheader-tpl-and-FA in summary, if you want to edit navbars/sidebars in the templates... to edit navbars, you can edit six (or your custom)/includes/navbar.tpl to edit sidebar, you can edit six (or your custom)/includes/sidebar.tpl I would imagine if you're previously experienced in modifying the old templates, then the principles will be the same in the new templates - you might just have to tweak the precise code to achieve the same outcomes. there's no need to create a new hook file each time you want to change some minor thing - perhaps just have one hook file for navbars and put all your navbar changes in there, a similar one for sidebars etc... and as can be seen above in the very basic examples, hooks can pass HTML, PHP, JS or whatever and there are many ways to do it depending on what you're trying to do and where. and the golden rule - if WHMCS support tell you something can't be done, don't automatically assume that they're right! I can still remember, in the first few months of buying WHMCS, being told definitively by Support that something couldn't be done - after a cup of tea and an hour, i'd figured the solution - and I knew nothing about Smarty or WHMCS software in those days. why they didn't just point you in the direction in the includes/ templates, I simply don't know.
  12. 1 point
    You need to join the tblinvoicetiems table with tblhosting to find the service and from the service you can get the package/product id. e.g. select packageid from tblinvoiceitems, tblhosting WHERE tblinvoiceitems.relid = tblhosting.id and tblinvoiceitems.type = 'Hosting' and invoiceid = '123'

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated