{"id":13669437,"url":"https://github.com/sdebacker/TypiCMS","last_synced_at":"2025-04-27T04:33:07.324Z","repository":{"id":15136147,"uuid":"17863394","full_name":"sdebacker/TypiCMS","owner":"sdebacker","description":"Multilingual CMS built with Laravel 4.2","archived":false,"fork":false,"pushed_at":"2021-10-22T07:04:09.000Z","size":25217,"stargazers_count":476,"open_issues_count":11,"forks_count":119,"subscribers_count":61,"default_branch":"master","last_synced_at":"2024-08-02T08:08:12.858Z","etag":null,"topics":["cms","laravel","multilingual"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Homebrew/homebrew-gui","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sdebacker.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-18T11:30:32.000Z","updated_at":"2024-07-22T14:45:33.000Z","dependencies_parsed_at":"2022-09-13T10:41:07.168Z","dependency_job_id":null,"html_url":"https://github.com/sdebacker/TypiCMS","commit_stats":null,"previous_names":[],"tags_count":67,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdebacker%2FTypiCMS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdebacker%2FTypiCMS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdebacker%2FTypiCMS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdebacker%2FTypiCMS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sdebacker","download_url":"https://codeload.github.com/sdebacker/TypiCMS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224060315,"owners_count":17248990,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","laravel","multilingual"],"created_at":"2024-08-02T08:01:13.485Z","updated_at":"2024-11-11T06:30:23.950Z","avatar_url":"https://github.com/sdebacker.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"This repository is deprecated, please use the latest [TypiCMS](https://github.com/TypiCMS/Base).\n\n# TypiCMS for Laravel 4.2\n\n[![Join the chat at https://gitter.im/sdebacker/TypiCMS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/sdebacker/TypiCMS?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://travis-ci.org/sdebacker/TypiCMS.svg?branch=master)](https://travis-ci.org/sdebacker/TypiCMS)\n[![Latest Stable Version](https://poser.pugx.org/sdebacker/typicms/v/stable.svg)](https://packagist.org/packages/sdebacker/typicms)\n[![License](https://poser.pugx.org/sdebacker/typicms/license.svg)](https://packagist.org/packages/sdebacker/typicms)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/sdebacker/TypiCMS/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/sdebacker/TypiCMS/?branch=master)\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/5c96a56f-2006-4911-bf7c-d9afad35db5a/mini.png)](https://insight.sensiolabs.com/projects/5c96a56f-2006-4911-bf7c-d9afad35db5a)\n\nTypiCMS is a multilingual content management system built with [Laravel 4.2](http://laravel.com).\n[Bower](http://bower.io) and [gulp](http://gulpjs.com) are used for asset management and the user interface is built with [Bootstrap 3](http://getbootstrap.com) with [Less](http://lesscss.org).\n\n## Table of contents\n\n- [Features](#features)\n- [Requirements](#requirements)\n- [Installation](#installation)\n  - [Quick installation](#quick-installation)\n  - [Manual installation](#manual-installation)\n  - [Bower \u0026 Gulp](#bower--gulp)\n  - [Configuration](#configuration)\n- [Modules](#modules)\n  - [Pages](#pages)\n  - [Menus](#menus)\n  - [Projects](#projects)\n  - [Categories](#categories)\n  - [Tags](#tags)\n  - [Events](#events)\n  - [News](#news)\n  - [Contacts](#contacts)\n  - [Partners](#partners)\n  - [Files](#files)\n  - [Galleries](#galleries)\n  - [Users and groups](#users-and-groups)\n  - [Blocks](#blocks)\n  - [Translations](#translations)\n  - [Sitemap](#sitemap)\n  - [Settings](#settings)\n  - [History](#history)\n- [Facades](#facades)\n- [Artisan commands](#artisan-commands)\n- [Roadmap](#roadmap)\n- [Contributing](#contributing)\n- [Testing](#testing)\n- [Licence](#licence)\n\n## Features\n\n### URLs\n\nThis kind of URLs are managed by the CMS:\n\n**Modules:**\n\n* /en/events/slug-in-english\n* /fr/evenements/slug-en-francais\n\n**Pages:**\n\n* /en/parent-pages-slug-en/subpage-slug-en/page-slug-en\n* /fr/parent-pages-slug-fr/subpage-slug-fr/page-slug-fr\n\n## Requirements\n\n- PHP \u003e= 5.4.0\n- MCrypt PHP Extension\n- Memcached or Redis or APC\n\n## Installation\n\n### Quick installation\n\n1. Install [Node.js](http://nodejs.org), [Bower](http://bower.io) and [gulp](http://gulpjs.com)\n2. Create an empty MySQL database\n3. Create a new project\n\n   ```\n   composer create-project sdebacker/typicms mywebsite\n   ```\n4. Enter the newly created folder\n\n   ```\n   cd mywebsite\n   ```\n5. DB migration and seed, user creation, npm installation, bower installation and directory rights\n\n   ```\n   php artisan typicms:install\n   ```\n6. Go to http://mywebsite.local/admin and log in.\n\n### Manual installation\n\n1. Create an empty database\n2. Download TypiCMS\n\n   ```\n   git clone https://github.com/sdebacker/TypiCMS.git mywebsite\n   ```\n3. Enter the newly created folder\n\n   ```\n   cd mywebsite\n   ```\n4. Install dependencies with [Composer](https://getcomposer.org/doc/00-intro.md)\n\n   ```\n   composer install\n   ```\n5. Set a new encryption key\n\n   ```\n   php artisan key:generate\n   ```\n6. Change the cache prefix in app/config/cache.php\n\n   ```\n   php artisan cache:prefix yourCachePrefix\n   ```\n7. Rename .env.example to .env\n\n   ```\n   mv .env.example .env\n   ```\n8. Fill in your database credentials in .env\n\n9. Migrate and seed the database\n\n   ```\n   php artisan migrate --seed\n   ```\n10. Set permissions\n\n    ```\n    chmod -R 777 app/storage\n    chmod -R 777 public/uploads\n    ```\n11. Go to http://mywebsite.local/admin and log in:\n\n   * email: ```admin@example.com```\n   * password: ```admin```\n\n### Bower \u0026 Gulp\n\nIn order to work on assets, you need to install [Node.js](http://nodejs.org), [Bower](http://bower.io) and [gulp](http://gulpjs.com), then cd to your website folder and run these commands:\n\n1. Install bower packages according to bower.json (directory app/assets/components)\n\n   ```\n   bower install\n   ```\n2. Install gulp packages according to gulpfile.js (directory node_modules)\n\n   ```\n   npm install\n   ```\n3. Compile admin and public assets\n\n   ```\n   gulp\n   ```\n\n### Configuration\n\n1. Set available locales and the default locale in app/config/app.php\n2. Cache driver is set to memcached. You can change it to another taggable cache system such as redis in app/config/cache.php\n\n## Modules\n\n### Pages\n\nPages are nestable with drag and drop, on drop, URIs are generated and saved in the database. A page has routes for each translation.\n\n### Menus\n\nEach menu has nestable entries. One entry can be linked to a module, page, URI or URL.\nYou can get a HTML formated menu with ``` Menus::build('menuname') ```.\nAn icon can easily be added to a menu item by filling the icon class field.\n\n### Projects\n\nProjects have categories, projects URLs follows this pattern: /en/projects/category-slug/project-slug\n\n### Categories\n\nCategories have many projects.\n\n### Tags\n\nTags are linked to projects and use the [Selectize](https://brianreavis.github.io/selectize.js/) jQuery plugin.\nThe tags moudle has many to many polymorphic relations so it could easily be linked to other modules.\n\n### Events\n\nEvents have starting and ending dates.\n\n### News\n\nSimple news module with linked files/images galleries.\n\n### Contacts\n\nFrontend contact form and admin side records management.\n\n### Partners\n\nA partner has a logo, website URL, title and body content.\n\n### Files\n\nThe files module allows you to upload multiple files. It uses [DropzoneJS](http://www.dropzonejs.com) to upload them.\nThumbnails are generated on the fly with [Croppa](https://github.com/BKWLD/croppa).\n\n### Galleries\n\nYou can create as many galleries as you want, each gallery has many files.\nGalleries are linkable to any module item through a polymorphic many to many relation, for now only the news module is properly set up to support galleries.\n\n### Users and groups\n\n[Sentry 2](https://cartalyst.com/manual/sentry) is used to manage users, groups and permissions.\nUser registration can be enabled through the settings panel (/admin/settings).\n\n### Blocks\n\nBlocks are useful to display custom content in your views.\nYou can get the content of a block with ``` Blocks::build('blockname') ```.\n\n### Translations\n\nTranslations can be stored in the database through the admin panel (/admin/translations).\n\nYou can call DB translation everywhere with ``` Lang::get('db.Key') ```, ``` trans('db.Key') ``` or ``` @lang('db.Key') ```.\n\n### Sitemap\n\nRoute sitemap.xml generates a sitemap file in XML format.\nTo add modules to the site map configure app/config/sitemap.php.\n\n### Settings\n\nChange website title, and other options trough the settings panel. Settings are saved in the database.\n\n### History\n\nHistory table records changes and 25 latest records are displayed in the back office’s dashboard. Logged actions are *created*, *updated*, *deleted*, *set online* and *set offline*.\nIt works for all modules except users and groups.\n\n## Facades\n\nModules that have their own Facade: News, Events, Projects, Places, Partners, Galleries, Blocks, Files and Menus.\n\nIn your views, you can call for example ```News::latest(3)``` to get the three latest news.\nCheck available methods in each module's repository.\n\n## Artisan commands\n\nCommands are located in app/TypiCMS/Commands\n\n* Initialisation of TypiCMS\n\n  ```\n  php artisan typicms:install\n  ```\n\n* Set cache key prefix in app/config/cache.php\n\n  ```\n  php artisan cache:prefix yourCachePrefix\n  ```\n\n* Initial migration and seed\n\n  ```\n  php artisan typicms:database\n  ```\n\n## Roadmap\n\n* Improve user interface\n* Implement modules as packages\n* Build more tests\n\n## Contributing\n\nFeel free to fork and make pull requests directly on the master branch!\nTypiCMS follows the [PSR-2](http://www.php-fig.org/psr/psr-2/) standard.\n\nThanks to [elvendor](https://github.com/elvendor) and [jekjek](https://github.com/jekjek) for their contributions!\n\n## Testing\n\nSome admin controllers are actually tested, more tests needed.\n\n## License\n\nTypiCMS is an open-source software licensed under the [MIT license](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdebacker%2FTypiCMS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsdebacker%2FTypiCMS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdebacker%2FTypiCMS/lists"}