New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Discussion] WonderCMS future improvements/requests #21
Comments
@robiso I'm nearly done with 1. and 2. |
@wdj-ac thank you for attending these issues, looks really good! A few notes/headsup:
Side note, as a supporter your name+website is now listed on
Additionally, your status in the WonderCMS community is changed to Supporter/Developer. |
Thanks for this explanation. For my environment this part cause problems and return urls like: cms.domain.dev/var/www/wondercms/login. But it should be cms.domain.dev/login.
Thank you very much! |
@wdj-ac @robiso I submitted a pull request ( #28 ) that updates the |
Just to continue this discussion and keep everyone posted on what is developing and where we're headed.
I'll update my first post to reflect what's in the works. |
To revisit this issue (relative / absolute links) due to some issues described below. @Alamantus can you please help me out regarding your url function:
When visiting example.com/somePage/testPage, it incorrectly loads the CSS file and doesn't display the page properly. In the old system we had, those files always loaded correctly (even when visiting example.com/test/test1/test2. The old working function:
Here's another solution with using
|
@robiso yeah, that's one of the shortcomings of my function, but when I was adding it, all pages were only at the top level so it wasn't a problem. But if you're adding sub-page functionality, you'll need to revert to an earlier solution. It's just a matter of figuring out how to make it work consistently... maybe by forcing only the CSS and important links within the template to pull from the absolute link (maybe add an "absoluteURL" method for templates to use?), then relative links could continue to be used, but I know your goal is to keep the total number of functions and lines as low as possible, so maybe you won't like that. What do you think? |
@Alamantus thank you for your input. The pages are still only at the top level (nothing changed, I only now noticed it, this is only a slight annoyance to have CSS load incorrectly at any stage after /. Do you think we shouldn't worry about it? Maybe we should leave it the way it is, but I can't help and feel weird leaving this as it is. Reverting is still an option, but I wanted to avoid issues like @wdj-ac had (incorrect host name) and some windows issues: #18 (hopefully the code above works on wdj's setup). The old solution that would work everywhere would be perfect. I like you suggestion but like you already know, I'm inclined towards less code. :) So you current solution is already awesome, just looking to see if I'm the only one bothered by this, or does this look unprofessional on a developer level (leaving things like this because of code size or etc..)? |
@Alamantus, you also had problems with the old function, can you please the function with SCRIPT_NAME as pasted below and report back if it still returns insanely long URLs?
|
@Alamantus @wdj-ac please let me know about the above url function when/if you can, if it doesn't work as intended we'll just keep with Robbies solution and push out 2.1.0 (still trying to push this "bug fix" before releasing 2.1.0 with @wdj-ac new menu functionality). Additionally, can you guys somehow forward us your PayPal email addresses? There's been a small donation, and as promised we'd like to forward it to you two. |
I'll check when I can, but I haven't been able to use my own computer away from work for a while. Hopefully soon—maybe this weekend? That solution looks pretty similar to the original code that gave me problems, but I'll let you know what I find out! And wow! That's cool that someone donated. I just learned about the new PayPal.me thing, so this link should do the trick: |
It is indeed really similar, only uses the @Alamantus - donation sent, thank you again for your support. |
Revamped function thanks to Luka Mrovlje - if you're testing please test the latest function pasted below.
|
Sorry for my late response, very busy last time.
Tested, and it works fine on my envoirement.
Wow sounds great, thank you 😃 |
Thank you Pascal, the donation has been sent. The commit for 2.1.0 has been made, but the update has not been pushed out yet, this will happen in the next 24 hours. Thanks to everyone for participating, we have successfully solved problems 1 and 2 - an additional thanks to Pascal Jordan @wdj-ac for making this possible. |
Sorry for the late reply on the URL update, but I was finally able to test in a couple different environments just now and it looks like it works perfectly! Great job, everyone! Also, the new menu/page editor is very nice! Much more user-friendly. 👍 |
Striking out problems 1 and 2, amazing job everyone! Special thanks to Pascal Jordin (@wdj-ac) for taking the time to contribute to the WonderCMS project in such a great deal. Additional thanks to Robbie Alamantus (@Alamantus) and Dannis Danylenko (turboblack). |
@robiso I found your project interesting, is there any chance to contribute on your project in terms of UI design? It could be really great with a small but elegant UI :) |
@dvago thank you, always open for suggestions. To clarify, do you want to contribute to the "settings panel" or the default WonderCMS theme? These are two different things:
We'll be able to point you in the correct direction after the above question is answered. Short guidelines if you want to change the default theme/create a new one
Short guidelines if you want to change the settings panel:
|
@robiso I was refering to the settings panel, which is basically the administration of the "CMS". |
@dvago for now (or since the beginning), our brand identity on the distributed CMS itself has been in the lines of:
I'm really interested in your idea of how this could be solved with our vision. If you don't feel comfortable editing the index.php, you can simply throw the CSS and HTML of the settings panel on GitHub and we'll apply it to the CMS itself, if enough positive feedback is received. Do you think the brand identity can be achieved with as little code or possibly less code? -- Edit: We're in the process of doing the plugins/themes installer mentioned in the first post. If anyone is willing to test out the new WonderCMS version with the themes/plugins ZIP installer from URL, shoot a message below. |
@dvago forgot to add, in any case we'll publicly credit you as we have every WonderCMS contributor. |
@robiso, I'm sorry for the delayed reply. I do understand you want to keep the "core" of the CMS as small as possible and I also understand you want to provide a white labelled experience with a learning curve ultra fast. But, I also believe that the "administration" of the CMS must be detached from the "production asset" as you don't want to load extra functionalities during the "guest" journey. Since WonderCMS is "selling" itself as a fast flat file CMS I suppose the output of the site it's just a router for the navigation and a bunch of plain HTML files. This means that you can easily create some sort of "cached" version of the production site storing your HTML inside some sort of "cache" folder and that might be have some sort of versioning based on the last update. Moving forward with this concept you could easily brand your CMS as much as you like (giving him the possibility to compete with bigger projects, ex. GRAV, I'm not selling it as I do think is not so easy to use, that's why they have an huge documentation). Quick note: I've tried to upload your project into my debian server with sites in production running PHP but I get errors related to require_once functions and the .htaccess (which basically wants the root folder instead of a subfolder) |
@dvago The administration itself is completely detached and not tied to themes/theme. Admin CSS/JS and HTML is not loaded when visitors check out a WonderCMS page, only when the admin logs in. WonderCMS basically runs on the core file index.php, and uses an users custom theme to display content, the index uses less than 50 functions, and $_REQUESTS, $_POSTS and etc are kept at the minimum. The cached versions or old revisions of content will probably come into the future in a form of a plug in, which I personally think is great, both the idea and the plugin itself. Would you be prepared to show us an example of your idea, of how this should look like? What version of PHP is your server running and are you running Apache/NGINX/IIS? Can you additionally check if you have cURL and mbstring extensions (https://www.wondercms.com/requirements). |
@robiso ok, I'll try to give you something visual in the next few days related to my problem, i'm running on:
mod rewrite is also loaded |
Looks good, can you post the exact errors? We've tested it in multiple scenarios where it works in subdomains/subfolders and anywhere you upload it. Would love to solve this mystery. |
Tried to set as 775 and 777 the index.php and the theme/ content, no luck
|
Try changing file permissions 644 to the next files:
Set ALL folder permissions to 755. On another note, here's an example of a dev that made a customized settings panel with a plugin: |
Hi @robiso, thanks for your reply, I managed to solve the problem changing the owner to www-data. Meanwhile I started thinking about some improvements, let me know if it's worth. The admin panel is trigged by a not intrusive float button which is fixed on top of the website: Once clicked, this could be an ipotetic interface which sits on top of the page, the dark overlay remove the scroll of the entire page so you can just scroll within the admin "modal". |
@dvago awesome for solving the problem, I'll keep this in mind if anyone runs into the same problem. Thank you for the mock up. I absolutely love the design and the concept of the modal window, however I find a couple drawbacks (please mind this is my personal taste/opinion):
Other things I'm concerned about:
A lighter version of this would be awesome, but we are in no client/customer relationship so I wouldn't dare of asking for a re-design. Love your work 👍 Can anyone else please chip in with their opinion? |
I think it looks gorgeous and makes it feel more like an admin panel than the current one. But you make good points about the CMS goals. Toggling a JS modal in PHP takes a lot more code than it feels like it should, so whenever something changes, it might be difficult to keep the codebase small while also having the modal re-open whenever it saves. One way to fix this could be to have a single "save" button, so you make all the changes you need, then click "Save", which would save the changes and initiate the reload which would close the admin panel instead of reloading after every change. I think this might be a slightly better (or more expected) user experience, although it adds an extra step for the user (which I don't think is entirely bad). Having "everything in one place" wouldn't be a problem if instead of tabs, all the options were on a single scrolling screen in the modal. As for the size, if we load in Bootstrap via a CDN link, then that's only one line of extra code for Bootstrap, which isn't too bad and opens up a lot of possibilities for more modern-looking themes/admin panel designs. It's definitely a tradeoff, but I think taking some of the changes I listed above into consideration would help keep the codebase small while adding the new admin panel. We'd have to check to see how much bigger making these changes causes the codebase to be, however. Depending on how that pans out, it might be a dealbreaker. Maybe we could include admin panel styling options in themes? So a given theme could have this modal styling without expanding the codebase? |
Hi there, At the lights of your comments, I think I'm totally missing the "goal" of your CMS then.
Correct me if I'm missing something. I read several time the "keep the codebase smallest possible" through your comments, which is something I don't get.
the administration panel is going to be triggered from admin purpose only so it's not going to affect the page load for a client.
As an admin user, I'm expecting to have a good user experience with the more features as possible to build a website and keep it updated without touching code and have the possibility to deploy the best optimised site
jquery is an huge lib which is largely avoided in corporates (I'm working for an huge company who works on vanillaJS and few frameworks for specific projects), bootstrap is not needed to build a simple website, you don't really need bootstrap if the purpose of the project is to build 1 - 10 pages with simple layouts.
I can really go on and on, but I'm probably missing your goals, what you'd like to achieve within 1 year, what do you like to build, what's your user (the admin) wants etc. |
@Alamantus your input is always high appreciated. I'd just like to add that we already load Bootstrap in the default theme, this is why the default website has only 12 CSS properties, and the settings panel has 19 CSS properties. @dvago I'd like to once again thank you for sharing your time with us on this project.
The output is a single database.js - everything gets saved in this file.
I believe this is one of the most wonderful things this project brings, a really small code base, as opposing to any other CMS.
One of the main ideas behind WonderCMS is to provide a great and stable (need I say small?) skeleton, and everything else with plugins.
I partially agree with this and we're slowly getting there (you should see older versions of WonderCMS), as mentioned, I personally believe this should be headed in a direction where you get a simple core, and can later cram it with plugins and features plugins bring built into them. Loading Boostrap in my opinion isn't a problem, we've also made websites/apps for large corporations and we never hesitated using it, also always used it with small websites (even one pagers). We generally have good SEO results. As far as I can tell, with the current setup, WonderCMS is receiving high ranks on Google. One thing I'm torn about is whether jQuery should be loaded when the user is not logged in. This will probably change in the upcoming versions (along with autosize.js). All of these libraries are minified and loaded through CDN's for extra optimization. --
I hope this makes it easier to understand, that however pointless it may seem to some, size matters in this case. We really want to provide a powerful and basic core, that is extendible to any direction.
Our mission isn't to take over the world with a new CMS, but provide a very needed simple alternative for those who seek. All features you've mentioned can be already found somewhere else, which doesn't mean we won't have them - this just means we want to provide them in a more "unforced" nature, as most of our user base probably doesn't require it by default. What would be awesome achieving in the future:
I generally agree with @Alamantus, we would really have to test this to see what it would make to the core size. Thank you both. WonderCMS 2.3.0 test version@Alamantus can you please the themes/plugins installer (WonderCMS 2.3.0 test version attached below) on your server?Other features in this test release
|
@robiso I tested the 2.3.0 changes just now, and it all looks good! Being able to install themes and plugins from the panel is nice, but it makes me wish I could also uninstall them from there. :) Other than that, the indentation support is much appreciated, though I noticed that tabs on the first line of a block are trimmed. Not important, since this will usually be the "base" html piece, but still good to note. One bug that I noticed is that the theme I installed (Paper Landscape) prevents the "Close Settings" button from working. Not a big deal, since it is not the default theme, but still potentially a problem. Also, the links to the "Theme ZIP links • Plugin ZIP links" section should use 👍 |
@Alamantus thank you. Here's an update to the previous 2.3.0 TEST version. This version includes
Here's the 2.3.0 test ZIP. Let me know what you think. If you run into any errors, please report them here. It was a wild ride ironing everything out on this one. // Robbie, if you're using the paper-l theme, you might have to rename What do you think about the settings panel? I have a feeling the next most requested feature is "when an error happens - open the modal at the same location", I already had this solved, but the "alerts" in the background made a mess and were practically invisible (behind the modal), so that's why I averted this feature. EDIT: Thank you for sharing your opinion and making this project better! |
These updates are excellent! I love the new modal admin panel and how the categories are separated, and the new features and file manager are great! It all looks very, very nice! Some minor notes on themes/plugins user experience:
Other than that, this is wonderful, and it really lifts WonderCMS up to other CMS standards! Very impressive! 👏👏👏 |
Thank you Robbie, really appreciated. Some fine tuning is still happening. I added another condition to hide the "X", but we still need the logic to actually prevent this from being deleted (double code for almost the same thing). After this change, it looks a bit weird since it sorts the themes by alphabetical order and in the end, it looks miss-aligned since one theme doesn't have an X (kind of like a bug :)
I was playing with the possibility of uploading folders, but came to the conclusion that it wasn't worth the code enlargement it brought along. We can make this easier for users by showing them the full URL instead of "Download" links to the ZIP files in the WonderCMS themes repository. (So they would only have to select it, not right click.) What do you think?
|
New version released: https://wondercms.com/whatsnew Changing first post to reflect new changes. |
Closing discussion, new one here: |
This thread is closed. NEW DISCUSSION THREAD: #41
Hello everyone. We need your help with improving WonderCMS.
Roadmap
Finished improvements from roadmap
1. Clean(er) URL's (short problem description: spaces and special characters URL handling + saving to database and displaying them in menu)- DONE, thanks to @wdj-ac (Pascal Jordin)Long problem description and example:
When an user enters "my new page" in their menu at their example.com domain, spaces aren't stripped and the URL is example.com/my new page. The solution would be to replace spaces with the "-" character so the URL would be example.com/my-new-page.
1a. But what about all other special characters? And what "URL" are we going to save in the database in those cases.
1b. Once we update WonderCMS with this feature, how do we handle the user page names in their database.js to avoid an upgrading mess?
1c. After all this, we still need to display pages in the menu exactly the user entered them.
EDIT: this looks promising: http://cubiq.org/the-perfect-php-clean-url-generator
**IN WORK: @wdj-ac has started working on this, contribute if you can: https://github.com/wdj-ac/wondercms/issues/
2. Display all pages in the settings panel and additionally include some "hide from menu" functionality.- DONE, thanks to @wdj-ac (Pascal Jordin)Problem: There's currently no "full list" of pages in the settings. A solution to this would be to view the database.js but that's definitely a hassle. We need a simple way to display all pages and a checkbox in the current page settings menu, that would enabe the user to hide the page from the menu.
**IN WORK: @wdj-ac has started working on this, contribute if you can: https://github.com/wdj-ac/wondercms/issues/
3. Enable users to install plugins via the settings panel. (Almost done, test version in near the end)3a. This should be an input text field, which would take a ZIP link (allowed only from github.com domain) and extract it to the users plugin folder.
3b. Enable users to update their plugin with a new ZIP link (if the plugin name is the same).
3c. Simple plugin list (list all plugins from plugins folder)
3d. Enable users to easily remove a plugin (from the plugin list, a small "X" would do and a confirm dialog).
3e. Same functionality for themes (we will probably need an extra field for this, possibly a check box to choose between installing a plugin or a theme to avoid two text fields).
The solution to the possible improvements should be small and clean in terms of code.
If you find an awesome solution, we will gladly list you and your website on wondercms.com/special-contributors and the official WonderCMS download page wondercms.com/latest. If our donation fund isn't empty, you're also rewarded with a donation.
The text was updated successfully, but these errors were encountered: