Giter Club home page Giter Club logo

blackcatcms's Introduction

About

BlackCat CMS is a PHP7/8, HTML5, database driven Web Content Management System. It's module interface is highly, but not in all cases completely compatible to Website Baker and LEPTON CMS (see "History" below).

!Important note: BlackCat CMS is not fully compatible with PHP 8.1.x. The last supported version is 8.0.x.

Technical requirements

See file INSTALL.

Helpful Links

Official website of BackCat CMS (German only!):
https://blackcat-cms.org

To build your unique download bundle with the add ons of your choice:
https://blackcat-cms.org/page/download.php

Our forum (German, but English speaking visitors are welcome!)
https://forum.blackcat-cms.org

Note for English speaking visitors: This (the GitHub repository) is your place to go! :)

History

BlackCat CMS was originally based on LEPTON v2.0 Alpha, as released in May 2012, which itself was based on Website Baker v2.8.2. So, Black Cat CMS is what is called a "fork", but has evolved differently and taken it's own way since end of year 2012.

The name "BlackCat" is derived from the forum names of the founders: creativecat and BlackBird.

blackcatcms's People

Contributors

creativecat avatar hertsch avatar webbird avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blackcatcms's Issues

Deleting last child of page

When deleting the last child of a page, the arrow on the left side should be remove (check with siblings)

Invalid HTML in BE

label class="g_4" for="fc_addPage_keywords_ul">Keywords:</label>
<ul id="fc_addPage_keywords_ul" class="g_11"></ul>

??? Empty ul

sec_register_file()

As this function is currently called by install.php of a module only in the backend it should be $admin not $wb... but I know, this function is not ready yet ;-)
Also a check for already existing database entries is missing (files are registered twice in the database, when you manually call the install.php of an already installed module).

Page tree isn't updated after a page is moved from root to a new parent

If i create a new page on the root level and want to move this page to the second level under an existing parent, i get the "page setting saved successfully" message but the page tree view isn't updated. I have to reload the whole backend page to see the moved page on the position in the page tree.

Steps to reproduce:

  1. Create a first page on root level
  2. Create a second page on root level
  3. Open the settings panel of the second page and select the first page a parent. Click save.
  4. The Message "page setting saved successfully" will be displayed on the bottom but in the page tree the second page is still shown on root level
  5. refresh the webpage in your browser and no the second page its displayed correctly under the first page

Make class.secure.php more convenient (and helpful)

The current (small) solution is just hell concerning maintainability. There's no interface to let modules register files that should be allowed to load config.php directly. Also, no helpful functions for module developers are included.

First, I'd like to extract the list of files that are allowed to load config.php directly and push it into a DB table. I'm also going to add a method for module installers to register files.

Any other suggestions?

File upload to media directory isn't working

After selecting a file (,png) for upload into the media directory and clicking "Datei(en) hochladen" the file /backend/media/upload.php is called and shows a white page. No php error is displayed even if error reporting is set to E_ALL. Switching back to the previous page (browser back button) the previously selected file isn't uploaded.

Work in progress: Separation of Core and Modules

I'd like to separate what is "core" from modules. For all modules that are maintained by us, we can create separate GitHub repos. (CKE/WYSIWYG because auf different default configuration, News, ...) This will also make it easier to let people choose from a list of modules and create their own download bundle. We could also create some "policies" for modules that are listed on the bundle creator page. (Example: Must be hosted at GitHub, repo name must contain 'lepton' or something.)

Any thoughts about this? Anyone out there who's interested in creating a "bundle creator"? (Something like jQuery UI download page.)

Can't scroll on large module settings page

I installed MPForm module, created new a page with a MPForm section and clicked "Allgemeine Optionen". The settings page of this module is very long and needs to be scrolled on small screens (e.g. MacBook Air) – but the settings page can't be scrolled. Could be a module related issue ... don't know.
Bildschirmfoto 2012-12-17 um 20 41 37

Additional there is a visual glitch on the page when adding another MPForm section to the same page:
Bildschirmfoto 2012-12-17 um 20 59 53

Error in Dropleps

After saving a droplet ([Save]), do some changes and hit [Save] again. The droplet will not be saved, the BE returns to the Dropleps main page.

Missing dialog to confirm delete

Deleting pages from pageTree or files/folders from media currently happens immediately. There should/ will be dialog to confirm this action!

Rework different Templates

Those files are currently not fitted (completely) to the new backend

  • warning.html
  • login.lte / login_forgot.lte
  • under_construction.htt

Fix up constant definitions

There are several places where constants are defined:

config.php
sys.constants.php
initialize.php (load settings from database, too)
...?...

This should be cleaned up.

File upload to media directory still not working

First i have to say that i did not a fresh install with the current version in repository but just replaced the old files with the new ones. So maybe the problem described below is just a problem on my side.

When uploading a file, the progress bar (green/white striped) appears and then i get a modal message with no text in it (see screenshot). After pressing OK the previously uploaded file isn't in the media directory – seems the upload failed.

