我从邮件文件夹中复制order_conf.tpl和order_conf.txt文件并重命名。现在添加覆盖到classes / order / OrderHistory.php
我将函数sendemail()更改为:
import pygame
import random
import time
import subprocess
from pygame.locals import *
time_a = time.time()
slides = []
POS = (0,0)
capslock = False
altcizgi = False
italic = False
bold = False
yazi = ""
character = ""
time_d = 0
sayim = 0
time_b = 0
buyukluk = 30
liste = []
r = ""
rty = ""
time_c = 0
durum = 0
sol_bas = -100
WHITE= (255,255,255)
BLACK = (0,0,0)
GREY = (200,200,200)
ORANGE = (200, 100, 50)
CYAN = (0, 255, 255)
MAGENTA = (255, 0, 255)
TRANS = (1, 1, 1)
firca_ucu = 3
# initializations
pygame.init()
infoObject = pygame.display.Info()
screen = pygame.display.set_mode((infoObject.current_w, infoObject.current_h))
pygame.display.set_caption('Noting')
pygame.display.set_mode((infoObject.current_w, infoObject.current_h), pygame.FULLSCREEN)
background = pygame.Surface(screen.get_size())
background = background.convert()
color = (0, 0, 0)
startPos = (0, 0)
clock = pygame.time.Clock()
background.fill((255, 255, 255))
image = pygame.image.save(background,'image.png')
font = pygame.font.SysFont('arial', 150)
colorName = "Black"
welcomeFont = pygame.font.SysFont('arial', 50)
colorConfigFont = pygame.font.SysFont('arial', 35)
welcomeScreen = True
# mainloop
while 1:
# welcomescreen
while welcomeScreen:
for i in pygame.event.get():
mainScreenPressed = pygame.key.get_pressed()
screen.fill((0,0,0))
screen.blit(welcomeFont.render("Paint Program Keys", True, (0, 255, 0)), (100, 50))
screen.blit(colorConfigFont.render("Left: Decrease Punto", True, (0, 255, 0)), (900, 150))
screen.blit(colorConfigFont.render("Right: Increase Punto", True, (0, 255, 0)), (900, 200))
screen.blit(colorConfigFont.render("Up: Increase Brush Size", True, (0, 255, 0)), (900, 250))
screen.blit(colorConfigFont.render("Down: Decrease Brush Size", True, (0, 255, 0)), (900, 300))
screen.blit(colorConfigFont.render("Space: Draw On/Off", True, (0, 255, 0)), (900, 350))
screen.blit(colorConfigFont.render("Backspace: Backspace", True, (0, 255, 0)), (900, 400))
screen.blit(colorConfigFont.render("Control: Italic", True, (0, 255, 0)), (900, 450))
screen.blit(colorConfigFont.render("F7: ", True, (0, 255, 0)), (900, 500))
screen.blit(colorConfigFont.render("Mouse-Click: Text", True, (0, 255, 0)), (900, 550))
screen.blit(colorConfigFont.render("ESC: Main Menu", True, (0, 255, 0)), (100, 150))
screen.blit(colorConfigFont.render("F1: Draw Square", True, (0, 255, 0)), (100, 200))
screen.blit(colorConfigFont.render("F2: Draw Circle", True, (0, 255, 0)), (100, 250))
screen.blit(colorConfigFont.render("F3: Draw Triangle", True, (0, 255, 0)), (100, 300))
screen.blit(colorConfigFont.render("F4: Import", True, (0, 255, 0)), (100, 350))
screen.blit(colorConfigFont.render("F5: Save", True, (0, 255, 0)), (100, 400))
screen.blit(colorConfigFont.render("F6: Clear", True, (0, 255, 0)), (100, 450))
screen.blit(colorConfigFont.render("F7: Previous Song", True, (0, 255, 0)), (100, 500))
screen.blit(colorConfigFont.render("F8: Stop/Play Song", True, (0, 255, 0)), (100, 550))
screen.blit(colorConfigFont.render("F9: Next Song", True, (0, 255, 0)), (500, 150))
screen.blit(colorConfigFont.render("F10: Mute", True, (0, 255, 0)), (500, 200))
screen.blit(colorConfigFont.render("F11: Decrease Volume", True, (0, 255, 0)), (500, 250))
screen.blit(colorConfigFont.render("F12: Increase Volume", True, (0, 255, 0)), (500, 300))
screen.blit(colorConfigFont.render("Tab: Undo", True, (0, 255, 0)), (500, 350))
screen.blit(colorConfigFont.render("Alt: Underline", True, (0, 255, 0)), (500, 400))
screen.blit(colorConfigFont.render("Enter: Caps-Lock", True, (0, 255, 0)), (500, 450))
screen.blit(colorConfigFont.render("Shift: Draw On/Off", True, (0, 255, 0)), (500, 500))
screen.blit(colorConfigFont.render("CMD: Bold", True, (0, 255, 0)), (500, 550))
screen.blit(welcomeFont.render("Press 'ESC' to continue", True, (0, 255, 0)), (100, 700))
pygame.display.flip()
if mainScreenPressed[K_ESCAPE]:
durum = -1
welcomeScreen = False
time_d = time.time()
class Slider():
def __init__(self, name, val, maxi, mini, pos):
self.val = val # start value
self.maxi = maxi # maximum at slider position right
self.mini = mini # minimum at slider position left
self.xpos = 1300 # x-location on screen
self.ypos = pos
self.surf = pygame.surface.Surface((100, 50))
self.hit = False # the hit attribute indicates slider movement due to mouse interaction
self.txt_surf = font.render(name, 1, BLACK)
self.txt_rect = self.txt_surf.get_rect(center=(50, 15))
# Static graphics - slider background #
self.surf.fill((100, 100, 100))
pygame.draw.rect(self.surf, GREY, [0, 0, 100, 50], 3)
pygame.draw.rect(self.surf, ORANGE, [10, 10, 80, 10], 0)
pygame.draw.rect(self.surf, WHITE, [10, 30, 80, 5], 0)
self.surf.blit(self.txt_surf, self.txt_rect) # this surface never changes
# dynamic graphics - button surface #
self.button_surf = pygame.surface.Surface((20, 20))
self.button_surf.fill(TRANS)
self.button_surf.set_colorkey(TRANS)
pygame.draw.circle(self.button_surf, BLACK, (10, 10), 6, 0)
pygame.draw.circle(self.button_surf, ORANGE, (10, 10), 4, 0)
def draw(self):
""" Combination of static and dynamic graphics in a copy of
the basic slide surface
"""
# static
surf = self.surf.copy()
# dynamic
pos = (10 + int((self.val - self.mini) / (self.maxi - self.mini) * 80), 33)
self.button_rect = self.button_surf.get_rect(center=pos)
surf.blit(self.button_surf, self.button_rect)
self.button_rect.move_ip(self.xpos, self.ypos) # move of button box to correct screen position
# screen
screen.blit(surf, (self.xpos, self.ypos))
def move(self):
"""
The dynamic part; reacts to movement of the slider button.
"""
self.val = (pygame.mouse.get_pos()[0] - self.xpos - 10) / 80 * (self.maxi - self.mini) + self.mini
if self.val < self.mini:
self.val = self.mini
if self.val > self.maxi:
self.val = self.maxi
# paint screen
pressed = pygame.key.get_pressed()
if pressed[K_RMETA] or pressed[K_LMETA] and pressed[K_q]:
screen.fill(BLACK)
rn = time.strftime("%H.%M %d:%m:%Y")
pygame.image.save(background, "/Users/Esat/Desktop/Noting/Saved_Work_at_"+rn+".jpg")
exit()
if pressed[K_F1]:
pass
if pressed[K_F2]:
pass
if pressed[K_ESCAPE]:
if time.time()-time_d>0.5:
welcomeScreen = True
if pressed[K_F4]:
input_screen = True
background = pygame.image.load("/Users/Esat/Desktop/Noting/Imports/"+data+".jpg")
if pressed[K_F5]:
if time.time()-time_c>5:
rn = time.strftime("%H.%M %d:%m:%Y")
pygame.image.save(background, "/Users/Esat/Desktop/Noting/"+rn+".jpg")
background.fill(WHITE)
screen.fill(WHITE)
time_c = time.time()
else:
pass
if pressed[K_F6]:
background.blit(font.render(yazi, True, (color)), (POS))
pygame.image.save(background, 'image.png')
liste = []
yazi = ""
r = ""
background.fill((255,255,255))
if pressed[K_F7]:
pass
if pressed[K_F8]:
pass
if pressed[K_F9]:
pass
if pressed[K_F10]:
pass
if pressed[K_F11]:
pass
if pressed[K_F12]:
pass
if pressed[K_LMETA] or pressed[K_RMETA]:
bold = True
if pressed[K_LALT] or pressed[K_RALT]:
altcizgi = True
if pressed[K_LCTRL] or pressed[K_RCTRL]:
italic = True
if pressed[K_UP]:
if rty == "eraser":
firca_ucu = firca_ucu * 1.04
elif rty != "eraser":
firca_ucu = firca_ucu*1.02
if pressed[K_DOWN]:
firca_ucu = firca_ucu*0.98
if pressed[K_RIGHT]:
buyukluk = buyukluk*1.02
if pressed[K_LEFT]:
buyukluk = buyukluk*0.98
if buyukluk<1:
buyukluk =1
if buyukluk>300:
buyukluk =300
if firca_ucu<1:
firca_ucu =1
if rty != "eraser":
if firca_ucu>30:
firca_ucu =30
if rty == "eraser":
if firca_ucu>250:
firca_ucu =250
#if pressed[K_CAPSLOCK]:
# print(time.time()-time_b)
# if time.time()-time_b>0.3 and time.time()-time_b<9999999:
# if capslock == "off":
# capslock = "on"
# elif capslock == "on":
# capslock = "off"
#time_b = time.time()
` if pressed[K_TAB]:
background = pygame.image.load('image.png')
if pressed[K_SPACE]:
if time.time() - time_a > 0.2:
durum = durum+1
if durum == 1:
pygame.image.save(background, 'image.png')
if durum >1:
durum = 0
time_a = time.time()
#pygame.display.set_mode(WINDOW_SIZE, pygame.FULLSCREEN)
for i in pygame.event.get():
endPos = pygame.mouse.get_pos()
end_x,end_y = pygame.mouse.get_pos()
if i.type == pygame.MOUSEBUTTONDOWN:
background.blit(font.render(yazi, True, (color)), (POS))
liste = []
yazi = ""
r = ""
italic = False
bold = False
altcizgi = False
pos = pygame.mouse.get_pos()
elif i.type == pygame.MOUSEBUTTONUP:
for s in slides:
s.hit = False
if r=="rend":
if i.type == pygame.KEYDOWN:
character = pygame.key.name(i.key)
character = character.lower()
print(character)
if character == "space":
background.blit(font.render(yazi, True, (color)), (POS))
liste = []
yazi = ""
r = ""
character = ""
if character == "return":
character = " "
elif character == "world 0":
character = "ü"
elif character == "world 1":
character = "ğ"
elif character == "world 2":
character = "ı"
elif character == "world 3":
character = "ş"
elif character == "world 4":
character = "ö"
elif character == "world 5":
character = "ç"
print(capslock)
if capslock == True:
character = character.upper()
if capslock == False:
character = character.lower()
if character == "backspace" or character == "BACKSPACE":
liste = liste[:-1]
yazi = ''.join(liste)
else:
if len(character) < 2:
liste.append(character)
yazi = ''.join(liste)
if i.type == pygame.MOUSEMOTION:
endPos = pygame.mouse.get_pos()
if pygame.mouse.get_pressed() == (1, 0, 0):
POS = pygame.mouse.get_pos()
x,y = pygame.mouse.get_pos()
if y>848:
if x<100:
color = (130, 0, 0)
elif 100<x<200:
color = (255, 0, 0)
elif 200<x<300:
color = (255, 193, 0)
elif 300<x<400:
color = (249, 255, 0)
elif 400<x<500:
color = (121, 218, 76)
elif 500<x<600:
color = (0, 187, 81)
elif 600<x<700:
color = (0, 176, 244)
elif 700<x<800:
color = (9, 21, 98)
elif 800<x<900:
color = (125, 0, 161)
elif 900<x<1000:
color = (122, 122, 0)
elif 1000<x<1100:
color = (122, 0, 122)
elif 1100<x<1200:
color = (0, 122, 122)
elif 1200<x<1250:
color = (0, 0, 0)
elif 1250<x<1300:
color = (255,255,255)
elif 1300<x<1400:
sayim = sayim+1
if sayim == 1:
font = pygame.font.SysFont('arial', 20)
pen = Slider("Red", 10, 255, 1, 700)
freq = Slider("Green", 1, 255, 1, 750)
jmp = Slider("Blue", 10, 255, 1, 800)
slides = [pen, freq, jmp]
font = pygame.font.SysFont('arial', round(buyukluk))
if sayim >1:
sayim = 0
color = (pen.val,freq.val,jmp.val)
slides = []
else:
r = "rend"
durum =0
if durum == 1:
#pygame.draw.rect(background, color, (end_x,end_y,round(firca_ucu),round(firca_ucu)))
pygame.draw.line(background, color, startPos, endPos, round(firca_ucu))
if durum >1:
durum = 0
startPos = endPos
screen.blit(background, (0, 0))
pygame.draw.rect(screen, (255, 255, 255), (sol_bas + 100, 850, 100, 50))
if durum == 1:
font = pygame.font.SysFont('arial', 25)
screen.blit(font.render("Size: "+str(round(int(firca_ucu)))+"", True, (0, 0, 0)), (5, 883))
if color == (255,255,255):
rty = "eraser"
screen.blit(font.render("Eraser", True, (0, 0, 0)), (30, 853))
else:
rty = ""
screen.blit(font.render("Pen", True, (0,0,0)), (5, 853))
pygame.draw.rect(screen, (color), (sol_bas+150, 850, 50, 25))
font = pygame.font.SysFont('arial', round(buyukluk))
else:
rty = ""
if r == "rend":
font = pygame.font.SysFont('arial', 25)
screen.blit(font.render("Text", True, (0, 0, 0)), (5, 853))
pygame.draw.rect(screen, (color), (sol_bas + 150, 850, 50, 25))
screen.blit(font.render("Size: " + str(round(int(buyukluk))) + "", True, (0, 0, 0)), (5, 883))
font = pygame.font.SysFont('arial', round(buyukluk))
pygame.draw.rect(screen, (0, 0, 0), (sol_bas + 100, 873, 100, 4))
if rty != "eraser":
pygame.draw.rect(screen, (0, 0, 0), (sol_bas + 148, 850, 4, 25))
pygame.draw.rect(screen, (0, 0, 0), (sol_bas + 100, 873, 100, 4))
pygame.draw.rect(screen, (0, 0, 0), (sol_bas + 100, 873, 100, 4))
pygame.draw.rect(screen, (0, 0, 0), (sol_bas + 195, 850, 10, 50))
pygame.draw.rect(screen, (255, 0, 0), (sol_bas+200, 850, 100, 50))
pygame.draw.rect(screen, (255, 193, 0), (sol_bas+300, 850, 100, 50))
pygame.draw.rect(screen, (249, 255, 0), (sol_bas+400, 850, 100, 50))
pygame.draw.rect(screen, (121, 218, 76), (sol_bas+500, 850, 100, 50))
pygame.draw.rect(screen, (0, 187, 81), (sol_bas+600, 850, 100, 50))
pygame.draw.rect(screen, (0, 176, 244), (sol_bas+700, 850, 100, 50))
pygame.draw.rect(screen, (9, 21, 98), (sol_bas+800, 850, 100, 50))
pygame.draw.rect(screen, (125, 0, 161), (sol_bas+900, 850, 100, 50))
pygame.draw.rect(screen, (122, 122, 0), (sol_bas+1000, 850, 100, 50))
pygame.draw.rect(screen, (122, 0, 122), (sol_bas+1100, 850, 100, 50))
pygame.draw.rect(screen, (0, 122, 122), (sol_bas+1200, 850, 100, 50))
pygame.draw.rect(screen, (0, 0, 0), (sol_bas + 1300, 850, 50, 50))
pygame.draw.rect(screen, (255, 255, 255), (sol_bas + 1350, 850, 50, 50))
pygame.draw.rect(screen, (255,0,0), (1300, 850, 10, 50))
pygame.draw.rect(screen, (255, 122, 0), (1310, 850, 10, 50))
pygame.draw.rect(screen, (255, 255, 0), (1320, 850, 10, 50))
pygame.draw.rect(screen, (0, 255, 0), (1330, 850, 10, 50))
pygame.draw.rect(screen, (0, 255, 255), (1340, 850, 10, 50))
pygame.draw.rect(screen, (0, 122, 255), (1350, 850, 10, 50))
pygame.draw.rect(screen, (0, 0, 255), (1360, 850, 10, 50))
pygame.draw.rect(screen, (122, 0, 255), (1370, 850, 10, 50))
pygame.draw.rect(screen, (255, 0, 255), (1380, 850, 10, 50))
pygame.draw.rect(screen, (255, 0, 122), (1390, 850, 10, 50))
pygame.draw.rect(screen, (0, 0, 0), (0, 848, 1400, 4))
font = pygame.font.SysFont('arial', 100)
screen.blit(font.render("+", True, (0, 0, 0)), (1330, 840))
font = pygame.font.SysFont('arial', round(buyukluk))
if r == "rend":
font = pygame.font.SysFont('arial', round(buyukluk))
if altcizgi == True:
font.set_underline(True)
elif altcizgi == False:
font.set_underline(False)
if bold == True:
font.set_bold(True)
elif bold == False:
font.set_bold(False)
if italic == True:
font.set_italic(True)
elif italic == False:
font.set_italic(False)
screen.blit(font.render(yazi, True, (color)), (POS))
if slides !=[]:
for s in slides:
if s.hit:
s.move()
for s in slides:
s.draw()
if slides != []:
pygame.draw.rect(screen, (pen.val, freq.val, jmp.val), (1300, 850, 100, 50))
pygame.display.flip()
在状态中我创建新的状态并添加选项以将新电子邮件发送给客户,当我按顺序更改状态时,电子邮件将发送给具有数据的客户,但缺少订单中的所有产品详细信息。
我不知道如何纠正我的覆盖文件中的此产品。
答案 0 :(得分:0)
您的上下文后台语言中没有所需的模板。
复制文件:
/mails/en/order_conf_cart_rules.tpl
/mails/en/order_conf_cart_rules.txt
/mails/en/order_conf_product_list.tpl
/mails/en/order_conf_product_list.txt
要:
/mails/YOUR_BACKOFFICE_USER_LANG_ISO_CODE/order_conf_cart_rules.tpl
/mails/YOUR_BACKOFFICE_USER_LANG_ISO_CODE/order_conf_cart_rules.txt
/mails/YOUR_BACKOFFICE_USER_LANG_ISO_CODE/order_conf_product_list.tpl
/mails/YOUR_BACKOFFICE_USER_LANG_ISO_CODE/order_conf_product_list.txt