The Arcive of vBulletin Modifications Site. |
|
Details »»
|
|||||||||||||||||||||||||
In forumdisplay.php you have the alibity to select your daysprune as the forum default, all, etc. What I would like to do is add the option to display those messages since you last logged on as an option.
So you have Code:
if (!isset($daysprune) or $daysprune==0 or $daysprune==-1) ...... Code:
if ($daysprune!=1000) {
$checkdate = time() - ($daysprune*86400);
$datecut='AND lastpost >= '.$checkdate;..........
Is this possible to do or would it be a larger strain on the server? Parker Show Your Support
|
|||||||||||||||||||||||||
| Comments |
|
#2
|
||||
|
||||
|
actually I think that would be fairly easy - and quite a nice idea, Parker. Give me a few to look at the code, brb
|
|
#3
|
||||
|
||||
|
Parker try this (I've not tested it yet):
in forumdisplay.php find (around line 311): Code:
if ($daysprune!=1000) {
$checkdate = time() - ($daysprune*86400);
$datecut='AND lastpost >= '.$checkdate;
}
Code:
if ($daysprune!=1000) {
if ($daysprune=='-2') {
$datecut='AND lastpost >= '.$bbuserinfo[lastvisit];
} else {
$checkdate = time() - ($daysprune*86400);
$datecut='AND lastpost >= '.$checkdate;
}
}
That's it. |
|
#4
|
|||
|
|||
|
Bira:
Thanks again. I couldn't do this stuff without you. Now in the modifyoptions template you have Code:
<select name="prunedays"> <option value="-1" $daysdefaultselected>Use forum default</option> <option value="1" $days1selected>Show threads from last day</option> <option value="-2" $days-2selected>Show thread from last visit</option> so that they can select this option in their control panel options? Parker |
|
#5
|
||||
|
||||
|
no, you can't have - there, in PHP that means $days - 2selected (minus).
You'll need a bit more "serious" hacking in there -- create a new $xxxselected variable and do some if's. Same as $defaultselected, just say $lastvisitselected. It means adding it to functions.php as well, if I remember correctly. If I need to do all that for you, I might as well write the hack -- just look around at how $defaultselected behaves and create a new variable
|
|
#6
|
|||
|
|||
|
Bira:
Ok, thanks I will look around and figure out what is going on. In the above I should have given you the rest of the code as just putting in the suggestion you gave me gives me a parsing error. The whole thing is: $datecut=""; $stickyids=""; $stickycount=0; if ($daysprune!=1000) { $checkdate = time() - ($daysprune*86400); $datecut='AND lastpost >= '.$checkdate; if ($pagenumber==1) { $datecut.=' AND sticky=0'; $stickies=$DB_site->query("SELECT threadid,lastpost FROM thread WHERE forumid='$foruminfo[forumid]' AND visible=1 AND sticky=1 $limitothers"); while($thissticky=$DB_site->fetch_array($stickies)) { //if ($thissticky['lastpost']<$checkdate) { $stickycount++; //} $stickyids.=",$thissticky[threadid]"; } } } How would I implement your coding suggestion into this? Thanks again, Parker |
|
#7
|
||||
|
||||
|
Parker I just tested the code I gave you in post #3 and it works perfectly. It's the only code you need to replace in forumdisplay.php (unless you want to add a user-selectable default option, of course).
|
|
#8
|
||||
|
||||
|
Parker what version are you on?!?
The vinyl code for 2.2.1 in forumdisplay.php is (lines 307-314): Code:
// look at thread limiting options
$datecut="";
$stickyids="";
$stickycount=0;
if ($daysprune!=1000) {
$checkdate = time() - ($daysprune*86400);
$datecut='AND lastpost >= '.$checkdate;
}
// get number of sticky threads for the first page
// on the first page there will be the sticky threads PLUS the $perpage other normal threads
// not quite a bug, but a deliberate feature!
if ($pagenumber==1) {
$datecut.=' AND sticky=0';
Code:
// look at thread limiting options
$datecut="";
$stickyids="";
$stickycount=0;
if ($daysprune!=1000) {
[high] if ($daysprune=='-2') {
$datecut='AND lastpost >= '.$bbuserinfo[lastvisit];
} else {[/high]
$checkdate = time() - ($daysprune*86400);
$datecut='AND lastpost >= '.$checkdate;
[high]}[/high]
}
// get number of sticky threads for the first page
// on the first page there will be the sticky threads PLUS the $perpage other normal threads
// not quite a bug, but a deliberate feature!
if ($pagenumber==1) {
$datecut.=' AND sticky=0';
|
|
#9
|
|||
|
|||
|
Bira:
I am using 2.2.0 and the code is $datecut=""; $stickyids=""; $stickycount=0; if ($daysprune!=1000) { $checkdate = time() - ($daysprune*86400); $datecut='AND lastpost >= '.$checkdate; if ($pagenumber==1) { instead of $datecut=""; $stickyids=""; $stickycount=0; if ($daysprune!=1000) { $checkdate = time() - ($daysprune*86400); $datecut='AND lastpost >= '.$checkdate; } if ($pagenumber==1) { It must be a code change between the two versions. I will give what you have a try. Parker |
|
#10
|
|||
|
|||
|
Bira:
I found that the way it is in 2.2.0 has an extra right bracket at the end of the next if statement. So I had to change $stickyids.=",$thissticky[threadid]"; } } } to $stickyids.=",$thissticky[threadid]"; } } to get rid of the parse error. Parker |
![]() |
|
|
| X vBulletin 3.8.12 by vBS Debug Information | |
|---|---|
|
|
More Information |
|
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|