{"id":22862190,"url":"https://github.com/webforge-labs/cms","last_synced_at":"2025-06-24T08:03:28.012Z","repository":{"id":2093555,"uuid":"45695812","full_name":"webforge-labs/cms","owner":"webforge-labs","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-03T15:37:01.000Z","size":6700,"stargazers_count":1,"open_issues_count":14,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-18T00:39:41.046Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.ps-webforge.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webforge-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-06T17:14:43.000Z","updated_at":"2021-03-31T03:45:11.000Z","dependencies_parsed_at":"2023-01-13T13:30:16.173Z","dependency_job_id":null,"html_url":"https://github.com/webforge-labs/cms","commit_stats":null,"previous_names":[],"tags_count":141,"template":false,"template_full_name":null,"purl":"pkg:github/webforge-labs/cms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webforge-labs%2Fcms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webforge-labs%2Fcms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webforge-labs%2Fcms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webforge-labs%2Fcms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webforge-labs","download_url":"https://codeload.github.com/webforge-labs/cms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webforge-labs%2Fcms/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261632032,"owners_count":23187268,"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":[],"created_at":"2024-12-13T10:12:37.583Z","updated_at":"2025-06-24T08:03:27.983Z","avatar_url":"https://github.com/webforge-labs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cms\n\nthis repo contains the Webforge/CmsBundle and a symfony bundle (AppBundle) that allows self-tests \n\nThe \"core\" of the cms is in the Webforge\\CmsBundle (located in `src\\php\\Webforge\\CmsBundle`). The cms consists of this bundle and some components (see `src\\php`).\n\n## versioning\n\nThe npm package webforge-cms and the composer package webforge/cms will be always in sync in versioning. So some minor changes may only apply to the js package, to the php-package or to both of them.\n\n## testing\n\nphpunit\n\nand several javascript tests\n\nnpm test\n\n## Sponsoring\n\nA big thank you to [BrowserStack.com](https://www.browserstack.com) for sponsoring a free Live account, that allows us to test on Iphones and other devices.\n\n## changelog\n\n## BC Breaks 3.1.x\n\n- added resetMediaMetadata to MediaFileEntityInterface. If you are using the MediaFileEntityMetadata-Trait you're all good\n\n## BC Breaks for 3.0.x\n\n- symfony/symfony is now longer a dependency. You have to use symfony/flex and configure EVERYTHING on your own. (prepend config is no longer used)\n- the public folder is now www (not public)\n- construct CommonController with em and dc\n- Symfony\\Kernel was removed\n- CommonController is now an Symfony-AbstractController and therefore has narrower dependency injection: You need to refactor your controller code\n- [Read Upgrading to 3.0](docs/upgrading-to-3.0.x.md)\n\n\n## BC Breaks for 2.3.x\n\n- after serialization there will be no automatic flush (after each binary serialization) as before - this was slow as hell. You have call em-\u003eflush yourself\n- exif is now read with lsolesen/pel, not with php native anymore. This might have more or less failing cases for you\n- original image metadata (allthough with rotation-exif-data) wont be automatically rotated, because the physical file is not rotated as well, but thumbnails-meta will be rotated and images are physically rotated\n\n## BC Breaks for 2.2.x\n\n- you need php 7.2 to install\n- dependency symfony/symfony updated to 4.1\n- use phpunit 6.5.x\n- TestCaseTrait now uses the mockery trait, so you have to install mockery to 1.1.0 now \n\n## BC Breaks for 2.1.x\n\n- files uploaded to the media controller will overwrite existing files (but warnings will still be generated)\n\n## Upgrade to 2.0.x\n\n- [Read Upgrading to 2.0](docs/upgrading-to-2.0.x.md)\n- Update to Symfony 4.0\n\n## BC Breaks for 1.15.x\n\n- use PHPUnit 5.x.x\n- BlockExtender Interface has been changed to pass value of blocks-array by reference\n\n## BC Breaks for 1.14.x\n\n- MediaFileEntityInterface has two new methods: `setMediaMetadata` and `getMediaMetadata`\n- add this to your model.json for binaries `\"mediaMeta\": { \"type\": \"Object\", \"nullable\": true }`\n- use the trait: `Webforge\\CmsBundle\\Media\\MediaFileEntityMetadata` to implement the methods\n- generation of thumbnails with imagine is deprecated\n- thumbnails will be created with thumbor and therefore have no `width` and `height` per default (pass metadata_only: true to the configuration of the transformation to enable getting metadata)\n- add `cms.version` to your global twig variables\n\n\n## BC Breaks for 1.13.x\n\n- Dont add \\Knp\\Bundle\\MarkdownBundle\\KnpMarkdownBundle() to the appkernel. It will be added automatically\n- create a `etc/cms/blocktypes.json` file (containing one empty array sufficient)\n- split the `admin/config.js` into `etc/cms/blocktypes.json` and include it with: requirejs-json\n- Refactor `When I click on \"\" in context` to `When I click on \"\"`\n\n## BC Breaks for 1.12.x\n\n- change `site.url` into `cms.site.url` in global twig variables\n- change `site.title` into `cms.site.title` in global twig variables\n\n## BC Breaks for 1.11.x\n\n- Rename Webforge\\Common\\String into Webforge\\Common\\StringUtil (because of PHP 7.x)\n\n## BC Breaks for 1.7.x\n\n- A link in the CMS adds and activates the tab with one click (instead of two). So calling tabs.open() was changed. add and select will still work.\n\n## BC Breaks for 1.6.x\n\n- You need to provide the database parameters again (database_host, database_port, database_name, database_user, database_password)\n- You need to set `sidebar.activeGroup` in the base.html.twig template\n- You need to set `site.url` and `site.title` in the base.html.twig template\n- You need to set `cms.title` and (optional) `site.xsTitle` in the base.html.twig template (do this with a global twig extension: `Twig_Extension_GlobalsInterface`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebforge-labs%2Fcms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebforge-labs%2Fcms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebforge-labs%2Fcms/lists"}