Перейти к содержанию
Авторизация  
Hikari

Страницы В Адмике

Рекомендуемые сообщения

Пилю свою админку. Дойдя до листа персонажей онлайн, никак не мог придумать как реализовать вывод меню страниц. Долго думая получилось такое.

c6462-clip-30kb.jpg

 

 


private void listCharacters(Player activeChar, int page)
{
List<Player> players = GameObjectsStorage.getAllPlayers();
int MaxCharactersPerPage = 20;
int MaxPages = players.size() / MaxCharactersPerPage + 8;

int ThisPage = 2;
int NextPage = ThisPage + 10;

activeChar.sendMessage("This page = " + ThisPage);

while(NextPage > MaxPages)
{
NextPage--;
}

if(NextPage < MaxPages && NextPage != 10)
{
NextPage += 10;
}
int MaxShowPages = MaxPages - 10;
if(players.size() > MaxCharactersPerPage * MaxPages)
MaxPages++;
// Check if number of users changed
//if(page > MaxPages)
// page = MaxPages;
int CharactersStart = MaxCharactersPerPage * page;
int CharactersEnd = players.size();
if(CharactersEnd - CharactersStart > MaxCharactersPerPage)
CharactersEnd = CharactersStart + MaxCharactersPerPage;

String admhtml = "";
StringBuilder pages = new StringBuilder("");
StringBuilder charlist = new StringBuilder("");

if(ThisPage == MaxPages || ThisPage < MaxPages)
{
activeChar.sendMessage("This page == or < MaxPages");
for(int x = 0; x < NextPage; x++)
{
int pagenr = x + 1;
pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");
}
}
//for(int x = 0; x < MaxPages; x++)
//{
// int pagenr = x + 1;
// pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");
//}

for(int i = CharactersStart; i < CharactersEnd; i++)
{
Player p = players.get(i);
charlist.append("<tr><td width=160>" + "<button value=\"" + p.getName() + " \" action=\"bypass -h admin_character_list" + p.getName() + "\" width=160 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=110>" + p.getTemplate().className + "</td><td width=40>" + p.getLevel() + "</td><td width=40><button value=\"Go To\" action=\"bypass -h admin_goto_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=40><button value=\"Recall\" action=\"bypass -h admin_recall_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td></tr>");
}
admhtml = HtmCache.getInstance().getNotNull("admin/charlist.htm", activeChar);
admhtml = admhtml.replace("%pages%", pages.toString());
admhtml = admhtml.replace("%char_list%", charlist.toString());
admhtml = BbsUtil.htmlBuff(admhtml, activeChar);
ShowBoard.separateAndSend(admhtml, activeChar);
}

 

 

Что нужно:

Нужно что бы при переходе на следующую страницу она становилась первой то-есть у нас есть 1 2 3 4 5 6 7 8 9 10, мы перешли на 3 страницу и получили уже такое меню 3 4 5 6 7 8 9 10 11 12 13

Изменено пользователем Pacifist

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пилю свою админку. Дойдя до листа персонажей онлайн, никак не мог придумать как реализовать вывод меню страниц. Долго думая получилось такое.

c6462-clip-30kb.jpg

 

 


private void listCharacters(Player activeChar, int page)
{
List<Player> players = GameObjectsStorage.getAllPlayers();
int MaxCharactersPerPage = 20;
int MaxPages = players.size() / MaxCharactersPerPage + 8;

int ThisPage = 2;
int NextPage = ThisPage + 10;

activeChar.sendMessage("This page = " + ThisPage);

while(NextPage > MaxPages)
{
NextPage--;
}

if(NextPage < MaxPages && NextPage != 10)
{
NextPage += 10;
}
int MaxShowPages = MaxPages - 10;
if(players.size() > MaxCharactersPerPage * MaxPages)
MaxPages++;
// Check if number of users changed
//if(page > MaxPages)
// page = MaxPages;
int CharactersStart = MaxCharactersPerPage * page;
int CharactersEnd = players.size();
if(CharactersEnd - CharactersStart > MaxCharactersPerPage)
CharactersEnd = CharactersStart + MaxCharactersPerPage;

String admhtml = "";
StringBuilder pages = new StringBuilder("");
StringBuilder charlist = new StringBuilder("");

if(ThisPage == MaxPages || ThisPage < MaxPages)
{
activeChar.sendMessage("This page == or < MaxPages");
for(int x = 0; x < NextPage; x++)
{
int pagenr = x + 1;
pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");
}
}
//for(int x = 0; x < MaxPages; x++)
//{
// int pagenr = x + 1;
// pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");
//}

for(int i = CharactersStart; i < CharactersEnd; i++)
{
Player p = players.get(i);
charlist.append("<tr><td width=160>" + "<button value=\"" + p.getName() + " \" action=\"bypass -h admin_character_list" + p.getName() + "\" width=160 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=110>" + p.getTemplate().className + "</td><td width=40>" + p.getLevel() + "</td><td width=40><button value=\"Go To\" action=\"bypass -h admin_goto_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=40><button value=\"Recall\" action=\"bypass -h admin_recall_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td></tr>");
}
admhtml = HtmCache.getInstance().getNotNull("admin/charlist.htm", activeChar);
admhtml = admhtml.replace("%pages%", pages.toString());
admhtml = admhtml.replace("%char_list%", charlist.toString());
admhtml = BbsUtil.htmlBuff(admhtml, activeChar);
ShowBoard.separateAndSend(admhtml, activeChar);
}

 

 

Что нужно:

Нужно что бы при переходе на следующую страницу она становилась первой то-есть у нас есть 1 2 3 4 5 6 7 8 9 10, мы перешли на 3 страницу и получили уже такое меню 3 4 5 6 7 8 9 10 11 12 13

А ты возьми, как образец, генерацию html-странички списка кланов в комьюнити. scripts/services/community/ClanCommunity.java вроде.

 

Только там немного не так (при клацанье на последнюю кнопку открывается след страница, на первую - предыдущая страница).

Изменено пользователем DiQuero
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

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

×
×
  • Создать...