vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   Dynamically Create Amazon Links to use your associate id (https://vborg.vbsupport.ru/showthread.php?t=92444)

reteep 09-09-2007 08:17 AM

Quote:

Originally Posted by Tralala (Post 1335219)
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

Tralala 09-09-2007 11:43 AM

Gotcha, thanks!

Didi R. 09-18-2007 05:25 PM

Thx a lot. Great addon. works perfect!

Alfa1 09-18-2007 07:54 PM

Does this addon work out of the box or does it need code modification?

weeno 11-19-2007 02:52 AM

Quote:

Originally Posted by amykhar (Post 999723)
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

felxi 11-20-2007 01:26 PM

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.

weeno 11-22-2007 02:21 AM

Quote:

Originally Posted by felxi (Post 1386228)
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]

felxi 11-22-2007 08:42 PM

I rewrote this modification completely within the last hours.

have a look at:
https://vborg.vbsupport.ru/showthread.php?t=163393

Coop1979 02-07-2009 03:15 AM

I just PM'd the coder. I offered financial compensation to update the mod, so hopefully that will help!

wraggster 03-22-2011 10:07 AM

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.


All times are GMT. The time now is 07:56 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.01225 seconds
  • Memory Usage 1,851KB
  • 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
  • (1)bbcode_code_printable
  • (2)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete