Разработка приложения с нуля - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Разработка приложения с нуля

#1 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 413
  • Регистрация: 16-Январь 18
  • Репутация: 6
  • Откуда:Спасск-Дальний
  • IPB version:4.1.x
 

Отправлено 03 Ноябрь 2018 - 06:01

Здравствуйте. Я начал делать приложение с нуля, у меня есть исходники от другого движка, там методы лучше используются, я всё перенесу просто и будет супер. Мне нужна будет небольшая консультация, со многим я уже разобрался, всё довольно просто.

Скажите, возможно ли дампить данные из модуля? вообще информация не выводится. С шаблоном разобрался, скажите как вставить форматирование:

{{var_dump($games);exit;}}


И сразу вопрос по теме:

Это код из другого движка, мне его надо интегрировать в IPS методы.
$lobbies = $this->getDoctrine()
                        ->getRepository(Gamelist::class, 'ghostpp')
                        ->findBy(['lobby' => true]);


findBy - я так понимаю, это тот же SELECT?

И вот ошибка почему-то: http://prntscr.com/ldta6t

Сообщение изменено: TemKa_SD (03 Ноябрь 2018 - 06:37)

0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 591
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 403
  • IPB version:I have no IPB
 

Отправлено 04 Ноябрь 2018 - 09:06

 TemKa_SD сказал(а):

findBy - я так понимаю, это тот же SELECT?

Да

 TemKa_SD сказал(а):

И вот ошибка почему-то: http://prntscr.com/ldta6t


Потому что в $lobbies у Вас 1 объект, и Вы перебираете его свойства в цикле
0

#3 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 413
  • Регистрация: 16-Январь 18
  • Репутация: 6
  • Откуда:Спасск-Дальний
  • IPB version:4.1.x
 

Отправлено 04 Ноябрь 2018 - 16:16

http://prntscr.com/le8eba

Ну я понимаю на что ругается, почему нельзя использовать? что делать?

$games = StatsGamelist::constructFromData(\IPS\DB::i('stats')->select('*', StatsGamelist::$databaseTable, (['lobby=?', true])));


Весь код: http://prntscr.com/le8ev2

Сообщение изменено: TemKa_SD (04 Ноябрь 2018 - 16:18)

0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 591
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 403
  • IPB version:I have no IPB
 

Отправлено 04 Ноябрь 2018 - 16:24

$games = new \IPS\Patterns\ActiveRecordIterator(\IPS\DB::i('stats')->select('*', StatsGamelist::$databaseTable, (['lobby=?', true])), 'StatsGamelist');

0

#5 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 413
  • Регистрация: 16-Январь 18
  • Репутация: 6
  • Откуда:Спасск-Дальний
  • IPB version:4.1.x
 

Отправлено 04 Ноябрь 2018 - 16:29

Для чего последний параметр? Ну т.е идет селект поля, и,з по, StatsGamelist. Там после where вроде идет сортировать по.

Ой, это за селектом же, ясно, это для актив рекорд параметр.

Сообщение изменено: TemKa_SD (04 Ноябрь 2018 - 16:31)

0

#6 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 413
  • Регистрация: 16-Январь 18
  • Репутация: 6
  • Откуда:Спасск-Дальний
  • IPB version:4.1.x
 

Отправлено 04 Ноябрь 2018 - 16:38

Еще вопрос, а если у меня в классе указан обычный ActiveRecord, конфликта не будет? И еще, не подгрузился класс по его названию, почему?

http://prntscr.com/le8lov - здесь понятно, нужно переменную в ISSET добавить, g тоже? И вообще все переменные так делать, которые могут быть не выбраны, и там уже писать условие что делать, если она не выбрана?

Сообщение изменено: TemKa_SD (04 Ноябрь 2018 - 16:41)

0

#7 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 413
  • Регистрация: 16-Январь 18
  • Репутация: 6
  • Откуда:Спасск-Дальний
  • IPB version:4.1.x
 

Отправлено 04 Ноябрь 2018 - 23:48

Так. Помогите разобраться с подключением файлов.

Активные игры:
Есть API.
Есть модуль.
Есть файл с ActiveRecord.

