denny / shinycms Goto Github PK
View Code? Open in Web Editor NEWShinyCMS is an open source CMS. This is the Perl version, built with Catalyst and DBIC. (There is also a Ruby on Rails version: www.github.com/denny/ShinyCMS-ruby)
ShinyCMS is an open source CMS. This is the Perl version, built with Catalyst and DBIC. (There is also a Ruby on Rails version: www.github.com/denny/ShinyCMS-ruby)
Now we have an official goal!
<span class="small">Click here if you
[%- IF c.controller('User').allow_registration.upper == 'YES' -%]
want to <a href="[% c.uri_for( 'register' ) %]">register a new account</a>
or here if you
[%- END -%] <a href="[% c.uri_for( 'forgot-details' ) %]">forgot your login details</a></span>
The Contact Us form will silently fail for any number of reasons, including but probably not limited to:
Silent failure is bad. Worse yet, the Contact Us form must be set in a way which may not be 100% obvious to everyone who first starts using Shiny, and there is no obvious documentation of the procedure:
This is just weird and counter-intuitive. It is not clear to me why a value of "None" works but "contact.tt" sends a blank e-mail body...
I want my Blog posts to show up in the Sitemap, just like how Sitemap currently shows all the Pages.
This should also be configurable to show News posts, Events, and Forum sections.
In other words, the Sitemap should not be limited only to showing the Pages.
I am not talking about just having a static link to "Blog" in the Sitemap, I mean I want all the Blog posts themselves listed under a "Blog" heading in the Sitemap.
Duplicate tags on blog posts cause a 500 error. We should de-dupe the list before creating the db entries.
The CKEditor file picker only allows uploads to the "cms-uploads/" folder.
It would be very good to have the option to upload to subfolders of "cms-uploads/", which can only be done by:
I just cloned and tried to run Makefile.PL
$ perl Makefile.PL
include /Users/gabor/work/ShinyCMS/inc/Module/Install.pm
Bareword "catalyst" not allowed while "strict subs" in use at Makefile.PL line 47.
Execution of Makefile.PL aborted due to compilation errors.
Module::Install is at v1.12
perl 5.20.1 on OSX
Throws an error, and deletes page elements but not whole page.
Need the (unambiguous!) date picker enabled for the "Next restock date" field on the "Add New Item" function in the Shop.
This field currently seems to be a free-form text entry field instead of the date picker.
If I edit a page using the normal method of ShinyCMS page editor, then click "Save", I am sent to the 11-language "(en) Please come back later" page.
When I look in the database "cms_page" table, I see the edited entry's "section" column is now set to NULL instead of a valid integer.
I can manually fix the NULL values and everything starts working again, even the new page content is saved and available. So the page editor save worked, it just NULLified the "section" column when it shouldn't have done so.
In the page editor webUI, there is a drop-down box for "Section", but it is empty (no selectable options), so maybe that's the cause of NULLification of the database column?
This is a critical error and causes ShinyCMS to be unusable by normal users.
Line 118 should have:
c.request.param.search
not:
c.request.params.search
When I edit a forum or a forum section, I expect to be able to leave the URL blank and have it automatically generated the same way as editing a page, news item, blog post, etc.
This means that I can NOT modify the forums/edit_FOO.tt files to remove the URL field, as I am doing with all the other similar edit_FOO.tt files.
I found that on ubuntu with nginx/fastcgi, the "location /static" section of the example nginx configuration actually prevented ShinyCMS from serving static content. When I removed that section, it just worked.
I also moved the socket to the tmp directory, seems like that is the traditional place for it.
It's kinda useless to have a Google maps link to a zipcode only, we need to be able to have a Google maps link which leads to the actual location of the event.
I was already able to enable this feature for User accounts, but only because there was a valid "user.location" data value available. I tried to short-cut this solution by storing a full address value in the postcode field, but I got the "come back later" error screen with an error logged:
stderr: [error] DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Data too long for column 'postcode'
When I am editing an item in the shop, and I change the Item Code (or leave it blank to be auto-generated), and click Save, then I am sent to the "Please come back later" error page.
This is because the URL has changed, but it is still trying to send me to the old URL.
Once I go back to the Admin Area, then I see the URL has been updated, and I can then load it at the new URL.
I'm working with @wbraswell to install ShinyCMS on my Dell Lattitude D630 Laptop, with the following configuration and error:
rjohnson@forest-laptop:~/ShinyCMS-latest$ perl -v
This is perl 5, version 18, subversion 2 (v5.18.2) built for i686-linux-gnu-thread-multi-64int
(with 41 registered patches, see perl -V for more detail)
rjohnson@forest-laptop:/ShinyCMS-latest$ uname -a/ShinyCMS-latest$ cat /etc/issue
Linux forest-laptop 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:30:01 UTC 2014 i686 i686 i686 GNU/Linux
rjohnson@forest-laptop:
Ubuntu 14.04.1 LTS
rjohnson@forest-laptop:~/ShinyCMS-latest$ make; make test
...
t/admin_rights.t .................................... 1/? DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Cannot delete or update a parent row: a foreign key constraint fails ("shinycms_testdb_00"."user_ip_address", CONSTRAINT "user_ip_address_fk_user" FOREIGN KEY ("user") REFERENCES "user" ("id")) [for Statement "DELETE FROM user
WHERE ( id
= ? )" with ParamValues: 0='4'] at t/admin_rights.t line 43
t/admin_rights.t .................................... Dubious, test returned 255 (wstat 65280, 0xff00)
All 2 subtests passed
...
t/admin_rights.t (Wstat: 65280 Tests: 2 Failed: 0)
Non-zero exit status: 255
Parse errors: No plan found in TAP output
Files=36, Tests=76, 116 wallclock secs ( 0.16 usr 0.01 sys + 111.28 cusr 3.86 csys = 115.31 CPU)
Result: FAIL
Failed 1/36 test programs. 0/76 subtests failed.
make: *** [test_dynamic] Error 255
When a user creates a new page, they must somehow already know the names of the template elements to add, and what kind of element to set each as: "Short Text", "Long Text", "HTML", or "Image".
Even for the "HTML Only" template I made, the ShinyCMS user must still know to add template elements named "page_heading" as "Short Text" and "page_body" as "HTML". Unless every template is somehow documented to tell users what elements to create, then the only way to actually know is to read the *.tt file source code, which is beyond the abilities of a normal user.
The desired behavior would automatically detect each element from within the *.tt files, and properly populate the new Page with said elements. I don't know how to denote the kind of element ("Short Text", "HTML", etc) inside the *.tt files, a comment or other Template Toolkit markup perhaps?
At the top of the forums pages I am seeing a broken image link, trying to point to:
static/images/create-new-thread.jpg
The postfix IF shortcut assigns undefined to meta.title if it is false, so meta.title for this page is always empty. To reproduce, click on Add Comment of any blog post in the demo site and observe that the browser tab title is just "ShinySite"
It should be:
[%-
meta.wrapper = 'site-wrapper.tt';
meta.title = 'Reply to- ' _ ( parent.title || 'untitled item' );
%]
[% IF discussion.resource_type == 'User' %]
[% meta.title = 'Post to wall'; %]
[% END %]
CKEditor needs to be upgraded to the latest version, I was unable to get the "showborders" plugin to load because the version of CKEditor is too old.
Denny,
I am working with Will Braswell at Auto-Parallel Technologies and we are making some very cool websites with ShinyCMS. Our latest effort required me to modify the search.tt to show our search results in our site wrapper theme. The search results work well and show in our template, but the header and footer have would-be-global elements that we have been able to include (and duplicate) on each page that we create. For example, editable phone numbers, emails and company by-lines appear in the header and footer and we duplicate the elements on each page. The problem is that there is no way to add the phone numbers, emails and by-lines to the themed search page. If we had a place to enter elements globally I would not have to add them to each page and they would show up in our site wrapper header and footer. Is there a way to add global elements currently?
Richard Johnson
In the List News Items feature of the Admin Area, the "View" links are broken, they are inserting an incorrect "admin/" in the link URL:
GOOD LINK:
http://shacfleet.org/news/2014/9/extra-extra-new-shac-fleet-website
BAD LINK
http://shacfleet.org/admin/news/2014/9/extra-extra-new-shac-fleet-website
I accidentally named my blog post URL "fleet_mtg_min-_20140820" when I really wanted an "s" instead of a "-".
When I changed it to "fleet_mtg_mins_20140820" and clicked "Save changes", it talked to the server and came back with a green "Blog post updated" success message. However, it was not actually changed.
Even more weirdly, I can rename it to "fleet_mtg_min" or "fleet_mtg_min-_2014082" but if I try to go from "fleet_mtg_min" to "fleet_mtg_mins_20140820" it will magically switch the "s" to an "-" and go return "fleet_mtg_min-_20140820" instead!
A configuration file (yaml?) that dynamically defines templates, sections, pages, shops, etc along with their elements, products, categories, and static files. This would greatly ease theme deployment on new or existing installations.
In the new CKEditor v4.4.5, I am unable to properly customize the toolbar as I successfully did in the old version of CKEditor.
According to the following page, I can enable all possible tools by either deleting the config.js (sets "toolbar" to null) or by using their example config explicitly enabling all tools. Here's a screenshot showing what it should look like with all tools enabled.
http://ckeditor.com/latest/samples/plugins/toolbar/toolbar.html
I have tried both methods, and they result in the same thing, which is to show only a small subset of the available tools. Here's a screenshot with no config.js file at all:
Here's a screenshot and the full config.js file used:
https://github.com/wbraswell/shacfleet.org/blob/master/modified/config.js.new_modified
I know the configuration is actually being updated inside my browser, because if I modify the config.js in some obvious way and then reload the browser, I immediately see the change reflected. Also, with no config.js file the "Browse Server" disappear from the link and image popups. I just can't get it to show all the tools!
Hard-coded references to "http://maps.google.co.uk/q=" in:
view_user.tt
view_event.tt
view_events.tt
Perhaps better to set by location, or in the site configuration. I set this in the shinycms.conf
:
map_search_url https://duckduckgo.com/?q=
And then changed href="http://maps.google.co.uk/?q=
to:
[% c.config.map_search_url %]
Of course "Google Map" link text would need to be changed to "Open Street Map" or generic "View Map"
See title... db constraint sort of fail.
This is related to a now-closed issue:
#38
Now that we have a working address field, the postcode field is just redundant. Because of this, there is a flaw with the new view_event.tt logic, whereby if you include BOTH an address (with postcode) and a stand-alone postcode, then you will be given a Google Maps link containing the postcode twice. Google Maps currently seems to allow this error, but it is definitely wrong and just because Google allows the wrong behavior now doesn't mean it will continue working in the future.
If you can't remove the postcode field because of legacy compatibility, then at least change the view_event.tt logic so that it never tries to concatenate the address and postcode fields; OR change the field label so that it says "Address Without Postcode (optional)" so people will never type in the postcode in the address field.
In America it is confusing to have both an "address" and "postcode" field, so the preferred solution is to totally remove the postcode field. After it is decided how to address this issue, then I will open a new issue to make the same change to the other places in Shiny where an address and/or postcode are utilized.
I created test comments on one of the demo posts by w1n5t0n, then I used the admin webUI to delete w1n5t0n's post, but I still see my comments exist in the "comment" table in the database.
The Edit Shop Category page allows a blank value to be passed in the URL Name field, which in turn stores a blank value in the database and causes all related URLs to be messed up. CMS admins can't even fix the error by re-editing the category, because the edit page is no longer available at any real URL.
I had to manually fix the entry in the "shop_category" table of the database.
When creating a new page (or blog, event, etc) there is too much redundancy and non-explanation for normal users. What is the difference between a "Page Name" and a "Page Title"? Even I can barely answer that one. What should the Page URL be set to? What goes in the "Meta Description", if anything? (Not to mention the additionally redundant-seeming "page_heading" element in the page templates.)
There should be some administrator-configurable "simple mode" option to set the defaults on new pages (blogs, events, etc), whereby the user is only asked for the "Page Name". In "simple mode", the "Page Name" is automatically copied into the "Page Title" and "page_heading" template element. Also, in "simple mode" the "Page URL" is automatically generated from the "Page Title" by removing all special characters, replacing spaces with underscores, and making all characters lowercase:
Page Name:
Isn't This A Great Page Name?
Automatic Page URL:
isnt_this_a_great_page_name
This is related to a now-closed issue:
#34
The new install of CKEditor full package has totally broken the WYSIWYG editor, now it doesn't show up at all, there is just a blank page area where the CKEditor should be. If I view the JavaScript console I can see several errors:
The value "device-width;" for key "width" is invalid, and has been ignored. edit:15
The value "1.0;" for key "initial-scale" was truncated to its numeric prefix. edit:15
The value "1.0;" for key "maximum-scale" was truncated to its numeric prefix. edit:15
Error parsing a meta element's content: ';' is not a valid key-value pair separator. Please use ',' instead. edit:15
Uncaught TypeError: Cannot read property 'ltr' of undefined ckeditor.js:589
CKEDITOR.plugins.add.init ckeditor.js:589
(anonymous function) ckeditor.js:241
p ckeditor.js:221
CKEDITOR.scriptLoader.load ckeditor.js:221
(anonymous function) ckeditor.js:240
(anonymous function) ckeditor.js:228
(anonymous function) ckeditor.js:226
p ckeditor.js:221
CKEDITOR.scriptLoader.load ckeditor.js:221
CKEDITOR.resourceManager.load ckeditor.js:226
g ckeditor.js:227
(anonymous function) ckeditor.js:228
p ckeditor.js:239
(anonymous function) ckeditor.js:238
(anonymous function) ckeditor.js:444
(anonymous function) ckeditor.js:226
p ckeditor.js:221
u ckeditor.js:221
t ckeditor.js:221
(anonymous function) ckeditor.js:222
h3 {
font-size: 120%;
margin: 20px 0 10px 0;
}
by Adm
h4 {
margin: 10px 0 10px 0;
}
Hello,
First I would like to say ShinyCMS is a great product. I am looking at developing my own site and am leaning towards adapting ShinyCMS to my needs.
I'm not really sure that this is an "issue", but I didn't see a better place to open a discussion.
Would it be possible, instead of writing the SQL schema as SQL, write the DBIx schema directly, then use DBIx to generate the database schema? I realize this might take more work at the outset (especially since you've already written the SQL schema), but in the long run would allow the DB to be managed pragmatically, allowing the application to be DB agnostic and providing an easy method for upgrade paths.
what do you think? Am I way off?
Thanks for reading, and thanks for providing an awesome product.
Best Regards,
three18ti
Edit: I would like to volunteer to undertake or assist the undertaking of this change.
When I invoke root/admin/filemanager/view.tt I should be able to click on each file (either image or non-image) and have something happen. According to the code, CKEditor should be launched with some unknown action, which doesn't work.
BECOMES
Which gives a Javascript syntax error because callFunction has a missing first argument and goes straight to a comma.
If we can't have CKEditor launched for whatever reason, we at least need to make it so that there are valid links to download the files. As it is now, we can only look at a list of files, clicking on the files does nothing!
By copying-and-pasting HTML content from a previously-existing website into CKEditor's "source" edit mode, I was able to exceed the storage length limitation of DBIC:
FastCGI: server "/tmp/shacfleet.org.fcgi" stderr: [error] DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Data too long for column 'content' at row 1 [for Statement "UPDATE cms_page_element
SET content
= ? WHERE ( id
= ? )" with ParamValues: 0='
, referer: http://shacfleet.org/admin/pages/page/10/edit
There should at least be some kind of meaningful error message produced.
In the Add New Event feature (and likely elsewhere), after selecting a date from the calendar-like date picker, the date itself is displayed in an ambiguous XX-XX-YYYY format, by default set to the UK standard of day-month-year.
This can definitely be a source of confusion for those of us in the USA, who use month-day-year.
In the database table "mail_recipient", there are multiple entries, including one for "Site Admin" with a default value of "[email protected]".
This was brought to my attention by error logs showing failed messages going out to the "[email protected]" address, presumably caused by Shiny system alerts of some kind.
I can't find anywhere in the CMS or config file to set this address, so I changed it directly in the database. This is not good, there needs to be documentation about this and some other mechanism for viewing/setting the e-mail address value.
In the CKEditor file picker, I think I always have had success when I click only the text name part of the files and folders.
However, if I click on the icon part of a file or folder, then it will either give me no result whatsoever (as if I had not clicked at all), or it will bring me to the "please come back later" error screen. This will also generate an error in the logs showing it is trying to read a file or folder which is similar to, but not actually a real file or folder on disk.
This is the same as the recently-fixed Events issue:
Hi,
in the admin-area and on the frontpage i get a strange result, when i define more than one subcategories. No subcategories are show in the list. Instead there is only one item without a description. I have no idea, how to fix this.
Thank you for your help.
Regards,
Cid
We can't have the CMS working on a server with PHP-FPM; when we disable PHP-FPM, everything goes fine.
After editing a user, the save action redirects to a page that doesn't exist. Specifically:
/admin/user/user/2/edit
--save--> /admin/user/edit/2
the /admin/user/edit/2
page doesn't exist.
Add info about:
I'd like to be able to create entity lists from the web front end (page edit, etc). An ordered list of entities (string, html, or images) would be created in the front end, then accessed as a list in the templates. Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.