Опубликована документация по разработке виджетов [UPD: + идеи для виджетов]

Владимир Тупоршин-мл.

Опубликовали документацию по разработке виджетов для панели управления:

11 сентября 2015
  • km 10 сентября 2015 18:44

    Супер)

    Когда уже можно выложить что-то?)

  • Начинаем публиковать виджеты 25 сентября 2015. Тольк что опубликовал блог-пост на эту тему: https://www.webasyst.ru/blog/announcing-september-2015-webasyst-store-changes/

    Вот разные идеи для разработчиков виджетов:

    • Фейсбук, Вконтакте, Твиттер и другие соцсети: количество лайков страницы компании, количество подписчиков и т. д. (для персональной панели управления такой виджет будет мало кому интересен, но зато как круто будет вывести эту информацию на телевизоре в отделе маркетинга!)
    • Google Adwords и Яндекс.Директ: данные об эффективности платной рекламы (затраты, количество переходов и т.д.)
    • Google Analytics и Яндекс.Метрика: основные метрики о посетителях сайта
    • Данные о продажах из App Store или Google Play, например, через API AppFigures
    • Анекдоты (почему нет)
    • Time tracker: простой учет времени (секундомер)
    • Обратный отсчет в днях, часах, минутах и секундах: вводишь некоторый заголовок (“до отпуска осталось”, "релиз через" и т.п.) и заряжаешь на показ только себе или же на стену в офисе
    • Цитирование: последние упоминания в интернете по ключевой фразе или хештегу (например из поиска Яндекса по блогам)
    • Gmail: непрочитанные сообщения
    • Веб-камера
    • Погода с прогнозом
    • График или пирог на основе данных из файла JSON/XML/XLS/CSV
    • Календарь отпусков и праздников

    Подумайте над тем, какую информацию вы хотели бы видеть на телевизоре у себя в офисе или на своей персональной панели управления Webasyst.

    С нетерпением ждем ваших виджетов!

    Что касается наших планов (планов Webasyst) по выпуску новых виджетов, то к 25 сентября мы планируем добавить в базовый состав Shop-Script 6 несколько простых виджетов для отображения ключевых метрик интернет-магазина: количества покупателей, заказов, некоторых отчетов о продажах.

  • Владимир Сергеев 11 сентября 2015 07:19

    Кирилл, здесь написано, что с 25 сентября.

  • km 11 сентября 2015 07:41

    Апометр уже готов

  • ITFrogs 11 сентября 2015 07:51

    Хорошая новость.

  • ITFrogs 11 сентября 2015 07:53

    Я бы взялся делать виджеты соцсетей, если никто раньше не перехватит.

  • Сегодня опубликовали Webasyst TV на Гитхабе в ветке dev. Посмотрите, попробуйте, проверьте работу ваших виджетов в ТВ-режиме https://github.com/webasyst/webasyst-framework/tree/dev

    Чтобы создавать и настраивать дешборды Webasyst TV, нажмите "Настроить виджеты" на основной панели управления — увидите наверху селект с возможностью создавать новые дешборды.

  • Видимо, разрабатывать виджеты оказалось гораздо сложнее, чем мы думали...

    Уважаемые разработчики, если кто-то хочет быть рекомендованным в магазине Webasyst, следует поторопиться с отправкой виджетов. Большой список идей — выше.

    Релиз Webasyst TV уже завтра!

  • Павел Трофимов 24 сентября 2015 03:13

    Владимир, отчего такой вывод? Правда я сам не то что не пробовал, но и не читал еще даж ))

  • km 24 сентября 2015 03:21

    Да вроде всё просто. Может еще не все прониклись)

  • Павел, такой вывод в связи с тем, что выпуская виджеты в числе первых (к 25 сентября, как было объявлено), у каждого разработчика могли бы быть максимальные шансы получить рекомендации от Вебасиста и появиться в магазине Webasyst на главной. К сожалению, мало кто этим шансом воспользовался.

    Впрочем, сегодня мы продолжаем принимать виджеты для публикации в первой партии. Кто еще не отправил свои разработки, мы ждем!

  • Павел Трофимов 24 сентября 2015 03:33

    Так может дело не в сложности а в стимуле? :) Я не утверждаю, я теоретизирую :)

  • ITFrogs 24 сентября 2015 10:11

    Только дошли руки до виджетов. Без особых проблем сделал виджет "Пирог".

    Сейчас проверю, сдам.

  • ITFrogs 24 сентября 2015 11:24

    Нашел серьезнейший баг, который нужно фиксить.

    конструкция

    wa()->getWidget('mywidget');

    Не работает.

    Все из-за того, что в waSystemClass.php допущена ошибка.

    смотрим метод

    public function getWidget($widget_id)

    там, где запрашивается виджет

    $widget = $widget_model->getById($widget_id);

    Вместо этой строки следует писать:

    $widget = $widget_model->getByField('widget', $widget_id);

    Без этого серьезной работы с классами и настройками не получится. Сейчас постараюсь вставить в виджет

    костыль типа try, чтобы после багфикса все равно работало.

    Надеюсь вы исправите это.

  • Это не баг.
    wa()->getWidget('mywidget') и не должно работать, т.к. один и тот же виджет может быть в нескольких экземплярах.
    в wa()->getWidget() нужно передавать ID экземпляра виджета (цифру).

  • ITFrogs 24 сентября 2015 11:29

    Вот так работает

    /**
    * @var shopPieWidget $widget
    */
    private $widget;

    function __construct()
    {
    try {
    $this->widget = wa()->getWidget('pie');
    } catch(waException $e) {
    $widget_model = new waWidgetModel();
    $widget = $widget_model->getByField('widget', 'pie');
    $this->widget = wa()->getWidget($widget['id']);
    }
    }


  • ITFrogs 24 сентября 2015 11:30

    ух ты. а как мне настройки виджета получить в классе?

  • $this->getSettings('mysetting')

    Посмотрите примеры бесплатных виджетов, там есть настройки и есть работа с этими настройками:
    https://github.com/webasyst/webasyst-framework/tre...







  • km 24 сентября 2015 11:33

    Может Андрей имеет ввиду не в классе виджета, а в стороннем?

  • В стороннем чём?
    Классе? Зачем? Как этот класс вызвался? Из виджета? Ну а почему виджет не может туда передать настройки нужные при вызове этого класса?

  • km 24 сентября 2015 11:35

    Воу-воу) Я предположил просто)

  • ITFrogs 24 сентября 2015 11:39

    Нет, все правильно. Допустим этих виджетов нашлепали с разными настройками и они должны работать по разному.

    Просто наверное нужно попытаться, при вызове класса, передавать в конструктор айдишник виджета. Тогда все срастется.

    Объясню для чего мне это нужно. Я хочу позволить собирать различного рода статистику. За каждый тип статистики будет отвечать определенный класс. Внутри класса необходимо получить настройки. Например период сбора статистики.

  • ITFrogs 24 сентября 2015 11:41

    Александр, класс вызывается вот так:

    $classname = 'shopPieWidget'.ucfirst($settings['type']);
    $dataClass = new $classname();

    Передать в него настройки тоже очень хорошая идея. Спасибо за подсказку.

  • km 24 сентября 2015 11:41

    Так а почему методы этого класса нельзя использовать из класса виджета?

  • ITFrogs 24 сентября 2015 11:45

    Все. Проблема решена. Всем спасибо. Посыпаю голову пеплом. Привык работать с плагинами, вот и пошел по тому же пути. Теперь буду знать.

  • km 24 сентября 2015 11:48

    ну да. Тут создаётся несколько экземпляров виджета. Каждый со своими настройками может быть.

  • ITFrogs 24 сентября 2015 16:03

    Ну отправил

    Буду надеяться, что оно действительно нужно.

  • ITFrogs 24 сентября 2015 17:36

    А почему в превьюхе нет ни картинок ни скриншотов?

    https://www.webasyst.ru/store/widget/webasyst/pie/...

    В личном кабинете все загружено.



Чтобы добавить комментарий, зарегистрируйтесь или войдите