CiiMS ¶
- Code
- News
- Who uses CiiMS?
- Demo
- Documentation
- Features
- Requirements
- Recommendations
- Support
- How Can I Contribute?
CiiMS is a fast, simple, and easy to use, full feature blogging platform and content management system built in Yii.
Code ¶
Source code for CiiMS is available on Github
News ¶
CiiMS 2.0.0 Beta Released
CiiMS 2.0.0 Beta is now available. Checkout the release notes for more information.
Interested in a Hosted Solution?
Be sure to checkout www.ciims.io to pre-register for exclusive early access to our hosted platform.
Who uses CiiMS? ¶
Do you use CiiMS and love it? Want to show your support? Would you like some free advertising for your site? Create a pull request that modifies this readme and adds a 60x60 avatar image as a link to your site and we'll merge it in!
Demo ¶
A demo of CiiMS can be found at:
Site: http://demo.ciims.io
Admin Panel: http://demo.ciims.io/dashboard
You may use the following credentials to login and manage the site.
Email: demo@ciims.io
Pasword: password
Please note that this demo is not monitored, and is reset at an unspecified interval and at my discretion. Please be nice. If you find a bug please report it via a Github Issue.
Documentation ¶
Full documents for CiiMS can be found at docs.ciims.io. Please refer to this guide for installation instructions, development guidelines, and a list of available CLI commands
Features ¶
- Based on Yii Framework
- Installs in 30 seconds*
- Utilizes Composer
- Beautiful Default Theme
- Supports Markdown Extra
- SEO Optimized (Sitemap XML, URL Slugs, SEO Meta Tags)
- Password Protected Content
- Site wide and Category Specific RSS Feeds
- Multiple Content Type Support
- Interchangeable Caching Systems (Redis, APC, Memcache, Files)
- Low Memory Footprint
- Themable
- Social Integration (Social Signon, Social Sharing)
- Extendable with custom modules, extensions, themes, and cards
- Beautiful and functional dashboard for managing your content and settings.
- i18n files provided for translations
- Fully Customizable
- Easily install new themes and cards from in a single click
- And a bunch of other things!
* Installation time is based upon [TravisCI](https://travis-ci.org/charlesportwoodii/CiiMS) builds
Requirements ¶
Before installing CiiMS you'll need to have at minimum the following:
- PHP 5.5+
- Yii1 Requirements
- PHP CURL Extension
- PHP ZIP Extension
- PHP MCrypt Extension
All the dependencies and other requirements are managed through composer, and will be reported back to you when you run `
composer install`
.
Recommendations ¶
The following extensions/applications are recommended to improve performance.
Support ¶
If you require support, submit a Github issue and I'll look into it as soon as I can.
How Can I Contribute? ¶
We <3 Contributers!
- Submit a detailed bug report
- Implement a new feature
- Fix a bug
- Write additional unit & functional tests
- Translate CiiMS into your favorite/local language
- Create dashboard cards
- Create themes
License ¶
MIT LICENSE Copyright (c) 2011-2015 Charles R. Portwood II
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
i18n
How about multiple languages support?
i18n
@dzio,
Content will support it since that is stored in the db, but the default template doesn't support it. I haven't looked much into i18n(), but assuming you had the translations I don't think it would be too difficult to add it to the default theme.
Demo error
NOTE: The demo is not working, gives this error
ContentController cannot find the requested view "all".
Demo Error
@mdomba,
The theme was changed to an incorrect value - the demo is now back up.
UTF
any reason to not use utf-8?
UTF8
No. Are you referring to the database using latin. That's just what the MySQL 5.5 default is nowadays. I'm sure if you that support it would not be difficult to modify the installer to support it.
Or are you referring to something else?
UTF
Yes, I am referring to the database. Also i did some tests with spanish (on line demo) and this has resulted in some weird characters.
UTF8 Update
@abajja
I've updated the demo to use utf8_unicode_ci instead of the MySQL default of latin1.
I've also updated the installer to install using utf8_uncide. I tested it with a few spanish characters and didn't see anything weird, but I don't have a great test case for it. Can you let me know if those changes work for you?
UTF
The problem of weird characters still remains when you preview the title.
content > New Post > fill in title ="Berlín redobla su presión a Draghi y enfría las expectativas sobre el BCE"
and the others inputs.
Finally click Preview button.
UTF8
I had missed a field in the conversion. When I save/preview both the title on the demo now I see
Berlín redobla su presión a Draghi y enfría las expectativas sobre el BCE
Without any weird characters.
logged in as admin in demo, very little content - where is admin panel?
I went to the demo site & logged in as admin/admin but I see nothing but 1 default post. I can't find an admin panel link or really any enabled link other than that one past & and an "uncategorized" category displaying that same one post. Is the demo messed up or am I being stupid?
Admin Panel
Right now there isn't a link in the sidebar.
The link to the admin panel is:
~~~
ciims.erianna.com/admin
~~~
Admin panel 404 error
it throws a 404 error when login
Demo
The demo has been reset.
Man I love u!:)
It is very good phundament to start application with!
Thank u a lot for your work.
But it would be greate to have menu management..
Menu Management
@sl1p,
Menu management was never one of the original requirements for CiiMS (I decided to do menu management by hand since I rarely if ever change it on my blog) which is why it wasn't implemented in the current build. That being said I have no opposition to implementing it within the framework itself.
If you'd like to see it added to the framework I'd encourage you to submit a Github Issue - that way I can get a better idea of what you'd like to see in the implementation.
Thanks for the feature suggestion! =)
FACEBOOK integration
how can i exactly configure the comments and likes to be integrated with facebook? if this will be integrated will the comments be counted in the admin panel?
Facebook Integration
@Ghastly,
If you use hybrid auth ( described here in the README https://github.com/charlesportwoodii/CiiMS#hybridauth) users can log in with their facebook id's. Any comments they make will show up in the admin panel.
Id you want to provide visual proof of such, you can alter the comment form to display some visual representation that the post came from a facebook user. How you choose to do that is up to.
Better categories management needed
Hi,
Why do you not use a nested tree as categories management.
This is what i used in my tiny paypal shop :
tiny-paypal-shop extension
Online demo:
manyshoes
user: admin
password: admin
and go to "manage menu"
Also i think each "post" should correspond to a language section (in the case of a multilanguage website) (look at CGettextFile
Many warning in installation
install.php, line 510. Index 4 doesn't exist
echo '' . ($v[1] ? 'OK' : (isset($v[2]) ? $v[2] : 'Error')) .'';
Replace $v[4] by $v[3]
Impossible to create admin......
table 'user'
size of password must be 128 and not 64
set default values for lastname and firstname
Have you test your code ?
Installer Issues
@Michel Bobillier,
While I've tested the items I have created I cannot say whether any changes made by other contributes have been tested - there have been a few changes to the installation script since I last messed with it, so I would have to review it to be certain to see if there are any issues
My recommendation for you is to throttle back your error_reporting level. Given that the installer is meant solely to get you going, and is, for all intensive purposes nothing more than config file creator, there's no reason why you should run PHP in such a way that it crashes on a E_NOTICE.
The install script was meant as a dead simple way to get the app up in running if you didn't want to generate your own config file (which you are more than welcome to do). In the future I'm planning on improving the script, but up until now I haven't had much time to do so. Thank you for the constructive criticism.
Using cache
Hi,
I've just installed CiiMS in my local, looks very elegant, however isn't clear to me if I should use simultaneously CiiMemCache and CiiApcCache to improve the performance. Can you give me a suggestion?
Thanks.
Using Cache
My recommendation would configure your site to use CiiMemCache, and allow APCCache to do bytelevel caching. Currently only the CacheComponent is used, so you can simultaneously use both CiiMemCache and CiiAPCCache at the same time via the config file - but APC will cache bytecode if you have it configured server.
PHP 5.3.1+
Why do you require PHP 5.3.1+ ?
PHP 5.3.1+
@Web Guru,
That may be a doc error. I don't recall off the top of my head if there is any PHP 5.3+ specific code in the codebase. Presently the installer checks for PHP 5.1+ and I'm willing to lean towards what is actually in the installer rather than what I wrote for the docs.
Give it a shot. It should work just fine. I personally though have never run it on PHP 5.1+, but I don't see any reason why it wouldn't just work out of the box.
performancr
@Charles R. Portwood II
thanks for your feedback
since performance is most important for this cms
have you done any benchmark?
have you used it with high traffic websites?
Site Performance
@Web Guru,
Benchmarking
Yes, I have done benchmarking - but benchmarking is very subjective from a server standpoint. CiiMS can be configured to work with many different PHP configurations and server configurations.
For everything below, my setup is as follows:
On my own VPS, I've run simulations upwards of 500 users for 10 minutes and didn't see any issues. Additionally, those simulations don't take into account the aggressive caching CiiMS provides. When trying to max out the application, I usually run into issues either at the network layer or at the OS level - simply not having the resources to send the data out. It's not perfect, but I haven't hit an application bottleneck yet under this current configuration.
As I said before though, any benchmark test is going to vary with the server configuration you have setup. A beefier server will run CiiMS better than a slim VPS or shared hosting.
You can see the webpage performance of my personal site running CiiMS in regards to caching and load time. Again, this is very specific to my VPS server configuration and themeage.
High Traffic.
I normally get about 500 visitors a month to my personal site running CiiMS, so no, I haven't run it on any high traffic sites. That being said I've been running my blog for <= 6 months.
You're more than welcome to run your own simulations and determine if CiiMS will be the right tool for you. It might not be, and that's ok. There's other things that can do the same job. If it is though, I'd like to hear about it. =)
Installation
@Charles R. Portwood II
initial performance testing results looks good. i will do more testing my self, but i need some time
I have started the installation and here is my notes
(installing on Windows)
1- in the generated main.php at the end of the yiiPath parameter extra "\" is added and caused the application not to work, i had to remove it manually
see below
'yiiPath' => 'C:/installed_cms/UniServer_8_7_3/www/yii/framework/\',
after fixing the above issue the site home page is running fine, but when clicking on "Read More" button an error is generated
URL visited
http://localhost:88/yii/demos/ciims/my-first-post
Below is the stack trace
The error is at line below
i guess findByAttributes returns null so "value" property cannot be read
$key = dirname(FILE) . '/../../themes/' . $theme . '/views/content/' .ContentMetadata::model()->findByAttributes(array('content_id'=>$id, 'key'=>'view'))->value . '.php';
PHP notice Trying to get property of non-object C:\installed_cms\UniServer_8_7_3\www\yii\demos\ciims\protected\controllers\ContentController.php(16) 04 { 05 06 /** 07 * Base filter, allows logged in and non-logged in users to cache the page 08 */ 09 public function filters() 10 { 11 $id = Yii::app()->getRequest()->getQuery('id'); 12 if ($id != NULL) 13 { 14 $lastModified = Yii::app()->db->createCommand("SELECT UNIX_TIMESTAMP(GREATEST((SELECT IFNULL(MAX(updated),0) FROM content WHERE id = {$id} AND vid = (SELECT MAX(vid) FROM content AS content2 WHERE content2.id = content.id)), (SELECT IFNULL(MAX(updated), 0) FROM comments WHERE content_id = {$id})))")->queryScalar(); 15 $theme = Cii::get(Configuration::model()->findByAttributes(array('key'=>'theme'))->value, 'default'); 16 $key = dirname(__FILE__) . '/../../themes/' . $theme . '/views/content/' .ContentMetadata::model()->findByAttributes(array('content_id'=>$id, 'key'=>'view'))->value . '.php'; 17 18 if ($key && file_exists($key)) 19 $lastModified = filemtime($key) >= $lastModified ? filemtime($key) : $lastModified; 20 21 $eTag = $this->id . $this->action->id . $id . Cii::get(Yii::app()->user->id, 0) . $lastModified; 22 23 return array( 24 array( 25 'CHttpCacheFilter + index', 26 'cacheControl'=>Cii::get(Yii::app()->user->id) == NULL ? 'public' : 'private' .', no-cache, must-revalidate', 27 'etagSeed'=>$eTag 28 ), Stack Trace #0 + C:\installed_cms\UniServer_8_7_3\www\yii\framework\yiilite.php(3378): ContentController->filters() #1 + C:\installed_cms\UniServer_8_7_3\www\yii\framework\yiilite.php(1725): CController->run("index") #2 + C:\installed_cms\UniServer_8_7_3\www\yii\framework\yiilite.php(1645): CWebApplication->runController("content/index/id/1") #3 + C:\installed_cms\UniServer_8_7_3\www\yii\framework\yiilite.php(1170): CWebApplication->processRequest() #4 – C:\installed_cms\UniServer_8_7_3\www\yii\demos\ciims\index.php(18): CApplication->run() 13 exit(); 14 } 15 16 $ciimsConfig = require_once($config); 17 require_once((string)$ciimsConfig['params']['yiiPath'].'yiilite.php'); 18 Yii::createWebApplication($config)->run();
Install
@Web Guru,
I am aware of the Windows install issue, however I haven't had time recently to re-factor it for Windows. It's on my TODO list for CiiMS once I get a Windows box I can throw a LAMP install on.
For the second one. Throttle back your error_reporting so that it doesn't die on E_NOTICE. You can file a bug in Github for throwing an E_NOTICE on that variable if you'd like.
all link got to page not found
I inslalled yiic completely and i see main page:
>
Blogroll
My First Blog Post
..
ans i see sidebar pabel in left site, menu in top(blog, admin)
but when i click on any link(login, admin, ...)
I get Error same this(for login):
> Not Found : The requested URL /testblog/login was not found on this server.
what can i do?
Page Not Found
@Reza,
CiiMS doesn't come with a .htaccess file for Apache. Does Apache have mod_rewrite enabled? Did you create a .htaccess file in the root directory of CiiMS?
@Charles R. Portwood II
I dont have any .htaccess file,( i have one , only in framework folder)
and mod_rewrit, enabled also!
modal with form
How can i possible embed the form in the modal and execute action in button click using this bootstrap
Model in Form
@ghastly,
Can you ask your question in another way? What are your trying to accomplish?
re:
@charles
I have a form. Same CRUD structure with your Categories in the admin panel. But i want my form to be presented in modal.
could not connect to db
The cms looks good.
I followed the instractions for installation
but at the db connect whet my put username, pass, db and host
it says:
The requested URL /CiiMS-master/migrate was not found on this server.
what could prevent from migrating the db
could not connect to db
@hajdar,
Sounds like you're using apache without mod_rewrite enabled for your vHost. Make sure that mod_rewrite is enabled and that your vhost has
`
AllowOverride All`
to enable the .htaccess file.database connection error solution
Hi everyone, inorder to get the installer to work, make sure you have an .htaccess in your webroot. Here is what I used for mine:
Options +FollowSymLinks
# remove www RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css SetOutputFilter DEFLATE ExpiresActive on ExpiresByType image/gif "access plus 1 day" ExpiresByType image/jpeg "access plus 1 day" ExpiresByType image/png "access plus 1 day" ExpiresByType text/css "access plus 1 day" ExpiresByType text/js "access plus 1 day" ExpiresByType text/javascript "access plus 1 day" ExpiresByType application/javascript "access plus 1 day" ExpiresByType application/x-javascript "access plus 1 day" ExpiresDefault "access plus 1 day"AddDefaultCharset UTF-8
RewriteEngine on
CiiMS 2 Beta Now Available
CiiMS 2 beta is now available for download on Github. A full list of features and improvements can be found on my blog.
Install as a module?
This looks really fantastic - I'd like to incorporate it into my own app. Can I install just the blog functionality as a module?
RE: Install as a module?
@Todd Anstis,
Thanks! CiiMS is intended to be installed as it's own application, and cannot be installed as a module. If you want CiiMS to run at example.com/blog or blog.example.com you can configure your web server to do so. If you want a tighter integration with an existing app, you can configure your application to talk to the CiiMS API.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.