Hej,
Mam problem z paginacją w profilach użytkowników.
Tworzę sobie aplikację gdzie:
Dodaję Profile o nazwie VacationProfile.php w Extensions.
Jego zawartość nie została zmieniona, oprócz funkcji render na:
/**
* Display
*
* @return string
*/
public function render()
{
$table = new \IPS\Helpers\Table\Content('IPS\axenvacation\Vacation', $this->member->url()->setQueryString(array('tab' => 'node_axenvacation_Profile')));
$table->rowsTemplate = array(\IPS\Theme::i()->getTemplate('profile', 'axenvacation', 'front'), 'vacationRow');
$table->where[] = array('axenvacation_members.axenvacation_member_id=?', $this->member->member_id);
$table->limit = 2;
$table->noModerate = TRUE;
return (string) $table;
}
Stworzyłem plik vacationRow.phtml z zawartością:
<ips:template parameters="$table, $headers, $rows" />
{{foreach $rows as $row}}
test
{{endforeach}}
Test tutaj jest wprowadzony, aby przetestować czy paginacja działa.
Zawartość klasy IPS\axenvacation\Vacation:
<?php
namespace IPS\axenvacation;
/* To prevent PHP errors (extending class does not exist) revealing path */
if (!\defined('\IPS\SUITE_UNIQUE_KEY')) {
header((isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0') . ' 403 Forbidden');
exit;
}
class _Vacation extends \IPS\Content\Item
{
/**
* @brief Database Table
*/
public static $databaseTable = 'axenvacation_members';
/**
* @brief Application
*/
public static $application = 'axenvacation';
/**
* @brief Database Prefix
*/
public static $databasePrefix = 'axenvacation_';
/**
* @brief Database Column Map
*/
public static $databaseColumnMap = array(
'date' => 'start'
);
}
Efekt jest taki jak chciałem:
Lecz przy zmianie strony nic się nie dzieje, a konsola w przeglądarce wali mi błędem:
Ajax request failed (parsererror): SyntaxError: Unexpected token < in JSON at position 0
Czy coś robię nie tak? Coś jeszcze jest wymagane do paginacji tabelki \IPS\Helpers\Table\Content?