diff --git a/WebStore.UI/Setup/applications/webstore/FeatureDefinitions/0000_WebStore.config b/WebStore.UI/Setup/applications/webstore/FeatureDefinitions/0000_WebStore.config index c14a94e..06829af 100644 --- a/WebStore.UI/Setup/applications/webstore/FeatureDefinitions/0000_WebStore.config +++ b/WebStore.UI/Setup/applications/webstore/FeatureDefinitions/0000_WebStore.config @@ -1,21 +1,21 @@ + featureGuid="0cefbf18-56de-11dc-8f36-bac755d89593" + supportedDatabases="MSSQL,MySQL" + resourceFile="WebStoreResources" + featureNameReasourceKey="WebStoreName" + controlSource="WebStore/WebStoreModule.ascx" + sortOrder="800" + isCacheable="false" + defaultCacheTime="0" + excludeFromFeatureList="false" + icon="blank.gif" + isSearchable="true" + searchListNameResourceKey="WebStoreSearchName" + deleteProvider="WebStoreContentDeleteHandler" + supportsPageReuse="false" + > + + diff --git a/WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mssql/7.5.0.0.config b/WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mssql/7.5.0.1.config similarity index 100% rename from WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mssql/7.5.0.0.config rename to WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mssql/7.5.0.1.config diff --git a/WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mysql/7.5.0.0.config b/WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mysql/7.5.0.1.config similarity index 100% rename from WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mysql/7.5.0.0.config rename to WebStore.UI/Setup/applications/webstore/SchemaUpgradeScripts/mysql/7.5.0.1.config diff --git a/WebStore.UI/WebStore/AdminProductEdit.aspx.cs b/WebStore.UI/WebStore/AdminProductEdit.aspx.cs index 58765a3..d38a9f7 100644 --- a/WebStore.UI/WebStore/AdminProductEdit.aspx.cs +++ b/WebStore.UI/WebStore/AdminProductEdit.aspx.cs @@ -1,6 +1,6 @@ /// Author: /// Created: 2007-02-24 -/// Last Modified: 2015-04-13 (Joe Davis) +/// Last Modified: 20181012 (Joe Davis) /// /// The use and distribution terms for this software are covered by the /// Common Public License 1.0 (http://opensource.org/licenses/cpl.php) @@ -325,13 +325,9 @@ private void Save() if ((product.Url.Length == 0) && (txtName.Text.Length > 0)) { - product.Url = "/" - + SiteUtils.SuggestFriendlyUrl( - txtName.Text + WebStoreResources.ProductUrlSuffix, - siteSettings); + product.Url = "/" + SiteUtils.SuggestFriendlyUrl(txtName.Text + WebStoreResources.ProductUrlSuffix,siteSettings, ""); needToCreateFriendlyUrl = true; - } else { @@ -352,10 +348,7 @@ private void Save() newUrl.SiteGuid = siteSettings.SiteGuid; newUrl.PageGuid = product.Guid; newUrl.Url = product.Url.Replace("/", string.Empty); - newUrl.RealUrl = "~/WebStore/ProductDetail.aspx?pageid=" - + pageId.ToInvariantString() - + "&mid=" + moduleId.ToInvariantString() - + "&product=" + product.Guid.ToString(); + newUrl.RealUrl = $"~/WebStore/ProductDetail.aspx?pageid={pageId.ToInvariantString()}&mid={moduleId.ToInvariantString()}&product={product.Guid.ToString()}"; newUrl.Save(); @@ -384,8 +377,7 @@ private void btnDelete_Click(object sender, EventArgs e) if (WebConfigSettings.LogIpAddressForContentDeletions) { - log.Info("user deleted product " + p.Name + " from ip address " + SiteUtils.GetIP4Address()); - + log.Info($"user deleted product {p.Name} from ip address {SiteUtils.GetIP4Address()}"); } FriendlyUrl.DeleteByPageGuid(p.Guid); @@ -1014,21 +1006,12 @@ private void PopulateLabels() protected string GetRefreshUrl() { - - string result = SiteRoot + "/WebStore/AdminProductEdit.aspx?pageid=" - + pageId.ToInvariantString() - + "&mid=" + moduleId.ToInvariantString() - + "&prod=" + productGuid.ToString(); - - return result; - + return $"{SiteRoot}/WebStore/AdminProductEdit.aspx?pageid={pageId.ToInvariantString()}&mid={moduleId.ToInvariantString()}&prod={productGuid.ToString()}"; } private string GetReturnUrl() { - return SiteRoot + "/WebStore/AdminProduct.aspx?pageid=" - + pageId.ToInvariantString() - + "&mid=" + moduleId.ToInvariantString(); + return $"{SiteRoot}/WebStore/AdminProduct.aspx?pageid={pageId.ToInvariantString()}&mid={moduleId.ToInvariantString()}"; } private void LoadSettings() diff --git a/WebStore.UI/WebStore/Cart.aspx b/WebStore.UI/WebStore/Cart.aspx index e09aecc..bb1eaee 100644 --- a/WebStore.UI/WebStore/Cart.aspx +++ b/WebStore.UI/WebStore/Cart.aspx @@ -20,29 +20,32 @@ - - + + + - + - +
- -
+
+ + +
diff --git a/WebStore.UI/WebStore/Cart.aspx.cs b/WebStore.UI/WebStore/Cart.aspx.cs index 9f2f41e..8e68f10 100644 --- a/WebStore.UI/WebStore/Cart.aspx.cs +++ b/WebStore.UI/WebStore/Cart.aspx.cs @@ -109,6 +109,8 @@ private void ShowCart() pnlDiscountCode.Visible = false; litEmptyCart.Text = String.Format(displaySettings.EmptyCartFormat, WebStoreResources.EmptyCartMessage, SiteUtils.GetCurrentPageUrl(), WebStoreResources.EmptyCartGoShopping); litKeepShopping.Text = String.Format(displaySettings.StartShoppingLinkFormat, SiteUtils.GetCurrentPageUrl(), WebStoreResources.StartShopping); + pnlCheckoutActions.OutsideTopMarkup = displaySettings.CartCheckoutActionsEmptyCartOutsideTopMarkup; + pnlCheckoutActions.OutsideBottomMarkup = displaySettings.CartCheckoutActionsEmptyCartOutsideBottomMarkup; } } @@ -282,44 +284,51 @@ private void DoPayPalStandardCheckout() } - private void PopulateLabels() - { - Control c = Master.FindControl("Breadcrumbs"); - if (c != null) - { - BreadcrumbsControl crumbs = (BreadcrumbsControl)c; - crumbs.ForceShowBreadcrumbs = true; - - } - Title = SiteUtils.FormatPageTitle(siteSettings, CurrentPage.PageName + " - " + WebStoreResources.CartHeader); - heading.Text = WebStoreResources.CartHeader; + private void PopulateLabels() + { + Control c = Master.FindControl("Breadcrumbs"); + if (c != null) + { + BreadcrumbsControl crumbs = (BreadcrumbsControl)c; + crumbs.ForceShowBreadcrumbs = true; - string confirmOrderUrl = SiteRoot + - "/WebStore/ConfirmOrder.aspx?pageid=" + pageId.ToInvariantString() - + "&mid=" + moduleId.ToInvariantString(); + } + Title = SiteUtils.FormatPageTitle(siteSettings, CurrentPage.PageName + " - " + WebStoreResources.CartHeader); + heading.Text = WebStoreResources.CartHeader; + + string confirmOrderUrl = $"{SiteRoot}/WebStore/ConfirmOrder.aspx?pageid={pageId.ToInvariantString()}&mid={moduleId.ToInvariantString()}"; litConfirmOrder.Text = String.Format(displaySettings.ConfirmOrderLinkFormat, confirmOrderUrl, WebStoreResources.ProceedToCheckout); litKeepShopping.Text = String.Format(displaySettings.ContinueShoppingLinkFormat, SiteUtils.GetCurrentPageUrl(), WebStoreResources.CartKeepShoppingLink); - pnlDiscountCode.CssClass = "settingrow discountcode"; + pnlDiscountCode.CssClass = displaySettings.CartCheckoutDiscountDivCssClass; btnApplyDiscount.Text = WebStoreResources.ApplyDiscountButton; - lblDiscountError.Text = string.Empty; + lblDiscountError.Text = string.Empty; lnkLogin.OverrideText = WebStoreResources.LoginToCheckout; lnkLogin.CssClass = displaySettings.LoginToCheckoutCssClass; + pnlCheckoutActions.CssClass = displaySettings.CartCheckoutActionsDivClass; + + pnlCheckoutLinks.CssClass = displaySettings.CartCheckoutLinksDivCssClass; + pnlCheckoutLinks.OutsideTopMarkup = displaySettings.CartCheckoutLinksDivOutsideTopMarkup; + pnlCheckoutLinks.OutsideBottomMarkup = displaySettings.CartCheckoutLinksDivOutsideBottomMarkup; if (!Request.IsAuthenticated && !canCheckoutWithoutAuthentication) { pnlCheckoutLinks.CssClass += $" {displaySettings.CartCheckoutLinksDivAnonymousExtraCssClass}"; + pnlCheckoutLinks.OutsideTopMarkup = displaySettings.CartCheckoutLinksDivAnonymousOutsideTopMarkup; + pnlCheckoutLinks.OutsideBottomMarkup = displaySettings.CartCheckoutLinksDivAnonymousOutsideBottomMarkup; } pnlPayPal.CssClass = displaySettings.CartPayPalDivCssClass; + pnlPayPal.OutsideTopMarkup = displaySettings.CartPayPalDivOutsideTopMarkup; + pnlPayPal.OutsideBottomMarkup = displaySettings.CartPayPalDivOutsideBottomMarkup; } private void LoadParams() diff --git a/WebStore.UI/WebStore/Cart.aspx.designer.cs b/WebStore.UI/WebStore/Cart.aspx.designer.cs index 45ef99d..5436c97 100644 --- a/WebStore.UI/WebStore/Cart.aspx.designer.cs +++ b/WebStore.UI/WebStore/Cart.aspx.designer.cs @@ -138,6 +138,15 @@ public partial class CartPage { /// protected global::System.Web.UI.WebControls.Literal litTotal; + /// + /// pnlCheckoutActions control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::mojoPortal.Web.UI.FormGroupPanel pnlCheckoutActions; + /// /// pnlDiscountCode control. /// diff --git a/WebStore.UI/WebStore/Controls/WebStoreDisplaySettings.cs b/WebStore.UI/WebStore/Controls/WebStoreDisplaySettings.cs index 182f769..4d420e7 100644 --- a/WebStore.UI/WebStore/Controls/WebStoreDisplaySettings.cs +++ b/WebStore.UI/WebStore/Controls/WebStoreDisplaySettings.cs @@ -1,6 +1,6 @@ // Author: // Created: 2011-06-09 -// Last Modified: 2011-06-09 +// Last Modified: 2018-10-12 // // The use and distribution terms for this software are covered by the // Common Public License 1.0 (http://opensource.org/licenses/cpl.php) @@ -23,141 +23,35 @@ namespace WebStore.UI public class WebStoreDisplaySettings : WebControl { - private bool usejPlayerForMediaTeasers = true; - - public bool UsejPlayerForMediaTeasers - { - get { return usejPlayerForMediaTeasers; } - set { usejPlayerForMediaTeasers = value; } - } - - private bool useAltCartList = false; - - public bool UseAltCartList - { - get { return useAltCartList; } - set { useAltCartList = value; } - } - - private string emptyCartFormat = "
{0} {2}
"; - public string EmptyCartFormat - { - get => emptyCartFormat; - set => emptyCartFormat = value; - } - - private string continueShoppingLinkFormat = "{1}"; - public string ContinueShoppingLinkFormat - { - get => continueShoppingLinkFormat; - set => continueShoppingLinkFormat = value; - } - - private string startShoppingLinkFormat = "{1}"; - public string StartShoppingLinkFormat - { - get => startShoppingLinkFormat; - set => startShoppingLinkFormat = value; - } - - private string confirmOrderLinkFormat = "{1}"; - public string ConfirmOrderLinkFormat - { - get => confirmOrderLinkFormat; - set => confirmOrderLinkFormat = value; - } - - private string loginToCheckoutCssClass = "store-cart-login btn btn-info"; - public string LoginToCheckoutCssClass - { - get => loginToCheckoutCssClass; - set => loginToCheckoutCssClass = value; - } - - private string cartCheckoutDiscountDivCssClass = "settingrow discountcode store-cart-discountcode"; - public string CartCheckoutDiscountDivCssClass - { - get => cartCheckoutDiscountDivCssClass; - set => cartCheckoutDiscountDivCssClass = value; - } - - private string cartCheckoutLinksDivCssClass = "settingrow checkoutlinks store-cart-checkoutlinks"; - public string CartCheckoutLinksDivCssClass - { - get => cartCheckoutLinksDivCssClass; - set => cartCheckoutLinksDivCssClass = value; - } - - private string cartCheckoutLinksDivAnonymousExtraCssClass = "store-cart-checkoutlinks-anon"; - public string CartCheckoutLinksDivAnonymousExtraCssClass - { - get => cartCheckoutLinksDivAnonymousExtraCssClass; - set => cartCheckoutLinksDivAnonymousExtraCssClass = value; - } - - private string cartPayPalDivCssClass = "settingrow paypalrow store-cart-paypal"; - public string CartPayPalDivCssClass - { - get => cartPayPalDivCssClass; - set => cartPayPalDivCssClass = value; - } - - private string cartSubTotalFormat = "
{1}
"; - public string CartSubTotalFormat - { - get => cartSubTotalFormat; - set => cartSubTotalFormat = value; - } - - private string cartTotalFormat = "
{1}
"; - public string CartTotalFormat - { - get => cartTotalFormat; - set => cartTotalFormat = value; - } - - private string cartDiscountTotalFormat = "
{1}
"; - public string CartDiscountTotalFormat - { - get => cartDiscountTotalFormat; - set => cartDiscountTotalFormat = value; - } - - private string cartShippingTotalFormat = "
{1}
"; - public string CartShippingTotalFormat - { - get => cartShippingTotalFormat; - set => cartShippingTotalFormat = value; - } - - private string additionalBodyClass = string.Empty; - public string AdditionalBodyClass - { - get => additionalBodyClass; - set => additionalBodyClass = value; - } - - private string productDetailsRatingPanelDivCssClass = "productratingwrapper"; - public string ProductDetailsRatingPanelDivCssClass - { - get => productDetailsRatingPanelDivCssClass; - set => productDetailsRatingPanelDivCssClass = value; - } - - private string productDetailsOffersDivCssClass = "clearpanel offerspanel"; - public string ProductDetailsOffersDivCssClass - { - get => productDetailsOffersDivCssClass; - set => productDetailsOffersDivCssClass = value; - } - - //private string addToCartButtonCssClass = "addtocartbutton jqbutton ui-button ui-widget ui-state-default ui-corner-all"; - private string addToCartButtonCssClass = "store-btn-addtocart btn btn-success"; - public string AddToCartButtonCssClass - { - get => addToCartButtonCssClass; - set => addToCartButtonCssClass = value; - } + public bool UsejPlayerForMediaTeasers { get; set; } = true; + + public bool UseAltCartList { get; set; } = false; + public string EmptyCartFormat { get; set; } = "
{0} {2}
"; + public string ContinueShoppingLinkFormat { get; set; } = "{1}"; + public string StartShoppingLinkFormat { get; set; } = "{1}"; + public string ConfirmOrderLinkFormat { get; set; } = "{1}"; + public string LoginToCheckoutCssClass { get; set; } = "store-cart-login btn btn-info"; + public string CartCheckoutActionsDivClass { get; set; } = "row"; + public string CartCheckoutActionsEmptyCartOutsideTopMarkup { get; set; } = ""; + public string CartCheckoutActionsEmptyCartOutsideBottomMarkup { get; set; } = ""; + public string CartCheckoutDiscountDivCssClass { get; set; } = "settingrow discountcode store-cart-discountcode"; + public string CartCheckoutLinksDivCssClass { get; set; } = "settingrow checkoutlinks store-cart-checkoutlinks"; + public string CartCheckoutLinksDivOutsideTopMarkup { get; set; } = ""; + public string CartCheckoutLinksDivOutsideBottomMarkup { get; set; } = ""; + public string CartCheckoutLinksDivAnonymousExtraCssClass { get; set; } = "store-cart-checkoutlinks-anon"; + public string CartCheckoutLinksDivAnonymousOutsideTopMarkup { get; set; } = ""; + public string CartCheckoutLinksDivAnonymousOutsideBottomMarkup { get; set; } = ""; + public string CartPayPalDivCssClass { get; set; } = "settingrow paypalrow store-cart-paypal"; + public string CartPayPalDivOutsideTopMarkup { get; set; } = ""; + public string CartPayPalDivOutsideBottomMarkup { get; set; } = ""; + public string CartSubTotalFormat { get; set; } = "
{1}
"; + public string CartTotalFormat { get; set; } = "
{1}
"; + public string CartDiscountTotalFormat { get; set; } = "
{1}
"; + public string CartShippingTotalFormat { get; set; } = "
{1}
"; + public string AdditionalBodyClass { get; set; } = string.Empty; + public string ProductDetailsRatingPanelDivCssClass { get; set; } = "productratingwrapper"; + public string ProductDetailsOffersDivCssClass { get; set; } = "clearpanel offerspanel"; + public string AddToCartButtonCssClass { get; set; } = "store-btn-addtocart btn btn-success"; protected override void Render(HtmlTextWriter writer) { if (HttpContext.Current == null) diff --git a/WebStore.UI/WebStore/ProductDetail.aspx b/WebStore.UI/WebStore/ProductDetail.aspx index 5c0bd1d..a3c8ac4 100644 --- a/WebStore.UI/WebStore/ProductDetail.aspx +++ b/WebStore.UI/WebStore/ProductDetail.aspx @@ -15,8 +15,27 @@ - -
+ + + + + + + + + + + + <%--
<%# Eval("ProductListName") %> @@ -27,8 +46,12 @@
-
- + --%> + + + +
+ <%# Eval("ProductListName") %> + + + <%# string.Format(currencyCulture, "{0:c}",Convert.ToDecimal(Eval("Price"))) %> + + + + +
+
diff --git a/WebStore.UI/WebStore/ProductDetail.aspx.cs b/WebStore.UI/WebStore/ProductDetail.aspx.cs index 5c2e9de..d4bff3a 100644 --- a/WebStore.UI/WebStore/ProductDetail.aspx.cs +++ b/WebStore.UI/WebStore/ProductDetail.aspx.cs @@ -1,6 +1,6 @@ /// Author: /// Created: 2008-10-19 -/// Last Modified: 2012-10-02 +/// Last Modified: 2018-10-11 /// /// The use and distribution terms for this software are covered by the /// Common Public License 1.0 (http://opensource.org/licenses/cpl.php) @@ -222,6 +222,15 @@ private void LoadSettings() ScriptConfig.IncludeYahooMediaPlayer = true; } + if (pageId > -1) + { + PageSettings pageSettings = new PageSettings(SiteId, pageId); + if (pageSettings != null && !String.IsNullOrWhiteSpace(pageSettings.BodyCssClass)) + { + AddClassToBody(pageSettings.BodyCssClass.Replace("temp-ws-hide", string.Empty)); + } + } + AddClassToBody("webstore webstoreproductdetail"); } diff --git a/WebStore.UI/WebStore/Views/Web.config b/WebStore.UI/WebStore/Views/Web.config new file mode 100644 index 0000000..18691a7 --- /dev/null +++ b/WebStore.UI/WebStore/Views/Web.config @@ -0,0 +1,40 @@ + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WebStore.UI/WebStore/Views/_Cart.cshtml b/WebStore.UI/WebStore/Views/_Cart.cshtml new file mode 100644 index 0000000..0469b84 --- /dev/null +++ b/WebStore.UI/WebStore/Views/_Cart.cshtml @@ -0,0 +1,80 @@ +@using mojoPortal.Web.Helpers; +@using mojoPortal.Business; + +@model PostListModel + +
+ @foreach (var item in Model.Posts) + { +
+ +
+ @if (!string.IsNullOrWhiteSpace(item.HeadlineImageUrl)) + { + + } + +

+ @item.Title +

+ @if (@item.SubTitle != "") + { +

@item.SubTitle

+ } +
+ +
+ @Html.Raw(item.Body) +
+ +
+ + + @if (item.ShowAuthorBio) + { +
+ @if (item.ShowAuthorAvatar) + { + @Html.Avatar(item.AuthorAvatar, item.AuthorEmail, item.AuthorUserId, new { Class = "author__avatar media-object" }, new { Class = "author__avatar-link media-left" }, true, true) + } + + @if (item.ShowAuthorBio && !string.IsNullOrWhiteSpace(item.AuthorBio)) + { +

@item.AuthorBio

+ } +
+ } + +
+
+ } +

View all posts »

+
\ No newline at end of file diff --git a/WebStore.UI/WebStore/Views/_Checkout.cshtml b/WebStore.UI/WebStore/Views/_Checkout.cshtml new file mode 100644 index 0000000..0469b84 --- /dev/null +++ b/WebStore.UI/WebStore/Views/_Checkout.cshtml @@ -0,0 +1,80 @@ +@using mojoPortal.Web.Helpers; +@using mojoPortal.Business; + +@model PostListModel + +
+ @foreach (var item in Model.Posts) + { +
+ +
+ @if (!string.IsNullOrWhiteSpace(item.HeadlineImageUrl)) + { + + } + +

+ @item.Title +

+ @if (@item.SubTitle != "") + { +

@item.SubTitle

+ } +
+ +
+ @Html.Raw(item.Body) +
+ +
+ + + @if (item.ShowAuthorBio) + { +
+ @if (item.ShowAuthorAvatar) + { + @Html.Avatar(item.AuthorAvatar, item.AuthorEmail, item.AuthorUserId, new { Class = "author__avatar media-object" }, new { Class = "author__avatar-link media-left" }, true, true) + } + + @if (item.ShowAuthorBio && !string.IsNullOrWhiteSpace(item.AuthorBio)) + { +

@item.AuthorBio

+ } +
+ } + +
+
+ } +

View all posts »

+
\ No newline at end of file diff --git a/WebStore.UI/WebStore/Views/_Home.cshtml b/WebStore.UI/WebStore/Views/_Home.cshtml new file mode 100644 index 0000000..0469b84 --- /dev/null +++ b/WebStore.UI/WebStore/Views/_Home.cshtml @@ -0,0 +1,80 @@ +@using mojoPortal.Web.Helpers; +@using mojoPortal.Business; + +@model PostListModel + +
+ @foreach (var item in Model.Posts) + { +
+ +
+ @if (!string.IsNullOrWhiteSpace(item.HeadlineImageUrl)) + { + + } + +

+ @item.Title +

+ @if (@item.SubTitle != "") + { +

@item.SubTitle

+ } +
+ +
+ @Html.Raw(item.Body) +
+ +
+ + + @if (item.ShowAuthorBio) + { +
+ @if (item.ShowAuthorAvatar) + { + @Html.Avatar(item.AuthorAvatar, item.AuthorEmail, item.AuthorUserId, new { Class = "author__avatar media-object" }, new { Class = "author__avatar-link media-left" }, true, true) + } + + @if (item.ShowAuthorBio && !string.IsNullOrWhiteSpace(item.AuthorBio)) + { +

@item.AuthorBio

+ } +
+ } + +
+
+ } +

View all posts »

+
\ No newline at end of file diff --git a/WebStore.UI/WebStore/Views/_OfferList.cshtml b/WebStore.UI/WebStore/Views/_OfferList.cshtml new file mode 100644 index 0000000..0469b84 --- /dev/null +++ b/WebStore.UI/WebStore/Views/_OfferList.cshtml @@ -0,0 +1,80 @@ +@using mojoPortal.Web.Helpers; +@using mojoPortal.Business; + +@model PostListModel + +
+ @foreach (var item in Model.Posts) + { +
+ +
+ @if (!string.IsNullOrWhiteSpace(item.HeadlineImageUrl)) + { + + } + +

+ @item.Title +

+ @if (@item.SubTitle != "") + { +

@item.SubTitle

+ } +
+ +
+ @Html.Raw(item.Body) +
+ +
+ + + @if (item.ShowAuthorBio) + { +
+ @if (item.ShowAuthorAvatar) + { + @Html.Avatar(item.AuthorAvatar, item.AuthorEmail, item.AuthorUserId, new { Class = "author__avatar media-object" }, new { Class = "author__avatar-link media-left" }, true, true) + } + + @if (item.ShowAuthorBio && !string.IsNullOrWhiteSpace(item.AuthorBio)) + { +

@item.AuthorBio

+ } +
+ } + +
+
+ } +

View all posts »

+
\ No newline at end of file diff --git a/WebStore.UI/WebStore/Views/_ProductList.cshtml b/WebStore.UI/WebStore/Views/_ProductList.cshtml new file mode 100644 index 0000000..0469b84 --- /dev/null +++ b/WebStore.UI/WebStore/Views/_ProductList.cshtml @@ -0,0 +1,80 @@ +@using mojoPortal.Web.Helpers; +@using mojoPortal.Business; + +@model PostListModel + +
+ @foreach (var item in Model.Posts) + { +
+ +
+ @if (!string.IsNullOrWhiteSpace(item.HeadlineImageUrl)) + { + + } + +

+ @item.Title +

+ @if (@item.SubTitle != "") + { +

@item.SubTitle

+ } +
+ +
+ @Html.Raw(item.Body) +
+ +
+ + + @if (item.ShowAuthorBio) + { +
+ @if (item.ShowAuthorAvatar) + { + @Html.Avatar(item.AuthorAvatar, item.AuthorEmail, item.AuthorUserId, new { Class = "author__avatar media-object" }, new { Class = "author__avatar-link media-left" }, true, true) + } + + @if (item.ShowAuthorBio && !string.IsNullOrWhiteSpace(item.AuthorBio)) + { +

@item.AuthorBio

+ } +
+ } + +
+
+ } +

View all posts »

+
\ No newline at end of file