2014-06-13 3 views
3

많은 YouTube 비디오가 포함될 웹 사이트에서 작업하고 있습니다. 나는 페이지의 기사에 그들을 포함시키는 것을 조금 더 쉽게하고 싶다.ASP.NET 웹 응용 프로그램에서 단축 코드 만들기

이 글을 쓰는 :

[youtube]SOMETHING[/youtube] 

이 작업을 자동으로 생성해야 페이지 :

<iframe src="//www.youtube.com/embed/SOMETHING" 
     frameborder="0" allowfullscreen></iframe> 

그래서 - 내가 어떻게해야합니까? 나는 주변을 검색했지만 올바른 해결책을 찾을 수 없었습니다. ASP.NET/C#에서 예제를 던져주십시오.

+0

ASP.Net을, ASP.Net MVC, 사용자 정의 프레임 워크? ASPX 또는 면도기 (CSHTML/VBHTML)? "이것을 쓰고 싶을 때"- VS에서 편집하는 동안 또는 페이지의 일부 처리 영역이나 DB와 같은 외부 소스의 일부 데이터를 확장하고 싶습니까? 그것은 어떻게 든 Wordpress (태그에 기반)와 관련이 있습니까? –

+0

http://stackoverflow.com/questions/41591608/using-wordpress-style-short-codes-in-asp-net –

+0

[내가 링크에서 한 작업이 있습니다. 당신은 그것을 검사 할 수 있습니다.] (http://stackoverflow.com/questions/41591608/using-wordpress-style-short-codes-in-asp-net) http://stackoverflow.com/questions/41591608/using-wordpress -style-short-codes-in-asp-net –

답변

1

ASP.NET에서 단축 코드를 만드는 것은 사용자 지정 솔루션으로 간단합니다. 을 출력하기 전에 당신의 기사는 replacementHtml에서 $1

String html = "[YOUTUBE]Something[\\YOUTUBE]"; 

String replacementHtml = "<iframe src=\"//www.youtube.com/embed/$1\" frameborder=\"0\" allowfullscreen></iframe>"; 

Regex shortcodeRegex = new Regex(@"\[YOUTUBE\]([^\[\\]+)\[\\YOUTUBE\]"); 

String result = shortcodeRegex.Replace(html, replacementHtml); 

를 적어 둡니다을한다. 이것은 경기의 내부 내용으로 대체됩니다.

그런 다음 결과를 페이지에 출력하십시오.

+0

고마워. 전 세계적으로 어떻게 사용할 수 있습니까? 여러 페이지에 동일한 코드를 사용하려면 모든 코드에 동일한 코드를 사용하고 싶지 않습니다. –

+0

데이터베이스 나 파일에서 html을 얻으면 대부분 클래스 라이브러리의 동일한 코드에서 html을 가져옵니다. 페이지에 다시 전달되기 전에 바로 편집을 시작하십시오. –

0

이 내가 유튜브 단축 코드

<Extension> Public Function ConvertYouTubeShortCode(text As String) As String 
    Dim regex__1 As String = "\[youtube:.*?\]" 
    Dim matches As MatchCollection = Regex.Matches(text, regex__1) 
    If matches.Count = 0 Then 
     Return text 
    End If 
    Dim width As Int32 = 620 
    Dim height As Int32 = 349 
    Dim BaseURL As String = "http://www.youtube.com/v/" 
    For i As Integer = 0 To matches.Count - 1 
     Dim length As Int32 = "[youtube:".Length 
     Dim mediaFile As String = matches(i).Value.Substring(length, matches(i).Value.Length - length - 1) 
     Dim player As String = "<div class=""video-container""><iframe width=""{2}"" height=""{3}"" src=""{4}{1}"" frameborder=""0"" allowfullscreen></iframe></div>" 
     Return text.Replace(matches(i).Value, [String].Format(player, i, mediaFile, width, height, BaseURL)) 
    Next 
End Function 
1

워드 프레스 스타일의 짧은 코드 응용 프로그램을 처리하는 데 사용하는 것입니다. 이 값은 데이터베이스 또는 변수의 변수에서 사용자 콘텐트로 오는 콘텐트의 [short code /] 값을 대체합니다.

을 App_Code -> modul_islemler.cs

public class modul_islemler 
{ 
public static string modul_olustur(string data){ 
    string aranan = @"\[(.*?)\/\]"; 
    Regex objRegex = new Regex(aranan); 
    MatchCollection objCol = objRegex.Matches(data); 
    foreach (Match item in objCol) 
    {data = data.Replace(item.Groups[0].Value, modul_yaz(item.Groups[1].Value.ToString())); 
    } 
    return data; 
} 
public static string modul_yaz(string sayfa) 
{  
    string[] ayir = sayfa.Split(' '); 
    ArrayList myAL = new ArrayList(); 
    foreach (string a in ayir) 
    { 
     myAL.Add(a); 
    } 
    if (myAL.Count < 2) myAL.Add(""); 
    return LoadControl("~/plugins/" + myAL[0] + "/" + myAL[0] + ".ascx"); 
} 
public static string LoadControl(string UserControlPath) 
{ 
    FormlessPage page = new FormlessPage(); 
    page.EnableViewState = false; 
    // Create instance of the user control 
    UserControl userControl = (UserControl)page.LoadControl(UserControlPath); 
    page.Controls.Add(userControl); 
    //Write the control Html to text writer 
    StringWriter textWriter = new StringWriter(); 

    //execute page on server 
    HttpContext.Current.Server.Execute(page, textWriter, false); 

    // Clean up code and return html 
    return textWriter.ToString(); 
    } 
    public class FormlessPage : Page 
{ 
    public override void VerifyRenderingInServerForm(Control control) 
    { 
    } 
} 

page.aspx

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
<div class="detail"> 
<div class="container"> 
    <asp:Literal ID="icerikLtrl" runat="server"></asp:Literal> 
    </div> 
    </div> 
    </asp:Content> 

page.aspx.cs

-> [slide_plugins /] 단축 코드

public partial class page : System.Web.UI.Page 
{ 
protected void Page_Init(object sender, EventArgs e) 
{ 
    string txt="<div>blala [slide_plugins /] blabla</div>"; 
    icerikLtrl.Text = modul_islemler.modul_olustur(txt); 
} 

플러그인/slide_plugins/slide_plugins.ascx

<asp:TextBox runat="server" ID="Txt1"></asp:TextBox> 
<asp:Button runat="server" ID="btn1" OnClick="btn1_Click" Text="Submit"></asp:Button> 

플러그인/slide_plugins/slide_plugins.ascx.cs 웹폼에서와

protected override void OnLoad(EventArgs e) 
{ 
    //kontrol yüklendiğinde çalışacak kodlar  
    base.OnLoad(e);  
} 
protected override void OnInit(EventArgs e) 
{    
    base.OnInit(e); 
    InitializeComponent();   
} 
    private void InitializeComponent() 
{ 
    btn1.Click += new EventHandler(btn1_Click);  

} 
protected void btn1_Click(object sender, EventArgs e)// not working.... 
{ 
    Txt1.Text = "Example"; // not working....  

} 
+0

답변 코드 만 자세히 설명해 주시면 답변하지 않으려 고합니다. – Jeet

관련 문제