小编Mat*_*och的帖子

将Magento与简单的静态网站集成

Magento是一个非常强大的电子商务平台.也就是说,它也非常复杂,我想知道是否有一种相对简单的方法可以利用Magento作为我们的mISV网站的后端来完成订单,而无需实际"使用"Magento的框架来构建网站,运行网站,换句话说,我不想使用内置的CMS等,因为我们已经建立了一个静态网站.我只是喜欢我们的立即购买按钮来利用结账的东西,并希望能够使用后端部分来跟踪订单等.我能够通过osCommerce"公平地"完成这个,但是Magento事实证明,因为我现在才开始关注它几天,所以我更加难以理解.

我发现另一个人在Magento维基上提出同样的问题(以及论坛中的其他几个人),并且没有人因某种原因收到回复.我注意到Stack Overflow上可能有Magento的专家,所以我想我会在这里试一试.这是一个人在他们的wiki上提出的问题的一个例子,它捕捉了我想要完成的事情的本质:

嗨,据我所知,我看到的所有购物车/电子商务解决方案都是功能齐全的PHP驱动网站.这意味着用户与之交互的所有页面都是服务器生成的,因此体验与magento框架/工作流程相关联.我想在我现有的网站上整合电子商务/购物车的点点滴滴.实际上,我希望:

1)在产品信息页面上,"立即购买/添加到购物车"按钮添加到购物车

2)在每个页面上,查看购物车/结帐选项

3)在结账页面上,已经有其他内容,在页面中集成了magento"checkout"块(而不是从Magento生成的整个页面).

有没有人用Magento做过这件事?这是一个简单的单一产品网站,因此您可以分享的任何建议都将受到高度赞赏.

shopping-cart magento oscommerce e-commerce

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

JTabbedPane:选项卡左侧的图标

你好,我正在使用灵气的外观,并有一个带有图标和文字的tabbedpane.现在图标出现在文本的右侧,而我希望它在左侧.

我还想在图标和文字之间添加一些间距.

谢谢!

java icons swing jtabbedpane nimbus

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

循环内的变量声明

我在整个编程过程中遇到的一个常见困境是在循环中声明变量.说我必须执行以下操作:

