openvk/Web/Presenters/templates/Wall/Feed.xml
mrilyew 73a067a0c5
feat: ajax infinite scrolling (#1141)
* rewrite

* allow comments scroll

* rework to up button

* add posts scrolling function and ability to disabl

* cloudflare bypass (do not uncomment)
2024-11-22 16:31:07 +03:00

60 lines
2.3 KiB
XML

{extends "../@layout.xml"}
{block title}{_feed}{/block}
{block header}
{_feed}
{/block}
{block content}
{php $GLOBALS["_bigWall"] = 1}
<div class="tabs">
<div n:attr="id => (isset($globalFeed) ? 'ki' : 'activetabs')" class="tab">
<a n:attr="id => (isset($globalFeed) ? 'ki' : 'act_tab_a')" href="/feed">{_my_news}</a>
</div>
<div n:attr="id => (isset($globalFeed) ? 'activetabs' : 'ki')" class="tab">
<a n:attr="id => (isset($globalFeed) ? 'act_tab_a' : 'ki')" href="/feed/all">{_all_news}</a>
</div>
<a href='#' id="__feed_settings_link" data-pagescount='{ceil($paginatorConf->count / $paginatorConf->perPage)}'>{_feed_settings}</a>
</div>
<div n:class="postFeedWrapper, $thisUser->hasMicroblogEnabled() ? postFeedWrapperMicroblog">
{include "../components/textArea.xml", route => "/wall" . $thisUser->getId() . "/makePost", graffiti => true, polls => true, notes => true, hasSource => true}
</div>
<div class='scroll_container'>
<div class='scroll_node' n:foreach='$posts as $post'>
<a name="postGarter={$post->getId()}"></a>
{include "../components/post.xml", post => $post, onWallOf => true, commentSection => true}
</div>
</div>
<div class="postFeedBottom">
<div class="postFeedPaginator">
{include "../components/paginator.xml", conf => $paginatorConf}
</div>
<div class="postFeedPageSelect">
{_posts_per_page}:
<br />
<select id="pageSelect">
<option value="1">1</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
</select>
</div>
</div>
<script>
u("#pageSelect").nodes[0].value = {$paginatorConf->perPage};
u("#pageSelect").on("change", function(e) {
let url = "?" + {http_build_query(array_merge($_GET, ['posts' => '__padding']))};
window.location.assign(url.replace("__padding", e.target.value));
});
</script>
{/block}