Leaderboard
Popular Content
Showing content with the highest reputation on 07/14/2014 in Posts
-
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 back2 points
-
This patch should help to use the Universal Module for manually provisioning services that need administrators to fill service fields with data after they do the activation. e.g. dedicated servers, IP needs to be shown at control panel after the service is activated, but it shouldn't be asked at order page. Requirements. - Blesta 3.2.1 Update: I Upgraded to Blesta 3.5.1 and It worked fine Instructions: 1. Open components/modules/universal_module/universal_module.php Find: public function getClientAddFields($package, $vars=null) { // Same as admin return $this->getAdminAddFields($package, $vars); } Replace with: public function getClientAddFields($package, $vars=null) { $fields = new ModuleFields(); if (!isset($vars->meta)) $vars->meta = array(); if (isset($package->module_row) && $package->module_row > 0) { $row = $this->getModuleRow($package->module_row); // Set the module row, which will allow us to reference it later when getName() is invoked $this->setModuleRow($row); $row_fields = array(); if ($row->meta) { $row_fields = $this->formatModuleRowFields($row->meta); $field_data = array(); // Reformat package fields into a more usable format foreach ($row_fields['service_fields'] as $key => $values) { foreach ($values as $i => $value) { $field_data[$i][$key] = $value; } } $newfield_data = array(); foreach($field_data as $field) { if(strpos($field['name'], "dontask_") !== false) { continue; } $newfield_data[] = $field; } $this->setModuleFields($fields, $newfield_data, $vars); } } return $fields; } 2. Add "_dontask" in any part of the service field name 3. Protip: you should combine this patch with Universal Module Workaround: Show Service Fields At Client Panel , for best experience. Preview (Using both patches): Setting up Universal Module for showing certain service fields in Client's Manage Service (Workaround 1) and Hiding some service fields from being asked at order page Order Page with hidden fields Admin CP: Manually activating service, all fields being shown Fields Shown to Client (Workaround 1 + 2) Download universal_module.php with both workarounds applied (Only for Blesta 3.2.1): universal_module.php2 points
-
CORE-171 Unknown ETA.2 points
-
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
-
Service options are shown to the client when ordering a service. They can pick and choose what they want from those options. Package options are typically used to let only admins choose options of a product to make available in a package. Rodrigo's work-around is a 3rd-party change, and is not included in Blesta. You would need to edit and overwrite files as he described in that thread, and maintain them through updates from Blesta.1 point
-
I would avoid inserting directly into the database. Blesta performs rule validation and error checking to ensure the data conforms to expected formats, which may not be apparent in the database schema. This may lead to issues with some information not displaying, or being used properly, if you bypass those checks.1 point
-
You may want to check the client's Mail Log (under Actions), to see if the email was sent. It may have been sent, but just ended up in your spam folder. Also, when adding the service, make sure it's checked to send the order confirmation email. Currently, the service information page does not show fields available from the module. That may be a good feature request, although someone may have already created a feature request for it. Important module-related service information, like the IP address, or login credentials, are usually shown when clicking on the service row. In fact, many tables in Blesta act this way. What do you mean by not forcing the use of the hostname TLD? Blesta and the SolusVM API always use the hostname together with the associated TLD. If you're looking to trim the TLD off of the hostname in the email template, that wouldn't be possible. There is no filter for truncating content that would accomplish that.1 point
-
The IP address should be shown in the Welcome Email when using the {service.solusvm_main_ip_address} tag. Here's a list of all available tags. In Blesta, you can view this IP address as a client, or an admin, from the client dashboard page, under the list of services. Click the table row for that service and the Primary IP will be shown. Is this what you're looking for?1 point
-
That worked great ... Thank you so much!!1 point
-
No. it happens in both ways, (<older than< current renew date >greater than>) now Im testing a new teory, I have "change" the renew date for the same current date (I have only click save) Now tomorow I will see if it creats a new invoice for the same service only clickin on Save wen selecting "Change Renew Date".1 point
-
It seams that way Can anybody else make some tests, on a service that alredy has send an renew invoice, then change the Renew Date for a day later and try to see if it creates a duplicate invoice?1 point
-
Hi, As the current blesta spanish language pack doesn't include the order page translations (I don't know if it's a bug or the translation is just incomplete), I made a word by word translation for all the included order pages in blesta Requirements: -Blesta Spanish Translate Pack Installed (es_es) Translated Order Pages: AJAX Wizard Standard How to Install: Uncompress the archive on blesta root folder Download: orderpages_spanish_langpack.tar.gz Feel free to include this language pack onto existing blesta package or translation status. Maybe I'll release more goodies as I prepare my blesta install for production environment1 point
-
Nevermind, fixed it by making a new Mandrill API key1 point
-
Hello, I've made a patch for Blesta 3.2.1 for showing many service fields into clients panel, and you can choose which ones to show by adding "public_" prefix Check it out: [blesta 3.2.1] Universal Module Workaround: Show Service Fields At Client Panel1 point
-
thanks, that was quick :-) I tried what you said, and I can now see that field in the admin and can enter a value for it. But from the client side they cannot see these fields, which I need them to as it is their control panel login details (not edit, only view) Is this possible?1 point
-
World Cup (And Some Outher Things :p)
PauloV reacted to Blesta Addons for a topic
in my previos post i opt for three team to be in the golden 4 (brazil/germany/nethderland) all they was in semis . Germany deserve to win this worldcup , but argentina has a player named messi , so nothing is decided . +1 vote for germany1 point -
Cpanel Module With Extra Bonus
PauloV reacted to Blesta Addons for a topic
The Module was updated 8-7-20141 point