[Console] Сохраняем код в файл
Продолжаю традицию Василия делиться с обществом полезными решениями. В этот раз речь пойдет о компоненте Console (автор Николай Ланец). Для разработчика вещь незаменимая. Я очень часто пользуюсь им. Но у него не хватает одной маленькой, но очень удобной фичи — возможности сохранять код. Благодаря Илье Уткину, консоль научилась хранить код в сессии. Но этого мало. Я для себя немного доработал консоль и теперь она может сохранять код в файл и загружать из файла. Вот этим решением я и готов поделится с обществом. Разработчики должны оценить.

Инструкция простая. При сохранении указываем имя файла, при загрузке выбираем нужный файл.
Вот мой форк консоли. Если Николай даст согласие, я готов отправить пулреквест.
Продолжение темы сохранения.

Инструкция простая. При сохранении указываем имя файла, при загрузке выбираем нужный файл.
Вот мой форк консоли. Если Николай даст согласие, я готов отправить пулреквест.
Продолжение темы сохранения.
Комментарии: 36
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Особенно учитывая тот факт, что АСЕ плохо оптимизирован под мобильные платформы и вставить текст в окно консоли из буфера обмена на планшетах и смартфонах не получается.
Спасибо!:))
p.s. это не критика, это предложение))) а плюсик заметке поставил))
Так что, лично я не вижу никаких преимуществ табличного варианта.
Fi1osofFi1osofВторой большой недостаток, хотя и не такой важный: не использование источников файлов. Там не только работа с нужными директориями, но и сразу проверка прав на них. понятно дело, что в большинстве случаев консоль используют только разрабы самих сайтов, но все же.
А по источникам файлов… Не все сразу. :)
Fi1osofТеперь файл сохраняется только в /core/components/console/files/, не выше и не ниже.
Так безопасно?
П.С. Учиться и учиться ещё.
Fi1osofА ограничивать только текущей директорией, это, во-первых, не добавляет безопасности, во-вторых, ограничивает функционал (может я хочу поредактировать статический сниппет какого-нибудь стороннего модуля).
Теперь нужно добавлять это разрешение 'console.save_file' в базу при обновлении компонента.
Fi1osofFi1osofСценарий второй: я что-то там накодил, а потом решил все затереть, дабы никто из напарников не увидел мой быдлокод. Стераю код и отправляю Сохранить. Опять-таки получаю Успех и закрываю браузер. А потом тот же Сергей Прохоров обнаруживаем мой не затертый файл и начинает тыкать в меня пальцем.
И еще момент: вот отсутствие кода в запросе не всегда следует расценивать как ошибку (может я хочу стереть все в файл). Возвращать ошибочный ответ здесь нельзя. При этом и не записывать в файл здесь нельзя.
А вот отсутствие названия файла — конкретная ошибка, и в данном случае следует возвращать сообщение об ошибке.
Сделал так — если код есть — записываем, если нет — удаляем файл.
Fi1osofFi1osofFi1osofConsole у меня стояла, версии 2.0.2. Работало. Но сохранялся код только в Session. Сейчас увидел этот пост, решил надо поставить. Проверил обновленя установленной консоли, пишет обновлений нет. Поискал в Репозитории, нашел, поставил. Сейчас пишет, что версия 2.2.0, однако кнопок «Сохранить/Загрузить в/из файла» не появилось. Кроме всего прочего, если раньше я писал такой код то в итоге получал в выводе А сейчас я получаю вот это
Fi1osof" — а старушка засвистела?
— Нет
— Так чего же Вы приперлись?! Болван!
— Согласен" © «Операция Ы»