Giter Site home page Giter Site logo

cybershadecms's People

Contributors

levkaizer avatar mantissts avatar maseh87 avatar noeldavies avatar xlink avatar

Stargazers

 avatar

Watchers

 avatar

cybershadecms's Issues

QueryBuilder addTableColumn function

We need a addTableColumn function in the querybuilder so we can create table columns on the fly function so module creation can be done dynamically.

Sub-Caching - Split the cache up

So I was speaking to Linky about this one earlier.

We need to split up the caches to be in separate cache files and which one gets read from depends on which module is being used.

The core routes (etc) should be kept in the default file, for example, cache/cache_routes.php where the custom modules one should be kept in cache_{MODULE_NAME}_routes.php (or something similar)

With 50,000 routes in the system (which is not OTT), the CMS takes 120MB of memory per user, jsut to include the cache files.

My suggestion is, as I said, split up which caches gets loaded by splitting up the files.

Minify Doesn't work on Local

Minified files are corrupted (or something) on my local here, running OSX 10.7.5, MAMP 2.0.5, PHP 5.3.6.

You've seen the errors

Caching

We should add an option that specifies whether the cache is allowed to actually write itself to a file. This should be toggled on a per cache basis.

The idea being, during development, it may be required to clear the cache every few mins, disabling the cache in the first place allows the new cache functionality to take effect.

Theme & Style Upgrades

I think we should be able to set the themes up slightly better so designers can package multiple versions of themes together, usually different color schemes. We should find away to incorporate this into the CMS as a whole.

Comments Class

The comments class needs porting over, this may be better as a module rather than a base class.

Would be nice to get it upgraded to have nested comments for replies & should use a permissions system too

URL Generation

We need a way to generate a URL that will work for a specific route. Ideally a method that will accept some parameters and match & generate the URL string & return it.

Does not install

A fresh repo does not install under WAMP Server. I also do not see a directory marked install.

Error Reporting

I am proposing a call home function, the main purpose of this will be to log any errors in a single install of CSCMS to a local & remote database. The call home function should be toggleable upon install, and in the main Admin panel.

The idea being, that it gives the developers of the CMS a head start when errors start popping up after a new release or when a specific vulnerability has been caught. It gives us the ability to replicate the error in as much detail as needed & keep an eye on the errors as a whole. Single hit errors would more than likely be bots or malicious software pinging site urls trying to provoke a request, as such it shouldnt be till the errors gained significant popularity on the database that we would look into it.

Thoughts?

Plugins can't take more than 1 argument

When attempting to use more than one argument in a plugin hook, PHP errors, detailing that it can't pass an anonymous array in by reference (it's not assigned to a var) and thus it errors.

The plugin system needs to take updates from the recently added reflection functions to work again.

Upload Class

A Helper Core Class needs creating to handle uploads. Basic functionality should include being able to upload to a specific directory, being able to throw a set of restrictions on the upload,

eg :

  • by filetype
  • by size
  • by etc :D

User Class

Functionality needs completing.

Class has had the shell layed out & some functionality adding, but needs adding to & testing.
use ./usertest.php in the root to test the class after you've implemented the functionality

Menu System & Routes

The menu system would benefit from being able to use the routes, aswell as raw URLs, this makes sense now we have the routes in place, and that we can generate urls from said routes too. Only real upgrade i think is to allow for arguments, so maybe a new column with that primarily null.

Should probably also add a function to the Page class to gain access to a menu for output.

Thoughts?

Allow URL Filtering on Blocks

Each block should allow for URL filtering, enabling and/or disabling the block on specific routes.

Any ideas how we should do this?

Object instantiation

I propose we add a new method of object instantiation, rather than having multiple methods to instantiate the object required, we have 1 method which does it. Ie:

    public function getObject(){
        $arguments = func_get_args();

        if( is_empty( $arguments ) ){
            return false;
        }

        $class = array_shift($arguments);

        if(!isset( coreObj::$_classes[$class] )){
            $class::getInstance($class, $arguments);
        }

        return coreObj::$_classes[$class];
    }

That was just a quick mock up, but you get the point.

The reason I propose this is to clean up the coreObj class, as atm its a mess.

QueryBuilder createTable function

We need a createTable function in the querybuilder so we can create tables on the fly function so module creation can be done dynamically.

Different Configs for different environments

There should be a method of implementing different configurations for different environments, but be able to have them all present, so you can just push something up and it works without needing to gitignore config files and have them present only on the specific environment.

Module Methods incorrectly called

At the moment the routes will call to a method regardless of its state, this needs to be fixed for the following circumstances:

  • method is not there atall **
  • method doesn't have a scope that will enable execution, ie private

** should account for a __call() method in there, as that will take over if the method isn't available

Permission Class

Im thinking we need a Permission Class, if nothing else it should implement functionality to apply permissions based on the page. Something like the forum should be able to take the permissions & implement them to its needs, but something as simple as an article module should be able to make use of a default permission system.

View = Can see the content on the site
Read = Can read the content
Post = Gives posting abilities, for the most part this will probably be down to the comments sys
Reply = Gives replying abilities
Edit = Editorial Access to the content
Del = Removing Abilties
Move = Moving the content, new alias on the system, to a new parent page etc
Special = Any special access, probably used for
Mod = Moderator Abilities

Fix Query Builder

Fix the Query Builder to escape the correct values.

Currently, when using the query builder's where and on functions are given 3 arguments, the first is used as a field reference, the second as a comparison operator, and the third as a value. The last value is sanitized and the query is built.

If the query builder's where and on functions are given 1 argument, the spaces are exploded and it does the same as the above.


What should happen is if 3 arguments are given, the last is sanitized and the query is built. If only one is given, the query builder should understand the developer is using a field to field comparison, or is using safe values, and therefore shouldn't sanitize the values.

Activity Monitor

Should allow the system to keep information about activities that occur on the site, this information should include:

  • User
  • Activity (Including Data, Activity Type, URL and more)
  • Time

User::validateUsername();

In the ACP I beleive we should be giving the administrator the ability to choose what sets of charaters he wants to allow in the CMS..

The panel could look something like this following ASCII Rendering;

[ ] Upper & Lower case English alphabet ( [a-zA-Z] )
[ ] Digits ( [0-9] )
[ ] "Simple Special Characters" ( [!@#$%^&()<>?:"|{}+_/`] etc )
[ ] "Extended Special Characters" - this will be the foreign language set

The idea here, is to be able to tick what you want to allow, the functionality should take this into account when testing a username being valid, and any escaping should be done to make sure no vulnerabilities either client or server side.

Thoughts?

HTTP Errors need Routes creating

Routes should be created for the HTTP Error codes, mostly so we have something to redirect to or exec the route for on errors etc.

Suggested Route TPL: core_http404 core_http403 etc

iPhone app

Create the iPhone app which allows a user to administer their site from the ease of their handset.

Will integrate the RESTful API and the HTTP class

Caching

Need an easy, configurable way to turn on caching and which parts of the system to cache.

Especially when it comes to developing with CS.

Another thing is when you want to be able to delete the cache without having access to the filesystem. So we need a way of deleting the cache/cache_*.php files from the admin panel.

Move BBCode calls to the database

We should look into moving the BBCodes into a database table.

  • Gives us/site admins better control over them
  • means we can enable / disable on the fly - with cache usage too
  • means we can also add more - community added etc
  • more reasons here...

Strip BBCodes from CMS

Think it will be better to strip the BBCode system out of the CMS, have it setup as a library, with supporting files so its still usable within the system, If needed/required.

Markdown will replace the BBCode setup as the default parser across the CMS, it's syntax is easier on the users, and its got a light footprint.

Module Class

Needs functionality to test for the following:

  • Module is present & valid (a rough check of the file sys, class file, config etc)
  • Module is installed / installable (this will be checked both DB & Filesys)
  • Module is loadable (db checks for is installed & is enabled)

CMS Cron

Need to port the cron over from the old system, keep the 3 timers going - daily weekly & monthly

Thought about it & don't really want to slow down the CMS with custom cron timers so i think we should stick to those.

Log Data to the Debug Panels

My idea behind this was that we have a function (standalone or static) to output custom debug data to the Debug Panels

I thought of a function like this:
Debug::log('tabName/number', $var);

Then it could "echo dump()" the data into the specified panel.

Make config area

Need to make a config area for all config vars in the database (cscms_config)

Two I've recently added are:
login -> 'user_registration_email'
'login' -> 'forgot_password_email'

iPhone app

Create the iPhone app which allows a user to administer their site from the ease of their handset.

Will integrate the RESTful API and the HTTP class

Categorize data &/ content

I'm not allowed to call this taxonomy now xD <3!

We need a way of categorizing data/content within the CMS to allow users to easily search, administer, add content to those categories.

Not sure whether it should be a core class or an optional module.

Any ideas?

Registration & Forgot Passy

Need to create routes & methods for the Registration & the forgot password setups. Should be fairly simple for anyone with knowledge of the CMS to do this.

Build HTTP class

Build a HTTP class which integrates RESTful Services which is going to be used by the iPhone app I'm going to create which will allow an admin to administer their site(s) from their phone app.

That way the user has complete control over their site, with ease, from their handset.

Email Class

A class needs setting up for the Emails & such. It might very well be an idea to use a 3rd party system here, due to the complexities an email can sometimes have.

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.