Coder Social home page Coder Social logo

denny / shinycms Goto Github PK

View Code? Open in Web Editor NEW
56.0 15.0 24.0 37.61 MB

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)

Perl 42.63% JavaScript 2.12% CSS 16.24% HTML 38.75% Dockerfile 0.06% Shell 0.10% Raku 0.11%
perl cms free-software open-source perl5 catalyst dbix-class template-toolkit shinycms

shinycms's People

Contributors

bobtfish avatar davehodg avatar denny avatar hashbangperl avatar szabgab avatar uwe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shinycms's Issues

Edit Contact Form, Template "None" Works But "contact.tt" Doesn't Work

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...

  1. Admin Area
  2. Pages
  3. List Form Handlers
  4. Edit Contact Form
    5a. Template Drop-Down Box, "None" Works
    5b. Template Drop-Down Box, "contact.tt" Sends Blank E-Mail Body

Need Date Picker, Add New Item

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.

New Page/Blog/Event, Need Automatic URL Generation and Documentation

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

Edit Shop Category, Blank URL Name Causes Non-User-Recoverable Error

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.

Edit Shop Item, Change Item Code (URL) Loads Error Page

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.

Need for Global Elements

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

logo title

Makes more sense to use "c.config.site_name" for the logo alt tag.

CKEditor, File Picker Icons Behave Erratically

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.

New Page, Need Automatic Template Element Detection

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?

t/admin_rights.t: Cannot delete or update a parent row

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
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:
/ShinyCMS-latest$ cat /etc/issue
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

Tests were run but no plan was declared and done_testing() was not seen.

Looks like your test exited with 255 just after 2.

t/admin_rights.t .................................... Dubious, test returned 255 (wstat 65280, 0xff00)
All 2 subtests passed
...

Test Summary Report

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

login.tt conditional

    <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>

CKEditor, Too Old For Plugins

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.

PHP-FPM compatible ?

We can't have the CMS working on a server with PHP-FPM; when we disable PHP-FPM, everything goes fine.

CKEditor, File Picker Upload To Subfolders

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:

  1. Admin area
  2. Other
  3. Upload files

nginx configuration

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.

Page Content Too Long For DBIC

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.

Developing ShinyCMS to be database agnostic

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.

Documentation, Update Getting-Started

Add info about:

  1. Creating & Using Page Templates
  2. Changing Newsletter E-Mail Addresses
  3. Changing Contact Us Form E-Mail Address
  4. Only 1 Shiny Using mod_perl, Many Shiny's Using fastcgi
  5. Mail Server Requirement (Postfix, Sendmail, etc)
  6. Perlbrew & local::lib Usage Notes
  7. Apache User/Group File Permissions (www-data)

CKEditor, Toolbar Will Not Display All Tools

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
wbraswell_20141002-ckeditor_toolbar_full_config__sample

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:

wbraswell_20141002-ckeditor_toolbar_no_config

Here's a screenshot and the full config.js file used:
https://github.com/wbraswell/shacfleet.org/blob/master/modified/config.js.new_modified
wbraswell_20141002-ckeditor_toolbar_full_config

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!

Contact Form, Silent Failure & Documentation

The Contact Us form will silently fail for any number of reasons, including but probably not limited to:

  1. attempting to send mail to an invalid e-mail recipient
  2. attempting to send e-mail from an address which is not accepted by the receiving e-mail server
  3. bounced e-mails due to mailbox full, etc.

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:

  1. Login as admin
  2. Admin area
  3. Pages
  4. List form handlers
  5. Edit Contact Form
  6. Update "Email to" Field

CKEditor, File Picker Double Icons

Clicking on the CKEditor File Picker icons now seems to work, except I am now seeing 2 icons for each file instead of 1 icon.

Directory folders and image thumbnails are still shown as only 1 icon, it seems to just be the non-image non-folder file icons which are doubled.

wbraswell_20141002-ckeditor_file_picker_double_icons

save user redirect is broken

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.

CKEditor, Totally Broken With Javascript Error [CRITICAL]

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

Feature request: Entity lists

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!

E-Mail Alerts, Database Table "mail_recipient" Entries Need To Be Managed

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.

Edit Forum, URL Name Needs To Be Auto-Generated

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.

Events, Need Remove Now-Redundant Zip Code (Post Code)

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.

Categories and Subcategories

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

google map searches

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"

Events, Need Event Location Map Instead Of Just Zip Code (Post Code)

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'

Feature request: Configuration Assistant

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.

File Manager, Clicking Files Has No Effect

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.

[% file.filename %]

BECOMES

nmakers_home.tt

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!

Sitemap, Generate Listings for Blog/News/Events/Forums

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.

CRITICAL: Page Editor Causes Page To Be Disabled

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.

Edit Blog Post, URL Title, Failure To Save Changes

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!

Bareword "catalyst" not allowed

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

Non working title in root/discussion/add_comment.tt

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 %]

Ambiguous Date Format, Add New Event etc

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.