标签: layered

Magento定制产品系列的分层导航

我一直在为Magento(版本1.8.0.0)开发一个自定义模块,它显示了某个产品的相关产品列表.

为了实现这一点,我通过覆盖Mage_Catalog_Block_Product_List类创建了自己的模块.

基本上这是它的工作原理:

从控制器我捕获产品entity_id,我将产品存储在注册表中,以便我可以在我的自定义写入块中使用它,该块名为list.php

以下是填充产品集合的方法:

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        $prod = Mage::registry('chosenproduct');
        $this->_productCollection = $prod->getRelatedProductCollection()
            ->addAttributeToSelect('required_options')
            ->addAttributeToFilter(array(array('attribute'=>'accessory_manufacturer','neq'=>false)))
            ->addAttributeToSort('position', 'asc')
            ->addStoreFilter()
            ->setPageSize(30)
            ->setCurPage(1);
        ;

        $this->_addProductAttributesAndPrices($this->_productCollection);
        Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($this->_productCollection);
        $this->setProductCollection($this->_productCollection);
    }

    return $this->_productCollection;
}
Run Code Online (Sandbox Code Playgroud)

我还在自定义模块的布局.xml中添加了以下内容,以确保分层导航显示:

<reference name="left">
        <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
    </reference>
Run Code Online (Sandbox Code Playgroud)

分层导航显示,但似乎它将所有产品作为集合而不是我在上面添加的方法中使用的自定义集合.

我也知道我可以使用它来获取目录/图层 $layer = Mage::getSingleton('catalog/layer');

图层类还有一个名为prepareProductCollection和setCollection的方法,但由于某种原因我无法使其工作.

对此有何帮助?

基本上我想为自定义集合中的产品进行分层导航.

谢谢,

navigation collections product magento layered

15
推荐指数
1
解决办法
1万
查看次数

N层与N层架构/设计

N-Tiered和N-Layered架构/设计意味着什么?

N层和N层架构/设计有什么区别吗?

如果是,有什么区别?

layered

13
推荐指数
2
解决办法
2万
查看次数

使用分层窗口创建平滑的窗口边框

我们正在开发一款带有各种圆形边缘的皮肤应用程序.我使用窗口区域来定义非矩形形状,但几乎每个人都对象造成锯齿状混叠,因为像素只能是完全不透明或完全透明.

我已经使用分层窗口提出了一个解决方案,但我们希望确保在各种系统上运行(并希望运行良好),我想看看是否有人有更好的想法或方法优化我正在做的事情.我知道分层窗口需要win2000或更高版本,这很好,因为这已经是其他原因的要求.从一些基本测试看起来它在Vista上看起来不错,但这还不能保证.

这就是我所做的:我有一个窗口,称之为A,带有控件和文本以及包含该窗口的任何内容.我有窗口B作为窗口A的子窗口,除了它具有WS_POPUP样式而不是WS_CHILD,因此它可以将自己定位在A的区域之外并绘制在A的控件之上.窗口B也具有WS_EX_LAYERED样式,并且在初始化时,我使用ULW_ALPHA标志调用UpdateLayeredWindow,使用带有alpha通道的32位位图调用源DC,以使其以每像素alpha绘制.

窗口B的源DC中使用的位图几乎就是窗口边框周围的像素,我希望从窗口的背景平滑地混合到完全透明.我会跳过整个两个窗口的方法,只使用单个分层窗口,除了当你使用UpdateLayeredWindow时,它是从保存在内存中的缓冲区中提取的,代替典型的WM_PAINT消息和所有这些,并试图获取交互式儿童控制(和儿童窗口)能够很好地发挥作用,听起来非常麻烦(甚至可能不适用于所有事情).

因此,它基本上是窗口A,包含所有子控件等等,窗口B直接浮在它上面,绘制一个漂亮的光滑边框.我通过移动窗口B来响应WM_MOVE消息等等,并且我禁用了窗口B,因此它永远不会获得焦点或输入(点击已经通过,因为它的部分是不透明的,例如大多数它的内部部分已被排除在采摘之外).