Я не могу сообразить как правильно подключить файл с функциями. В файле API у меня такой код:

	public function GETindex()
	{
        $gameList = $this->getGamelist();


		return new \IPS\Api\Response( 200, $gameList );
	}

    /**
     * GET /wc3/Gamelist
     * Get list of wc3er applications and what can be wc3ed from each application
     *
     * @apiclientonly
     * @apiparam    string  applications    Comma-delimited list of applications to filter by
     * @return      array
     */
    public function getGamelist()
    {
        $lobbies = new \IPS\Patterns\ActiveRecordIterator(\IPS\DB::i()->select('*', \IPS\wc3\Entity\GHostPP\Gamelist::$databaseTable, (['lobby=?', true])), '\IPS\wc3\Entity\GHostPP\Gamelist');

        $mappedContent = [];

        foreach($lobbies as $lobby) {
            $mappedContent[] = [
                'gamename'  => $lobby->getGamename(),
                'slots'     => $lobby->getSlotstotal(),
                'taken'     => $lobby->getSlotstaken(),
                'players'   => $this->getUsers($lobby->getUsernames())
            ];
        }

        return $mappedContent;
    }

    /**
     * Helper function for split user-string to array based return
     * @param string $usernames
     * @return array
     */
    protected function getUsers(string $usernames): array {
        $parts = explode("\t",$usernames);

        $players = [];
        for($i = 0; $i < count($parts) - 1; $i = $i + 4) {
            $players[] = [
                'name'  => $parts[$i],
                'realm' => $parts[$i + 1],
                'ping'  => $parts[$i + 2],
                //'ip'    => $parts[$i + 3]
            ];
        }

        return $players;
    }

Всё выводит, проблем нет. У меня вопрос касательно вывода функций. Если эти функции getGamelist() getUsers() используются еще и в файле с МОДУЛЕМ как их сделать в одном месте?

И еще, я хочу подгружать в модуле данные из апи, это можно сделать без авторизации?

Сообщение изменено: TemKa_SD (05 Ноябрь 2018 - 00:21)

0

#8 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 591
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 403
  • IPB version:I have no IPB
 

Отправлено 05 Ноябрь 2018 - 08:35

 TemKa_SD сказал(а):

Еще вопрос, а если у меня в классе указан обычный ActiveRecord, конфликта не будет? И еще, не подгрузился класс по его названию, почему?

Не понятно

 TemKa_SD сказал(а):

http://prntscr.com/le8lov - здесь понятно, нужно переменную в ISSET добавить, g тоже? И вообще все переменные так делать, которые могут быть не выбраны, и там уже писать условие что делать, если она не выбрана?

Да

 TemKa_SD сказал(а):

Если эти функции getGamelist() getUsers() используются еще и в файле с МОДУЛЕМ как их сделать в одном месте?

Переместите, например, в \IPS\wc3\Entity\GHostPP\Gamelist
И тогда
    public function GETindex()
    {
        $gameList = new \IPS\wc3\Entity\GHostPP\Gamelist;

        return new \IPS\Api\Response( 200, $gameList->getGamelist() );
    }

0

#9 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 413
  • Регистрация: 16-Январь 18
  • Репутация: 6
  • Откуда:Спасск-Дальний
  • IPB version:4.1.x
 

Отправлено 05 Ноябрь 2018 - 13:51

Спасибо, я сегодня уже реализовал такое, только немного в другом виде.

Файл с исходниками: http://prntscr.com/lek32u
API: http://prntscr.com/lek3bn
http://prntscr.com/lek3j0 модуль

Еще сегодня разобрался с массивами, что нельзя строку выводить, как разобрать его и т.д. Касательно массивов, мне ведь не нужно выводить для клиентов его разобранным ? Это должно делать приложение клиента?

И скажите как правильно var_dump выводить. Я в шаблоне умею, но не до конца, как вывести в нем <pre> ? А если бебажить в модуле, ничего не происходит, пробовал даже переменную которая идет в шаблон в функции manage() всё равно не хочет.

Сообщение изменено: TemKa_SD (05 Ноябрь 2018 - 14:51)

0

#10 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 413
  • Регистрация: 16-Январь 18
  • Репутация: 6
  • Откуда:Спасск-Дальний
  • IPB version:4.1.x
 

Отправлено 05 Ноябрь 2018 - 16:39

Сюда выпишу чтобы не забыть.
            {{echo "<pre>";}}
            {{var_dump($games);}}
            {{echo "</pre>";}}
            {{exit;}}

0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна