예제 #1
0
        /// <summary>
        /// Effectue le traitement de préchargement du
        /// controle.
        /// </summary>
        /// <param name="e"></param>
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            SiteWeb st = ECommerceServer.CurrentSite;

            string dt = ECommerceServer.User.CreateNewCSRFToken();

            // Récupère les infos de configuration de Facebook
            // depuis la base de données
            FacebookSitesDS ds = ECommerceServer.DataCache.Facebook;

            if (ds == null || ds.ecommerce_facebook_siteswebs.Count == 0)
            {
                return;
            }
            FacebookSitesDS.ecommerce_facebook_siteswebsRow r = ds.ecommerce_facebook_siteswebs[0];
            if (r.Isfcb_application_idNull())
            {
                return;
            }

            ServerConfigSection sc = EConfigurationManager.GetConfig(st);

            string appId = r.fcb_application_id;

            // Prépare l'URL de connexion à la page de login
            StringBuilder blr = new StringBuilder();

            blr.Append("https://www.facebook.com/dialog/oauth?client_id=");
            blr.Append(appId);
            blr.Append("&scope=email");
            blr.Append("&state=");
            blr.Append(HttpUtility.UrlEncode(dt));
            blr.Append("|");
            if (!string.IsNullOrEmpty(Page.Request["ReturnUrl"]))
            {
                blr.Append(HttpUtility.UrlEncode(Page.Request["ReturnUrl"]));
            }
            else
            {
                blr.Append(HttpUtility.UrlEncode("/"));
            }
            blr.Append("&redirect_uri=");
            StringBuilder blrUri = new StringBuilder();

            blrUri.Append(st.UrlPrincipale);
            if (!st.UrlPrincipale.EndsWith("/"))
            {
                blrUri.Append("/");
            }
            blrUri.Append("oauth/facebook/process/");
            blr.Append(HttpUtility.UrlEncode(blrUri.ToString()));

            // et en fait l'url du lien
            this.NavigateUrl = blr.ToString();
        }
        /// <summary>
        /// Génère le rendu du contrôle via le writer HTML spécifié.
        /// </summary>
        /// <param name="writer">Objet <see cref="T:System.Web.UI.HtmlTextWriter" /> qui reçoit le contenu du contrôle.</param>
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            ECommercePage pg = Page as ECommercePage;

            if (pg == null)
            {
                return;
            }

            string canon = pg.CanonicalUrl;


            if (!string.IsNullOrEmpty(canon))
            {
                var  cfg    = EConfigurationManager.GetConfig(ECommerceServer.CurrentSite);
                bool useAmp = cfg.ECommerce.UseAmpFramework;

#if DEBUG
                useAmp = true;
#endif
                string uPr = ECommerceServer.CurrentSite.UrlPrincipale;
                if (string.IsNullOrEmpty(uPr))
                {
                    return;
                }
                if (!uPr.EndsWith("/"))
                {
                    uPr += "/";
                }


                if (useAmp)
                {
                    string amp = canon;
                    if (canon.EndsWith("/"))
                    {
                        amp = amp + "default.amp";
                    }
                    else
                    {
                        amp = Path.ChangeExtension(amp, ".amp");
                    }
                    writer.Write("<link rel='amphtml' href='");
                    amp = amp.Replace("~/", uPr);
                    writer.Write(amp);
                    writer.Write("' />");
                }

                canon = canon.Replace("~/", uPr);
                writer.Write("<link rel='canonical' href='");
                writer.Write(canon);
                writer.Write("' />");
            }
        }
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);

            ServerConfigSection s = EConfigurationManager.GetConfig(ECommerceServer.CurrentSite);

            if (!s.ECommerce.ClickNMortar.Enabled)
            {
                this.Visible = false;
            }
        }
        public ClickNMortarHomeLink()
        {
            ServerConfigSection s = EConfigurationManager.GetConfig(ECommerceServer.CurrentSite);

            if (!s.ECommerce.ClickNMortar.Enabled)
            {
                this.Visible = false;
            }
            else
            {
                this.NavigateUrl = s.ECommerce.ClickNMortar.RootPagePath;
            }
        }