对于踢球,这里的部分是什么样的,以显示我的意思更好一点.

所以,它有效,但我无法确定它是否真的是最好的方法.我有两个问题:

  • 这听起来是否可以接受,或者它有什么明显的可怕之处?
  • 正如它目前的工作原理,似乎它使用了窗口大小的离屏缓冲区(可以达到1024x768),即使它的极少数像素具有任何非零不透明度数据 - 它是否值得开销以及将它们切割成单独的边框并将它们合成在一起的额外复杂性?

windows winapi alpha layered

9
推荐指数
1
解决办法
3214
查看次数

在ntier应用程序中传递数据

如何将数据传递给n层应用程序中的图层?我已经绘制出3种不同的方法.

A) 通用.net对象通用数据表,Hashtables,通用数据集,字符串,整数等...然后使用数据集来填充发送到UI层的业务对象.

alt text http://img11.imageshack.us/img11/460/generic.png

http://dabbleboard.com/draw?b=eiu165&i=26&c=54eef6f1ac01f03c85919518f4a24e798e57e133

Pro-无需额外的图层 Con-必须使用业务层中的通用数据集和表

B) 使用其他层将引用的实体层.该图层将包含强类型数据集或普通旧C对象.对象主要是容器数据和非常少的逻辑.这些将是发送到UI层的相同对象.

alt text http://img8.imageshack.us/img8/6454/entities.png

http://dabbleboard.com/draw?b=eiu165&i=6&c=d0c2b346894a96b12bd3867f630e474a2af098fa

与在所有层中相同的类工作 CON-添加参考entities.dll到所有层

C) 使用DataAccess Layer中定义的数据传输对象(仅限于conatiner对象).然后使用这些对象来填充发送到UI层的业务对象.

alt text http://img43.imageshack.us/img43/1236/transferp.png

http://dabbleboard.com/draw?b=eiu165&i=27&c=f886efa3f9d5eb4b45ddb02361c79cdcdaec0a9b

业务层不会有泛型类的工作 CON组有两种类型的对象的工作,你就必须水合物的传输对象的业务对象

我们在工作中进行了讨论,并希望了解社区的想法.我还添加了一个指向dabbleboard的链接.请复制和创建而不是编辑.
谢谢

architecture domain-driven-design layered n-tier-architecture

8
推荐指数
1
解决办法
1463
查看次数

如果这是一个分层架构,为什么我们必须在IPv6中更改应用层?

如果TCP/IP是一个合适的分层架构,为什么我们需要更改应用层中的所有应用程序才能将底层协议IP从版本4更改为版本6?

ipv4 ipv6 layered

7
推荐指数
1
解决办法
753
查看次数

SDL 2 中带有不透明元素的完全透明窗口

我正在尝试创建一个本身完全透明的 SDL 窗口,但是当将图像渲染到其上时,图像完全不透明并且图像的 Alpha 通道被保留(因此图像的透明像素保持透明)。因此,结果只是屏幕上的一个图像,周围没有任何容器(想象一下在屏幕上贴一张现实生活中的贴纸)

所以这是简化的代码:

#include <stdio.h>
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_syswm.h>
#include <iostream>
#include <Windows.h>
#include <string>

SDL_Window* window;
SDL_Renderer* renderer;

SDL_Texture* image;
int imageWidth = 0;
int imageHeight = 0;

bool init()
{
    //Initialize SDL
    if (SDL_Init(SDL_INIT_VIDEO) != 0)
    {
        printf("SDL could not initialize! SDL Error: %s\n", SDL_GetError());
        return false;
    }

    //Set texture filtering to linear
    if (!SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "1"))
    {
        printf("Warning: Linear texture filtering not enabled!");
    }

    //Create window
    window = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 500, …
Run Code Online (Sandbox Code Playgroud)

c++ transparency layered sdl-2

6
推荐指数
1
解决办法
562
查看次数

Magento分层导航 - 按计数排序

我想按每个过滤器中的#项对每个分层导航过滤器进行排序.

以下是现在显示的内容 -

  • 书籍 - 1
  • CD的 - 2
  • DVD's - 20

我要展示的内容 -

  • DVD's - 20
  • CD的 - 2
  • 书籍 - 1

我一直在看目录/ layer/filter.phtml,但我无法弄清楚如何对magento集合进行排序.

理想情况下我想要这样的东西:

$ this-> getItems() - > order('Count Desc')

我怎么能做到这一点?

navigation magento layered

5
推荐指数
2
解决办法
3843
查看次数

在 BLL、DAL 或 PL 中,我应该在哪里处理异常?

哪个是处理异常的最佳位置?BLL、DAL 或 PL ?

我应该允许 DAL 和 BLL 中的方法在链上抛出异常并让 PL 处理它们吗?还是我应该在 BLL 处理它们?

例如

如果我的 DAL 中有一个方法发出“ExecuteNonQuery”并更新一些记录,并且由于一个或多个原因,0 行会受到影响。现在,我应该如何让我的 PL 知道是否发生了异常或确实没有与条件匹配的行。我应该在我的 PL 代码中使用“try catch”并通过异常让它知道,还是应该在 DAL 处理异常并返回一些像 (-1) 这样的特殊代码让 PL 区分(异常)和(否)行匹配条件,即受影响的零行)?

.net c# architecture layered

3
推荐指数
1
解决办法
2597
查看次数

应用服务层方法获取视图表单目录数据

我正在尝试使用分层模式和DDD.但我找不到在哪里加载用于在单个模型实体的编辑视图中填充组合框和列表框的目录.我应该在应用程序服务层中创建单个方法,以便在viewmodel包装器中获取单个视图所需的所有列表吗?或者我应该为每个我需要的列表创建一个方法?或者它根本不属于服务层?

service domain-driven-design layered

3
推荐指数
1
解决办法
2084
查看次数

在解决方案资源管理器下的Visual Studio解决方案中创建的文件夹未出现在源代码管理资源管理器中

我将MVC解决方案转换为分层体系结构。为此,我在解决方案资源管理器的解决方案中添加了文件夹。一切正常,我的同事们能够使用最新的解决方案,并且文件夹出现在解决方案资源管理器中。

问题是我无法在TFS中查看文件夹结构(在Source Control Explorer中。)

也许我应该直接在TFS中创建文件夹结构。但是自从创建文件夹以来,我现在已经签入了很多更改,因此我认为此选项将不起作用。

请指教。

c# tfs layered visual-studio

2
推荐指数
1
解决办法
1447
查看次数

REST API中的分层系统约束

我正在尝试更多地了解休息并尝试了解REST架构中分层系统的含义.据我所知,这意味着如果API有数据库,它应该在不同服务器上的不同机器上,api在需要时调用它.与bussines逻辑相同,如果调用应该通过某些逻辑调用传递给其他服务器并在那里执行.如果存在性能问题,这也将有助于解决性能问题.我对吗?请提供任何其他信息

rest web-services layered web server

1
推荐指数
1
解决办法
2610
查看次数

在n层架构中使用带有依赖注入的ApplicationDbContext

我有一个使用Asp.Net MVC Core 2.1构建的3层(Presentation - Business - Data)应用程序

在我的Presentation层中,我有一个ApplicationDbContext类,它实例化并填充测试数据库:

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        SeedData(builder);
    }

    // Database Tables
    public DbSet<Customer> Customers { get; set; }
    public DbSet<Ingredient> Ingredients { get; set; }
    public DbSet<Order> Orders { get; set; }
    public DbSet<OrderDetail> OrderDetails { get; set; }
    public DbSet<Pizza> Pizzas { get; set; }
    public DbSet<PizzaIngredient> PizzaIngredients { get; set; }

    // Fill Database with …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection layered dbcontext asp.net-core

1
推荐指数
1
解决办法
175
查看次数