List list=myObject.getList();
Iterator itr=list.iterator();
while (itr.hasNext()){
    BusinessObject myBo=(BusinessObject)itr.next();
    process(myBo);
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,应该myBo在循环外声明还是在循环内声明它不会对内存和性能造成伤害?

java

8
推荐指数
4
解决办法
2547
查看次数

为Arduino创建库

我想为我的Arduino(头文件和类文件)编写一个库,但我不知道这个工作使用什么工具以及如何测试和调试它们.

Arduino IDE只是帮助编写用于直接引导加载的简单程序,而不是完整的项目管理事项(如果我错了,请纠正我并适当地引导相关参考).

请帮忙.

c c++ ide arduino

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

如何使写操作幂等?

我正在阅读一篇关于Twitter最近发布的Gizzard分片框架的文章(http://engineering.twitter.com/2010/04/introducing-gizzard-framework-for.html).它提到所有写操作必须是幂等的,以确保高可靠性.

根据维基百科的说法,"幂等操作是可以多次应用而不改变结果的操作." 但是,恕我直言,在Gizzard案例中,幂等写操作应该是顺序无关紧要的操作.

现在,我的问题是:如何使写入操作具有幂等性?

我唯一可以想象的是每个写入都附加一个版本号.例如,在博客系统中,每个博客必须具有$ blog_id$ content.在应用程序级别,我们总是编写像这样写的博客内容($ blog_id,$ content,$ version).在$版本被确定为在应用程序级别唯一的.所以,如果一个应用程序首次尝试设置一个博客在"Hello world"和第二想的它是"再见",然后是幂等.我们有两个写操作:

write($blog_id, "Hello world", 1);
write($blog_id, "Goodbye", 2);
Run Code Online (Sandbox Code Playgroud)

这两个操作应该改变DB中的两个不同记录.因此,无论执行这两个操作的次数和次序,结果都是相同的.

这只是我的理解.如果我错了,请纠正我.

scalability idempotent

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

如何使用clojure或jython修剪数字的小数?

在clojure或jython:说我有一个数字4.21312312312312我怎么能得到一个只有前2位小数的数字.对于上面的例子,它将返回4.21.谢谢

jython decimal clojure

8
推荐指数
2
解决办法
4161
查看次数

如何在Python中检测ESCape keypress?

我正在命令窗口(Windows 7,Python 3.1)中运行一个进程,我希望用户通过按ESCape键来中止该进程.但是,按下ESCape键似乎没有做任何事情:-(,循环永远不会中断.我也尝试从我的IDE(Wing)中运行脚本,但同样,循环不能被中断.

以下是我的概念验证测试的精简版...

import msvcrt
import time

aborted = False

for time_remaining in range(10,0,-1):
    # First of all, check if ESCape was pressed
    if msvcrt.kbhit() and msvcrt.getch()==chr(27):
        aborted = True
        break

    print(str(time_remaining))       # so I can see loop is working
    time.sleep(1)                    # delay for 1 second
#endfor timing loop

if aborted:
    print("Program was aborted")
else:
    print("Program was not aborted")

time.sleep(5)  # to see result in command window before it disappears!
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我哪里出错了,我将非常感激.

python windows escaping keypress

8
推荐指数
4
解决办法
3万
查看次数

在AVR中断中保留sreg

在AVR微控制器中用于保存状态寄存器sreg的机制是什么? RETI意味着这些位不在堆栈中.通用寄存器之一是sreg还是类似的东西?

assembly avr arduino atmel

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

我可以在不使用new的情况下在C++中实现Factory Method模式吗?

我在嵌入式环境(Arduino/AVR ATMega328)中工作,并希望在C++中实现Factory Method模式.但是,我正在使用的编译器(avr-gcc)不支持该new关键字.有没有办法在不使用的情况下实现这种模式new

c++ embedded avr factory-method avr-gcc

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

使用SeDebugPrivilege将WriteProcessMemory添加到SYSTEM进程.(C,Vista)

我有兴趣在我的Vista机器上将DLL注入到SYSTEM拥有的进程中.我正在使用VirtualAllocEx,WriteProcessMemory和CreateRemoteThread的传统方法.但是,因为这将在SYSTEM进程上运行,所以我在打开目标进程之前在注入进程上启用SeDebugPivilege.


int EnableDebugPriv(LPCTSTR name) {
    HANDLE hToken;
    LUID luid;
    TOKEN_PRIVILEGES tkp;

    if(!OpenProcessToken(GetCurrentProcess(),
                         /*TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY*/
                         TOKEN_ALL_ACCESS,
                         &hToken))
        return 0;

    if(!LookupPrivilegeValue(NULL,name,&luid))
        return 0;

    tkp.PrivilegeCount=1;
    tkp.Privileges[0].Luid=luid;
    tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;

    if(!AdjustTokenPrivileges(hToken,false,&tkp,sizeof(tkp),NULL,NULL))
    {
        printf("!AdjustTokenPrivileges - %d\n",GetLastError());
        return 0;
    }
    if(GetLastError()==ERROR_NOT_ALL_ASSIGNED)
    {
        return 0;
    }

    CloseHandle(hToken);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

SE_DEBUG_NAME常数为名称传递.

启用S​​eDebugPrivilege之后,我将完成打开目标进程,查找LoadLibrary,分配空间,将DLL路径写入内存以及创建线程(检查所有返回值)的过程:


if(NULL==(p=OpenProcess(PROCESS_ALL_ACCESS,FALSE,(DWORD)pid)))
...
if(NULL==(loadLib=(LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), 
                                         "LoadLibraryA")))
...
if(NULL==(dllBuff=(LPVOID)VirtualAllocEx(p,
                                         NULL,
                                         strlen(dllPath)+1,
                                         MEM_RESERVE|MEM_COMMIT,
                                         PAGE_READWRITE)))
...
if(NULL==WriteProcessMemory(p,
                            (LPVOID)dllBuff,
                            dllPath,
                            strlen(dllPath),
                            &written))
...
if(!CreateRemoteThread(p,
                       NULL,
                       NULL,
                       (LPTHREAD_START_ROUTINE)loadLib,
                       (LPVOID)dllBuff,
                       NULL,
                       NULL))
...
Run Code Online (Sandbox Code Playgroud)

dllPath是DLL路径的char*(显然),pid是目标进程的PID.这两个值都通过命令行获取并在使用前进行验证.

我遇到的问题是,在CreateRemoteThread返回8("存储空间不足")之前,没有任何东西会返回错误.但是,WriteProcessMemory不会向进程写入任何字节.在调用之后,写入的变量始终为0.没有写入字节,但函数没有失败.我不确定为什么会这样.我查看了其他权限,比如SeRestorePrivilege,它承诺对所有进程进行写访问,但没有任何效果.

我正在使用管理员权限执行此程序.

注意:只有当我针对更高权限的用户(SYSTEM,LOCAL SERVICE等)运行此程序时,才会发生此WriteProcessMemory和CreateRemoteThread问题.它完全适用于我拥有的程序(相同的权限).

编辑:这是整个来源的链接.http://pastebin.com/m77110d8e除了基本的错误检查之外没有其他的东西,但也许它会有帮助吗?

c++ windows dll winapi windows-vista

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