FlexicaCMS

I was very happy to see you’re now releasing this project under a real open-source license.

But under the GPL license, if I make modifications to the CMS itself, I have to release the changed source code under GPL as well. GPL is dodgy in this area, but technically, you could even demand that any website built using this CMS has to be released with full source code under GPL to the public.

I don’t think that’s what you want, but under GPL, you can legally demand of anyone building a solution with this CMS, that they release the source code under GPL - that’s why it’s commonly referred to as a “share-alike” license.

Under GPL, I can only evaluate this CMS - I can’t start building solutions for clients, since I would risk putting them (or me, or my employer) in legal trouble. I don’t think GPL is a suitable license for “library” type products, unless you’re going to dual-license this product, with an alternative paid license, under different terms.

If that’s not what you plan to do, perhaps you should consider relicensing under LGPL, which permits people to build closed-source solutions with your library, without these restrictions.

The bottom line is that no one is going to build commercial websites under a share-alike license - with the possible exception of sites like Wikipedia :wink:

GPL :) commercial license is available according to this http://www.flexicacms.com/license.html

Many thanks mindplay. FlexicaCMS is dual license so if you want to use it in commercial product then you can purchase commercial license. This will be ready when flexicacms is stable.

@Viper115: thank for pointing out the link. Let me clarify your post as i think it might make people confused about a "GPL commerical license". There is a GPL license and there is a commercial license which you can release your work with your own terms.

Good work! I want to make something similar with Yii.

Thank you for making this CMS. When I was looking through the Yii forum today I thought : "Yet another Yii CMS", but this one looks really impressive, from what I could see in the demo.

The problem is that everyone wants to make their ‘own’ CMS. There are so many systems out there you don’t know which is the best. Sure it’s ok to learn from it, but maintaining your own CMS is hard (been there, done that). This CMS has some potential.

This is what happens when there are no CMSs that satisfy you, well… I’d want my own CMS too :D

I agree, i still want to do many things for flexicaCMS. When ‘wants’ come to ‘needs’ there will be a more practical decision.

We are going to release v0.4 early next month

True it’s amazing how bad most CMS are… after many years and still nobody that nailed it. Concrete5 comes close, but is lacking in modules. Joomla / Drupal / Wordpress are “ok” but are either to complicated or too simple :)

Concrete5 is extremely nice in terms of concept and UI - but lacks any sort of object/relational mapper.

It’s lacking in modules because it lacks extensibility points - and I believe Flexica will suffer from the same thing. Being able to plug in new, self-contained extensions does not address cross-cutting concerns - two important extensibility points are missing:

  1. Some kind of global event pipeline to enable cross-cutting functionality.

  2. Some kind of document object model to enable cross-cutting content generation.

These two extensibility points are the reason why outdated content management systems like Drupal still prevails - and Wordpress, even though it provides only the global event pipeline and no real document object model.

With something much more slick and userfriendly like Flexica or Concrete5, you would expect more developers to be interested - but the fact of the matter is, they just don’t provide the same degree of modular extensibility.

I don’t imagine any of these features are planned for Flexica? Or if they are, I would say, you’re starting at the wrong end - you need to start with an extensible architecture, and then build the standard features on top of that architecture, so that even the core features become fully exposed and fully extensible.

If you’re interested, I would love to discuss this more. In fact, I think I have a Yii prototype of a global event pipeline and a simple document object model on one of my workstations somewhere…

Would you mind sharing? waprave@gmail.com

Hi MindPlay,

FlexicaCMS implements global event via pre/post service hook.

A service in FlexicaCMS always return a ServiceResult object that you can easily expect the data structure of the returned data.

Pre hooks can prevent service to be executed. For example, in flexicaCMS you have a shared category tree. Your new module added into flexicaCMS can use part of the tree and base on your module business login you want to prevent user from deleting a category. Pre hook is also the common place used to perform authentication.

Post hooks can modify ServiceResult data before it is rendered.

You can chain and order the hooks.

Note that in FlexicaCMS, all business logic processing must be implemented in service class. This programming model prevents developers from writing the business logic processing directly into the controller (you can still enforce that if you need), making the service more reusable and accessible from ajax/external systems. This service approach is also facilitate testing.

Please share if would be very interested in this :)

yes i want it too,

i know, shame on me for lack of my skill.

Still improve build my own cms and its pretty hard you know.

and one more thing, its never ending feature.

hello. Thank you for flexicacms. I have flexicacms installed at home and I got a question concerning flexicacms page creation and templates. When I create a new page and make it visible at frontend i see only menu button and no actual content of the page. How would it be possible to resolve this?

How is it possible to change the order of the pages? I create several pages and I cannot find a way to change their order.

Hi, in my opinion, i think there should some way to configure the settings, and save it in a database table or configure file.

for example, url-friendly, i can set it to open or not, and when the website loading, it loads the configure and decide whether to display the url-friendly or not.

In fact that, saving settings in an array of a php file is not so convenient to do what i think in the backend, is it?

@phant: you can reorder the pages using drag-n-drop feature on the page list

A page is a container only. Well, it’s really a normal CMS isn’t it :) so if you do nothing with it but just create a page then it show blank. You must associate your page with a layout and a template (just a FlexicaCMS name but actually it’s a Yii’s view in your front-end theme)

@davidhhuan: not sure I understand but settings are per module and not saved as array but a class of constants so you can utilize your IDE auto-complete feature. Both of your suggestions are not able to utilize the IDE auto-complete feature which easily lead to an ‘empty’ value due to using wrong parameter name ! agghhhh ! and you know how hard to debug this.

Thank you very much. I have yet another question… How is the situation with Languages? Could you please describe a little bit multi language mechanism in Flexica? And also specifially about "Add multi-language support" function?

How would it be possible to translate backend?

Installation error when install demo data

CDbCommand failed to execute the SQL statement: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

Source File

C:\xampp\htdocs\flexica\framework\db\CDbCommand.php(227)

00215: $n=$this->_statement->rowCount();

00216:

00217: if($this->_connection->enableProfiling)

00218: Yii::endProfile(‘system.db.CDbCommand.execute(’.$this->getText().’)’,‘system.db.CDbCommand.execute’);

00219:

00220: return $n;

00221: }

00222: catch(Exception $e)

00223: {

00224: if($this->_connection->enableProfiling)

00225: Yii::endProfile(‘system.db.CDbCommand.execute(’.$this->getText().’)’,‘system.db.CDbCommand.execute’);

00226: Yii::log('Error in executing SQL: '.$this->getText().$par,CLogger::LEVEL_ERROR,‘system.db.CDbCommand’);

00227: throw new CDbException(Yii::t(‘yii’,‘CDbCommand failed to execute the SQL statement: {error}’,

00228: array(’{error}’=>$e->getMessage())));

00229: }

00230: }

00231:

00232: /**

00233: * Executes the SQL statement and returns query result.

00234: * This method is for executing an SQL query that returns result set.

00235: * @param array input parameters (name=>value) for the SQL execution. This is an alternative

00236: * to {@link bindParam} and {@link bindValue}. If you have multiple input parameters, passing

00237: * them in this way can improve the performance. Note that you pass parameters in this way,

00238: * you cannot bind parameters or values using {@link bindParam} or {@link bindValue}, and vice versa.

00239: * binding methods and the input parameters this way can improve the performance.

Stack Trace

#0 C:\xampp\htdocs\flexica\protected\modules\Install\controllers\DefaultController.php(146): CDbCommand->execute()

#1 C:\xampp\htdocs\flexica\framework\web\actions\CInlineAction.php(32): DefaultController->actionStep3()

#2 C:\xampp\htdocs\flexica\framework\web\CController.php(300): CInlineAction->run()

#3 C:\xampp\htdocs\flexica\framework\web\CController.php(278): CController->runAction(Object(CInlineAction))

#4 C:\xampp\htdocs\flexica\framework\web\CController.php(257): CController->runActionWithFilters(Object(CInlineAction), Array)

#5 C:\xampp\htdocs\flexica\framework\web\CWebApplication.php(320): CController->run(‘Step3’)

#6 C:\xampp\htdocs\flexica\framework\web\CWebApplication.php(120): CWebApplication->runController(‘Install/default…’)

#7 C:\xampp\htdocs\flexica\framework\base\CApplication.php(135): CWebApplication->processRequest()

#8 C:\xampp\htdocs\flexica\install.php(9): CApplication->run()

#9 {main}

I attempted to register & download FlexicaCMS but I haven’t received my activation e-mail. How long should that take?