Jump to content

Scott Horsley

Alpha Developers
  • Posts

    346
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    Melbourne, Australia

Recent Profile Visitors

1,119 profile views

Scott Horsley's Achievements

Newbie

Newbie (1/14)

28

Reputation

  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.
×
×
  • Create New...