Atakan selam,
Herhangi bir sitem vs. yok merak etme :) kendini de yanlış felan da ifade etmedin, rahat ol :)
O zaman şöyle yapalım, tek tek hangi cs dosyası içerisinde, hangi satırda değişiklik yapman gerektiğini yazıyorum:
Öncelike Yaf.Utils projesi içerisindeki General.cs dosyayı içerisinde aşağıdaki metodu ekleyin.
Kod: /// <summary>
/// Show/Hide Links
/// </summary>
/// <param name="text">Message Text</param>
/// <returns>Modified Message Text</returns>
public static string HideSomeLinksInMessage(string text)
{
string orginalText = text;
string newText = text;
try
{
Regex regex = new Regex(@"<\s*a[^>]*>\s*(.*?)\s*<\s*/\s*a\s*>");
newText = regex.Replace(newText, " <a href=\"/korsan_rules.aspx\" title=\"Linkleri görebilmek için lütfen siteye üye olunuz!\">" +
"<h3><strong>Linkleri görebilmek için lütfen siteye üye olunuz!</strong></h3></a> ");
}
catch
{
newText = orginalText;
}
return newText;
}
Sonrasında, aşağıdaki dosyalarda belirtilen satırlardaki metodları Yaf.Utils içerisine eklediğimiz statik metodu çağırın. Yani mevcut metotları wrap edin.
1. YAF.Controls projesi içerisindeki MessageBase.cs dosyası 147. satır
2. YAF.Controls projesi içerisindeki MessagePost.cs dosyası 275. satır
3. YAF.Controls projesi içerisindeki MessagePostData.cs dosyası 287. ve 344. satır
Eklemeleri/düzenlemeleri yaparken de şöyle yapmanız lazım (yalnızca giriş yapmayan kullanıcıların bu linkleri görmesi lazım elbette):
Kod: if (YAF.Core.YafContext.Current != null)
{
if (YAF.Core.YafContext.Current.IsGuest)
writer.Write(YAF.Utils.General.HideSomeLinksInMessage(workingMessage));
else
writer.Write(workingMessage);
}
else
writer.Write(workingMessage);
Hadi bu da son kıyağım olsun Atakan, bu örnekte mesajların tamamındaki linkler gizleniyor kullanıcıdan ancak mesaj altında yer alan kullanıcı imzalarında linklerin görünmesini isteyebilirsiniz (ki ben öyle yapıyorum) o zaman şöyle son bir düzenlemeye ihtiyaç duyacaksın:
Yukarıda MessageBase.cs içerisinde yer alan RenderModulesInBBCode(..) adlı metodumuza "hideLinks" adlı bir parametre daha ekleyeceğiz. Şöyle ki,
Kod: /// <summary>
/// The render modules in bb code.
/// </summary>
/// <param name="writer">
/// The writer.
/// </param>
/// <param name="messageStr">
/// The message Str.
/// </param>
/// <param name="theseFlags">
/// The these flags.
/// </param>
/// <param name="displayUserId">
/// The display user id.
/// </param>
protected virtual void RenderModulesInBBCode(
[NotNull] HtmlTextWriter writer, [NotNull] string messageStr, [NotNull] MessageFlags theseFlags, int? displayUserId, bool hideLinks
Hepsi bu kadar. Artık bu da yardımcı olmuyorsa, yapacak birşey yok Atakan :)
Görüşmek üzere