Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/norberttech/aceeditor-bundle
Bundle that integrate excellent JavaScript ace editor into Symfony2 Form.
https://github.com/norberttech/aceeditor-bundle
Last synced: about 6 hours ago
JSON representation
Bundle that integrate excellent JavaScript ace editor into Symfony2 Form.
- Host: GitHub
- URL: https://github.com/norberttech/aceeditor-bundle
- Owner: norberttech
- License: mit
- Created: 2013-03-16T21:59:27.000Z (over 11 years ago)
- Default Branch: 5.x
- Last Pushed: 2024-11-06T20:05:34.000Z (7 days ago)
- Last Synced: 2024-11-06T21:19:24.641Z (6 days ago)
- Language: PHP
- Size: 2.12 MB
- Stars: 27
- Watchers: 5
- Forks: 36
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Ace Editor Bundle
![Tests](https://github.com/norberttech/aceeditor-bundle/workflows/Tests/badge.svg)
This bundle provides an [Ace editor](https://ace.c9.io/) integration for the Symfony Form component by
automatically registering the `ace_editor` form type.## Compatibility
Check the table below to check if your PHP and symfony versions are supported.
| PHP version(s) | Symfony version(s) | AceEditorBundle version |
| --------------- | ------------------- | ------------------------------------------------------------------ |
| >= 8.1 | ^5.4 \| ^6.4 | [^5.0](https://github.com/norberttech/aceeditor-bundle/tree/5.x) |For older unsupported versions check the [releases](https://github.com/norberttech/aceeditor-bundle/releases) page.
## Installation
To use this bundle with the latest Symfony version install it using [Composer](https://getcomposer.org/):
```sh
composer require norberttech/aceeditor-bundle ^5.0
```If you're using [symfony/flex](https://symfony.com/doc/current/setup/flex.html) then the
bundle will be automatically registered for you, otherwise you need to register the
bundle yourself:```php
// app/config/bundles.phpreturn [
// ...
AceEditorBundle\AceEditorBundle::class => ['all' => true],
// ...
];
```## Usage
```php
use AceEditorBundle\Form\Extension\AceEditor\Type\AceEditorType;/** @var $builder \Symfony\Component\Form\FormBuilderInterface */
$builder->add('description', AceEditorType::class, [
'wrapper_attr' => [], // aceeditor wrapper html attributes.
'width' => '100%',
'height' => 250,
'font_size' => 12,
'mode' => 'ace/mode/html', // every single default mode must have ace/mode/* prefix
'theme' => 'ace/theme/monokai', // every single default theme must have ace/theme/* prefix
'tab_size' => null,
'read_only' => null,
'use_soft_tabs' => null,
'use_wrap_mode' => null,
'show_print_margin' => null,
'show_invisibles' => null,
'highlight_active_line' => null,
'options_enable_basic_autocompletion' => true,
'options_enable_live_autocompletion' => true,
'options_enable_snippets' => false
'keyboard_handler' => null
]);
```The above code will create a textarea element that will be replaced with an ace editor instance.
The textarea value is updated on every change done in ace editor.## Configuration
> This section is optional, you dont need to configure anything and the form type will still work perfectly fine.
Default configuration:
```
# app/config/config.ymlace_editor:
base_path: "vendor/ace" # notice! this is starting from your project's public web root, typically: `%kernel.project_dir%/public`!
autoinclude: true
debug: false # sources not minified, based on kernel.debug but it can force it
noconflict: true # uses ace.require instead of require
```You can also include Ace editor directly from a location that follow the same directory layout than
`https://github.com/ajaxorg/ace-builds`, all you need to do is setting `base_path` option:
```
ace_editor:
base_path: "http://rawgithub.com/ajaxorg/ace-builds/master"
```## Ace editor assets
Unless you do some configuration, this bundle expects Ace editor files to be in `public/vendor/ace`.
You can download any ace editor build version from the [upstream repository](https://github.com/ajaxorg/ace/releases) and drop its contents in
the corresponding folder.```sh
ACE_VERSION=1.32.3 # replace with whatever ace version you needcd /public
mkdir vendor && cd vendor
wget https://github.com/ajaxorg/ace-builds/archive/v${ACE_VERSION}.tar.gz
tar -xvf v${ACE_VERSION}.tar.gz
mv ace-${ACE_VERSION} ace
rm v${ACE_VERSION}.tar.gz
```