'; echo ' '; echo '
Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


[C++] Saving a screenshot?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming
View previous topic :: View next topic  
Author Message
manc
Grandmaster Cheater
Reputation: 1

Joined: 16 Jun 2006
Posts: 551

PostPosted: Mon Dec 27, 2010 7:45 pm    Post subject: [C++] Saving a screenshot? Reply with quote

Basic psuedocode of my program:

Code:
#include<string>
#include<Windows.h>
#include<iostream>
using namespace std;


int main(){

   FreeConsole();

   for(;;){

      if (8 is pressed)
         savePicture();
   }

   return 0;
}



I want my program running in the background.

When I press a hotkey, lets say F9, I want to take a screenshot of the entire screen (or the active window if that'd be easier), and then save it somewhere.

Basically my question is, what API's am I gonna need for if (8 is pressed) , and for the actual saving of the picture as an actual file (bmp?).

Advice/tips/API's/psuedocode/anything appreciated <3

_________________
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 198

Joined: 25 Jan 2006
Posts: 8516
Location: 127.0.0.1

PostPosted: Mon Dec 27, 2010 7:56 pm    Post subject: This post has 1 review(s) Reply with quote

Firstly, don't call FreeConsole on a console application. If you want a windowless solution running in the background just create a normal Win32 application and just don't create a window.

Monitoring Key Press:
- GetAsyncKeyState (Global)
- RegisterHotKey (Global)
- WM_CHAR / WM_KEYDOWN / WM_KEYUP (Local)

Taking the screenshot can be done various different ways and saving it is up to you as well. You can use outside libraries such as libpng / libjpg etc. to save with a compressed format for size friendly images and so on.

Snapping an image of the screen (Gdi):
- CreateCompatibleDC
- CreateCompatibleBitmap
- BitBlt
- SelectObject / DeleteObject

Screenshot via Clipboard:
- When your key is detected, force the print screen button to be pressed.
- OpenClipboard / GetClipboardData / CloseClipboard
- Convert the clipboard data to a bmp and save it.

There are other ways of taking the image as well as creating an application to handle monitoring for the key press as well. Just use Google if you need more in depth examples.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
manc
Grandmaster Cheater
Reputation: 1

Joined: 16 Jun 2006
Posts: 551

PostPosted: Mon Dec 27, 2010 8:10 pm    Post subject: Reply with quote

Wow, everything I need. Thank you. I'll be going the Clipboard route then. lol
_________________
Back to top
View user's profile Send private message
hcavolsdsadgadsg
I'm a spammer
Reputation: 26

Joined: 11 Jun 2007
Posts: 5801

PostPosted: Mon Dec 27, 2010 9:50 pm    Post subject: Reply with quote

you can also:


select a DIB section into a memoryDC then blit the screen into it.

- pass 0 to GetDC() to return a context for the entire screen.
- create your offscreen buffer with CreateCompatibleDC()
- create a DIB section with the aptly named CreateDIBSection()
- use SelectObject() to select the DIB section into the memory dc
- simply BitBlt(), use the original context as the source and the memory dc as the destination

like magic, you have raw pixel data for the entire screen. append your bitmap header and save. can't remember off the top of my head if you need to flip the byte ordering, bgr / rgb.

fast and easy and if you really feel so inclined, easy to manipulate the resulting image right then and there.
Back to top
View user's profile Send private message
manc
Grandmaster Cheater
Reputation: 1

Joined: 16 Jun 2006
Posts: 551

PostPosted: Sun Jan 09, 2011 8:33 pm    Post subject: Reply with quote

Alright, this is my code at the moment:

Code:
#include <Windows.h>
#include <iostream>

void printscreen(void){

   keybd_event(VK_SNAPSHOT, 0, 0, 0);
    keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);
   //Normal Full Screenshot
}

void printscreenwindow(void){

   keybd_event(VK_SNAPSHOT, 1, 0, 0);
   keybd_event(VK_SNAPSHOT, 1, KEYEVENTF_KEYUP, 0);
   //Screenshots the active window only
}

void savePic(void){

   OpenClipboard(NULL);
   HANDLE clipHandle = GetClipboardData(CF_BITMAP);
   //Convert the clipboard data to a bmp and save it ??
   CloseClipboard();
}


int main(){

 

   for(;;25){

      if ( GetAsyncKeyState(0x7B) ){ // 0x7B = F12
        printscreen();
        savePic();
     }
       

     if ( GetAsyncKeyState(0x7A) ){ // 0x7A = F11
        printscreenwindow();
        savePic();
     }
      
   }
   
   return 0;
}



This might be totally fucking wrong. I know . _ .

But my question is, how exactly do I use the handle of the clipboard data to save it ? Am I missing something here?

_________________
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 198

Joined: 25 Jan 2006
Posts: 8516
Location: 127.0.0.1

PostPosted: Mon Jan 10, 2011 10:01 am    Post subject: Reply with quote

Use SetClipboardData with CF_BITMAP after you opened the clipboard.
_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
manc
Grandmaster Cheater
Reputation: 1

Joined: 16 Jun 2006
Posts: 551

PostPosted: Mon Jan 10, 2011 12:27 pm    Post subject: Reply with quote

Code:
void savePic(void){

   OpenClipboard(NULL);
   HANDLE clipHandle = GetClipboardData(CF_BITMAP);
   HANDLE dataHandle = SetClipboardData(CF_BITMAP, clipHandle);

   //   ??

   CloseClipboard();
}


Thank you, I have that now.
According to MSDN,
Quote:
If the function succeeds, the return value is the handle to the data.


So I guess my question is, how do I use the HANDLE (dataHandle) to the data to create the 'physical' file at my designated directory?

_________________
Back to top
View user's profile Send private message
HomerSexual
Grandmaster Cheater Supreme
Reputation: 5

Joined: 03 Feb 2007
Posts: 1657

PostPosted: Mon Jan 10, 2011 2:11 pm    Post subject: Reply with quote

You should get Programming Windows 5th edition. It has this example in it using the bitblt method.
_________________
Back to top
View user's profile Send private message
hcavolsdsadgadsg
I'm a spammer
Reputation: 26

Joined: 11 Jun 2007
Posts: 5801

PostPosted: Mon Jan 10, 2011 6:55 pm    Post subject: Reply with quote

BitBlt() is more or less a fancy memcpy(), not really that difficult
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 198

Joined: 25 Jan 2006
Posts: 8516
Location: 127.0.0.1

PostPosted: Mon Jan 10, 2011 10:06 pm    Post subject: Reply with quote

manc wrote:
Code:
void savePic(void){

   OpenClipboard(NULL);
   HANDLE clipHandle = GetClipboardData(CF_BITMAP);
   HANDLE dataHandle = SetClipboardData(CF_BITMAP, clipHandle);

   //   ??

   CloseClipboard();
}


Thank you, I have that now.
According to MSDN,
Quote:
If the function succeeds, the return value is the handle to the data.


So I guess my question is, how do I use the HANDLE (dataHandle) to the data to create the 'physical' file at my designated directory?


Wow sorry completely misread the post before, thought you were asking how to set the clipboard with a bitmap.

If you want to read from it, in your case a bitmap, call OpenClipboard then GetClipboardData passing CF_BITMAP. The handle returned from GetClipboardData can be used to call GetObject to obtain the BITMAP information from the image. Then you can reconstruct a valid bitmap header from that data and save the file.

You'll have to rebuild the header manually, I don't think there is a way to obtain it from the clipboard or if it even makes one. The clipboard just has the raw BITMAP data I believe.

You'll need to build:
- BITMAPFILEHEADER structure.
- BITMAPINFOHEADER structure.
- Raw data of image from the BITMAP information.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
manc
Grandmaster Cheater
Reputation: 1

Joined: 16 Jun 2006
Posts: 551

PostPosted: Mon Jan 10, 2011 11:42 pm    Post subject: Reply with quote

Thanks for all the help you are giving, by the way. 'Tis appreciated.

Wiccaan wrote:

You'll need to build:
- BITMAPFILEHEADER structure.
- BITMAPINFOHEADER structure.


This might sound ridiculous, but how do I make my own structures?
If I name them the same thing, then I get redefinition errors since they already exist. I cant just declare an object of BITMAPFILEHEADER type and access it like I would with a class either, (ex: object.datamember ) because intellisense doesnt pick it up, and entering it manually gives errors.
I meant like this,

Code:

 BITMAPFILEHEADER bmfh;

 bmfh.bfType = BM;
 bmfh.bfSize = 900;
 bmfh.bfReserved1= 0;
 bmfh.bfReserved2 = 0;
 bmfh.bfOffBits = 3;


Google isnt yielding very relevant answers at the moment, I did search already. Confused

_________________
Back to top
View user's profile Send private message
HomerSexual
Grandmaster Cheater Supreme
Reputation: 5

Joined: 03 Feb 2007
Posts: 1657

PostPosted: Mon Jan 10, 2011 11:46 pm    Post subject: Reply with quote

manc wrote:
Thanks for all the help you are giving, by the way. 'Tis appreciated.

Wiccaan wrote:

You'll need to build:
- BITMAPFILEHEADER structure.
- BITMAPINFOHEADER structure.


This might sound ridiculous, but how do I make my own structures?
If I name them the same thing, then I get redefinition errors since they already exist. I cant just declare an object of BITMAPFILEHEADER type and access it like I would with a class either, (ex: object.datamember ) because intellisense doesnt pick it up, and entering it manually gives errors.
I meant like this,

Code:

 BITMAPFILEHEADER bmfh;

 bmfh.bfType = BM;
 bmfh.bfSize = 900;
 bmfh.bfReserved1= 0;
 bmfh.bfReserved2 = 0;
 bmfh.bfOffBits = 3;


Google isnt yielding very relevant answers at the moment, I did search already. Confused


There are tons of examples on google

http://www.gamedev.net/topic/395078-c-win32-how-to-save-a-dc-to-a-bitmap/

Found that after like 2 searches. There is source code on there for exactly what you want. As stated above, find (ahem arrrarrmatey) the book i mentioned. It is found easily in ebook chm format.

_________________
Back to top
View user's profile Send private message
manc
Grandmaster Cheater
Reputation: 1

Joined: 16 Jun 2006
Posts: 551

PostPosted: Tue Jan 11, 2011 12:32 am    Post subject: Reply with quote

HomerSexual wrote:
find (ahem arrrarrmatey) the book i mentioned. It is found easily in ebook chm format.


Alright thanks matey, I "found" it. I think I found the relevant part, Ill take a closer took tomorrow and post if any complications arise.

_________________
Back to top
View user's profile Send private message
HomerSexual
Grandmaster Cheater Supreme
Reputation: 5

Joined: 03 Feb 2007
Posts: 1657

PostPosted: Tue Jan 11, 2011 10:33 am    Post subject: Reply with quote

manc wrote:
HomerSexual wrote:
find (ahem arrrarrmatey) the book i mentioned. It is found easily in ebook chm format.


Alright thanks matey, I "found" it. I think I found the relevant part, Ill take a closer took tomorrow and post if any complications arise.


They distributed the ebook along with the book, was very convenient haha. I did buy the book though since it's only like 10$ on ebay and makes me look nerdy on my bookshelf. On topic sort of, read it all! It's such a nice reference for win32 programming.

_________________
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
'attach'][$_attach_i]['cat_swf'][$_cat_swf_i]['HEIGHT'] : '') , '"> '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '

'; echo '
'; echo '

'; } // END cat_swf $_cat_images_count = (isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'])) ? sizeof($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images']) : 0;for ($_cat_images_i = 0; $_cat_images_i < $_cat_images_count; $_cat_images_i++){ echo '

'; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['DOWNLOAD_NAME'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['DOWNLOAD_NAME'] : '') , '
 ' , ((isset($this->_tpldata['.'][0]['L_DESCRIPTION'])) ? $this->_tpldata['.'][0]['L_DESCRIPTION'] : '') , ': '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['COMMENT'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['COMMENT'] : '') , '
'; echo '
 ' , ((isset($this->_tpldata['.'][0]['L_FILESIZE'])) ? $this->_tpldata['.'][0]['L_FILESIZE'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['FILESIZE'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['FILESIZE'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['SIZE_VAR'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['SIZE_VAR'] : '') , '
 ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['L_DOWNLOADED_VIEWED'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['L_DOWNLOADED_VIEWED'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['L_DOWNLOAD_COUNT'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['L_DOWNLOAD_COUNT'] : '') , '

' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['DOWNLOAD_NAME'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_images'][$_cat_images_i]['DOWNLOAD_NAME'] : '') , '

'; echo '

'; } // END cat_images $_cat_thumb_images_count = (isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'])) ? sizeof($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images']) : 0;for ($_cat_thumb_images_i = 0; $_cat_thumb_images_i < $_cat_thumb_images_count; $_cat_thumb_images_i++){ echo '

'; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['DOWNLOAD_NAME'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['DOWNLOAD_NAME'] : '') , '
 ' , ((isset($this->_tpldata['.'][0]['L_DESCRIPTION'])) ? $this->_tpldata['.'][0]['L_DESCRIPTION'] : '') , ': '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['COMMENT'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['COMMENT'] : '') , '
'; echo '
 ' , ((isset($this->_tpldata['.'][0]['L_FILESIZE'])) ? $this->_tpldata['.'][0]['L_FILESIZE'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['FILESIZE'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['FILESIZE'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['SIZE_VAR'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['SIZE_VAR'] : '') , '
 ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['L_DOWNLOADED_VIEWED'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['L_DOWNLOADED_VIEWED'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['L_DOWNLOAD_COUNT'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['L_DOWNLOAD_COUNT'] : '') , '

' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['DOWNLOAD_NAME'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['cat_thumb_images'][$_cat_thumb_images_i]['DOWNLOAD_NAME'] : '') , '

'; echo '

'; } // END cat_thumb_images $_attachrow_count = (isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'])) ? sizeof($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow']) : 0;for ($_attachrow_i = 0; $_attachrow_i < $_attachrow_count; $_attachrow_i++){ echo '

'; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['DOWNLOAD_NAME'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['DOWNLOAD_NAME'] : '') , '
 ' , ((isset($this->_tpldata['.'][0]['L_DESCRIPTION'])) ? $this->_tpldata['.'][0]['L_DESCRIPTION'] : '') , ': '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['COMMENT'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['COMMENT'] : '') , '
'; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['S_UPLOAD_IMAGE'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['S_UPLOAD_IMAGE'] : '') , '
_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['TARGET_BLANK'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['TARGET_BLANK'] : '') , ' class="genmed">' , ((isset($this->_tpldata['.'][0]['L_DOWNLOAD'])) ? $this->_tpldata['.'][0]['L_DOWNLOAD'] : '') , '
 ' , ((isset($this->_tpldata['.'][0]['L_FILENAME'])) ? $this->_tpldata['.'][0]['L_FILENAME'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['DOWNLOAD_NAME'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['DOWNLOAD_NAME'] : '') , '
 ' , ((isset($this->_tpldata['.'][0]['L_FILESIZE'])) ? $this->_tpldata['.'][0]['L_FILESIZE'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['FILESIZE'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['FILESIZE'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['SIZE_VAR'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['SIZE_VAR'] : '') , '
 ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['L_DOWNLOADED_VIEWED'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['L_DOWNLOADED_VIEWED'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['L_DOWNLOAD_COUNT'])) ? $this->_tpldata['postrow'][$_postrow_i]['attach'][$_attach_i]['attachrow'][$_attachrow_i]['L_DOWNLOAD_COUNT'] : '') , '
'; echo '

'; } // END attachrow echo ' '; } // END attach echo '' , ((isset($this->_tpldata['postrow'][$_postrow_i]['SIGNATURE'])) ? $this->_tpldata['postrow'][$_postrow_i]['SIGNATURE'] : '') , '' , ((isset($this->_tpldata['postrow'][$_postrow_i]['EDITED_MESSAGE'])) ? $this->_tpldata['postrow'][$_postrow_i]['EDITED_MESSAGE'] : '') , ' '; echo ' '; $_warning_count = (isset($this->_tpldata['postrow'][$_postrow_i]['warning'])) ? sizeof($this->_tpldata['postrow'][$_postrow_i]['warning']) : 0;for ($_warning_i = 0; $_warning_i < $_warning_count; $_warning_i++){ echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['warning'][$_warning_i]['ICON'])) ? $this->_tpldata['postrow'][$_postrow_i]['warning'][$_warning_i]['ICON'] : '') , '' , ((isset($this->_tpldata['postrow'][$_postrow_i]['warning'][$_warning_i]['DETAILS'])) ? $this->_tpldata['postrow'][$_postrow_i]['warning'][$_warning_i]['DETAILS'] : '') , '
' , ((isset($this->_tpldata['.'][0]['L_REASON'])) ? $this->_tpldata['.'][0]['L_REASON'] : '') , ': ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['warning'][$_warning_i]['MESSAGE'])) ? $this->_tpldata['postrow'][$_postrow_i]['warning'][$_warning_i]['MESSAGE'] : '') , '
'; echo ' '; } // END warning echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' ' , ((isset($this->_tpldata['.'][0]['L_BACK_TO_TOP'])) ? $this->_tpldata['.'][0]['L_BACK_TO_TOP'] : '') , ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['postrow'][$_postrow_i]['PROFILE_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['PROFILE_IMG'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['PM_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['PM_IMG'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['EMAIL_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['EMAIL_IMG'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['WWW_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['WWW_IMG'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['AIM_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['AIM_IMG'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['YIM_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['YIM_IMG'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['MSN_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['MSN_IMG'] : '') , '' , ((isset($this->_tpldata['postrow'][$_postrow_i]['YELLOW_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['YELLOW_IMG'] : '') , ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['RED_IMG'])) ? $this->_tpldata['postrow'][$_postrow_i]['RED_IMG'] : '') , '
'; echo ' '; echo ' '; echo ' ' , ((isset($this->_tpldata['postrow'][$_postrow_i]['ADCODE'])) ? $this->_tpldata['postrow'][$_postrow_i]['ADCODE'] : '') , ' '; echo ' '; } // END postrow echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['.'][0]['L_DISPLAY_POSTS'])) ? $this->_tpldata['.'][0]['L_DISPLAY_POSTS'] : '') , ': ' , ((isset($this->_tpldata['.'][0]['S_SELECT_POST_DAYS'])) ? $this->_tpldata['.'][0]['S_SELECT_POST_DAYS'] : '') , ' ' , ((isset($this->_tpldata['.'][0]['S_SELECT_POST_ORDER'])) ? $this->_tpldata['.'][0]['S_SELECT_POST_ORDER'] : '') , ' 
'; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['.'][0]['L_POST_NEW_TOPIC'])) ? $this->_tpldata['.'][0]['L_POST_NEW_TOPIC'] : '') , '   ' , ((isset($this->_tpldata['.'][0]['L_POST_REPLY_TOPIC'])) ? $this->_tpldata['.'][0]['L_POST_REPLY_TOPIC'] : '') , ' '; $_switch_quick_reply_count = (isset($this->_tpldata['switch_quick_reply'])) ? sizeof($this->_tpldata['switch_quick_reply']) : 0;for ($_switch_quick_reply_i = 0; $_switch_quick_reply_i < $_switch_quick_reply_count; $_switch_quick_reply_i++){ echo '   ' , ((isset($this->_tpldata['.'][0]['L_POST_SQR_TOPIC'])) ? $this->_tpldata['.'][0]['L_POST_SQR_TOPIC'] : '') , ' '; } // END switch_quick_reply echo '   ' , ((isset($this->_tpldata['.'][0]['L_INDEX'])) ? $this->_tpldata['.'][0]['L_INDEX'] : '') , ' '; $_switch_parent_link_count = (isset($this->_tpldata['switch_parent_link'])) ? sizeof($this->_tpldata['switch_parent_link']) : 0;for ($_switch_parent_link_i = 0; $_switch_parent_link_i < $_switch_parent_link_count; $_switch_parent_link_i++){ echo ' -> ' , ((isset($this->_tpldata['.'][0]['PARENT_NAME'])) ? $this->_tpldata['.'][0]['PARENT_NAME'] : '') , ' '; } // END switch_parent_link echo ' -> ' , ((isset($this->_tpldata['.'][0]['FORUM_NAME'])) ? $this->_tpldata['.'][0]['FORUM_NAME'] : '') , '' , ((isset($this->_tpldata['.'][0]['S_TIMEZONE'])) ? $this->_tpldata['.'][0]['S_TIMEZONE'] : '') , '
' , ((isset($this->_tpldata['.'][0]['PAGINATION'])) ? $this->_tpldata['.'][0]['PAGINATION'] : '') , ' '; echo '
' , ((isset($this->_tpldata['.'][0]['PAGE_NUMBER'])) ? $this->_tpldata['.'][0]['PAGE_NUMBER'] : '') , '
'; echo ' '; $_switch_quick_reply_count = (isset($this->_tpldata['switch_quick_reply'])) ? sizeof($this->_tpldata['switch_quick_reply']) : 0;for ($_switch_quick_reply_i = 0; $_switch_quick_reply_i < $_switch_quick_reply_count; $_switch_quick_reply_i++){ echo ' ' , ((isset($this->_tpldata['.'][0]['QRBODY'])) ? $this->_tpldata['.'][0]['QRBODY'] : '') , ' '; } // END switch_quick_reply echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo '
' , ((isset($this->_tpldata['.'][0]['S_WATCH_TOPIC'])) ? $this->_tpldata['.'][0]['S_WATCH_TOPIC'] : '') , '
'; echo '  
'; echo ' ' , ((isset($this->_tpldata['.'][0]['S_TOPIC_ADMIN'])) ? $this->_tpldata['.'][0]['S_TOPIC_ADMIN'] : '') , '
' , ((isset($this->_tpldata['.'][0]['JUMPBOX'])) ? $this->_tpldata['.'][0]['JUMPBOX'] : '') , '' , ((isset($this->_tpldata['.'][0]['S_AUTH_LIST'])) ? $this->_tpldata['.'][0]['S_AUTH_LIST'] : '') , '
'; echo ' '; ?>


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites