Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Dynamically Create Amazon Links to use your associate id Details »»
Dynamically Create Amazon Links to use your associate id
Version: 1.00, by amykhar amykhar is offline
Developer Last Online: Nov 2013 Show Printable Version Email this Page

Version: 3.5.4 Rating:
Released: 07-17-2005 Last Update: 03-28-2006 Installs: 56
Additional Files  
No support by the author.

This one is in beta gang. Amazon seems to like to change their link style every two minutes.

What it does: It takes any link to Amazon pages on your forum and modifies the link on the fly to use your associate id. This one should make you some money - it generally works very well for my forum around Christmas time.

No screenshots. You know what an Amazon link looks like

I am offereing this one with limited support. I will get it working as well as possible - in other words, correctly transforming as many links as possible. But, I can't promise it will get every link because of differences between the different vbulletin message editors, etc.

Amy

-------------
This hack will always be free, however your donations are kindly accepted and will help towards further development. If you donate, please leave me some info (either your forum site or username at vB.org) so that I can thank you.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #62  
Old 09-09-2007, 08:17 AM
reteep reteep is offline
 
Join Date: Mar 2004
Location: Germany
Posts: 164
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Tralala View Post
Looks like all that does is replace the amazon.com with amazon.de?
How would that fix the extra slash???
Oh yea sorry, I adapted it for amazon.de. Just change it back to amazon.com, the important part is this here:

Code:
/ASIN".$asin[0]."ref=nosim/"
I removed the slash in front of ref
Reply With Quote
  #63  
Old 09-09-2007, 11:43 AM
Tralala's Avatar
Tralala Tralala is offline
 
Join Date: Jan 2006
Posts: 1,207
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Gotcha, thanks!
Reply With Quote
  #64  
Old 09-18-2007, 05:25 PM
Didi R. Didi R. is offline
 
Join Date: Mar 2006
Location: Linz.at
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thx a lot. Great addon. works perfect!
Reply With Quote
  #65  
Old 09-18-2007, 07:54 PM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Does this addon work out of the box or does it need code modification?
Reply With Quote
  #66  
Old 11-19-2007, 02:52 AM
weeno weeno is offline
 
Join Date: Jan 2002
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by amykhar View Post
1. Yes. It won't change your current affiliate links.
2. This version only works on new messages. The 3.0 version worked on all of them. Jelsoft changed the way urls are parsed - hence the change.
Is there no way to make this parse posts while they are being rendered/displayed to replace links on-the-fly? I'm not that familiar with hook locations, but it seems this code could be run right before the post is displayed by showthread.

edit:
oh wait.... this may be an old post... looks ilke it does work on existing posts. right?

arn
Reply With Quote
  #67  
Old 11-20-2007, 01:26 PM
felxi felxi is offline
 
Join Date: Jun 2007
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I made some different fixes and this script works now with vBulletin 3.6.8. The code is not the best but seems to work much better. E.g. [ url=xxx]yyy[ /url] links will be replaces correctly. problems with missing tags like [/font][/size] behind the amazon link will be solved. there can also be an image in the post and the link will be replaced and some other small fixes.

