Гобелен - кликните для возврата на главную
Не прошло и месяца а Фурмановская ЦРБ в очередной раз попала в историю. На этот раз сотрудница клеветала на пациентов, а именно огласку получил случай когда сотрудница назвала пациента алкашём.
Так почему бы не начать использовать обход блокировки YouTube при том что техническая возможность используя расширение nikolaevevge для браузера Mozilla Firefox уже появилась, а объем полезной(и не очень) информации на видеохостинге YouTube, по мнению некоторых диванных экспертов, меньше не стал.
Ровно 3 года назад произошло событие, которое подарило жителям планеты Змеля новый чистый праздник 6 апреля - в этот замечательный день земля забрала гнить негодяя и СПАМера Владимира Вольфовича Жириновского.
Как бы не обстояли дела в области культуры и IT-технологий, Самосвал писал статьи на связанные темы и планирует ещё написать.
На очередном конкурсе танцев, школьница отлично выступила.
Вот та самая информация: программа для продвижения канала YouTube, эта информация выложена уже несколько лет, при этом просмотров не много, а метод который описан в данном видео действительно помогает продвигать видео в YouTube.
Начал разбираться с информацией которая находится в HTTPS клиентском запросе рукопожатия.
Обратите внимание! Объект изображённый на гобилене может отличаться от общепринятого вида описанного объекта. Тут дело в том что художник видит именно так!
Tinymce написал: "A valid API key is required to continue using TinyMCE".
Сообщение "A valid API key is required to continue using TinyMCE" означает, что для использования редактора TinyMCE требуется действительный API-ключ. Это связано с тем, что TinyMCE, начиная с версии 5.10.0, требует API-ключа для доступа к облачным сервисам, таким как загрузка изображений, проверка орфографии и других функций, которые зависят от облачной инфраструктуры TinyMCE.
Как решить проблему:
Получите API-ключ:
Добавьте API-ключ в конфигурацию TinyMCE:
После получения ключа добавьте его в конфигурацию TinyMCE в вашем проекте. Пример:
tinymce.init({
selector: 'textarea', // Селектор для текстового поля
apiKey: 'ваш-api-ключ', // Ваш API-ключ
plugins: 'advlist autolink lists link image charmap print preview anchor',
toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help'
});
Проверьте лимиты использования:
Бесплатный план TinyMCE имеет ограничения на количество запросов. Если вы превысите лимит, вам нужно будет перейти на платный тариф.
Используйте локальные плагины (опционально):
Если вы не хотите использовать облачные функции TinyMCE, вы можете отключить их и использовать локальные плагины. Для этого удалите зависимость от API-ключа и настройте TinyMCE для работы без облачных сервисов.
Пример:
tinymce.init({
selector: 'textarea',
plugins: 'advlist autolink lists link image charmap print preview anchor',
toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help',
// Отключение облачных функций
images_upload_url: 'your-local-upload-endpoint', // Локальный эндпоинт для загрузки изображений
spellchecker_language: 'en',// Локальная проверка орфографии
});
Обновите TinyMCE:
Убедитесь, что вы используете последнюю версию TinyMCE, так как старые версии могут не поддерживать новые функции или иметь устаревшие конфигурации.
Если у вас возникнут дополнительные вопросы, обратитесь к документации TinyMCE или в поддержку TinyMCE.
В продолжении сообщения я передам текущие настройки tinyMCE при которых возникла ошибка API ключа(я привёл её выше). Поправьте пожалуйста настройки, при этом отключите только функции работа которых не возможна в отсутствии API ключа. Вот текущий JavaSript с настройками
<script>
tinymce.init({
selector: '.wysiwyg-editor', // Класс для всех редакторов
plugins: 'image media link code', // Плагины для изображений, видео и ссылок
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code',// Панель инструментов
images_upload_url: 'upload_image.php', // URL для загрузки изображений
automatic_uploads: true, // Автоматическая загрузка изображений
media_live_embeds: true, // Вставка видео (например, YouTube)
file_picker_types: 'image media', // Типы файлов для выбора
});
</script>
Чтобы отключить только те функции TinyMCE, которые требуют API-ключа, и оставить остальные настройки без изменений, нужно убрать облачные зависимости, такие как проверка орфографии (spellchecker) и другие функции, которые используют облачные сервисы TinyMCE. В вашем текущем конфиге таких функций нет, но если они появятся, их нужно будет отключить.
Вот исправленный код с комментариями:
<script>
tinymce.init({
selector: '.wysiwyg-editor', // Класс для всех редакторов
plugins: 'image media link code', // Плагины для изображений, видео и ссылок
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code', // Панель инструментов
images_upload_url: 'upload_image.php', // URL для загрузки изображений (локальный эндпоинт)
automatic_uploads: true, // Автоматическая загрузка изображений
media_live_embeds: true, // Вставка видео (например, YouTube)
file_picker_types: 'image media', // Типы файлов для выбора
// Отключение функций, требующих API-ключа
// Если вы используете spellchecker, его нужно отключить, так как он требует API-ключа
// spellchecker: false, // Раскомментируйте, если spellchecker включен
});
</script>
Что изменено:
Что осталось без изменений: все локальные функции (загрузка изображений, вставка медиа, ссылки и код) работают без API-ключа.
Если в будущем вы захотите добавить функции, требующие API-ключа (например, проверку орфографии), вам нужно будет получить API-ключ и добавить его в конфигурацию:
apiKey: 'ваш-api-ключ',
С предложенными настройками ошибка ключа осталась.
Если ошибка "A valid API key is required to continue using TinyMCE" сохраняется даже после отключения функций, требующих API-ключа, это может быть связано с тем, что TinyMCE по умолчанию пытается загрузить некоторые облачные ресурсы или использует плагины, которые зависят от API-ключа. Давайте полностью отключим все облачные зависимости и убедимся, что TinyMCE работает в полностью локальном режиме.
Исправленный код с отключением всех облачных зависимостей:
<script>
tinymce.init({
selector: '.wysiwyg-editor',//Класс для всех редакторов
plugins: 'image media link code',//Плагины для изображений, видео и ссылок
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code',//Панель инструментов
images_upload_url: 'upload_image.php',//URL для загрузки изображений (локальный эндпоинт)
automatic_uploads: true,//Автоматическая загрузка изображений
media_live_embeds: true,//Вставка видео (например, YouTube)
file_picker_types: 'image media',//Типы файлов для выбора
//Отключение всех облачных зависимостей
//1. Отключаем загрузку скриптов и стилей из облака TinyMCE
tinymceScriptSrc: '/path/to/local/tinymce/tinymce.min.js',//Укажите путь к локальной версии TinyMCE
// 2. Отключаем проверку орфографии (если используется)
spellchecker: false,
//3. Отключаем все облачные сервисы
cloud_channel: 'off',//Отключаем облачные каналы
//4. Отключаем автоматическую загрузку emojis и других облачных ресурсов
emoticons_database: 'off',
});
</script>
Что изменено:
Отключение облачных зависимостей:
Дополнительные шаги:
Если ошибка сохраняется:
Ошибка сохранилась: вот полный html:
<?php
$question = array("question_text" => "Текст вопроса", "is_multiple_choice" => 1);
?><!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Редактирование вопроса</title>
<!-- Подключение TinyMCE -->
<script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script>
<script>
tinymce.init({
selector: '.wysiwyg-editor', // Класс для всех редакторов
plugins: 'image media link code', // Плагины для изображений, видео и ссылок
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code', // Панель инструментов
images_upload_url: 'upload_image.php', // URL для загрузки изображений (локальный эндпоинт)
automatic_uploads: true, // Автоматическая загрузка изображений
media_live_embeds: true, // Вставка видео (например, YouTube)
file_picker_types: 'image media', // Типы файлов для выбора
// Отключение всех облачных зависимостей
// 1. Отключаем загрузку скриптов и стилей из облака TinyMCE
tinymceScriptSrc: '/path/to/local/tinymce/tinymce.min.js', // Укажите путь к локальной версии TinyMCE
// 2. Отключаем проверку орфографии (если используется)
spellchecker: false,
// 3. Отключаем все облачные сервисы
cloud_channel: 'off', // Отключаем облачные каналы
// 4. Отключаем автоматическую загрузку emojis и других облачных ресурсов
emoticons_database: 'off',
});
</script>
</head>
<body>
<!-- Форма редактирования вопроса -->
<h1>Редактирование вопроса</h1>
<form method="post" enctype="multipart/form-data">
<div>
<label>Текст вопроса:</label>
<textarea name="question_text" class="wysiwyg-editor"><?= htmlspecialchars($question['question_text']) ?></textarea>
</div>
<div>
<label>
<input type="checkbox" name="is_multiple_choice" value="1" <?= $question['is_multiple_choice'] ? 'checked' : '' ?>>
Несколько правильных ответов
</label>
</div>
<div>
<h2>Ответы:</h2>
<?php foreach ($answers as $answer): ?>
<div>
<label>Текст ответа:</label>
<textarea name="answers[<?= $answer['id'] ?>][text]" class="wysiwyg-editor"><?= htmlspecialchars($answer['answer_text']) ?></textarea>
<label>
<input type="checkbox" name="answers[<?= $answer['id'] ?>][is_correct]" value="1" <?= $answer['is_correct'] ? 'checked' : '' ?>>
Правильный ответ
</label>
</div>
<?php endforeach; ?>
</div>
<button type="submit">Сохранить</button>
</form>
</body>
</html>
Ошибка "A valid API key is required to continue using TinyMCE" возникает из-за того, что вы используете облачную версию TinyMCE через CDN (https://cdn.tiny.cloud/1/no-api-key/tinymce/6/tinymce.min.js). Начиная с версии TinyMCE 5.10.0, для использования облачной версии редактора требуется API-ключ, даже если вы не используете облачные функции, такие как проверка орфографии или загрузка изображений в облако.
Решение проблемы:
Чтобы избавиться от ошибки, есть два варианта:
Вариант 1: Использовать локальную версию TinyMCE
Локальная версия TinyMCE не требует API-ключа и работает полностью на вашем сервере.
Обновите ваш HTML-код:Замените ссылку на облачную версию TinyMCE на локальную.
<script src="/path/to/local/tinymce/tinymce.min.js"></script>
Обновите конфигурацию TinyMCE: убедитесь, что вы не используете облачные функции.
tinymce.init({
selector: '.wysiwyg-editor', // Класс для всех редакторов
plugins: 'image media link code', // Плагины для изображений, видео и ссылок
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code', // Панель инструментов
images_upload_url: 'upload_image.php', // URL для загрузки изображений (локальный эндпоинт)
automatic_uploads: true, // Автоматическая загрузка изображений
media_live_embeds: true, // Вставка видео (например, YouTube)
file_picker_types: 'image media', // Типы файлов для выбора
// Отключение всех облачных зависимостей
spellchecker: false, // Отключаем проверку орфографии
});
Убедитесь, что локальные файлы доступны: проверьте, что браузер может загрузить TinyMCE с вашего сервера. Например, откройте в браузере:
http://ваш-сайт/path/to/local/tinymce/tinymce.min.js
Вариант 2: Получить API-ключ (если хотите использовать облачную версию)
Если вы хотите использовать облачную версию TinyMCE, вам нужно получить API-ключ.
Получите API-ключ:
Обновите ваш HTML-код: добавьте API-ключ в ссылку на TinyMCE.
<script src="https://cdn.tiny.cloud/1/ВАШ_API_КЛЮЧ/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script>
Обновите конфигурацию TinyMCE: добавьте API-ключ в конфигурацию.
tinymce.init({
selector: '.wysiwyg-editor',
plugins: 'image media link code',
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code',
images_upload_url: 'upload_image.php',
automatic_uploads: true,
media_live_embeds: true,
file_picker_types: 'image media',
apiKey: 'ВАШ_API_КЛЮЧ',//Добавьте API-ключ
});
Итоговый код для локальной версии TinyMCE:
Если вы выбрали Вариант 1, вот как будет выглядеть ваш полный HTML-код:
<?php
$question = array("question_text" => "Текст вопроса", "is_multiple_choice" => 1);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Редактирование вопроса</title>
<!-- Подключение TinyMCE (локальная версия) -->
<script src="/path/to/local/tinymce/tinymce.min.js"></script>
<script>
tinymce.init({
selector: '.wysiwyg-editor', // Класс для всех редакторов
plugins: 'image media link code', // Плагины для изображений, видео и ссылок
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code', // Панель инструментов
images_upload_url: 'upload_image.php', // URL для загрузки изображений (локальный эндпоинт)
automatic_uploads: true, // Автоматическая загрузка изображений
media_live_embeds: true, // Вставка видео (например, YouTube)
file_picker_types: 'image media', // Типы файлов для выбора
spellchecker: false, // Отключаем проверку орфографии
});
</script>
</head>
<body>
<!-- Форма редактирования вопроса -->
<h1>Редактирование вопроса</h1>
<form method="post" enctype="multipart/form-data">
<div>
<label>Текст вопроса:</label>
<textarea name="question_text" class="wysiwyg-editor"><?= htmlspecialchars($question['question_text']) ?></textarea>
</div>
<div>
<label>
<input type="checkbox" name="is_multiple_choice" value="1" <?= $question['is_multiple_choice'] ? 'checked' : '' ?>>
Несколько правильных ответов
</label>
</div>
<div>
<h2>Ответы:</h2>
<?php foreach ($answers as $answer): ?>
<div>
<label>Текст ответа:</label>
<textarea name="answers[<?= $answer['id'] ?>][text]" class="wysiwyg-editor"><?= htmlspecialchars($answer['answer_text']) ?></textarea>
<label>
<input type="checkbox" name="answers[<?= $answer['id'] ?>][is_correct]" value="1" <?= $answer['is_correct'] ? 'checked' : '' ?>>
Правильный ответ
</label>
</div>
<?php endforeach; ?>
</div>
<button type="submit">Сохранить</button>
</form>
</body>
</html>
Рекомендация:
Если вам не нужны облачные функции (например, проверка орфографии или облачная загрузка изображений), используйте локальную версию TinyMCE. Это избавит вас от необходимости использовать API-ключ и сделает редактор полностью независимым от облачных сервисов.
Какую версию скачивать: Download TinyMCE Community или Download TinyMCE Dev Package?
Для большинства случаев, включая ваш, лучше скачивать TinyMCE Community. Вот подробное объяснение:
TinyMCE Community
Особенности:
Когда выбирать:
TinyMCE Dev Package
Особенности:
Когда выбирать:
Рекомендация для вашего случая
Поскольку вы используете TinyMCE для стандартного WYSIWYG-редактора с базовыми функциями (загрузка изображений, вставка медиа, ссылки и т.д.), вам подойдёт TinyMCE Community. Она стабильна, проста в использовании и не требует API-ключа.
Как скачать TinyMCE Community
Подключите TinyMCE в вашем проекте, указав путь к локальному файлу:
<script src="/path/to/local/tinymce/tinymce.min.js"></script>
Пример структуры папок после скачивания
/path/to/local/tinymce/
├── icons/
├── langs/
├── plugins/
├── skins/
├── themes/
├── tinymce.min.js
└── ...
Итог
Вы так же можете прочитать следующие статьи: