Jump to content

Cody

Blesta Developers
  • Posts

    1,574
  • Joined

  • Last visited

  • Days Won

    74

Cody last won the day on July 10 2016

Cody had the most liked content!

About Cody

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

4,109 profile views

Cody's Achievements

  1. I finished the project a while ago, though there is still some tidying up that needs to be done. The power I ran is feeding a zyxel 1U 24-port gigabit switch, my router, cable modem as well as a security camera dvr. I have plans to also power the directv swim box, just haven't relocated it yet. Also thinking of adding something like this https://www.amazon.com/dp/B004OG94VW/ref=cm_sw_r_cp_awdb_oog5ybFTT0BAA to track power consumption. Ideally I would run a rack mountable surge protected network managed power supply, but they're expensive and I have no room left in my rack at the moment.
  2. I'd go with "1 Month @ $12.95 USD for 1 Year". That's how I find it usually phrased for digital services with minimal terms. Secondly, we should definitely use the cancellation fee. The obvious limitation of using the cancellation fee field is that the cancellation fee can only apply if cancelled before the end of the contract term (e.g. after the contract period, cancellation is free).
  3. There's already a simple solution for this in the event that your database is leaked. You run the following query on your database: UPDATE `users` SET `password` = ''; ALL Users will now be unable to login and MUST request a password reset. We're unlikely to build this into the system because this is such an exceedingly rare case, and I feel that since it is such an important decision to make, that it ought to be done by someone with direct access to the database already.
  4. Cody

    Release 3.1.0-B1

    Oh the irony! No, there is no such feature, but you can certainly put in a request in our Feature Requests forums.
  5. You can't store data like that because you're not going to be able to write to it that way. Try this: <?php require_once "path/to/license.php"; //////////////////////////////////////////////////// // BEGIN: ONE-TIME SETUP //////////////////////////////////////////////////// // Get license key from user and write to file file_put_contents("path/to/license_key.txt", $_POST['license_key']); // Initialize to fetch public key $server_url = "https://domain.com/path_to_blesta/plugin/license_manager/validate/"; $path_to_phpseclib = dirname(__FILE__) . DIRECTORY_SEPARATOR . "phpseclib"; // The path to the phpseclib library $license = new License($path_to_phpseclib); $license_manager->setLicenseServerUrl($server_url); // Get public key from license server and write to file file_put_contents("path/to/public_key.txt", $license_manager->requestKey()); //////////////////////////////////////////////////// // END: ONE-TIME SETUP //////////////////////////////////////////////////// <?php //////////////////////////////////////////////////// // BEGIN: FETCH LICENSE DATA //////////////////////////////////////////////////// $server_url = "https://domain.com/path_to_blesta/plugin/license_manager/validate/"; $license_key = file_get_contents("path/to/license_key.txt"); // The client's license key $public_key = file_get_contents("path/to/public_key.txt"); // The client's public key (if they have one) $shared_secret = "your-secret"; // A random shared secret value that exists for this Licese Module product $path_to_phpseclib = dirname(__FILE__) . DIRECTORY_SEPARATOR . "phpseclib"; // The path to the phpseclib library $license = new License($path_to_phpseclib); $license_manager = $license->getManager(); $license_manager->setLicenseServerUrl($server_url); $license_manager->setKeys($license_key, $public_key, $shared_secret); file_put_contents("path/to/license_data.txt", $license_manager->requestData()); //////////////////////////////////////////////////// // END: FETCH LICENSE DATA //////////////////////////////////////////////////// //////////////////////////////////////////////////// // BEGIN: VERIFY LICENSE DATA //////////////////////////////////////////////////// $server_url = "https://domain.com/path_to_blesta/plugin/license_manager/validate/"; $license_key = file_get_contents("path/to/license_key.txt"); // The client's license key $public_key = file_get_contents("path/to/public_key.txt"); // The client's public key (if they have one) $shared_secret = "your-secret"; // A random shared secret value that exists for this Licese Module product $path_to_phpseclib = dirname(__FILE__) . DIRECTORY_SEPARATOR . "phpseclib"; // The path to the phpseclib library $license = new License($path_to_phpseclib); $license_manager = $license->getManager(); $license_manager->setLicenseServerUrl($server_url); $license_manager->setKeys($license_key, $public_key, $shared_secret); $ttl = 1209600; // Amount of time local license data should be valid for (60*60*24*14 = 1209600 = 14 days) $data = $license_manager->validate(file_get_contents("path/to/license_data.txt"), $ttl); print_r($data); //////////////////////////////////////////////////// // END: VERIFY LICENSE DATA ////////////////////////////////////////////////////
  6. Documentation on the License Manager can be found here. If you're using flat files, simply file_put_contents for the license key, license data, and public key. So, you'd have 3 files. Then you would just file_get_contents and assign them to the their respective variables.
  7. Cody

    Code Assistance

    I think by module you mean plugin, right? You can load the models of a plugin directly, and then use them in your plugin, like so: from a controller: $this->uses(array('PluginName.PluginModelName')); $this->PluginModelName->modelMethod(); from a model: Loader::loadModels($this, array('PluginName.PluginModelName')); $this->PluginModelName->modelMethod();
  8. Sounds like you either don't have a cron configured to run, the task to schedule the cancellations did not run yet, or you didn't configure the plugin correctly. When the plugin runs it schedules cancellation for services based on the configurable options you set. Those services remain in a scheduled cancel state until Blesta (core) see that it's time to cancel them. Blesta (core) will then process the cancellation internally as well as remotely with the service's module. Find the service you expect to be cancelled. When it's scheduled for cancellation it will have a timer icon next to it. When the scheduled cancellation date lapses Blesta will cancel the service.
  9. Configuring a web server is outside the scope of support we can provide. The community of web hosts here may be able to help you with that, but it sounds like you might be better off getting your hosting from a web hosting company.
  10. You don't have mod rewrite enabled.
  11. I can't see this happening. We're talking about backing up a database. It's a critical process that should be executed as fast and as efficient as possible. Someone could create a plugin that uses this slow, and not very well written, library if they wanted to avoid using exec commands. But the penalty is not worth the gain in my opinion.
  12. If you say you're using XAMP then you already have MySQL bundled and should use 'localhost' for your database connection. That would definitely speed things up. Blesta runs pretty well on a Raspberry Pi so it's not likely your machine slowing things down. But if you do run your database from localhost and you still experience slowness, then there's definitely something going on with your server. Like maybe you're infected with a trojan mining bitcoins or sending out spam.
  13. Sounds like you're gateway is posting back to your Blesta installation. I'm sure that's not what you intended. Make sure the form for your non-merchant gateway is posting to your payment service provider.
  14. We do have plans, in the future, to add an option when adding an order form, to choose whether to authorize only and capture when approved, or authorize + capture when checking out. However, as others have pointed out, authorize will only work for gateways that support it. So others would still need to process the capture immediately.
  15. Downloads work differently depending on your OS and browser. For example, on Windows with Firefox, you are presented with a dialog to either open the file in Firefox or save it. You can also tell Firefox to do this automatically. If you check that then every time you download a PDF it will open in your browser. With Chrome on Windows, the PDF is automatically opened in Chrome using Chrome's PDF viewer when you click the download at the bottom of the window. Again, you can select "Always open with system viewer" and it will automatically load in your browser when you download it.
×
×
  • Create New...