Поправить проект на vueJS, wp.
1. Иконка поиска тянется с локального урла, сделать путь к ресурсу относительным https://prnt.sc/1eaa7gu
2. Исправить ошибки при добавлении слайда с типом "фильм" https://prnt.sc/1eacruy
3. Фильтр не работает при попытке найти видео https://prnt.sc/1ead2jn
4. Думаю на текущем этапе мы можем полностью отказаться от асинхронного поиска по фильмам. Давай сделаем так: как только выбран тип слайда "фильм", мы сразу подгружаем список фильмов из My movies (избранные + продолжить просмотр), после чего поиск будет работать сугубо как фильтрация по уже загруженному списку. Если сейчас это так и должно работать - ок.
5. Переделать подгрузку фильмов. Уходим от использования db.json файла в хранилище по причине невозможности контролировать файл для разных пользователей при одновременных сессиях. Вместо этого в файле api.php добавляем новый эндпоинт по примеру того, как уже там есть (с неймспейсом academe/v1). Для получения списка фильмов используем существующую функцию get_my_movies() внутри метода-колбэка для эндпоинта.
6. Данные мувика это не четвертый темплейт в типе "Text/Image" https://prnt.sc/1eagqeg . Для мувика не нужно добавлять отдельный темплейт в дублирующую структуру, т.к. у него всегда будет одинаковый набор полей. Вместо этого для типа записей sfwd-lessons нужно создать ACF поля (калтура айди, время старта, время окончания). В структуре хранилища я вижу это как slides[current].fields.kaltura_id, slides[current].fields.play_from, slides[current].fields.play_to. Поля естественно от слайда к слайду меняться не будут, именно поэтому их и не нужно тянуть с бэка, как это делается для темплейтов, где поля разные в зависимости от того, что мы выбрали
7. Полагаю эти 2 файла не понадобятся https://prnt.sc/1eathzp
8. Компонент плеера сделать следующим образом: в момент загрузки редактора отправить запрос на сервер и получить в ответ сессию калтуры, чтобы можно было работать с плеером по апи. Для этого есть функция get_kaltura_session(), которая находится в плагине калтуры. Пример ее использования в request_kaltura_movie() в ajax-handlers.php. Фактически для редактора тебе не нужно пользоваться request_kaltura_movie(), т.к. она предназначена для создания сессии под единичный мувик на фронте с учетом функции "продолжить просмотр". Вместо этого ты можешь создать отдельный обработчик, который вернет тебе просто wid, ks и uiconf_id. Полученные три параметра можно сохранить в корне сторейджа vuex для дальнейшего использования. Я на 90% уверен, что одной созданной сессии должно быть достаточно для отображения разных видео в разных слайдах. Если нет - тяни сессию для каждого слайда отдельно. Внутри самого компонента с плеером тебе нужно выполнить инициализацию плеера, подставив в него параметры из сторейджа, которые будут одинаковыми для всех слайдов с мувиками (wid, ks и uiconf_id) + подставить калтура айди из текущего слайда, чтобы подгрузился именно нужный мувик. Чтобы загрузить его с нужной точки у тебя в сторейдже есть play_from и play_to, которые подставляются в mediaProxy.mediaPlayFrom и mediaProxy.mediaPlayTo соответственно (смотри параметры инициализации в scripts.js -> requestPlayerWithMovieModal())
9. Пересмотри код компонента плеера. Как минимум скрипт апи калтуры можно вынести выше, т.к. он должен загрузиться 1 раз, а не каждый раз при рендере компонента. Когда будет готовый рабочий вариант компонента, почисти хвосты из неиспользуемых методов/переменных.
По таймлайну под плеером задумка следующая: при выбранном типе слайда "movie" у нас в хранилище store.slides[current] добавится еще один массив объектов "questions", в который будешь заносить для каждого вопроса все данные (сам вопрос, ответы, отметка правильности ответа, !!! время из мувика, в которое нужно показать вопрос !!!) Я себе так думаю, что для пользователя мы покажем это как hh:mm:ss в текстовом поле, а в хранилище занесем числом (секунды от начала мувика). Для конвертации можно использовать computed свойства (например timeToSec и secToTime). Итого после добавления нескольких вопросов у нас будет массив с вопросами, в каждом из которых дата показа вопроса. Вставляем в темплейте компонента под плеером див с шириной 100%, чтобы он заполнил всю ширину плеера, и в него в цикле пихаем вложенные элементы (v-for="question in store.slides[current],questions"). Позицию каждого элемента высчитываем computed свойством на основе секунды показа из объекта вопроса и полной длины мувика в секундах. Осталось только вытянуть полную длину мувика. Тут либо с калтуры тянуть (предпочтительно), либо брать из того, что есть в админке (вроде в списке мувиков эти данные попадают для каждого мувика и их можно тоже сохранить куда-то для повторного использования). Отклоняю тех, кто в своей ставке не укажет любой город России/Украины.
-
это задумывалось персонально?
-
Current freelance projects in the category Javascript and Typescript
Development of a corporate financial system — React, TypeScript, Node.jsWe are looking for an experienced full-stack developer or a small team to develop a corporate financial system from scratch. It is necessary to implement the full development cycle: architecture design, backend, frontend, database, testing, and system launch. Technologies:… Javascript and Typescript, Web Programming ∙ 1 hour 46 minutes back ∙ 34 proposals |
Game Developer
1200 USD
We are looking for an experienced game developer to refine an existing project on PixiJS. It is necessary to improve the game's mathematical system, redesign and balance the bonus rounds, as well as make changes to the current game logic. Experience in commercial game… Javascript and Typescript, Gaming Apps ∙ 6 hours 27 minutes back ∙ 13 proposals |
Development of a website according to the specifications on FramerYou need to create a website based on the parameters in the technical specification. https://docs.google.com/document/d/1ODO2C9Krb4AaMiJz9wfbNzWlAyA2FwCCHL8r0biajUY/edit?usp=sharing Please provide your actual rate based on this design. HTML & CSS, Javascript and Typescript ∙ 6 hours 27 minutes back ∙ 18 proposals |
Development of an interactive Palworld map for the websiteWe need to develop an interactive map for Palworld based on the example: https://palworld.gg/map We need not just a static image, but a full-fledged interactive map where users can view locations, toggle object categories on/off, search for specific points, and interact with… HTML & CSS, Javascript and Typescript ∙ 1 day 21 hours back ∙ 31 proposals |
Development of the AM Mobility platform (car service, parking, insurance, car rental)
5800 USD
We are looking for a team or an experienced Full Stack developer to create the MVP of the AM Mobility platform. AM Mobility is a unified digital ecosystem for motorists, combining in one application and web platform: parking; car service; tire fitting; car wash; car rental;… Javascript and Typescript, Web Programming ∙ 7 days 3 hours back ∙ 119 proposals |