本文整理汇总了PHP中Drupal\editor\Entity\Editor::load方法的典型用法代码示例。如果您正苦于以下问题:PHP Editor::load方法的具体用法?PHP Editor::load怎么用?PHP Editor::load使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Drupal\editor\Entity\Editor
的用法示例。
在下文中一共展示了Editor::load方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildForm
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state, FilterFormat $filter_format = NULL)
{
// Add AJAX support.
$form['#prefix'] = '<div id="video-embed-dialog-form">';
$form['#suffix'] = '</div>';
// Ensure relevant dialog libraries are attached.
$form['#attached']['library'][] = 'editor/drupal.editor.dialog';
// Simple URL field and submit button for video URL.
$form['video_url'] = ['#type' => 'textfield', '#title' => $this->t('Video URL'), '#required' => TRUE, '#default_value' => $this->getUserInput($form_state, 'video_url')];
// If no settings are found, use the defaults configured in the filter
// formats interface.
$settings = $this->getUserInput($form_state, 'settings');
if (empty($settings) && ($editor = Editor::load($filter_format->id()))) {
$editor_settings = $editor->getSettings();
$plugin_settings = NestedArray::getValue($editor_settings, ['plugins', 'video_embed', 'defaults', 'children']);
$settings = $plugin_settings ? $plugin_settings : [];
}
// Create a settings form from the existing video formatter.
$form['settings'] = Video::mockInstance($settings)->settingsForm([], new FormState());
$form['settings']['#type'] = 'fieldset';
$form['settings']['#title'] = $this->t('Settings');
$form['actions'] = ['#type' => 'actions'];
$form['actions']['save_modal'] = ['#type' => 'submit', '#value' => $this->t('Save'), '#submit' => [], '#ajax' => ['callback' => '::ajaxSubmit', 'event' => 'click', 'wrapper' => 'video-embed-dialog-form']];
return $form;
}
示例2: testExistingFormat
/**
* Tests StylesCombo settings for an existing text format.
*/
function testExistingFormat()
{
$ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
$default_settings = $ckeditor->getDefaultSettings();
$this->drupalLogin($this->adminUser);
$this->drupalGet('admin/config/content/formats/manage/' . $this->format);
// Ensure an Editor config entity exists, with the proper settings.
$expected_settings = $default_settings;
$editor = Editor::load($this->format);
$this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
// Case 1: Configure the Styles plugin with different labels for each style,
// and ensure the updated settings are saved.
$this->drupalGet('admin/config/content/formats/manage/' . $this->format);
$edit = ['editor[settings][plugins][stylescombo][styles]' => "h1.title|Title\np.callout|Callout\n\n"];
$this->drupalPostForm(NULL, $edit, t('Save configuration'));
$expected_settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.callout|Callout\n\n";
$editor = Editor::load($this->format);
$this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
// Case 2: Configure the Styles plugin with same labels for each style, and
// ensure that an error is displayed and that the updated settings are not
// saved.
$this->drupalGet('admin/config/content/formats/manage/' . $this->format);
$edit = ['editor[settings][plugins][stylescombo][styles]' => "h1.title|Title\np.callout|Title\n\n"];
$this->drupalPostForm(NULL, $edit, t('Save configuration'));
$this->assertRaw(t('Each style must have a unique label.'));
$expected_settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.callout|Callout\n\n";
$editor = Editor::load($this->format);
$this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
}
示例3: testTextFormatIntegration
/**
* Tests text format removal or disabling.
*/
public function testTextFormatIntegration()
{
// Create an arbitrary text format.
$format = FilterFormat::create(['format' => Unicode::strtolower($this->randomMachineName()), 'name' => $this->randomString()]);
$format->save();
// Create a paired editor.
Editor::create(['format' => $format->id(), 'editor' => 'unicorn'])->save();
// Disable the text format.
$format->disable()->save();
// The paired editor should be disabled too.
$this->assertFalse(Editor::load($format->id())->status());
// Re-enable the text format.
$format->enable()->save();
// The paired editor should be enabled too.
$this->assertTrue(Editor::load($format->id())->status());
// Completely remove the text format. Usually this cannot occur via UI, but
// can be triggered from API.
$format->delete();
// The paired editor should be removed.
$this->assertNull(Editor::load($format->id()));
}
示例4: testLoadingWithoutInternalButtons
/**
* Tests presence of essential configuration even without Internal's buttons.
*/
protected function testLoadingWithoutInternalButtons()
{
// Change the CKEditor text editor configuration to only have link buttons.
// This means:
// - 0 buttons are from \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal
// - 2 buttons are from \Drupal\ckeditor\Plugin\CKEditorPlugin\DrupalLink
$filtered_html_editor = Editor::load('filtered_html');
$settings = $filtered_html_editor->getSettings();
$settings['toolbar']['rows'] = [0 => [0 => ['name' => 'Links', 'items' => ['DrupalLink', 'DrupalUnlink']]]];
$filtered_html_editor->setSettings($settings)->save();
// Even when no buttons of \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal
// are in use, its configuration (Internal::getConfig()) is still essential:
// this is configuration that is associated with the (custom, optimized)
// build of CKEditor that Drupal core ships with. For example, it configures
// CKEditor to not perform its default action of loading a config.js file,
// to not convert special characters into HTML entities, and the allowedContent
// setting to configure CKEditor's Advanced Content Filter.
$this->drupalLogin($this->normalUser);
$this->drupalGet('node/add/article');
$editor_settings = $this->getDrupalSettings()['editor']['formats']['filtered_html']['editorSettings'];
$this->assertTrue(isset($editor_settings['customConfig']));
$this->assertTrue(isset($editor_settings['entities']));
$this->assertTrue(isset($editor_settings['allowedContent']));
$this->assertTrue(isset($editor_settings['disallowedContent']));
}
示例5: assertCKEditorLanguage
/**
* Assert that CKEditor picks the expected language when French is default.
*
* @param string $langcode
* Language code to assert for. Defaults to French. That is the default
* language set in this assertion.
*/
protected function assertCKEditorLanguage($langcode = 'fr')
{
// Set French as the site default language.
ConfigurableLanguage::createFromLangcode('fr')->save();
$this->config('system.site')->set('default_langcode', 'fr')->save();
// Reset the language manager so new negotiations attempts will fall back on
// French. Reinject the language manager CKEditor to use the current one.
$this->container->get('language_manager')->reset();
$this->ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
// Test that we now get the expected language.
$editor = Editor::load('filtered_html');
$settings = $this->ckeditor->getJSSettings($editor);
$this->assertEqual($settings['language'], $langcode);
}
示例6: testCssFiles
/**
* Tests the iframe instance CSS files of plugins.
*/
function testCssFiles()
{
$this->manager = $this->container->get('plugin.manager.ckeditor.plugin');
$editor = Editor::load('filtered_html');
// Case 1: no CKEditor iframe instance CSS file.
$this->assertIdentical(array(), $this->manager->getCssFiles($editor), 'No iframe instance CSS file found.');
// Enable the CKEditor Test module, which has the LlamaCss plugin and
// clear the editor manager's cache so it is picked up.
$this->enableModules(array('ckeditor_test'));
$this->manager = $this->container->get('plugin.manager.ckeditor.plugin');
$settings = $editor->getSettings();
// LlamaCss: automatically enabled by adding its 'LlamaCSS' button.
$settings['toolbar']['rows'][0][0]['items'][] = 'LlamaCSS';
$editor->setSettings($settings);
$editor->save();
// Case 2: CKEditor iframe instance CSS file.
$expected = array('llama_css' => array(drupal_get_path('module', 'ckeditor_test') . '/css/llama.css'));
$this->assertIdentical($expected, $this->manager->getCssFiles($editor), 'Iframe instance CSS file found.');
}
示例7: assertSavedMaxDimensions
/**
* Asserts whether the saved maximum dimensions equal the ones provided.
*
* @param string $width
* The expected width of the uploaded image.
* @param string $height
* The expected height of the uploaded image.
*
* @return bool
*/
protected function assertSavedMaxDimensions($width, $height)
{
$image_upload_settings = Editor::load('basic_html')->getImageUploadSettings();
$expected = ['width' => $image_upload_settings['max_dimensions']['width'], 'height' => $image_upload_settings['max_dimensions']['height']];
$same_width = $this->assertEqual($width, $expected['width'], 'Actual width of "' . $width . '" equals the expected width of "' . $expected['width'] . '"');
$same_height = $this->assertEqual($height, $expected['height'], 'Actual height of "' . $height . '" equals the expected width of "' . $expected['height'] . '"');
return $same_width && $same_height;
}
示例8: testNewFormat
/**
* Tests configuring a text editor for a new text format.
*
* This test only needs to ensure that the basics of the CKEditor
* configuration form work; details are tested in testExistingFormat().
*/
function testNewFormat()
{
$this->drupalLogin($this->adminUser);
$this->drupalGet('admin/config/content/formats/add');
// Verify the "Text Editor" <select> when a text editor is available.
$select = $this->xpath('//select[@name="editor[editor]"]');
$select_is_disabled = $this->xpath('//select[@name="editor[editor]" and @disabled="disabled"]');
$options = $this->xpath('//select[@name="editor[editor]"]/option');
$this->assertTrue(count($select) === 1, 'The Text Editor select exists.');
$this->assertTrue(count($select_is_disabled) === 0, 'The Text Editor select is not disabled.');
$this->assertTrue(count($options) === 2, 'The Text Editor select has two options.');
$this->assertTrue((string) $options[0] === 'None', 'Option 1 in the Text Editor select is "None".');
$this->assertTrue((string) $options[1] === 'CKEditor', 'Option 2 in the Text Editor select is "CKEditor".');
$this->assertTrue((string) $options[0]['selected'] === 'selected', 'Option 1 ("None") is selected.');
// Name our fancy new text format, select the "CKEditor" editor and click
// the "Configure" button.
$edit = array('name' => 'My amazing text format', 'format' => 'amazing_format', 'editor[editor]' => 'ckeditor');
$this->drupalPostAjaxForm(NULL, $edit, 'editor_configure');
$filter_format = FilterFormat::load('amazing_format');
$this->assertFalse($filter_format, 'No FilterFormat config entity exists yet.');
$editor = Editor::load('amazing_format');
$this->assertFalse($editor, 'No Editor config entity exists yet.');
// Ensure the toolbar buttons configuration value is initialized to the
// default value.
$ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
$default_settings = $ckeditor->getDefaultSettings();
$expected_buttons_value = json_encode($default_settings['toolbar']['rows']);
$this->assertFieldByName('editor[settings][toolbar][button_groups]', $expected_buttons_value);
// Regression test for https://www.drupal.org/node/2606460.
$this->assertTrue(strpos($this->drupalSettings['ckeditor']['toolbarAdmin'], '<li data-drupal-ckeditor-button-name="Bold" class="ckeditor-button"><a href="#" class="cke-icon-only cke_ltr" role="button" title="bold" aria-label="bold"><span class="cke_button_icon cke_button__bold_icon">bold</span></a></li>') !== FALSE);
// Ensure the styles textarea exists and is initialized empty.
$styles_textarea = $this->xpath('//textarea[@name="editor[settings][plugins][stylescombo][styles]"]');
$this->assertFieldByXPath('//textarea[@name="editor[settings][plugins][stylescombo][styles]"]', '', 'The styles textarea exists and is empty.');
$this->assertTrue(count($styles_textarea) === 1, 'The "styles" textarea exists.');
// Submit the form to create both a new text format and an associated text
// editor.
$this->drupalPostForm(NULL, $edit, t('Save configuration'));
// Ensure a FilterFormat object exists now.
$filter_format = FilterFormat::load('amazing_format');
$this->assertTrue($filter_format instanceof FilterFormatInterface, 'A FilterFormat config entity exists now.');
// Ensure an Editor object exists now, with the proper settings.
$expected_settings = $default_settings;
$expected_settings['plugins']['stylescombo']['styles'] = '';
$editor = Editor::load('amazing_format');
$this->assertTrue($editor instanceof Editor, 'An Editor config entity exists now.');
$this->assertEqual($this->castSafeStrings($expected_settings), $this->castSafeStrings($editor->getSettings()), 'The Editor config entity has the correct settings.');
}
示例9: setMaxDimensions
/**
* Sets the maximum dimensions and saves the configuration.
*
* @param string|int $width
* The width of the image.
* @param string|int $height
* The height of the image.
*/
protected function setMaxDimensions($width, $height)
{
$editor = Editor::load('basic_html');
$image_upload_settings = $editor->getImageUploadSettings();
$image_upload_settings['max_dimensions']['width'] = $width;
$image_upload_settings['max_dimensions']['height'] = $height;
$editor->setImageUploadSettings($image_upload_settings);
$editor->save();
}