예제 #5
0
        /// <summary>
        /// Gère l'évènement de chargement de la page
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            SiteWeb             st = ECommerceServer.CurrentSite;
            ServerConfigSection sc = EConfigurationManager.GetConfig(st);

            if (sc.ECommerce.Authentication == null ||
                !sc.ECommerce.Authentication.UseFacebook)
            {
                this.Visible = false;
            }

            if (Page.User.Identity.IsAuthenticated)
            {
                this.Visible = false;
            }
        }
        public void BindTo(object o)
        {
            if (o == null)
            {
                return;
            }
            int sit_pk = ECommerceServer.SiteId;

            ServerConfigSection config = EConfigurationManager.GetConfig(ECommerceServer.CurrentSite);


            if (o is ArticlesDataSourceResult)
            {
                ArticlesDataSourceResult res = o as ArticlesDataSourceResult;
                VueArticlesWebDS.ecommerce_articles_webRow r = res.Article.ecommerce_articles_web[0];
                BindTo(r);
            }
            else if (o is PromotionsLotsRepeater.ProduitLotRepeaterItemData)
            {
                PromotionsLotsRepeater.ProduitLotRepeaterItemData res = o as PromotionsLotsRepeater.ProduitLotRepeaterItemData;
                VueArticlesWebDS.ecommerce_articles_webRow        r   = res.ArticleLot;
                BindTo(r);
            }
            else if (o is VueArticlesWebDS.ecommerce_articles_webRow)
            {
                VueArticlesWebDS.ecommerce_articles_webRow r = o as VueArticlesWebDS.ecommerce_articles_webRow;
                if (string.IsNullOrEmpty(ImageUrl))
                {
                    if (config.ECommerce.DocumentBase.ProductImages.UseDocumentBase)
                    {
                        string code = config.ECommerce.DocumentBase.ProductImages.CodeForTiny;
                        switch (_typeImage)
                        {
                        case TypeProduitImage.Petite:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForSmall;
                            break;

                        case TypeProduitImage.Intermediaire:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForIntermediate;
                            break;

                        case TypeProduitImage.Tiny:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForTiny;
                            break;

                        case TypeProduitImage.Thumb:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForThumb;
                            break;

                        case TypeProduitImage.Detail:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForDetails;
                            break;

                        case TypeProduitImage.Aucune:
                            this.ImageUrl = ECommerceServer.ResolveResourceUrl(this.ImageUrl);
                            break;
                        }

                        //if (string.IsNullOrEmpty(this.ImageUrl))
                        //{
                        //    this.ImageUrl = _GetResourceUrl(DocBaseHelper.(config.ECommerce.DocumentBase.ProductImages.MainDocumentType,
                        //                            r.art_guid,
                        //                            code));
                        //}
                    }
                    else
                    {
                        switch (_typeImage)
                        {
                        case TypeProduitImage.Petite:
                            this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_smallNull() ? null : r.arw_url_img_small);
                            break;

                        case TypeProduitImage.Intermediaire:
                            this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_intermediateNull() ? (r.Isarw_url_img_imagetteNull() ? null : r.arw_url_img_imagette) : r.arw_url_img_intermediate);
                            break;

                        case TypeProduitImage.Tiny:
                            this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_tinyNull() ? null : r.arw_url_img_tiny);
                            break;

                        case TypeProduitImage.Thumb:
                            this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_imagetteNull() ? null : r.arw_url_img_imagette);
                            break;

                        case TypeProduitImage.Detail:
                            this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_bigNull() ? null : r.arw_url_img_big);
                            break;

                        case TypeProduitImage.Aucune:
                            this.ImageUrl = ECommerceServer.ResolveResourceUrl(this.ImageUrl);
                            break;
                        }
                    }
                }

                if (string.IsNullOrEmpty(this.ImageUrl))
                {
                    this.ImageUrl = ECommerceServer.ResolveResourceUrl(ImageUrlIfNone);
                }

                this.ToolTip       = r.arw_libelle;
                this.AlternateText = r.arw_libelle;
            }
        }
        public void BindTo(object o)
        {
            if (o == null)
            {
                return;
            }
            int sit_pk = ECommerceServer.SiteId;

            ServerConfigSection config = EConfigurationManager.GetConfig(ECommerceServer.CurrentSite);


            if (o is ArticlesDataSourceResult)
            {
                ArticlesDataSourceResult res = o as ArticlesDataSourceResult;
                VueArticlesWebDS.ecommerce_articles_webRow r = res.Article.ecommerce_articles_web[0];
                BindTo(r);
            }
            else if (o is PromotionsLotsRepeater.ProduitLotRepeaterItemData)
            {
                PromotionsLotsRepeater.ProduitLotRepeaterItemData res = o as PromotionsLotsRepeater.ProduitLotRepeaterItemData;
                VueArticlesWebDS.ecommerce_articles_webRow        r   = res.ArticleLot;
                BindTo(r);
            }
            else if (o is VueArticlesWebDS.ecommerce_articles_webRow)
            {
                VueArticlesWebDS.ecommerce_articles_webRow r = o as VueArticlesWebDS.ecommerce_articles_webRow;
                if (string.IsNullOrEmpty(ImageUrl) && !RenderAsText)
                {
                    if (config.ECommerce.DocumentBase.ProductImages.UseDocumentBase)
                    {
                        string code = config.ECommerce.DocumentBase.ProductImages.CodeForTiny;
                        switch (_typeImage)
                        {
                        case TypeProduitImage.Petite:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForSmall;
                            break;

                        case TypeProduitImage.Intermediaire:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForIntermediate;
                            break;

                        case TypeProduitImage.Tiny:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForTiny;
                            break;

                        case TypeProduitImage.Thumb:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForThumb;
                            break;

                        case TypeProduitImage.Detail:
                            code = config.ECommerce.DocumentBase.ProductImages.CodeForDetails;
                            break;

                        case TypeProduitImage.Aucune:
                            this.ImageUrl = _GetResourceUrl(this.ImageUrl);
                            break;
                        }

                        //if (string.IsNullOrEmpty(this.ImageUrl))
                        //{
                        //    this.ImageUrl = _GetResourceUrl(DocBaseHelper.(config.ECommerce.DocumentBase.ProductImages.MainDocumentType,
                        //                            r.art_guid,
                        //                            code));
                        //}
                    }
                    else
                    {
                        switch (_typeImage)
                        {
                        case TypeProduitImage.Petite:
                            this.ImageUrl = _GetResourceUrl(r.Isarw_url_img_smallNull() ? null : r.arw_url_img_small);
                            break;

                        case TypeProduitImage.Intermediaire:
                            this.ImageUrl = _GetResourceUrl(r.Isarw_url_img_intermediateNull() ? (r.Isarw_url_img_imagetteNull() ? null : r.arw_url_img_imagette) : r.arw_url_img_intermediate);
                            break;

                        case TypeProduitImage.Tiny:
                            this.ImageUrl = _GetResourceUrl(r.Isarw_url_img_tinyNull() ? null : r.arw_url_img_tiny);
                            break;

                        case TypeProduitImage.Thumb:
                            this.ImageUrl = _GetResourceUrl(r.Isarw_url_img_imagetteNull() ? null : r.arw_url_img_imagette);
                            break;

                        case TypeProduitImage.Detail:
                            this.ImageUrl = _GetResourceUrl(r.Isarw_url_img_bigNull() ? null : r.arw_url_img_big);
                            break;

                        case TypeProduitImage.Aucune:
                            this.ImageUrl = _GetResourceUrl(this.ImageUrl);
                            break;
                        }
                    }
                }

                if (string.IsNullOrEmpty(this.ImageUrl))
                {
                    this.ImageUrl = _GetResourceUrl(ImageUrlIfNone);
                }

                switch (LinkType)
                {
                case TypeLienProduit.Detail:
                    string url = ECommerceServer.Contexte.GetProductPage(r.arw_sit_pk, r.art_guid, r.art_pk,
                                                                         r.art_ref,
                                                                         r.Isarw_url_persoNull() ? null : r.arw_url_perso,
                                                                         (int)r.arw_seg_pk_principale);
                    if (PourPageAmp)
                    {
                        url = System.IO.Path.ChangeExtension(url, ".amp");
                    }
                    this.NavigateUrl = url;
                    break;

                case TypeLienProduit.Image:
                    this.NavigateUrl = _GetResourceUrl(r.Isarw_url_img_bigNull() ? null : r.arw_url_img_big);
                    if (this.NavigateUrl.Equals(this.ImageUrl, StringComparison.InvariantCultureIgnoreCase))
                    {
                        if (CacherSiAucunZoom)
                        {
                            this.Visible = false;
                        }
                    }
                    if (!IsZoomable())
                    {
                        break;
                    }
                    this.ToolTip = r.arw_libelle;
                    break;
                }

                this.ToolTip = r.arw_libelle;
                this.Text    = r.arw_libelle;
            }
        }
