Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/11/2010, 02:11
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: AdRotator con fechas de visualización

He añadio una pequeña mejora para contar las veces que se muestra un banner.
Añado una nueva columna en la tabla "tblAnuncios":
Código TXT:
Ver original
  1. 1   AdCounter   int 4   0
Creo el procedimiento almacenado "PA_AnunciosContador"
Código SQL:
Ver original
  1. CREATE PROCEDURE PA_AnunciosContador (@id INT)
  2. AS
  3. BEGIN
  4. UPDATE tblAnuncios SET AdCounter = AdCounter + 1 WHERE ID = @id
  5. END
Y el control:
Código vb:
Ver original
  1. Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
  2.             Dim ar As New tmpAdRotator()
  3.             Dim dt As DataTable = DTBanners(KeywordFilter)
  4.             If dt.Rows.Count <> 0 Then
  5.                 ar.DataSource = dt
  6.                 ar.DataBind()
  7.                 ar.Target = "_blank"
  8.                 Me.Controls.Add(ar)
  9.                 Dim cmd As New SqlCommand("PA_AnunciosContador", conSQL)
  10.                 cmd.CommandType = CommandType.StoredProcedure
  11.                 cmd.Parameters.AddWithValue("@id", ar.EventArgs.AdProperties("ID"))
  12.                 Dim generado As Boolean = False
  13.                 Dim Height As Unit = CInt(ar.EventArgs.AdProperties("Height"))
  14.                 Dim Width As Unit = CInt(ar.EventArgs.AdProperties("Width"))
  15.                 If MaxWidth.ToString <> "" Then
  16.                     If ar.EventArgs.AdProperties("Width") > MaxWidth.Value Then
  17.                         Height = (MaxWidth.Value * Height.Value / Width.Value) - 5
  18.                         Width = MaxWidth
  19.                     End If
  20.                 End If
  21.                 ar.Target = _
  22.                     IIf(String.Format("{0}", ar.EventArgs.AdProperties("Target")) <> "", _
  23.                     ar.EventArgs.AdProperties("Target"), "_blank")
  24.                 If ar.EventArgs.ImageUrl.ToLower.IndexOf(".swf") <> -1 Then
  25.                     Dim StringFormat As StringBuilder = New StringBuilder("")
  26.                     StringFormat.Append("<object type='application/x-shockwave-flash' data='{2}' width='{0}' height='{1}'>")
  27.                     StringFormat.Append("<param name='movie' value='{2}' />")
  28.                     StringFormat.Append("<img src='{2}' width='{0}' height='{1}' alt='Publicidad' />")
  29.                     StringFormat.Append("</object>")
  30.                     Dim OutPutString As StringBuilder = New StringBuilder()
  31.                     OutPutString.AppendFormat(StringFormat.ToString, _
  32.                         Width, _
  33.                         Height, _
  34.                         ResolveUrl(ar.EventArgs.ImageUrl))
  35.                     writer.Write(OutPutString.ToString)
  36.                     generado = True
  37.                 Else
  38.                     Me.Controls.Clear()
  39.                     ar.Width = Width
  40.                     ar.Height = Height
  41.                     ar.ToolTip = ar.EventArgs.AdProperties("AlternateText")
  42.                     Me.Controls.Add(ar)
  43.                     MyBase.Render(writer)
  44.                     generado = True
  45.                 End If
  46.                 If generado Then
  47.                     Try
  48.                         cmd.Connection.Open()
  49.                         cmd.ExecuteNonQuery()
  50.                     Catch ex As Exception
  51.                         'No se gestiona la excepción
  52.                    Finally
  53.                         cmd.Connection.Close()
  54.                     End Try
  55.                 End If
  56.             End If
  57.         End Sub
Para otro día el control de clicks.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!