Jump to content

Scott Horsley

Alpha Developers
  • Posts

    346
  • Joined

  • Last visited

Everything posted by Scott Horsley

  1. I played with Zentyal a little while ago. It allows you to run as much as you like or as little as you like. It's focused on an office model rather than a cloud solution but does seem to be promising if you don't want to get your hands dirty understanding the different components. (It does the work for you). I personally don't really like the idea of merging everything together so I didn't use it in the end.
  2. I personally think the answer is yes. It's certainly the right thing to do.. however, I would also state to them that unless they correct/acknowledge this issue (give a window of time to them), you will have no option but to inform their community of the vulnerability also. This forces them to act on the issue rather than sweeping it under the rug. If you were to publicly debunk them afterwards, then you have your communications to fall back on of course. As a side note, you could squeeze in some blatant advertising for Blesta while notifying their customers when it came down to that point.
  3. Hi guys, Noticed this on a fresh 3.0.0 installation and only now decided it might be worth mentioning. Oh noes! Call to Model::makeDSN with invalid parameters, required array('driver'=>,'database'=>,'host'=>) on line 226 in /<site_root>/lib/model.php This was before I hit the /install process which makes sense as to the reasoning of the issue, it just doesn't look very intuitive when dealing with a product that is "final" (I realise that is vague). Replicating Move your config/blesta.php file out of the way and hit any path (other than /install) in your browser. I would think that an "Oh noes!" message would be not visible after moving to 3.0.0. Note: Just noticed that by default config/core.php still contains Configure::set("System.debug", true); Should this still be turned on at this point?
  4. This sounds more like you want to be able to register an event for the call to getAdminTabs so any plugin/module/whatever can return a result and be included in the tab list. This of course, also requires the ability to make a call to the plugin for the tab content which is something that doesn't appear to be easy to achieve. (This makes my head spin). This sounds absolutely AWESOME if it could be done, (Thinking kind of like how the search system get's extended in plugins). Yep, this is going to need some dev help for sure.
  5. Okay, after playing with this a little more, there are some complications. I can list the plugins on the system, and I can even use a regex to match against my own written plugins using the 'dir' value of the plugin object, (means I can target my own matching plugins by name), however, it doesn't seem to have a nice method of loading a model that is part of the plugin outside the plugin itself. The idea I have so far is this. (Don't copy and paste this as there are errors, it is cludged from a mess I have written already). public function getAdminTabs($package) { $admin_tabs = array( // Add default tabs for module ); Loader::loadComponents($this, array("Record")); foreach($this->Record->select()->from("plugins")->where('dir', 'LIKE', 'my_prefix_%')->fetchAll() as $plugin) { // Extremely ugly code to get the class name from the module directory. $plugin_tabs = sprintf("%s::%sAdminModuleTabs\n", $plugin->dir, preg_replace('/_/', '', $plugin->dir)); array_push($admin_tabs, $plugin_tabs::getAdminTabs($package)); } return $admin_tabs; } There are problems with this of course.. 1) It doesn't actually work. I think one of the main issues is that I would like the following. 1) Be able to load a model from any plugin/gateway/module in the system from anywhere else. (Should I just use a standard include (or include_once)?). 2) Be able to use a class and method (class::method() or similar) when returning a list of tabs to be present in getadmintabs() as this would allow for adding tabs to other modules anywhere else in the system. ---- Based on the above, I can manually include the plugin class, then call the getAdminTabs() method and return a list of tabs that need to be added public function getAdminTabs($package) { Loader::loadComponents($this, array("Record")); $admin_tabs = array( // Default module tabs that you want ); $plugins = $this->Record->select()->from("plugins")->where('dir', 'LIKE', 'my_plugin_prefix_%')->fetchAll(); foreach($plugins as $plugin) { $class = sprintf('%sAdmintabs', preg_replace('/_/', '', $plugin->dir)); include_once(sprintf('%s/plugins/%2$s/models/%2$s_admintabs.php', getcwd(), $plugin->dir)); $admin_tabs = array_merge($admin_tabs, $class::getAdminTabs($package)); } return $admin_tabs; } In my plugin model I have public static function getAdminTabs($package) { return array( 'MyPluginModel::plugin_tab1' => 'Plugin tab 1', ); } Of course, the 'MyPluginModel::plugin_tab1' will never work as it's not a valid path anywhere. I think we need a bump/push from the dev guys to figure this one out a little more.
  6. We don't have anything really comparable on this side of the planet. Always sounds like a good event.
  7. I started working on this exact scenario, basically, I just loaded all the classes that I wanted to be able to attach a tab, then cycle each one and return back a tab definition, finally returning back the tab list as per normal. It's not hugely pretty (I did it with classes in a single module, but a plugin should also work). I can paste a snippet of the logic here if you like, however, I can't recall the state of it as I haven't done any coding on the module for a little while.
  8. Was it a good event?
  9. I suppose you would need to make your module aware of the plugin and load those extra functions when/if they are meant to be applied. Loading a plugin is pretty straight forward from a module, adding tabs is a little more weird but there was a conversation I had with Cody about this back in Alpha. From memory you had to define the tabs inside __call() in order to override the pre-defined definitions. I'm pretty sure you were in that group so this might be the best place to see how it works.. http://staging.blesta.com/forums/index.php?/topic/87-admin-tabs-best-approach/ If I understand correctly, you could load your plugin from your module in the __call() method, then add extra tabs as required from the plugins own classes/methods.
  10. I would normally agree, except I noticed it on my work PC and now I'm at home and I'm seeing the same thing. (Both looking at... http://getbootstrap.com/components/).. See screenshot. The basic button group "Left" button has my mouse hovered over it.
  11. Can anybody explain why the buttons always look funky to me? They are all grey and when I hover over them, the colour pulls up from the bottom a little. Is this by design? Cos seriously, bring back the solid colours from 2.3.2.
  12. Are you using Bootstrap 3 or still on 2.3.2? Cos you might be rebuilding from both directions at this rate..
  13. take a look at the following values $this->invoice->previous_due $this->invoice->total $this->invoice->paid $this->invoice->subtotal Some simple math will work out what you require.. echo $this->invoice->previous_due + $this->invoice->subtotal - $this->invoice->paid; Not tested, and not 100% these are the results your looking for.
  14. I have a question relating to this.. It works well when you have a phone call support/sales/whatever request, yet giving your name/password/DOB over an email or chat client is a 'huge' NO NO in my books. There isn't a way to dictate whether it was being logged somewhere or intercepted. What happens when a client sends an email into the support system and your staff can't see the client page? What happens when a client is using a live chat system? I like the idea overall but I still believe it falls down in some areas.
  15. For Blesta; You could build your libraries for Blesta using it, but you would still require the basic infrastructure that Blesta requires, then hook into it. As for normal production, if you handing the app to somebody else, it sounds cool. If you coding for something that is on your own infrastructure, I just can't see the benefit. Of course, I have a very limited understanding of it so I may be looking at it all wrongly.
  16. Congrats again!! Now it's time to sympathise.. 3 kids is going to be.. CRAZZZZZZZYYYYYYYYY!!!!
  17. Not even sure how that would work. You can't actually run a PHar directly right? You still require something external to instantiate and process the application? (ie. A bootstrap).
  18. Agreed, I used to manage about 25 game servers for an ISP before Steam/Source came out. That was great fun.. till it was taking up about 20 ours of my day just managing people instead of servers. (Killed it for me a little).
  19. @James, Thanks for the heads up. I haven't written any widget code yet, (plugins, modules and gateways only so far), however, I do seem to spend more time looking at core libraries than reading the documents at present. I know they will be completed with time but there are some big gaps in some areas.
  20. OMG... how true is that statement!!!! They are absolutely brilliant!
  21. Surprise surprise
  22. I've used Phar before. I like the idea of it. Basically, you download and drop a single file into a directory, then PHP sees the inside like an archive (which it is). It means you can store a complete directory structure inside it for ease. I think it's way more geared towards extensions/addons, rather than a complete application of course. I do like the idea of this, would make deploying modules/gateways/plugins an absolute breeze, simply drop your phar file into the appropriate directory and have Blesta recognise it as installed. However, as a point of interest, it would need to support both ways of handling packages (directory and phar), as development would be painful to have to keep bundling code while writing just to test a small change. I have to question whether it would be beneficial for things that require ion-cube, if you could encrypt a complete phar file, would make for some interesting viewing.
  23. Video games are my escape, not always, and only in short bursts, but still, I need to defocus from development, and system maintenance/design and just unwind occasionally. Everybody needs a hobby.
×
×
  • Create New...