예제 #8
0
        void IEquihiraBindable.BindTo(object o)
        {
            if (o == null)
            {
                return;
            }
            int sit_pk = ECommerceServer.SiteId;

            ServerConfigSection config = EConfigurationManager.GetConfig(ECommerceServer.CurrentSite);


            if (o is ArticlesDataSourceResult)
            {
                ArticlesDataSourceResult res = o as ArticlesDataSourceResult;
                VueArticlesWebDS.ecommerce_articles_webRow r = res.Article.ecommerce_articles_web[0];
                (this as IEquihiraBindable).BindTo(r);
            }
            else if (o is VueArticlesWebDS.ecommerce_articles_webRow)
            {
                VueArticlesWebDS.ecommerce_articles_webRow r = o as VueArticlesWebDS.ecommerce_articles_webRow;

                if (config.ECommerce.DocumentBase.ProductImages.UseDocumentBase)
                {
                    string code = config.ECommerce.DocumentBase.ProductImages.CodeForTiny;
                    switch (_typeImage)
                    {
                    case TypeProduitImage.Petite:
                        code = config.ECommerce.DocumentBase.ProductImages.CodeForSmall;
                        break;

                    case TypeProduitImage.Intermediaire:
                        code = config.ECommerce.DocumentBase.ProductImages.CodeForIntermediate;
                        break;

                    case TypeProduitImage.Tiny:
                        code = config.ECommerce.DocumentBase.ProductImages.CodeForTiny;
                        break;

                    case TypeProduitImage.Thumb:
                        code = config.ECommerce.DocumentBase.ProductImages.CodeForThumb;
                        break;

                    case TypeProduitImage.Detail:
                        code = config.ECommerce.DocumentBase.ProductImages.CodeForDetails;
                        break;
                    }
                }
                else
                {
                    switch (_typeImage)
                    {
                    case TypeProduitImage.Petite:
                        this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_smallNull() ? null : r.arw_url_img_small);
                        break;

                    case TypeProduitImage.Intermediaire:
                        this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_intermediateNull() ? (r.Isarw_url_img_imagetteNull() ? null : r.arw_url_img_imagette) : r.arw_url_img_intermediate);
                        break;

                    case TypeProduitImage.Tiny:
                        this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_tinyNull() ? null : r.arw_url_img_tiny);
                        break;

                    case TypeProduitImage.Thumb:
                        this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_imagetteNull() ? null : r.arw_url_img_imagette);
                        break;

                    case TypeProduitImage.Detail:
                        this.ImageUrl = ECommerceServer.ResolveResourceUrl(r.Isarw_url_img_bigNull() ? null : r.arw_url_img_big);
                        break;

                    case TypeProduitImage.Aucune:
                        this.ImageUrl = ECommerceServer.ResolveResourceUrl(this.ImageUrl);
                        break;
                    }
                }

                string url = ECommerceServer.Contexte.GetProductPage(r.arw_sit_pk, r.art_guid, r.art_pk,
                                                                     r.art_ref,
                                                                     r.Isarw_url_persoNull()?null:r.arw_url_perso,
                                                                     (int)r.arw_seg_pk_principale);
                url        = System.IO.Path.ChangeExtension(url, ".amp");
                ProductUrl = Page.ResolveUrl(url);

                if (string.IsNullOrEmpty(this.ImageUrl))
                {
                    this.ImageUrl = ECommerceServer.ResolveResourceUrl(ImageUrlIfNone);
                }

                this.ToolTip = r.arw_libelle;
            }
        }