Dynamic Layout on Edit Customer page

    Hi, I need to customize Edit Customer page so that when the value of Line Of Business is "A", some fields should hide and some others should show, and when the value of Line Of Business is "B", those hidden fields should appear and some fields should hide.
I've seen some documentation about customization, but I couldn't do what I need so far. The documents always say to use the Oracle Composer (Administration > Customize Customers Page), then click on "Select" on the left-upper corner, then click on the desired component and "Edit Component". There, I should be able to write some groovy expression on Expression Builder to indicate whether to hide or show the component, based on another field's value.
My problem is that the options in the menu is always inaccessible! I have a print, but I don't know if I can attach it here neiter how to attach it....
Does anybody have any idea of how to accomplish this? Is there any other way to do this type of customization?
Any help would be appreciated...

In Rel8, app composer introduces dynamic layout. This feature allows an object to have many create and detail layouts.
These layouts can be dynamically shown based on role, record type, or advanced expressions. Record type and Advanced Expression run against the record.
Think of it as the state of the record i.e. Record Type = 'Hot' Show Layout 1, Record Type = 'Cold' Show Layout

Similar Messages

  • Dynamic Layouts on Custom Object

    Is there a way to set up a dynamic layout on a custom object?

    I dont think the functionality is there today

  • Custom page layouts are not getting displayed in ribbon

    Hi,
    I have created a custom page layout under welcome category. This is getting displayed in pages library while creating a page and also in page layout option from site settings which is fine. But when a page is in edit mode if we click page->page layouts
    from ribbon, all the default page layouts are getting displayed except my custom page layout.
    Please advise.
    Regards,
    Chaitanya.

    you have a subsite in a site collection •the publishing feature is activated in the subsite, but not in the site collection •you want to edit/add page layouts on the site collection level, to be used within your subsite •when you open the site collection
    in SharePoint Designer, you can't see Page Layouts in the Site Objects panel You now have 2 options: you can either activate the publishing feature in the site collection (and the Page Layouts link comes back), or you can use the All Files link and browse
    to the master pages and page layouts library (_catalogs > masterpage.) Either option will do, unless you really don't want the publishing feature in the site collection.
    To fix the issue go to Site Actions -> Site Settings in the upper left corner.
    Under "Site Collection Administration" click on "Site Collection Features".
    Look for "SharePoint Server Publishing Infrastructure" and activate it. It might take a moment to load.
    Next return to "Site Settings" and click on "Manage Site Features"
    Look for "SharePoint Server Publishing" and activate it. It might take a moment to load.
    If this helped you resolve your issue, please mark it Answered

  • Error in using Custom Page Layout

    Hi all,
    I have created some customs page layouts, and they are working fine in the Portal (EP 6.0 SP2).
    Now I have imported them to another Portal (same version than the first one), I made an EPA pakage with the PCD objects for the new page layouts and deployed the PAR file containing the the JSP for the new layouts into the Portal.
    The result of this is the following:
    - I am able to create a page and choose one of my customs layouts as a default layout.
    - When in the page I try to select 'Edit > Page Layout' I get a 'Portal runtime error', and in the page logger I see the following exception (see it copied below):
    Am I missing any step in the transport? I think no but maybe there is something else I have to do.
    Thank you very much in advanced and regards
    Stella
    Exception ID:06:36_15/03/06_0043
    com.sapportals.portal.prt.component.PortalComponentException: Error in service call of Portal Component
    Component : com.sap.portal.appdesigner.pageeditor.LayoutView
    Component class : com.sapportals.appdesigner.pageeditor.layout.LayoutView
    User : biaalerein
            at com.sapportals.portal.prt.core.PortalRequestManager.handlePortalComponentException(PortalRequestManager.java:853)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:311)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:191)
            at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:217)
            at com.sapportals.appdesigner.pageeditor.WorkPlace.drawView(WorkPlace.java:354)
            at com.sapportals.appdesigner.pageeditor.WorkPlace.doContent(WorkPlace.java:206)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:191)
            at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:217)
            at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:601)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:191)
            at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:670)
            at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:229)
            at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:555)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.inqmy.services.servlets_jsp.server.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:275)
            at com.inqmy.services.servlets_jsp.server.RequestDispatcherImpl.include(RequestDispatcherImpl.java:384)
            at com.sapportals.portal.prt.pom.RootComponentNode.service(RootComponentNode.java:144)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
            at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:363)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:376)
            at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
            at java.lang.Thread.run(Thread.java:479)

    Hi Krishna,
    I've been able to solve my problem.
    It was something wrong when transporting the page Layouts with an EPA package from one Portal to another. Some properties were lost.
    What I've done is to recreate manually the page layouts PCD Objects. And all it's working OK

  • Custom control in custom page layout not getting shown

    Hi,
    I have created a site column for Date field:
    <Field ID="{GUID}" Name="MyCustomPageLayoutDate" StaticName="MyCustomPageLayoutDate" Group="TestGroup" Type="DateTime" Format="DateOnly" DisplayName="Date" Required="FALSE" ><Field ID ="{guid}" Name ="MyCustomLayoutDateDisplay" DisplayName="Date Display"
             Group="TestGroup"
             Type="Calculated"
             ResultType="Text"
             ReadOnly="TRUE"
             Required="FALSE">
        <Formula>=TEXT([Date],"MMMM dd, yyyy")</Formula>
      </Field>
    This is added in the page layout content type:
    <FieldRef ID="{guid}" Name="MyCustomPageLayoutDate" />  <FieldRef ID="{guid}" Name ="MyCustomLayoutDateDisplay" />
    In the custom page layout, it is added as below:
    <Publishing:EditModePanel ID="EditModePanel5" runat="server" CssClass="edit-mode-panel">
    <tr>
    <td>
    Date
    </td>
    </tr>
    </Publishing:EditModePanel>
    <PublishingWebControls:EditModePanel ID="DateEditModePanel" runat="server" PageDisplayMode="Edit" SupressTag="True">
    <tr>
    <td >
    <PageFieldDateTimeField:DateTimeField ID="DateTimeField1" FieldName="GUID" runat="server">
    </PageFieldDateTimeField:DateTimeField>
    </td>
    </tr>
    </PublishingWebControls:EditModePanel>
    <PublishingWebControls:EditModePanel ID="DatePublishModePanel" PageDisplayMode="Display" runat="server">
    <tr>
    <td>
    <SharePoint:CalculatedField ID="CalculatedDateField" FieldName="guid" runat="server" />
    </td>
    </tr>
    </PublishingWebControls:EditModePanel>
    In the edit mode, the date is getting shown, and I am able to select a date. When the page is published, the entered date is not getting displayed.
    How to fix this?
    Thanks

    Hi,
    I tried to reproduce this issue like this:
    1. Create a DateTime site column “MyDateTimeCol01”;
    2. Create a Calculated site column “MyCalculated03” with formula “=TEXT(MyDateTimeCol01,"MMMM dd, yyyy")”;
    3. Create a Page Layout content type contains the two site columns above;
    4. Create a Page Layout with the Page Layout content type, the source code of this page layout as below:
    <asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server">
    <PublishingWebControls:EditModePanel runat=server id="EditModePanel1" PageDisplayMode="Edit">
    <SharePointWebControls:DateTimeField FieldName="9492c1ff-851f-4d1c-bcbf-5637b69ebd63" runat="server"> </SharePointWebControls:DateTimeField>
    </PublishingWebControls:EditModePanel>
    <br/>
    <PublishingWebControls:EditModePanel runat=server id="EditModePanel2" PageDisplayMode="Display">
    date time text:
    <br/>
    <SharePointWebControls:CalculatedField FieldName="9c00c4dc-6a53-4abd-9fa4-6b4dd266c898" runat="server"></SharePointWebControls:CalculatedField>
    </PublishingWebControls:EditModePanel>
    </asp:Content>
    5. After that, create a publishing page with this custom page layout:
    In Edit mode:
    In Display mode:
    I suggest you follow the steps above to make another test to see if the issue persists.
    Thanks 
    Patrick Liang
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Placeholder not visible in custom page layout - publishing site

    Hi,
    I have a custom page layout in publishing site.
    I had added a new textbox to the existing page layout as below:
    <tr id="trCustomContent2">
    <td id="tdCustomContent" style="padding-top:5px;">
    <div id="divCustomContent" style="padding-left:6px !important;vertical-align:top; width:450px;" >
    <h3>
    <PageFieldTextField:TextField ID="TextField1" FieldName="fec9f0d3-77a3-4afc-99d3-99d2cb745d2c" runat="server" >
    </PageFieldTextField:TextField></h3>
    </div>
    </td>
    </tr>
    I deployed the changes, but in the edit mode of the page, i am not able to see the page layout.
    This issue is happening when a subsite is created. For the existing sites, the textbox is getting shown.
    How to fix this?
    Thanks

    Hi Venkatzeus,
    For each page layout, it has associated with a content type.
    You can click into the content type in site content types under Web Designer Galleries in root site settings.
    And then click Add from new site column to create and add the new site column to this content type.
    After that you can add this column to the page layout(.aspx page for the page layout) with the code below(you need to change the fieldname value to the corresponding GUID of the column):
    <div>
    <Publishing:EditModePanel runat="server" CssClass="edit-mode-panel">
    <PageFieldTextField:TextField ID="TextField1" FieldName="6bf50814-27d1-4b36-9980-c702c25080d7" runat="server">
    </PageFieldTextField:TextField>
    </Publishing:EditModePanel>
    </div>
    Best regards.
    Victoria
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • SharePoint 2013 - Missing Publishing Page Ribbon/Tab on custom page layout - Page language="C#" Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,.... VS CodeBehind="BlogDemo.aspx.cs" Inherits="DemoProject.Branding.BlogDemo"

    I created page layouts using Visual Studio 2013 and SharePoint 2013. I added both ASP.NET web controls (e.g. asp:Label, asp:HyperLink) and SharePoint web controls (e.g. SharePointWebControls:UrlField) in a page layout.
    However, when I deployed the solution, I cannot edit all the ASP.NET & SharePoint web controls (column fields from custom content type used for the page layout) except the web part zones.
    Then I found out about inherits property:
    1) if I use the code for the page layout as shown below:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BlogDemo.aspx.cs"
    Inherits="DemoProject.Branding.BlogDemo" MasterPageFile="/_catalogs/masterpage/DemoProject/DemoMasterPage.master"
    %>
    Result: There is no publishing ribbon/tab. E.g. Edit, Publish..... although both ASP.NET & SharePoint web controls can be displayed on the page layout.
    Screenshot:
    2) if I use the code instead as shown below:
    <%@ Page language="C#" Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"
    meta:progid="SharePoint.WebPartPage.Document" %>
    Result: Publishing ribbon/tab is available, but ASP.NET web controls won't appear. Only SharePoint web controls appear on the page layout.
    Screenshot:
    I wonder how I can combine both codes to ensure that the page layout can have publishing ribbon/tab and displays both ASP.NET & SharePoint web controls.

    Found a way to solve the issue
    I follow the solution:
    http://pinnacleofindiana.com/blog/developers/2012/03/28/creating-a-sharepoint-2010-page-layout-with-code-behind/
    http://blogs.msdn.com/b/kaevans/archive/2011/04/02/code-behind-page-layouts-with-visual-studio-2010.aspx

  • Social comment control in custom page layout stucks at "Working" for read access users

    Hi,
    I created a custom page layout which is attched to my custom content type.
    i have a custom field control which is derived from RichImageField.
    i have also added a social comment control to the page layout using
    <SharePointPortalControls:SocialCommentControl ID="SocialCommentControl1" runat="server"  />.
    Now the problem is, an user who have read access for a pages library should post comments. but its not working and when the user clicks post button it stucks at working. but when the user is given contribute access then it works and the comments are posted.
    And one more thing is if i remove my custom field control from the page layout, then user with read access can post the comment without any issues.
    i am sure the issue is caused by my custom field control but dont know how to solve it. i dont want to give contribute access to the users as they can edit the content of the page also. Any help would be appreciated.
    This is the custom field control code.
    public class mycompanyRichImageField : RichImageField
    public static string webimage = null;
    #region Private variables
    /// <summary>
    /// File upload control used to upload image.
    /// </summary>
    private FileUpload fileUpload;
    /// <summary>
    /// Upload button.
    /// </summary>
    private Button btnSave;
    /// <summary>
    /// Delete button.
    /// </summary>
    private Button btnClear;
    /// <summary>
    /// Article image.
    /// </summary>
    private Image imgPicture;
    /// <summary>
    /// Image width.
    /// </summary>
    private DropDownList ddlWidth;
    /// <summary>
    /// Temporary store image url.
    /// </summary>
    private Label lblFileName;
    /// <summary>
    /// Image text.
    /// </summary>
    private TextBox txtImage;
    /// <summary>
    /// Value of image field.
    /// </summary>
    private ImageFieldValue pageImage;
    /// <summary>
    /// List item - current article.
    /// </summary>
    private SPListItem ArticlePage = SPContext.Current.ListItem;
    /// <summary>
    /// The first image width dropdown list options, default value 240 px.
    /// </summary>
    // private int imageWidthWide = 400;
    //private int height = 225;
    /// <summary>
    /// The second image width dropdown list options, default value 120 px.
    /// </summary>
    private int imageWidthNarrow = 126;
    /// <summary>
    /// Picture library to store the image files.
    /// </summary>
    private string imageLibrary = "Images";
    /// <summary>
    /// List field to store Article image.
    /// </summary>
    private string imageField = "Page Image";
    /// <summary>
    /// List field to store image text.
    /// </summary>
    private string imageTextField = "Image Text";
    private string preview = "Preview";
    /// <summary>
    /// List field to store rollup image.
    /// </summary>
    private string rollupImageField = "Rollup Image";
    /// <summary>
    /// Whether to update the rollup image using the current image.
    /// </summary>
    private bool updateRollupImage = false;
    /// <summary>
    /// Whether to display image text.
    /// </summary>
    private bool enableImageText = true;
    #endregion
    #region Properties
    /// <summary>
    /// Gets or sets the first choice of image width.
    /// </summary>
    //public int ImageWidthWide
    // get
    // return this.imageWidthWide;
    // set
    // this.imageWidthWide = value;
    //public int ImageHeight
    // get
    // return this.height;
    // set
    // this.height = value;
    /// <summary>
    /// Gets or sets the second choice of image width.
    /// </summary>
    public int ImageWidthNarrow
    get
    return this.imageWidthNarrow;
    set
    this.imageWidthNarrow = value;
    /// <summary>
    /// Gets or sets the name of the picture library that is used to store image files.
    /// </summary>
    public string ImageLibrary
    get
    return this.imageLibrary;
    set
    this.imageLibrary = value;
    /// <summary>
    /// Gets or sets the field name of image.
    /// </summary>
    public string ImageField
    get
    return this.imageField;
    set
    this.imageField = value;
    /// <summary>
    /// Gets or sets the field name of image text.
    /// </summary>
    public string ImageTextField
    get
    return this.imageTextField;
    set
    this.imageTextField = value;
    /// <summary>
    /// Gets or sets the field name of rollup image.
    /// </summary>
    public string RollupImageField
    get
    return this.rollupImageField;
    set
    this.rollupImageField = value;
    public string Preview
    get
    return this.preview;
    set
    this.preview = value;
    /// <summary>
    /// Gets or sets a value indicating whether to update rollup image using current image.
    /// </summary>
    public bool UpdateRollupImage
    get
    return this.updateRollupImage;
    set
    this.updateRollupImage = value;
    /// <summary>
    /// Gets or sets a value indicating whether the image text should be displayed.
    /// </summary>
    public bool EnableImageText
    get
    return this.enableImageText;
    set
    this.enableImageText = value;
    #endregion
    #region Override methods
    /// <summary>
    /// Using get method instead of set method to set the value.
    /// set method cannot be used here.
    /// </summary>
    public override object Value
    get
    ImageFieldValue value = new ImageFieldValue();
    value.ImageUrl = string.IsNullOrEmpty(this.lblFileName.Text) ? this.imgPicture.ImageUrl : this.lblFileName.Text;
    // value.Width = string.IsNullOrEmpty(this.ddlWidth.Text) ? this.ImageWidthWide : Convert.ToInt32(this.ddlWidth.Text);
    // value.Height = this.ImageHeight;
    ////update the page rollup image.
    if (this.UpdateRollupImage)
    this.ArticlePage[this.RollupImageField] = value;
    if (this.EnableImageText)
    this.ArticlePage[this.ImageTextField] = this.txtImage.Text;
    this.ArticlePage.SystemUpdate(false);
    return value;
    set
    base.Value = value;
    /// <summary>
    /// Intialize all controls.
    /// </summary>
    protected override void CreateChildControls()
    this.pageImage = (ImageFieldValue)this.ArticlePage[this.imageField];
    this.ddlWidth = new DropDownList();
    this.ddlWidth.Width = 99;
    // this.ddlWidth.Items.Add(this.ImageWidthWide.ToString());
    this.ddlWidth.Items.Add(this.ImageWidthNarrow.ToString());
    if (this.pageImage != null && !string.IsNullOrEmpty(this.pageImage.ImageUrl))
    // if (this.pageImage.Width >= this.ImageWidthWide)
    // // this.ddlWidth.SelectedIndex = 0;
    //else
    // // this.ddlWidth.SelectedIndex = 1;
    // this.Controls.Add(this.ddlWidth);
    this.imgPicture = new Image();
    if (this.pageImage != null && !string.IsNullOrEmpty(this.pageImage.ImageUrl))
    this.imgPicture.ImageUrl = SPContext.Current.Site.Url + this.pageImage.ImageUrl;
    this.Controls.Add(this.imgPicture);
    this.fileUpload = new FileUpload();
    this.fileUpload.Width = 180;
    this.Controls.Add(this.fileUpload);
    this.btnSave = new Button();
    this.btnSave.Text = "Upload";
    this.btnSave.CausesValidation = false;
    this.btnSave.Visible = string.IsNullOrEmpty(this.imgPicture.ImageUrl) ? true : false;
    this.Controls.Add(this.btnSave);
    this.btnSave.Click += new EventHandler(this.BtnSave_Click);
    this.btnClear = new Button();
    this.btnClear.Text = "Delete";
    this.btnClear.CausesValidation = false;
    this.btnClear.Visible = !this.btnSave.Visible;
    this.Controls.Add(this.btnClear);
    this.btnClear.Click += new EventHandler(this.BtnClear_Click);
    this.lblFileName = new Label();
    this.Controls.Add(this.lblFileName);
    if (this.EnableImageText)
    this.txtImage = new TextBox();
    this.txtImage.TextMode = TextBoxMode.MultiLine;
    this.txtImage.Rows = 4;
    this.txtImage.Text = this.ArticlePage[this.ImageTextField] == null ? string.Empty : this.ArticlePage[this.ImageTextField].ToString();
    this.Controls.Add(this.txtImage);
    /// <summary>
    /// Render the field in page edit mode.
    /// </summary>
    /// <param name="output">Output stream.</param>
    protected override void RenderFieldForInput(System.Web.UI.HtmlTextWriter output)
    output.Write("<div style='padding-bottom:12px'>");
    if (!string.IsNullOrEmpty(this.imgPicture.ImageUrl))
    output.Write("<br />");
    // this.imgPicture.Width = ((ImageFieldValue)this.Value).Width;
    // this.imgPicture.Height = ((ImageFieldValue)this.Value).Height;
    this.imgPicture.RenderControl(output);
    if (this.EnableImageText)
    this.txtImage.Width = this.imgPicture.Width;
    if (this.EnableImageText)
    output.Write("<br />");
    this.txtImage.RenderControl(output);
    output.Write("<br /><br />");
    this.fileUpload.RenderControl(output);
    this.btnSave.RenderControl(output);
    this.btnClear.RenderControl(output);
    output.Write("<br /><br />");
    //output.Write("Width:");
    //this.ddlWidth.RenderControl(output);
    output.Write("</div>");
    /// <summary>
    /// Render the field in page display mode.
    /// </summary>
    /// <param name="output">Output stream.</param>
    protected override void RenderFieldForDisplay(System.Web.UI.HtmlTextWriter output)
    if (this.ListItemFieldValue != null)
    output.Write("<div style='padding-bottom:12px'>");
    base.RenderFieldForDisplay(output);
    if (this.EnableImageText && this.ArticlePage[this.ImageField] != null
    && this.ArticlePage[this.ImageTextField] != null)
    //string strImgWidth = string.IsNullOrEmpty(this.ddlWidth.Text) ? this.ImageWidthWide.ToString() : this.ddlWidth.Text;
    //string strImgHgt = this.ImageHeight.ToString();
    output.Write("<div style='width:");
    // output.Write(strImgWidth);
    // output.Write(this.imgPicture.ImageUrl);
    // output.Write("<div style='height:");
    // output.Write(strImgHgt);
    output.Write(";margin-right:4px;' align='left'>");
    output.Write(this.ArticlePage[this.ImageTextField].ToString());
    output.Write("</div>");
    output.Write("</div>");
    #endregion
    #region Button events
    /// <summary>
    /// Delete image file from the library and empty the image field.
    /// </summary>
    /// <param name="sender">Delete button.</param>
    /// <param name="e">No arguments.</param>
    protected void BtnClear_Click(object sender, EventArgs e)
    ////remove the image file from the Images library
    using (SPSite site = new SPSite(
    SPContext.Current.Web.Url,
    SpSecurityHelper.GetSystemToken(SPContext.Current.Site)))
    using (SPWeb currentWeb = site.OpenWeb())
    SPDocumentLibrary imageList = (SPDocumentLibrary)currentWeb.Lists[this.ImageLibrary];
    SPFolder rootFolder = imageList.RootFolder;
    try
    currentWeb.AllowUnsafeUpdates = true;
    rootFolder.Files.Delete(this.imgPicture.ImageUrl);
    rootFolder.Update();
    catch
    ////cannot delete specified file, this means file doesn't exist, the file must be deleted
    ////directly in the Images library by someone
    ////don't do anything here
    finally
    currentWeb.AllowUnsafeUpdates = false;
    if (this.pageImage != null)
    this.pageImage.ImageUrl = string.Empty;
    this.imgPicture.ImageUrl = string.Empty;
    this.lblFileName.Text = string.Empty;
    this.btnClear.Visible = false;
    this.btnSave.Visible = true;
    /// <summary>
    /// Upload image file to library and fullfilled the image field.
    /// </summary>
    /// <param name="sender">Upload button.</param>
    /// <param name="e">No argument.</param>
    protected void BtnSave_Click(object sender, EventArgs e)
    this.ArticlePage[this.ImageTextField] = this.txtImage.Text;
    this.ArticlePage.SystemUpdate(false);
    string fileName = this.fileUpload.FileName;
    ////validate file name
    if (fileName == string.Empty || !this.fileUpload.HasFile)
    this.lblFileName.Text = string.Empty;
    if (this.pageImage == null)
    this.Page.ClientScript.RegisterStartupScript(typeof(string), "NoImage", "<script>alert('No image found, please select an image.')</script>", false);
    else
    using (SPSite site = new SPSite(
    SPContext.Current.Web.Url,
    SpSecurityHelper.GetSystemToken(SPContext.Current.Site)))
    using (SPWeb currentWeb = site.OpenWeb())
    SPDocumentLibrary imageList = (SPDocumentLibrary)currentWeb.Lists[this.ImageLibrary]; ////Images
    SPFolder rootFolder = imageList.RootFolder;
    ////the image file name must be unique except for the file name extension
    string imageName = this.ArticlePage.UniqueId.ToString("N") + this.FieldName + Path.GetExtension(fileName);
    ////first delete the image file from the Images library.
    ////if a file with different file name extension is uploaded, the old file won't be overwritten,
    ////and will never be deleted from this page, so it must be deleted before adding a new one.
    if (this.pageImage != null && !string.IsNullOrEmpty(this.pageImage.ImageUrl))
    try
    currentWeb.AllowUnsafeUpdates = true;
    rootFolder.Files.Delete(this.pageImage.ImageUrl);
    rootFolder.Update();
    catch
    ////cannot delete specified file, this means file doesn't exist, the file must be deleted
    ////directly in the Images library by someone
    finally
    currentWeb.AllowUnsafeUpdates = false;
    try
    currentWeb.AllowUnsafeUpdates = true;
    SPFile imageFile = rootFolder.Files.Add(imageName, this.fileUpload.FileBytes, true);
    finally
    currentWeb.AllowUnsafeUpdates = false;
    // this.lblFileName.Text = currentWeb.Site.Url + imageList.RootFolder.ServerRelativeUrl + "/" + imageName;
    this.lblFileName.Text = currentWeb.Site.Url + imageList.RootFolder.ServerRelativeUrl + "/_w/" + imageName.Substring(0, imageName.LastIndexOf(".")) + "_" + imageName.Substring(imageName.IndexOf(".") + 1) + "." + imageName.Substring(imageName.IndexOf(".") + 1);
    // webimage = currentWeb.Site.Url + imageList.RootFolder.ServerRelativeUrl + "/_w/" + imageName.Substring(0,imageName.LastIndexOf("."))+"_"+imageName.Substring(imageName.IndexOf(".")+1) +"." + imageName.Substring(imageName.IndexOf(".")+1);
    this.imgPicture.ImageUrl = this.lblFileName.Text;
    this.btnClear.Visible = true;
    this.btnSave.Visible = false;
    #endregion
    This is how i used it in my page layout
     <Article:mycompnayRichImageField runat="server" ID="RichImageField1" InputFieldLabel="Keep image text short and precise" FieldName="PublishingPageImage" UpdateRollupImage="true"/>
    Aruna

    Hi,
    For this issue, I'm trying to involve someone familiar with this topic to further look at it.
    Thanks,
    Jason Guo
    TechNet Community Support

  • Adding validation to custom page layout with taxonomyfieldcontrol

    Hi we have a publishing site template with various custom page layouts.  When in edit mode, we need to add some validations to the taxonomyfieldcontrols.  What the best approach to do that?

    Hi,
    According to your post, my understanding is that you wanted to add some validations to the TaxonomyFieldControl.
    We can use the
    TaxonomyFieldControl.validate method to ensure that all taxonomy data is valid.
    To use the built-in taxonomy controls of SharePoint 2010 your best choice might be to go with the
    TaxonomyWebTaggingControl.
    This is the class the field control of the TaxonomyField,
    TaxonomyFieldControl itself uses internally to render its content, although it does not expose the full capability of the control.
    There are two articles about the TaxonomyWebTaggingControl
    , you can have a look at them.
    http://pholpar.wordpress.com/2010/02/15/build-your-own-user-interface-components-using-the-taxonomy-controls/
    https://pholpar.wordpress.com/2010/03/page/2/
    Thanks,
    Jason
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Jason Guo
    TechNet Community Support

  • Custom Page layout and related tmp files causing issues

    Hello,
    I am trying to create custom page layouts using Design Manager and then editing the html file using a text editor.
    I have created a content type (inherited from Page content type) and used this content type for my page layout. I used the snippet manager to add relevant webpart zones and snippets I needed and published the page layout. Under status it shows conversion
    successful but I can see another file with similar name to my page laout but with ~RF119c862.TMP being created. 
    Even if I publish my page layout my webparts (via snippets I added) doesn't reflect in the page. I checked the preview of my page layouts and webparts appear when it is in draft mode but the moment I publish it loses all snippets (webparts). 
    I checked the html even after the page layout is published and I can see all webpart zones, my divs and snippet code there, somehow once I publish it the corresponding aspx page doesn't get updated.
    Has anybody come across this before, I'm trying this on Office 365 tenant site.
    Regards,
    Manoj
    -- The opinions expressed here represent my own and not those of anybody else -- http://manojvnair.blogspot.com

    I have seen a similar problem on-prem when a client had distributed cache misconfigured, but as your problem is with SPO, I doubt that is the problem.
    Try creating another page layout but keep its associated content type untouched. Try adding snippets and such, publish and see what happens. If that works, then there must be something wrong with your custom content type.
    Also, when you save a change to your .html page layout, open its associated aspx page layout in SPD and see if your changes were reflected there as well. As soon as your edit a html page layout and save your changes, SharePoint should automatically update
    your aspx page layout right away.
    Eric Overfield - PixelMill -
    blog.pixelmill.com/ericoverfield -
    @EricOverfield

  • Custom Page Layout and strange web part behaviour

    Hi.
    I've added some additional web part zones to a new table in a custom page layout but when I deploy the page layout and apply it to an existing page, if I add a CEWP to the new zones the ribbon doesn't respond and I can only modify the CEWP if I move it to
    one of the other OOTB zones on the page.
    I can move the CEWP back and forth between the zones but the ribbon only reacts and allows me to really customize the web part once it's been moved to one of those original zones.
    I can add any web part to the new zones but the CEWP, when initially added to the page, just shows the "Click here to add new content" text/link and clicking it does nothing.
    The strange thing is that if I select and then copy that text/link, the text disappears and I can type in the CEWP.
    Adding a CEWP to one of the original zones just works. I click the link, the text disappears and I can start editing.
    Have I missed something in the code on the customized page layout or is this just a bug or some other quirk?
    Thanks peeps.
    N03L.

    Hi,
    This depends on the IView properties, so open IView properties in property editor and play around with
    Height properties like Height Type, MaxAutoHeight, MinAutoHeight.
    Regards,
    Praveen Gudapati

  • Add metadata navigation on custom page layouts

    I was reading about showing the metadata navigation tree as my left side navigation, i found this link which describe how to implement a similar task http://markuspersson.wordpress.com/tag/managed-metadata/ . but when i added the following at the beginning
    of my EnterpriseWiki.aspx page using SharePoint designer :-
    <%@ Register Src="/_Controltemplates/MetadataNavTree.ascx"
    TagName="MetadataNav"
    TagPrefix="SharePoint" %>
    and the following at the end :-
    <asp:Content ContentPlaceHolderID="PlaceHolderLeftNavBar" runat="server">
    <SharePoint:MetadataNav ID="Metadatanav1" runat="server" />
    </asp:Content>
    The navigation is shown as follow inside my SharePoint site
    Link
    So i have the following question:-
    1. how i can show the full navigation tree.
    2. how i can add a custom redirect inside my page layout or in some control ?
    Thanks in advance for any help.

    Hi Das,
    Could your custom page layout simply include web part zones so that a specific content page such as your landing page could then be edited in the browser by a content author. The content author could then add your custom webparts as needed.
    Or did you need to bake the custom web parts directly into the page layouts so that any content page that uses the page layout always includes the custom web parts?
    If this is the case, then all you need is the proper html friendly web part controls for your two custom web parts. My suggestion to get this HTML is to create a content page that uses any page layout that includes at least one web part zone. Add your two
    custom web parts to this web part zone on this dev content page. Now save, check in and publish this content page.
    Open your site in SharePoint design and navigate to the Pages library (lists->Pages). Your dev content page should be listed there. Right click that page and "detach from page layout". What this will allow you to do is open that content page
    in sharepoint designer and obtain the html representation for your custom web parts. Copy these <webpart /> controls into your custom page layout.
    Eric Overfield - PixelMill -
    ericoverfield.com -
    @EricOverfield

  • Custom page layouts for iPhoto books- bleeds and type

    I've been digging through the forum for info on creating custom page layouts. I have the basics: print PDF (to capture the page BG and graphics elements), manipulate in PhotoShop and place the custom page as a full page photo.
    How does iPhoto deal with bleeds? Since I'm trying to recreate the style of the other pages I'd like it to match.
    Is all type in an iPhoto book rasterized? The printed PDF retains type. Will rasterized type in PS layouts match "native" text in iPhoto?
    I haven't purchased a book yet and I'm wondering if the book is sent to Apple as a PDF with vector data. If that's the case can custom pages be inserted into the PDF with vector type intact?
    Thanks all!
    rg

    gatz:
    Welcome to the Apple Discussions. I don't know much about bleeds but you can manipulate it in the iPhoto preference file with Pref Setter.
    Regarding the rasterized type, you'll have to give it a try and then create a pdf of the book to check it out. In iPHoto 5 we used to be able to get a copy of the pdf file that was uploaded to Apple but in V6 that's not possible. I think the pdf file may be the same as we get when creating it via Print to PDF. Here's the info I received from Apple about book quality and materials:
    I contacted Apple and asked for information that I could pass on. Here's the reply I received from Apple:
    "Thank you for contacting the Apple Print Products Customer Service.
    I understand that you would like to know the printing process that is used and the color mode the files should be in, so you can better advise users in the iPhoto forum.
    iPhoto version 4 or later, allows you to import and print files through the Apple Print Product service as RGB, grayscale, or CMYK color space. JPEG files with RGB color space are recommended for best results.
    While iPhoto 2 can import files of various formats, including RGB color, grayscale, and CMYK, this version requires JPEG files with RGB color space when printing photos and books.
    For more information regarding iPhoto 2, please visit the following article:
    iPhoto: Color, Black and White Prints Appear Garbled or Distorted
    For more information regarding iPhoto 5, please visit the following article:
    http://docs.info.apple.com/article.html?artnum=165501
    Here are some of the technical specifications for the books, cards, and calendars. I hope this gives you an idea about their quality and form.
    BOOKS
    All iPhoto books are printed using acid-free paper for long-lasting image quality. The photos are printed at a high resolution (300DPI if you use iPhoto 6). There is no external modification--such as sharpening or contrast adjustment--of the photos; what you see in the application is what is printed in the book.
    Hardcovers Books
    The cover is hard-bound and covered in linen. You select the linen color during the book-ordering process. The hardcover books have a solid, stiff binding that is glued and crimped. The internal pages, measuring 8.5 x 11 inches, are printed on McCoy 100# Text Gloss paper stock.
    Softcover Books
    The softcover books come in three sizes:
    - Large 8.5 x 11 inches
    - Medium 6 x 8 inches
    - Small 2.6 x 3.5 inches
    All of the softcover books have internal pages that are printed on McCoy 100# Text Gloss paper stock. The large softcover book has a white cover (Kromekoteplus Folding Cover, 16 point) with a cutout on the front that reveals the cover-page photo in the book. The covers for the medium and small softcover books have the cover image and title printed directly on the cover. All of the softcover books have a glued binding and feature a thick cover of McCoy 100# Cover Gloss paper stock.
    CARDS
    All cards are printed on McCoy 120# Silk Cover paper stock. The postcards measure 4 x 6 inches, and the greeting cards measure 5 x 7inches.
    CALENDARS
    All calendars measure 8 x 10 inches and are printed on McCoy 100# Silk Cover paper stock.
    To ensure the best print quality, we have chosen to use Kodak NexPress technology. The press uses a dry toner, which is fused to the surface of the paper. Please see NexPress' site for more information:
    KODAK NEXPRESS 2500 Digital Production Color Press
    I hope you find this information helpful in answering questions on the iPhoto forum."
    Do you Twango?
    TIP: For insurance against the iPhoto database corruption that many users have experienced I recommend making a backup copy of the Library6.iPhoto database file and keep it current. If problems crop up where iPhoto suddenly can't see any photos or thinks there are no photos in the library, replacing the working Library6.iPhoto file with the backup will often get the library back. By keeping it current I mean backup after each import and/or any serious editing or work on books, slideshows, calendars, cards, etc. That insures that if a problem pops up and you do need to replace the database file, you'll retain all those efforts. It doesn't take long to make the backup and it's good insurance.
    I've written an Automator workflow application (requires Tiger), iPhoto dB File Backup, that will copy the selected Library6.iPhoto file from your iPhoto Library folder to the Pictures folder, replacing any previous version of it. You can download it at Toad's Cellar. Be sure to read the Read Me pdf file.

  • Unable to see the pageviewer in a page from pages library in a custom page layout

    <File Url="Inbox.aspx" Type="GhostableInLibrary" Level="Published" Path="myPages\Pages\Inbox.aspx" >
    <AllUsersWebPart WebPartOrder="0" WebPartZoneID="Header" ID="inboxwp1">
    <![CDATA[<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">
    <Title>Inbox</Title>
    <FrameType>Default</FrameType>
    <Description>Displays another Web page on this Web page. The other Web page is presented in an IFrame.</Description>
    <IsIncluded>true</IsIncluded>
    <ZoneID>wpz</ZoneID>
    <PartOrder>0</PartOrder>
    <FrameState>Normal</FrameState>
    <Height></Height>
    <Width />
    <AllowRemove>true</AllowRemove>
    <AllowZoneChange>true</AllowZoneChange>
    <AllowMinimize>true</AllowMinimize>
    <AllowConnect>true</AllowConnect>
    <AllowEdit>true</AllowEdit>
    <AllowHide>true</AllowHide>
    <IsVisible>true</IsVisible>
    <DetailLink />
    <HelpLink />
    <HelpMode>Modeless</HelpMode>
    <Dir>Default</Dir>
    <PartImageSmall />
    <MissingAssembly>Cannot import this Web Part.</MissingAssembly>
    <PartImageLarge>/_layouts/15/images/mscntvwl.gif</PartImageLarge>
    <IsIncludedFilter />
    <Assembly>Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
    <TypeName>Microsoft.SharePoint.WebPartPages.PageViewerWebPart</TypeName>
    <ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/PageViewer">/_layouts/15/AppPages/InboxRedirectPage.aspx</ContentLink>
    <SourceType xmlns="http://schemas.microsoft.com/WebPart/v2/PageViewer">URL</SourceType>
    </WebPart>]]>
    </AllUsersWebPart>
    <AllUsersWebPart WebPartOrder="0" WebPartZoneID="LeftWP" ID="wpLeft">
    <![CDATA[
    <webParts>
    <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData>
    <type name="myWebParts.ProjectLinks.ProjectLinks, m, Version=1.0.0.0, Culture=neutral, PublicKeyToken=52f3214933d771f7" />
    <importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>
    </metaData>
    <data>
    <properties>
    <property name="Title" type="string">myprojectLinks</property>
    <property name="Description" type="string">My Visual Web Part</property>
    </properties>
    </data>
    </webPart>
    </webParts>
    ]]>
    </AllUsersWebPart>
    <Property Name="ContentTypeId" Value="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF390076F7B5D03DD146D699D042E1C5D76EF7" />
    <Property Name="FileLeafRef" Value="Inbox.aspx" />
    <Property Name="Title" Value="Inbox" />
    <Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/myPageLayout/myPage.aspx, my custom Page Template"/>
    <Property Name="ContentType" Value="myPageCT" />
    <Property Name="_ModerationStatus" Value="3" />
    <Property Name="FileDirRef" Value="Pages" />
    <Property Name="FSObjType" Value="0" />
    </File>
    I have created a custom page layout in my site collec. using VS 2012 and deployed am able to see the page in the pages lib [inbox.aspx].
    Here, I have added a page viewer web part and I want to redirect to another application page, which is already coded [inboxredirect.aspx] in my solution[its another dll - another SP solution which has appln pages and web parts
    etc - ] 
    The issue is that, i am unable to see the page viewer web part when the page is displayed. inbox.aspx is a page which is created once my custompagelayouts solution is deployed and when i navigate to this page, i am stuck . i am getting
    the  " access denied " message is displayed.  
    can anyone help why this  error is displayed?
    in my inboxredirect.aspx page i am inherting from unsecuredlayoutspagebase class, so  i dont think , access denied message should come.
    using System;
    using System.Configuration;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    namespace myproj.Layouts.AppPages
    public partial class InboxRedirectPage : UnsecuredLayoutsPageBase
    string projectName = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    string siteUrl = SPContext.Current.Web.Url;
    using (SPSite site = new SPSite(siteUrl))
    using (SPWeb web = site.OpenWeb())
    string urlProjectName =Request.UrlReferrer.ToString();
    projectName = urlProjectName.Split('/')[5];
    //end
    SPUser user = web.CurrentUser;
    if (user != null)
    above is my appln page to which i am redirecting.

    Solved it myself guys... (Well the major part)
    Got help from here...
    https://www.nothingbutsharepoint.com/sites/devwiki/articles/pages/blank-open-save-dialog-when-browsing-document-library-from-office-clients.aspx
    and
    http://www.sharepointconfig.com/2011/02/vs2010-list-definition-template-missing-file-dialog-view/
    with some tweaks of my own..
    Still working on it because its showing SharePoint 2010 header... And I need 2013 look...

  • Custom Master Page with Custom Page Layout

    Hi All,
    I have created a Custom SharePoint Master Page. In that Master Page I have created a custom Header & Footer.  In between the header and the footer I created a space to put page's content.
    However I have created a page using that master page and it was successfully published.
    After that I wanted to create a Custom Page Layout using that Page previously created. That also was a successful one. But when default Page Layouts in SharePoint 2013 inserted to a page it shows an area that can add content. But in my Page Layout inserted
    to a page it does not show like that.
    So what have I missed when I created the Custom Page Layout? Could you kindly someone tell me how to solve this matter?
    Thanks and regards,
    Chiranthaka

    Can you confirm that your custom page layout has the same WebPart Zones as the default one? They need to be if you wish to see content that was added with the default page layout.
    Nikolas Charlebois-Laprade Microsoft Certified Professional & Software Engineer http://nikcharlebois.com

Maybe you are looking for