[eluser]ray73864[/eluser]
the new 0.9.7-unstable looks good so far, Phil. Can't wait to see this widget system once it is finally finished (i have a clients website which will be using it quite a fair bit so hope the widget system is finished soon).
One thing i have found wrong so far is the side-bar navigation, it isn't using the 'navigation' widget yet and the current version of that sidebar breaks the parent-child relationship for pages. ie. i have 3 pages (Test, Test2 and Test3), Test3 is a child of Test2 and Test2 is a child of Test, however the sidebar nav shows them as being seperate from each other.
[eluser]Phil Sturgeon[/eluser]
Yes indeedy ray that is a problem. Right now it is designed to use an indexing method to build page URL's which is not yet fully implemented.
It will basically store a uri and an id, just so we can do some peasy SQL to fetch it back via joins. All that is left to do on the page manager now (functionally) is add model calls that add, update and delete entries from this index table.
Then I just need to get navigation linked up to use this new path field instead of slug. Shouldn't be long now.
As for the widget system I have abslutely nothing to do with development on this. Yorick is the man to talk to about that.
[eluser]dinhtrung[/eluser]
After do some geek with PyroCMS, I found the module system based on Matchbox seems quite simple for later development. For example, PyroCMS doesn't have a module management page. After copy a module folder into application/modules, refresh the Cache and new menuitem will appear in the sidebar.
But I didn't find any install, upgrade, activate, deactivate, or de-activate exists yet. Maybe PyroCMS should implement one, helping site admin to easy build what they need, just by activate necessary modules.
As use module.xml file to store information, I really like the way Drupal use module.ini file to store those data. You can define much more complex dependencies and relation between modules, later.
[eluser]Phil Sturgeon[/eluser]
I already have some great ideas for this, but it wont be done for a while. Until then getting to v1.0 and documenting the system is the top priority. Let me know if you would like to help out.
[eluser]Unknown[/eluser]
I'm new to pyrocms and codeigniter, so please excuse my presumably stupid questions.
First off, this looks like a nicely put together package. I'm looking forward to seeing where it goes.
Now for my questions.
First of all, how do I restrict access to a particular page? I would assume this is accomplished under settings -> permissions (though it might also make sense to manage this from the "pages" page). Specifically, I have a page, and a number of sub-pages that are intended for staff members only, and not the general public.
So, I go to the permissions page, click to create a new rule, select the staff role, then select the pages module, but I'm at a loss as to where to go from here, in fact, i'm pretty sure this is not the intended use of this feature (I assume the idea here is that some users will be able to create pages, and other can't etc, rather than restricting access to a given page).
Also, I've created a contact page using the contact module which shows up as expected. However, it states that I must fill out the captcha, but there is not one displayed. Also, it would be nice if the user could select the recipient based on the list of users that belong to the staff role, but I imagine I will need to edit the contact controller to acheive that.
Hopefully someone can point me in the right direction.
Thanks and keep up the good work,
Kyle
P.S. another quick question, I want to use an iframe to include a google calendar on one page, i've used the "edit html" option to add the iframe, but it seems to get stripped out when i hit the update button. Is there another way for me to go about adding an iframe?
[eluser]dinhtrung[/eluser]
If I understand correctly, the Pages module have permissions, but only for administration panel, not for general staff members. So you can define Who can Access the pages table in Admin Panel, but not Who can view the pages. The module is made to render pages for everyone.
If you need to set complex permission site, then use Drupal instead (of course, Drupal is great, but it's also too slow and it will take some time to understand).
Phil, sorry but right now I'm too busy to help you. But the idea about a complete module install and uninstall is neccessary. Another thing to consider is to create a language module, for non-English like me could easily translate the user interface.
As of now, I wrote a simple PHP CLI script to read all the controllers, models, and views and extract $this->lang->line(), or lang(), and then write it to a file named <controller>_lang.php, then in __construct() I load that language file.
The script is here. Hope this will save you some time if you want to implement an auto-generate language module.
Code: #!/usr/bin/php
<?php
/* Parse the PHP file, and return the language string */
/* Parameters : $1 = file to parse */
$fin = $argv[1];
$lang = array();
$handle = @fopen($fin, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
if (preg_match_all('/lang\(([^\)]+)\)/', $buffer, $matches)){
foreach ($matches[1] as $l){
$lang[] = $l;
}
}
}
fclose($handle);
$lang = array_unique($lang);
sort($lang);
/* output the language file */
echo "<?php \n";
echo "\t/* Language file for $fin */\n";
foreach ($lang as $l) echo "\t".'$lang['.$l.'] = '.strtoupper($l).';'."\n";
}
?>
Use it like this:
Code: $> /usr/local/bin/genlang mycontroller.php > mycontroller_lang.php
[eluser]Phil Sturgeon[/eluser]
[quote author="eachin" date="1256173369"]First of all, how do I restrict access to a particular page? I would assume this is accomplished under settings -> permissions (though it might also make sense to manage this from the "pages" page). Specifically, I have a page, and a number of sub-pages that are intended for staff members only, and not the general public.[/quote]
You can't right now but that will just be a dropdown added to the page manager so i'll include it in v0.9.7.
[quote author="eachin" date="1256173369"]Also, I've created a contact page using the contact module which shows up as expected. However, it states that I must fill out the captcha, but there is not one displayed.[/quote]
Captcha is broken in v0.9.6.2. Change the Captcha folder setting from "application/cache/captcha" to "cache/captcha".
[quote author="eachin" date="1256173369"]Also, it would be nice if the user could select the recipient based on the list of users that belong to the staff role, but I imagine I will need to edit the contact controller to acheive that.[/quote]
That could be done but it is not a feature. Perhaps it should be enabled as an option?
Or, should I have a list of email addresses and names that can be entered, and have staff as an option to add to that list?
[quote author="eachin" date="1256173369"]P.S. another quick question, I want to use an iframe to include a google calendar on one page, i've used the "edit html" option to add the iframe, but it seems to get stripped out when i hit the update button. Is there another way for me to go about adding an iframe?[/quote]
IFrames are removed by CodeIgniter as they are considered to be XSS attacks. Not really sure how to go about avoiding that, I never use the damn things.
[eluser]Unknown[/eluser]
Just upgraded my system to PHP 5.3 and got an error message in libraries/Loader.php at line 414. It's easy to fix (use instantiate_class()). I think you should update the your Loader.php file like the one of CI 1.7.2.
[eluser]dinhtrung[/eluser]
Hi Phil, I read your code, and found the Permission module very interesting. You store all the permission values in permission_rules table, then later get it to see if the admin can access to module and controller. Is there anyway to do some extra feature like below?
- In Admin Control Panel, when I add new permission, I can choose Module, but only "All Controllers" and "All methods". This page need some jQuery or Ajax script to populate the Controllers and Methods whenever user change Modules. Maybe, store controllers in a variable, store methods as array (controllers_method), then use jQuery to filter them out.
- Change the form into a table with all available modules and methods for easy select (like Drupal). Tick the checkbox with value="module_method_controllers", for example.
- Store all rules permission in the permission_roles.permissions field, with json_encode($_POST['permissions']) or implode(";", $this->input->post('permission')) and store all those permission data in session. I think this will save a table, and alot of code (to view navigation admin panel, to check for permission...)
- I really like the idea of using cache to store permission data (in your MX_Acl library) and DX_Auth regexp to check for permission (like /controllers/* can access all methods in controlles, and /controllers/add/ can only add... etc). Can we change pyroCMS to use the same?
Is there something I could help?
[eluser]NateL[/eluser]
Any ideas on this installation error?
A PHP Error was encountered
Severity: Warning
Message: Missing argument 1 for installer_m::validate(), called in /home/topside2/public_html/pyrocms/installer/application/controllers/installer.php on line 165 and defined
Filename: models/installer_m.php
Line Number: 184
|