Есть маленький сайтик с несколькими десятками страниц. На главной странице есть лента объявлений, которые подгружаются с помощью endless scroll js.
Эта штука использует db.php
<?php
mysql_connect('localhost', 'login', "pass") or die();
mysql_select_db('itests_mobile');
mysql_query("SET NAMES UTF8");
mysql_query("SET CHARACTER SET UTF8");
$offset = is_numeric($_POST['offset']) ? $_POST['offset'] : die();
$postnumbers = is_numeric($_POST['number']) ? $_POST['number'] : die();
$run = mysql_query("SELECT * FROM listings ORDER BY `id` DESC LIMIT ".$postnumbers." OFFSET ".$offset);
while($row = mysql_fetch_array($run)) {
$content = substr(strip_tags($row['body']), 0, 500);
echo "<div class='row'>
<div class='col-md-4 boxes'>
<p>". $content. "</p>
<p><a class='btn btn-default' href='#' role='button'>Толук маалымат »</a></p>
</div>
</div>";
}
?>
jquery.js с кучей кодов
и
pagination.js
// Extend the options so they work with the plugin
if(options) {
$.extend(settings, options);
}
// For each so that we keep chainability.
return this.each(function() {
// Some variables
$this = $(this);
$settings = settings;
var offset = $settings.offset;
var busy = false; // Checks if the scroll action is happening
// so we don't run it multiple times
// Custom messages based on settings
if($settings.scroll == true) $initmessage = 'Scroll for more or click here';
else $initmessage = 'Click for more';
// Append custom messages and extra UI
$this.append('<div class="content"></div><div class="loading-bar">'+$initmessage+'</div>');
function getData() {
// Post data to ajax.php
$.post('db.php', {
action : 'scrollpagination',
number : $settings.nop,
offset : offset,
}, function(data) {
// Change loading bar content (it may have been altered)
$this.find('.loading-bar').html($initmessage);
// If there is no data returned, there are no more posts to be shown. Show error
if(data == "") {
$this.find('.loading-bar').html($settings.error);
}
else {
// Offset increases
offset = offset+$settings.nop;
// Append the data to the content div
$this.find('.content').append(data);
// No longer busy!
busy = false;
}
});
}
getData(); // Run function initially
// If scrolling is enabled
if($settings.scroll == true) {
// .. and the user is scrolling
$(window).scroll(function() {
// Check the user is at the bottom of the element
if($(window).scrollTop() + $(window).height() > $this.height() && !busy) {
// Now we are working, so busy is true
busy = true;
// Tell the user we're loading posts
$this.find('.loading-bar').html('Башка жарнамаларды чыгаруу');
// Run the function to fetch the data inside a delay
// This is useful if you have content in a footer you
// want the user to see.
setTimeout(function() {
getData();
}, $settings.delay);
}
});
}
// Also content can be loaded by clicking the loading bar/
$this.find('.loading-bar').click(function() {
if(busy == false) {
busy = true;
getData();
}
});
});
}
})(jQuery);
и в индекс.php
Мне нужно использовать эту пагинацию и на других страницах. Но в моем случае придется создавать копии этих файлов для каждой страницы что не приемлемо для меня. Как переписать все это так чтобы я мог пользоваться одним файлом или классом? У меня идей пока нет(