new code for vB 3.6.8
PHP Code:
<?php
function process_amazon_links($message) {
    
// Convert any amazon links to use your affilliate id.
    // enter your associate id here
    
$associate_id "your-id-here";

    if(
preg_match_all("/(\"\])/",$message,$tagarray)) {
        for(
$i=0;$i<count($tagarray[1]);$i++) {
            
$tagarray[1][$i] = $tagarray[1][$i]." ";
        }
        
$message str_replace($tagarray[0],$tagarray[1],$message);
    }

    
$message str_replace('[url=''[URL='$message);
    
$message str_replace('[url]''[URL]'$message);
    
$message str_replace('[/url]''[/URL]'$message);


    if(
preg_match_all("/(http:\/\/(?:[A-z0-9\.]+)?amazon.de\/\S+)/"$message$messagearray)) {
        for(
$i=0;$i<count($messagearray[1]);$i++) {
            if(!
stristr($messagearray[1][$i],"$associate_id") && strpos($messagearray[1][$i], '[img]') === false &&  strpos($messagearray[1][$i], '[IMG]') === false) {
                
$strippedurl preg_split("/\/[a-zA-Z0-9]{3}-[a-zA-Z0-9]{7}-[a-zA-Z0-9]{7}/"$messagearray[1][$i]);
                    
$messagearray[1][$i] = $strippedurl[0].$strippedurl[1];

                 
// Look for an asin number
                
if(!preg_match("/\/[a-zA-Z0-9]{10}\//"$messagearray[1][$i],$asin)) {
                    if(
stristr($messagearray[1][$i],"http://www.amazon.de/exec/obidos/")) {
                        
$strippedurl preg_split("/http:\/\/www.amazon.de\/exec\/obidos\//",$messagearray[1][$i]);
                        
$messagearray[1][$i] = $strippedurl[0].$strippedurl[1];
                    }

                    if(
stristr($messagearray[1][$i],"[/URL]")) {
                        
$strippedurl preg_split("/\[\/URL\]/",$messagearray[1][$i]);
                        
$messagearray[1][$i] = $strippedurl[0].$strippedurl[1];
                        
$messagearray[1][$i] = "http://www.amazon.de/exec/obidos/redirect?link_code=ur2&camp=1789&tag=".$associate_id."&creative=9325&path=".urlencode(str_replace('[/URL]'''$messagearray[1][$i]))."[/URL]";
                    } else {
                        
$messagearray[1][$i] = "http://www.amazon.de/exec/obidos/redirect?link_code=ur2&camp=1789&tag=".$associate_id."&creative=9325&path=".urlencode($messagearray[1][$i]);
                     }
                 } else {
                     if(
stristr($messagearray[1][$i],'"]')) {
                        
$bracketarray[0]='"]';
                        
$bracketarrayrep[0] = '"] ';
                        
$messagearray[1][$i]= str_replace($bracketarray,$bracketarrayrep,$messagearray[1][$i]);
                         
$messagearray[1][$i] = "http://www.amazon.de/exec/obidos/ASIN".$asin[0]."ref=nosim/" $associate_id.'"]';
                     } elseif(
stristr($messagearray[1][$i],"[/URL]")) {
                        
$messagearray[1][$i] = "http://www.amazon.de/exec/obidos/ASIN".$asin[0]."ref=nosim/" $associate_id."[/URL]";
                    } else {
                           
$messagearray[1][$i] = "http://www.amazon.de/exec/obidos/ASIN".$asin[0]."ref=nosim/" $associate_id;
                       }
                 }


                if(
$pos strpos($messagearray[0][$i], '[/URL]')) {
                    
$ext_str substr($messagearray[0][$i], $pos+6);
                    if(
strpos($messagearray[1][$i], $ext_str) === false) {
                        
$messagearray[1][$i] .= $ext_str;
                    }
                }

                if(
preg_match('/\](.*)\[\/URL\]/'$messagearray[0][$i], $out)) {
                    
$messagearray[1][$i] = substr_replace($messagearray[1][$i], $out[0], strpos($messagearray[1][$i], '[/URL]'), );
                }
            }
        }
    }

    
$message=str_replace($messagearray[0],$messagearray[1],$message);
    return 
$message;
}
?>
please let me know if u have some problems. dont forget to replace amazon.de with amazon.com.
Reply With Quote
  #68  
Old 11-22-2007, 02:21 AM
weeno weeno is offline
 
Join Date: Jan 2002
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by felxi View Post
I made some different fixes and this script works now with vBulletin 3.6.8. The code is not the best but seems to work much better. E.g. [ url=xxx]yyy[ /url] links will be replaces correctly. problems with missing tags like [/font][/size] behind the amazon link will be solved. there can also be an image in the post and the link will be replaced and some other small fixes.

Hi, thanks for posting.

You code, however, does not appear to work for

[URL="http://www.amazon.com/Logitech-970155-0403-V20-Notebook-Speakers/dp/B0009WKBGC"]these[/URL]

results in...

