vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   Printable version shows inline image attachments (https://vborg.vbsupport.ru/showthread.php?t=134791)

benFF 12-26-2006 07:21 AM

Printable version shows inline image attachments
 
Couldn't find this already done, but would be incredibly useful.

I have a lot of guides on my site which people print off to follow - problem being of course that image attachments aren't shown on the "printable version" - so they all have to be done seperately.

A mod would be cool to allow them to be shown :)

benFF 10-21-2011 04:47 PM

I'm going to bump this 5 years later ... :D Still need it!

timcullis 01-30-2012 09:10 AM

Looking for the same thing.

Wedframe 08-10-2015 05:41 PM

Bump!...
May be someone can help with this?

Elite_360_ 08-10-2015 08:41 PM

1 Attachment(s)
This is a old thread but you could always use right click on mouse and then print, Ctrl+P in Windows or use IE Edge if you have windows 10. IE Edge preview in attachment i don't have a touch screen had to write with my mouse.

MarkFL 08-10-2015 09:35 PM

See if this works for you (vB 4.x)...create a new plugin as follows:

Product: vBulletin

Hook Location: printthread_post

Title: Display Inline Attached Images In Printable Thread

Execution Order: 5

Plugin PHP Code:
PHP Code:

$post['attach'] = 0;
$post['message'] = preg_replace('/>Attachment(.*?)<\/a>/'' />'$post['message']);
$post['message'] = str_replace('<a class="image"''<img'$post['message']);
$post['message'] = preg_replace('/(<img.*?)href/''$1src'$post['message']); 


Plugin is Active: Yes

Wedframe 08-11-2015 09:58 AM

Elite_360_ I have a several reasons for functionality like this. One of them its create page with ALL posts from thread, and on which I can use CTRL+F from browser. It`s very easy way to search old posts with needful information. Anyway... its even nt my own desire, but users from my favorite forum.
So... I did not create a new topic, but simply asked in the existing. And this worked! )))

MarkFL thank you very much!!!! You save me a lot of time and nerves!!))
Although your code does not work on my forum, I was able to create the right module for me with to understanding its logic and right hook.
For me the result had like this:
PHP Code:

$post['message'] = preg_replace("/<a href=\"(\w{4,5}:\/\/.*attachmentid\=\d*)\"\s(.|\n)*<\/a>/U""<img style=\"max-width: 400px; max-height: 400px;\" src=\"\\1\">"$post['message']); 

It`s all right? The code dont have potentially errores?
Thanks again!!!!

Elite_360_ 08-12-2015 08:35 PM

@Wedframe you would have to do a query for attachment ids and the best function i could find to get image path would be fetch_attachment_path. I would use it in a php loop.

@MarkFL I don't think attachments are stored in the $post['message'] un-less they embed the image in the post.

If i get time i could write the code maybe MarkFL can or another coder.

this is what the function look like.


I could be going at this all wrong i don't know much about the attachments.

--Edited--

Wedframe 08-13-2015 06:53 PM

Elite_360_, actually code from my previous post(based on MarkFL idea), work good!
Why I need to do one more query?

Elite_360_ 08-13-2015 07:56 PM

Ok yeah the code works but just for embedded (inline) attachments but looking at first post that what they wanted so if the attachment not inline you will not see it. I thought you wanted it to work for any attachment thats why i made post #8.

--------------- Added [DATE]1439515346[/DATE] at [TIME]1439515346[/TIME] ---------------

Ok use same hook (printthread_post) as MarkFL pointed out in post #6.
This will show all attachments if they're inline or not, Print Thread only shows inline attachments.

If MarkFL or another coder what to make this a Mod go ahead but let MarkFL answer first if he want to or not since he help out first.

Code:


if ($post['attach'] > 0)
{
        $e360_attachments = $vbulletin->db->query_read("
                        SELECT attachmentid
                        FROM " . TABLE_PREFIX . "attachment
                        WHERE `contenttypeid` = 1 AND `userid` = " . $post['userid'] . "
                        AND `state` = 'visible' AND `contentid` = " . $post['postid'] . "
        ");

        while ($e360_row = $vbulletin->db->fetch_array($e360_attachments))
        {
                $e360_post['attachment'] .= '<img style="max-width: 400px; max-height: 400px;padding: 10px;" src="' . $vbulletin->options['bburl'] . '/attachment.php?attachmentid=' . $e360_row['attachmentid'] . '">';
        }
        $vbulletin->db->free_result($e360_attachments);

        $post['message'] = preg_replace("/<a href=\"(\w{4,5}:\/\/.*attachmentid\=\d*)\"\s(.|\n)*<\/a>/U", "", $post['message']);

        $e360_post['message'] = $post['message'];
        $post['attach'] = 0;
        $post['message'] = $e360_post['message'] . '<br />' . $e360_post['attachment'];
        unset($e360_row, $e360_post);
}

--------------- Added [DATE]1439587329[/DATE] at [TIME]1439587329[/TIME] ---------------

Add this right before if ($post['attach'] > 0) this will do embed images that use the img bbcode

Code:


if (preg_match('~<a[^>]*?href="(.*?(gif|jpeg|jpg|png))".*?</a>~', $post['message']))
{
        $post['message'] = preg_replace('~<a[^>]*?href="(.*?(gif|jpeg|jpg|png))".*?</a>~', '<img src="$1" style="max-width: 400px; max-height: 400px;padding: 10px;" />', $post['message']);
}


Elite_360_ 08-14-2015 08:11 PM

I'm going to make this a mod and just make you guys co-authors @MarkFL, @Wedframe

--------------- Added [DATE]1439593327[/DATE] at [TIME]1439593327[/TIME] ---------------

Here is the mod.
Display Images in Printable Thread


All times are GMT. The time now is 08:07 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01639 seconds
  • Memory Usage 1,747KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (11)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete