Вывод данных - Страница 4 - Дизайн и модификация Invision Power Board

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

 

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

api

  • 5 Страниц +
  • « Первая
  • 2
  • 3
  • 4
  • 5

Вывод данных

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 193
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 24 Июль 2017 - 18:48

Дак если создать блок на базе виджета, то там нет кеширования, там кеширование только при создании своего блока (Custom. You can author HTML or PHP) на блоках Plugins нет настройки кеширования
И для этого нужно, что бы был установлено приложение pages, а если его установить то по умолчанию добавляется на такие страницы ещё 2 запроса в БД независимо используешь его блоки или нет ((
вот такие
(read): SELECT cms_pages.*, core_permission_index.perm_id, core_permission_index.perm_view, core_permission_index.perm_2, core_permission_index.perm_3, core_permission_index.perm_4, core_permission_index.perm_5, core_permission_index.perm_6, core_permission_index.perm_7 FROM `ibf_cms_pages` AS `cms_pages`  LEFT JOIN `ibf_core_permission_index` AS `core_permission_index` ON core_permission_index.app='cms' AND core_permission_index.perm_type='pages' AND core_permission_index.perm_type_id=cms_pages.page_id WHERE cms_pages.page_full_path=''
(read): SELECT page_id FROM `ibf_cms_pages` AS `cms_pages` WHERE page_default=1 AND page_folder_id=0

0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 648
  • Регистрация: 15-Октябрь 11
  • Репутация: 188
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 25 Июль 2017 - 07:33

Кешировать блок можно так:
$ttl = \IPS\Settings::i()->widget_cache_ttl ?: 300;

if ( ! isset( \IPS\Data\Store::i()->topicFeed ) or \IPS\Data\Store::i()->topicFeed['built'] < ( time() - $ttl ) )
{
	$widget = \IPS\Widget::load( \IPS\Application::load( 'forums' ), 'topicFeed', uniqid(), array() )->render();
	\IPS\Member::loggedIn()->language()->parseOutputForDisplay( $widget );
	\IPS\Data\Store::i()->topicFeed = array( 'built' => time(), 'html' => $widget );
}

$output .= \IPS\Widget::parseOutput( \IPS\Data\Store::i()->topicFeed['html'] );

Интервал обновления кеша берётся из этой настройки:
Вложение  QIP Shot - Screen 196.jpg (293,51К)
Количество загрузок: 8
1

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 193
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 25 Июль 2017 - 19:59

Спасибо, вроде все работает, только все равно не понятно этот же блок на странице форума создает 5 запросов до кеша, а на отдельной странице аж 11 (( а что обозначает в этом коде вот это built?

Сообщение изменено: avgaz (25 Июль 2017 - 20:00)

0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 648
  • Регистрация: 15-Октябрь 11
  • Репутация: 188
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 25 Июль 2017 - 20:40

На страницах форума объект формируемый методом \IPS\Application::load( 'forums' ) грузится по дефолту и блок использует его данные. Запросов, в сумме, создаётся не меньше.

"built" - переменная содержащая unix timestamp - временнАя метка, используется для вычисления, нужно ли обновлять кеш при очередной загрузке страницы.
1

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 193
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 07 Август 2017 - 17:19

Просмотреть сообщениеnewbie 03 Апрель 2017 - 11:15 сказал(а):

<?php

require_once 'forum/init.php';
\IPS\Dispatcher\External::i();
\IPS\Output::i()->sendOutput( \IPS\Theme::i()->getTemplate( 'global', 'core' )->globalTemplate( 'Page Title', 'Page Content', array( 'app' => \IPS\Dispatcher::i()->application->directory, 'module' => \IPS\Dispatcher::i()->module->key, 'controller' => \IPS\Dispatcher::i()->controller ) ) );


А как вывести, что бы такая страница грузилась в определенной теме, не которая по умолчанию стоит?
0

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

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

Отправлено 08 Август 2017 - 08:21

\IPS\Theme::i()->id

0

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 193
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 08 Август 2017 - 10:11

Спасибо

Сообщение изменено: avgaz (08 Август 2017 - 10:27)

0

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

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

Отправлено 08 Август 2017 - 10:18

Составьте условие
if (\IPS\Theme::i()->id == 3)
{
 // отображать информацию в стиле с ID 3
}

0

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 193
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 08 Август 2017 - 13:30

Спасибо разобрался с этим.
Появился ещё вопрос, как сделать что бы на таких страницах не отображалась реклама добавленная в позиции Just below the page header
и Just above the page footer
0

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

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

Отправлено 09 Август 2017 - 08:53

Просмотреть сообщениеavgaz сказал(а):

Появился ещё вопрос, как сделать что бы на таких страницах не отображалась реклама добавленная в позиции

- вырезать из html перед выводом
- скрывать через css
0

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 193
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 09 Август 2017 - 10:05

А в шаблоне не определить что находишься на это странице и условие не составить?
Например
array( 'app' => "portal", 'module' => \IPS\Dispatcher::i()->module->key, 'controller' => \IPS\Dispatcher::i()->controller ) ) );
а в шаблоне условие что типа
if(app == "potal"){
условие
}
может можно что то подобное сделать?

И еще вопрос можно в шаблоне как то составить условие что если пользователь с мобильного и использует такой то стиль, то вывести тот то??
0

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

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

Отправлено 11 Август 2017 - 14:49

Просмотреть сообщениеavgaz сказал(а):

А в шаблоне не определить что находишься на это странице и условие не составить?


Про шаблон не было и речи в вопросе.
Если так

Просмотреть сообщениеavgaz сказал(а):

array( 'app' => "portal", 'module' => \IPS\Dispatcher::i()->module->key, 'controller' => \IPS\Dispatcher::i()->controller ) ) );

то
{{if $location['app'] == "portal"}}Код{{endif}}

Вообще можно свой ключ добавить
array( 'some_key' => "some_value", 'app' => "portal", 'module' => \IPS\Dispatcher::i()->module->key, 'controller' => \IPS\Dispatcher::i()->controller ) ) );

Далее в шаблоне проверяем
{{if isset($location['some_key']) and $location['some_key'] == "some_value"}}Код{{endif}}


Просмотреть сообщениеavgaz сказал(а):

И еще вопрос можно в шаблоне как то составить условие что если пользователь с мобильного и использует такой то стиль, то вывести тот то??

{{if \IPS\Member::loggedIn()->skin == 1 and \IPS\Http\Useragent::parse()->mobile}}Код{{endif}}

1

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 19-Январь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 24 Февраль 2018 - 03:44

Здравствуйте, проблема на самописном портале!

Цитата

/*
* Authorization
* @return \IPS\Member|false
*/
function doLogin( $username, $password, $rememberMe=true, $anonymous=false )
{
$login = new \IPS\Login( \IPS\Http\Url::internal('') );
$login->forms();

try{
$member = $login->authenticateStandard(array(
'auth' => $username,
'password' => $password,
));
}
catch( \IPS\Login\Exception $e )
{
return false;
}

if ( $anonymous and !\IPS\Settings::i()->disable_anonymous )
{
\IPS\Session::i()->setAnon();
\IPS\Request::i()->setCookie( 'anon_login', 1 );
}

\IPS\Session::i()->setMember( $member );

if ( $rememberMe )
{
$expire = new \IPS\DateTime;
$expire->add( new \DateInterval( 'P7D' ) );
\IPS\Request::i()->setCookie( 'member_id', $member->member_id, $expire );
\IPS\Request::i()->setCookie( 'pass_hash', $member->member_login_key, $expire );

if ( $anonymous and !\IPS\Settings::i()->disable_anonymous )
{
\IPS\Request::i()->setCookie( 'anon_login', 1, $expire );
}
}

$member->memberSync( 'onLogin', array( \IPS\Login::getDestination() ) );

return $member;
}

/*
* Logout
* @return void
*/
function logout()
{
$redirectUrl = \IPS\Http\Url::internal( '' );
$member = \IPS\Member::loggedIn();

/* Are we logging out back to an admin user? */
if( isset( $_SESSION['logged_in_as_key'] ) )
{
$key = $_SESSION['logged_in_as_key'];
unset( \IPS\Data\Store::i()->$key );
unset( $_SESSION['logged_in_as_key'] );
unset( $_SESSION['logged_in_from'] );

return;
}

\IPS\Request::i()->setCookie( 'member_id', NULL );
\IPS\Request::i()->setCookie( 'pass_hash', NULL );
\IPS\Request::i()->setCookie( 'anon_login', NULL );

foreach( \IPS\Request::i()->cookie as $name => $value )
{
if( mb_strpos( $name, "ipbforumpass_" ) !== FALSE )
{
\IPS\Request::i()->setCookie( $name, NULL );
}
}

session_destroy();

/* Login handler callback */
foreach ( \IPS\Login::handlers( TRUE ) as $k => $handler )
{
try
{
$handler->logoutAccount( $member, $redirectUrl );
}
catch( \BadMethodCallException $e ) {}
}

/* Member sync callback */
$member->memberSync( 'onLogout', array( $redirectUrl ) );
}


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

Сразу говорю, интересует реальное решение этой проблемы, что то вроде выпилить эту кнопку - не вариант!

Сообщение изменено: Stinger2015 (24 Февраль 2018 - 03:53)

0

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

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

Отправлено 24 Февраль 2018 - 11:29

Просмотреть сообщениеStinger2015 сказал(а):

Но стоит авторизоваться через форум с использованием Запомнить Меня, после этого на главной нажать выйти.
И мы действительно вышли, можно даже обновить страничку, но стоит нам только зайти на форум, как мы снова авторизированы тут, как бы решить эту проблему.

Начиная с какой-то (не помню точно) версии куки pass_hash была убрана и добавлены 2 новые: device_key и login_key (устанавливается при "Запомнить Меня").
Плюс "пришли девайсы".
0

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 19-Январь 16
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 24 Февраль 2018 - 22:22

Спасибо, решено использованием login_key, подскажите пожалуйста, как получить результат авторизации а именно сообщение, успешная авторизация или же аккаунт заблокирован на нное кол-во попыток ввода или успех, вообщем это сообщение, в ipb 3.4 это получалось так!

$ret = $apiMember->login( $ips_username, $ips_password );
$result = $ret[2];
0

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


  • 5 Страниц +
  • « Первая
  • 2
  • 3
  • 4
  • 5


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

  

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
При копировании материалов с сайта
прямая ссылка на источник обязательна