vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB5 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=263)
-   -   Find First Image or Attachment and replace it with Avatar (https://vborg.vbsupport.ru/showthread.php?t=314233)

devoidfeast 09-10-2014 04:04 PM

Find First Image or Attachment and replace it with Avatar
 
Hello Fellows,
I am trying to customize the "Search Widget" where i am replacing the user avatar with a thumbnail.the thumbnail is to be generated from any video or images attached to the post.i am able to write an api call which gets the thumbnail from any video attached but i am still not successful to do it for images and attachment.
Code:

{vb:data thumbnail, content_video, getVideoThumbnail, {vb:raw url}}
<vb:if condition="isset($thumbnail) AND $thumbnail">
                                <img src="{vb:raw thumbnail}" alt=""                                                       
                                        <vb:if condition="isset($height) AND $height > 0"> height="{vb:raw height}"</vb:if>
                                        <vb:if condition="isset($width) AND $width > 0"> width="{vb:raw width}"</vb:if>
                                />
                        </vb:if>

getVideoThumbnail(url) is method i found in the "core/vb/api/content/video.php". i was successfully able to get the thumbnail from and video embeded.


Now i want to do some thing like the video with photos or [IMG] tag i found a method in the
"core/vb/api/content/text.php"
Code:

function autoPopulatePreviewImage($nodeId)
this function can reads all the post and search for images in it and populate the following array
Code:

                $data = array(
                        'parentid' => $node['parentid'],
                        'previewimage' => $attachment['nodeid'],
                        'nodeoptions' => $node['nodeoptions'],
                );


How can i call the above api function from a template?

Thank You.

Dead Eddie 09-10-2014 04:55 PM

Code:

{vb:data thumbnail, content_text, autoPopulatePreviewImage, {vb:raw nodeid}}
The nodeid variable would depend on what variable is in scope for the template you're using.

devoidfeast 09-10-2014 05:10 PM

i will call it in "display_contenttype_searchwidget_item_header" template.

Code:

{vb:data thumbnail, content_text, autoPopulatePreviewImage, {vb:raw conversation.nodeid}}
--------------- Added [DATE]1410373793[/DATE] at [TIME]1410373793[/TIME] ---------------

thumbnail variable will contain an array?? because autoPopulatePreviewImage() populate an array "data" which contain a possible address to the preview image.after calling the function as follow.
Code:

{vb:data thumbnail, content_text, autoPopulatePreviewImage, {vb:raw conversation.nodeid}}

<img src="{vb:raw thumbnail}" width="32" height="32" alt="{vb:raw conversation.authorname}" />

Now i just get on the avatar the name of the user with image missing.

am i using the thumnail variable wrong?

Dead Eddie 09-10-2014 06:34 PM

Sorry, don't have access to the vbulletin source code right now.

Does autoPopulatePreviewImage actually return the array? Or does it use it internally?

If you want to see what's in the variable, you can use:

Code:

{vb:debugvardump thumbnail}
--------------- Added [DATE]1410389539[/DATE] at [TIME]1410389539[/TIME] ---------------

$data isn't returned from the function, so you can't use it to do what you want it to do.

devoidfeast 09-10-2014 09:53 PM

the "autoPopulatePreviewImage()" in the api calls to "autoPopulatePreviewImage()" of library
Code:

public function autoPopulatePreviewImage($nodeId)
        {
                $data = $this->library->getFullContent($nodeId);
                if ($this->validate($data, self::ACTION_UPDATE, $nodeId))
                {
                        $this->library->autoPopulatePreviewImage($nodeId);
                }
        }

the "autoPopulatePreviewImage()" in the Library does not return anything it also destroys all the variables the only array left ath the end is the following but its not returned.
Code:

                $data = array(
                        'parentid' => $node['parentid'],
                        'previewimage' => $attachment['nodeid'],
                        'nodeoptions' => $node['nodeoptions'],
                );


if let say at the end i add a line return $data how will i be able to access "$data['previewimage'] " from template page.

thank you

Dead Eddie 09-10-2014 10:22 PM

{vb:raw thumbnail.previewimage}

devoidfeast 09-10-2014 10:43 PM

great Work. Mr Eddie.
Thank you


All times are GMT. The time now is 10:24 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.01128 seconds
  • Memory Usage 1,732KB
  • 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
  • (9)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (7)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