Leaderboard
Popular Content
Showing content with the highest reputation on 08/16/2014 in all areas
-
I've assigned this to CORE-1369 as a "Task". I'm not sure this is a bug with Blesta so much as it is a bug with the domain registrar as we rely on them to do the lookup. It seems like they should be running string to lower on the input if it causes a problem.. but, this should fix it!2 points
-
Hello, As other users reported in the forum, this issue is making troubles for services that doesn't have proper provisioning modules. By doing the following changes, a Tab will appear at client's manage service page, showing all the service fields that have the public_ tag on their name. Instructions: 1. Open components/modules/universal_module/universal_module.php Find: private function isUrl($str) { return preg_match("#^\S+://\S+\.\S+.+$#", $str); } Add After: /** * Returns all tabs to display to a client when managing a service whose * package uses this module * * @param stdClass $package A stdClass object representing the selected package * @return array An array of tabs in the format of method => title. Example: array('methodName' => "Title", 'methodName2' => "Title2") */ public function getClientTabs($package) { return array( 'moreinfo' => array('name' => "More Info", 'icon' => "fa fa-gears") ); } /** * The More Info tab * * @param stdClass $package A stdClass object representing the current package * @param stdClass $service A stdClass object representing the current service * @param array $get Any GET parameters * @param array $post Any POST parameters * @param array $files Any FILES parameters * @return string The string representing the contents of this tab */ public function moreinfo($package, $service, array $get=null, array $post=null, array $files=null) { $row = $this->getModuleRow($package->module_row); $out = ''; $servicefields = array(); foreach ($row->meta as $key=>$value ) { if (strpos($key, "service_field_name") !== false) { // Here we match the service field label with their key and value foreach($service->fields as $field) { if($field->key == $value) { $name = 'service_field_label_' . str_replace('service_field_name_', '', $key); $servicefields[] = array("label" => $row->meta->$name, "key" => $value, "value" => $field->value); } } } } foreach($servicefields as $field) { // Filter out for showing only public fields if(strpos($field['key'], "public_") === 0 ) { $out .= "<p><b>". $field['label'] . ":</b> " . $field['value'] . "</p>"; } } return "<h4>Service Information</h4><br />" . $out ; } 2. Make sure that the service fields that you want to show to the client start with "public_" prefix Preview Setting up public service fields Service fields being shown on client's "Manage Service" page Download drop-in replacement file (if you don't want to manually add the above lines) (Only for Blesta 3.2.1): universal_module.php Caution: This file will be overwritten if you update Blesta and the Tab will disappear (there is no other risk or any service data loss). If you change the service field name of a existing field, the data will not be preserved (bug?) EDIT: This still works for Blesta 3.5.1. I'm not sure if it's still needed, but I'm already using it for my production blesta website so there's no way back1 point
-
Hi, I'm sharing a quick method for making custom static pages in blest system without any additional plugin. Please consider that any future update would require to take care of the changes made as they can be erased. In this example I'll be doing a static page that will be located in your_blesta_location.com/services 1.1 Creating a static page with custom HTML 1. Open plugins/cms/controller/main.php Find: else { $this->redirect($this->base_uri); } Replace for: else { switch($uri) { case 'services': $this->structure->set("page_title", "*** INSERT PAGE TITLE ***"); $this->structure->set("title", "*** INSERT TITLE SHOWN ON PORTAL TEMPLATE ***"); // Placeholders won't work with this method, so let's use variables $url = rtrim($this->base_url, "/"); $blesta_url = $this->Html->safe($url . WEBDIR); $html = <<<EOT <div class="col-md-4 col-sm-6 portal-box"> <a href="{$blesta_url}services> <div class="well"> <i class="fa fa-cogs fa-4x"></i> <h4>Foo</h4> <p>Bar.</p> </div> </a> </div> EOT; $this->set("content", $html); break; default: $this->redirect($this->base_uri); } } You can repeat the php case for making all the static pages you want, putting HTML between the EOT marks (There should be no space or characters after EOT; mark). If you don't like the broken indentation you can try another methods for doing multi line strings in PHP, but I think using nowdoc is more easy when you need to insert html. 1.2 Adding custom meta tags to the new static page (optional) 1. Open plugins/cms/controller/main.php Find $this->set("content", $html); Add Before: $metatags = <<<EOT <meta property="og:title" content="foo"/> <meta property="og:description" content="bar."/> <meta property="og:image" content="baz"/> <meta property="og:url" content="http://www.example.com/services"/> EOT; $this->structure->set("metatags" , $metatags); 2. Open /app/views/client/bootstrap/structure.pdt (or in your own template) Find <meta name="viewport" content="width=device-width, initial-scale=1.0"> Add after <?php echo $this->Html->ifSet($metatags) ?> Dev note: this could be easier if could find a way to get structure protected property values, then concat the metatags to an existing variable like $custom_head (Is there a method like $this->structure->get()?) Also, don't forget that the Portal plugin is being developed for being a fully functional CMS system, so this would not be needed in the future. Here is my result, I'm linking this custom static page from the blesta portal main page for linking to different order pages (currently in design and module coding process, blesta flexibility is awesome) Result: Setting what Facebook shows by modifying meta tags I hope somebody finds this useful Bye EDIT: fixed a detail in $url definition EDIT2: Added how to add custom html into <head> EDIT3. Confirming that this still works for Blesta 3.5.11 point
-
Ability To Translate Package Name
Tanel reacted to interfasys for a topic
It's not always feasible to have universal package names, so it would be great if Blesta could let us type the name in all the installed languages, just like for the descriptions1 point -
Yeah, I have indeed. I opened the thread here as it says "our preferred method for support is the Community Forum"... Now I need to try and remember my username and password for the Blesta client area!1 point
-
I did un tick the cpanel module to not provision, yesterday. I tried it today and it works fine. Sorry for the trouble. I will make this solved.1 point
-
Well I used to untick the use module and save and it worked for me but it seems you tried that so I'm a bit confused.1 point
-
Unlimited Invoice Reminders
flangefrog reacted to Paul for a topic
I do like this idea, and you make a good point. I think we need more feedback from people on this before we can justify the dev cycles, but it's certainly a possibility. This feature I think would necessitate a separate option, which would be useful now as well. It may be necessary to disable all payment notices, so I created CORE-1367 which allows you to toggle off payment notices on a per-client basis. Let's get some more feedback on your suggestion.1 point