Bildschirmfoto 2012-12-17 um 20 38 11

Having a look into the js console, i noticed some missing JS files:
Bildschirmfoto 2012-12-17 um 21 09 47

By the way: The buttons "Alle Sektionen zeigen" and "Alle Sektionen verstecken" not working any more – propable because of the missing JS files.
Maybee i shoud do a fresh install next time? Could anyone confirm this behavior?

Replace default page

I'm thinking about replacing the current default page (which is using Wrapper to load a static page from lepton-cms.org) with a WYSIWYG page. In my opinion, this will allow the user to see something more convenient and useful by default. Any thoughts about this?

Missing graphics in page section

Different graphics are missing currently.
This will be fixed with a smaller rework of the whole section (e.g. removing page_settings as those options are available over page tree)

Add button "Add child to this page"

A button for adding child pages directly (so the right parent is selected in the dropdown automatically) could be placed in the page settings.

Suggestion: Language flags in page tree

I think it would be nice (and helpful) to have little language flags near to the page name in the page tree. (Maybe only if there are different languages in use.)

headers.inc.php: Only one script is added to head

Trying to include two different script with the headers.inc.php of a module in the backend only the first script (script1.js in my example below) is included.
Also tested it for css-files - works as expected.

$mod_headers = array(
    'backend' => array(
        'js' => array(
            '/modules/xyz/js/script1.js',
            '/modules/xyz/js/script2.js'
        )
    )
);

backend/addons/install.php

This file should use the Addons-Helper!

All methods concerning module installation etc. shall be moved to that class.

Currently available:

register_page_title($page_id, $module_name, $module_directory)
unregister_page_title($page_id, $module_directory)
is_registered_page_title($page_id, $module_directory)
register_page_description($page_id, $module_name, $module_directory)
unregister_page_description($page_id, $module_directory)
is_registered_page_description($page_id, $module_directory)
register_page_keywords($page_id, $module_name, $module_directory)
unregister_page_keywords($page_id, $module_directory)
is_registered_page_keywords($page_id, $module_directory)
get_page_title($page_id)
get_page_description($page_id)
get_page_keywords($page_id)
preCheckAddon( $temp_addon_file, $temp_path = NULL, $delete_on_fail = true, $always_return_result = false )
getVersion($version, $strip_suffix = true)
getVersion2($version = "")
versionCompare($version1, $version2, $operator = '>=')
installModule($directory, $install = false)
sec_register_file( $module, $filepath )
__sortPreCheckArray($precheck_array)

(Most of them are derived from DropletsExtension.)

Update Dropdown when adding a page

When settings of a page are shown, the default dropdown is replaced by the individual dropdown (to disable child pages).
When clicking the "Add"-button the dropdown has to be reset again.

headers.inc.php: jQuery-Core / UI included twice

When you try to set jQuery core and/or jQuery UI core or any UI-Effect as basis for a module in the headers.inc.php the cores are loaded twice, so the JS of the backend is completely broken.

Example:

$mod_headers = array(
    'backend' => array(
        'jquery' => array(
            array(
                'core'          => true,
                'ui'            => true,
                'ui-effects'    => array ( 'highlight' )
            )
        )
    )
);

Getting facile error message on ajax call when logged out

When you are logged out automatically and try to perform an ajax request you are getting a facile message:
parsererror: SyntaxError: JSON Parse error: Unrecognized token '<'

We need a solution to tell ajax (and later the user), that the user was logged out and that he need to login again to perform this request.

Media: Make each media_folder scrollable

If one folder in media contains many files/folders, the whole media section is scrollable instead of each folder.
That causes strange behaving, when you scroll down and click on a folder to show its contents. Currently you have to scroll up again.

Mark current page in page tree

I don't know if this is possible, but I thought it would be helpful to highlight the currently edited page in the page tree.

Adding support for Widgets

Currently the Dashboard (=Start) is pretty empty.
We will add a new feature, that will support "Widgets" (as you know from other CMS).
E.g. each module can provide a widget.php that can be placed on the users individual Dashboard.

Password length of database may be too short for predefined constraints.

I have tried to install the CMS on my local machine and while trying to set up the database connection the installation wizard always threw the error "password too short". As my database password consists only of four characters there should not be any constraint to the length of a database password during installation.

This constraint does not make any sense at all, since only administrators are about to install the CMS and they should decide and know how long their passwords are.

Invalid rel attribute

The validator reports the invalid use of rel attribute on span and li tags.

Examples:

<div id="fc_sidebar_header">Pages<span class="fc_side_add show_popup" rel="fc_add_page" title="Add page">+ Add page</span></div>

<li title="Check all" rel="Any" class="fc_activeSearchOption">Check all</…

Backend login issue

When trying to login into the backend, the first attempt always fails, even if correct credentials are given. Hitting F5 then loads the BE.

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.