jargon

Puzzlum Replace Link

Jun 17th, 2021
859
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. //TRK Confirm Params
  4. function trk_confirm_params( $params = array(), &$set = array() )
  5. {
  6.     for( $offset = 0; $offset <= 3; $offset++ )
  7.     {
  8.         $set[ $offset ] = true;
  9.        
  10.         if( $set[ $offset ] ) { $set[ $offset ] = isset( $params[ $offset ] ); }
  11.        
  12.         if( $set[ $offset ] ) { $set[ $offset ] = is_string( $params[ $offset ] ); }
  13.        
  14.         if( $set[ $offset] ) { $set[$offset] = strlen( $params[ $offset ] ) > 0; }
  15.     }
  16.     return $set;
  17. }
  18.  
  19. // TRK_Generate_Link
  20. function trk_generate_link($params = array(), $set = array() )
  21. {
  22.     return
  23.         '<a href="?' . urlencode( $set[ 0 ] ? $params[ 0 ] : 'prj' ) .
  24.         '=' . urlencode( $set[ 1 ] ? $params[ 1 ] : 'Roe' ) .
  25.         '">' .
  26.         ( $set[ 2 ]  ? ( '<img src="' . urlencode( $params[ 2 ] ) . '">' ) : '<img style="width:72px;height:72px;" src="' . './site data/art/disks/blank disk.png' . '">' ) .
  27.         ( $set[ 2 ] && $set[ 3 ] ? '<br>' : '' ) .
  28.         ( $set[ 3 ] ? $params[ 3 ] :( $set[ 1 ] ? $params[ 1 ] : 'Roe' ) ) .
  29.         '</a>';
  30. }
  31.  
  32. //TRK Replace Link
  33. function trk_replace_link( $buffer )
  34. {
  35.     $pattern = '/{{(.*)}}/';
  36.     $strip = array( '{{', '}}' );
  37.     $sep = '|';
  38.    
  39.     if ( preg_match_all( $pattern, $buffer, $matches, PREG_PATTERN_ORDER ) )
  40.     {
  41.         foreach( $matches as $key => $value )
  42.         {
  43.             if ( $key > 0 )
  44.             {
  45.                 if(
  46.                     isset ( $value[ 1 ] )
  47.                     ?
  48.                     (
  49.                         (
  50.                         ! is_null( $value [ 1 ] )
  51.                         ?
  52.                             true:false
  53.                         )
  54.                     )
  55.                     :false
  56.                 )
  57.                 {              
  58.                     $target = '{{'.$value[ 1 ].'}}';
  59.                    
  60.                     trk_echo3( 'target', $target );
  61.        
  62.                     $parts = explode( $sep, str_replace( $strip, '', $value[ 1 ] ) );
  63.                    
  64.                     //if( count( $parts ) > 1 )
  65.                     //{                
  66.                         $set = trk_confirm_params( $parts, $set );
  67.                        
  68.                         foreach($parts as $k => $part )
  69.                         {
  70.                             if( isset( $set[ $k ] ) )
  71.                             {
  72.                                 trk_echo3( 'part ' . $k, $part );
  73.                             }
  74.                         }
  75.        
  76.                         $replace = trk_generate_link( $parts, $set );
  77.                        
  78.                         trk_echo3( 'replace', $replace );
  79.                        
  80.                         $buffer = str_replace( $target, $replace, $buffer );
  81.                     //}
  82.                 }
  83.             }
  84.         }
  85.     }
  86.    
  87.     return $buffer;
  88. }
  89.  
  90. ?>
RAW Paste Data