[url="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&camp=1789&tag=AFFILIATECODE &creative=9325&path=http%3A%2F%2Fwww.amazon.com%2F Logitech-970155-0403-V20-Notebook-Speakers%2Fdp%2FB0009WKBGC%22%5D these[/URL]
Reply With Quote
  #69  
Old 11-22-2007, 08:42 PM
felxi felxi is offline
 
Join Date: Jun 2007
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I rewrote this modification completely within the last hours.

have a look at:
https://vborg.vbsupport.ru/showthread.php?t=163393
Reply With Quote
  #70  
Old 02-07-2009, 03:15 AM
Coop1979 Coop1979 is offline
 
Join Date: Aug 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just PM'd the coder. I offered financial compensation to update the mod, so hopefully that will help!
Reply With Quote
  #71  
Old 03-22-2011, 10:07 AM
wraggster wraggster is offline
 
Join Date: Mar 2005
Posts: 78
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

ok got this working nicely in VB3.8.7 for amazon UK

basically did this

PHP Code:
<?php

function process_amazon_links($message)
{


// Convert any amazon links to use your affilliate id.

// enter your associate id here

$associate_id "dcemu-21";

   if(
preg_match_all("/(\"\])/",$message,$tagarray))
   {
      for(
$i=0;$i<count($tagarray[1]);$i++)
      {
         
$tagarray[1][$i] = $tagarray[1][$i]." ";
      }
     
$message=str_replace($tagarray[0],$tagarray[1],$message);   
   }
     if(!
preg_match_all("/(\[img\S+)/",$message,$messagearray)){
   if(
preg_match_all("/(http:\/\/[A-z0-9\.]+amazon.co.uk\/\S+)/",$message,$messagearray))
   {
     
          for(
$i=0;$i<count($messagearray[1]);$i++)
          {
               if(!
stristr($messagearray[1][$i],"$associate_id"))
              {
                     
$strippedurl preg_split("/\/[a-zA-Z0-9]{3}-[a-zA-Z0-9]{7}-[a-zA-Z0-9]{7}/"$messagearray[1][$i]);
                     
$messagearray[1][$i] = $strippedurl[0].$strippedurl[1];
                      
// Look for an asin number
                    
if(!preg_match("/\/[a-zA-Z0-9]{10}\//"$messagearray[1][$i],$asin))
                    {
                         if(
stristr($messagearray[1][$i],"http://www.amazon.co.uk/exec/obidos/"))
                         {
                              
$strippedurl preg_split("/http:\/\/www.amazon.co.uk\/exec\/obidos\//",$messagearray[1][$i]);
                              
$messagearray[1][$i] = $strippedurl[0].$strippedurl[1];
                         }
                 
                         if(
stristr($messagearray[1][$i],"[/url]"))
                         {
                             
$strippedurl preg_split("/\[\/url\]/",$messagearray[1][$i]);
                            
$messagearray[1][$i] = $strippedurl[0].$strippedurl[1];
                             
$messagearray[1][$i] = "http://www.amazon.co.uk/exec/obidos/redirect?link_code=ur2&camp=1789&tag=".$associate_id."&creative=9325&path=".$messagearray[1][$i]."[/url]";
                         }
                         else
                         {
                            
$messagearray[1][$i] = "http://www.amazon.co.uk/exec/obidos/redirect?link_code=ur2&camp=1789&tag=".$associate_id."&creative=9325&path=".$messagearray[1][$i];

                         }
                     }
                     else
                     {
                         if(
stristr($messagearray[1][$i],'"]'))
                         {
                         
$bracketarray[0]='"]';
                         
$bracketarrayrep[0] = '"] ';
                         
$messagearray[1][$i]= str_replace($bracketarray,$bracketarrayrep,$messagearray[1][$i]);
                         
$messagearray[1][$i] = "http://www.amazon.co.uk/exec/obidos/ASIN".$asin[0]."/ref=nosim/" $associate_id.'"]';
                     }
                     elseif(
stristr($messagearray[1][$i],"[/url]"))
                     {
                         
$messagearray[1][$i] = "http://www.amazon.co.uk/exec/obidos/ASIN".$asin[0]."/ref=nosim/" $associate_id."[/url]";
                     }
                     else
                     {
                         
$messagearray[1][$i] = "http://www.amazon.co.uk/exec/obidos/ASIN".$asin[0]."/ref=nosim/" $associate_id;
                     }
                 }
    
               }
          }
       }
   
$message=str_replace($messagearray[0],$messagearray[1],$message);   
   }
   return 
$message;
}


?>
you can use this plugin for amazon uk and https://vborg.vbsupport.ru/showthread.php?t=163393 for amazon usa at same time, works a treat.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:18 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.09326 seconds
  • Memory Usage 2,412KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (2)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete