2014年9月

20121201_161916_734.png

SublimeText也用了一段时间了,用的最爽的大概就是自动提示、各种快捷键了,不愧最风骚的编辑器的称号,哈哈~

Ctrl+L 选择整行(按住-继续选择下行)
Ctrl+KK 从光标处删除至行尾
Ctrl+Shift+K 删除整行
Ctrl+Shift+D 复制光标所在整行,插入在该行之前
Ctrl+J 合并行(已选择需要合并的多行时)
Ctrl+KU 改为大写
Ctrl+KL 改为小写
Ctrl+D 选词 (按住-继续选择下个相同的字符串)
Ctrl+M 光标移动至括号内开始或结束的位置
Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)
Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果)
Ctrl+Shift+/ 注释已选择内容
Ctrl+Z 撤销
Ctrl+Y 恢复撤销
Ctrl+M 光标跳至对应的括号
Alt+. 闭合当前标签
Ctrl+Shift+A 选择光标位置父标签对儿
Ctrl+Shift+[ 折叠代码
Ctrl+Shift+] 展开代码
Ctrl+KT 折叠属性
Ctrl+K0 展开所有
Ctrl+U 软撤销
Ctrl+T 词互换
Tab 缩进 自动完成
Shift+Tab 去除缩进
Ctrl+Shift+↑ 与上行互换
Ctrl+Shift+↓ 与下行互换
Ctrl+K Backspace 从光标处删除至行首
Ctrl+Enter 光标后插入行
Ctrl+Shift+Enter 光标前插入行
Ctrl+F2 设置书签
F2 下一个书签
Shift+F2 上一个书签

Mysql开启远程连接

1、进入mysql,创建一个新用户root,密码为root:

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";

grant select,update,insert,delete on *.* to [email protected] identified by "root";

原先数据表结构

mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-----------+------+-------------------------------------------+

执行上述语句后结果

mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

可以看到在user表中已有刚才创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

(1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2、实现远程连接(授权法)

将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。

update user set host = ’%’ where user = ’root’;

将权限改为ALL PRIVILEGES

mysql> use mysql;
Database changed
mysql> grant all privileges on *.* to root@'%' identified by "root";
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| % | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3、实现远程连接(改表法)

use mysql;

update user set host = '%' where user = 'root';

这样在远端就可以通过root用户访问Mysql.

svn更新是遇到的版本冲突,这是冲突时可供选择的参数说明,记录一下。
(p) postpone - mark the conflict to be resolved later //让文件在更新完成之后保持冲突状态。
(df) diff-full - show all changes made to merged file //使用标准区别格式显示base修订版本和冲突文件本身的区别。
(e) edit - change merged file in an editor //用你喜欢的编辑器打开冲突的文件,编辑器是环境变量EDITOR设置的。
(r) resolved - accept merged version of file //完成文件编辑之后,通知svn你已经解决了文件的冲突,它必须接受当前的内容—从本质上讲就是你已经“解决了”冲突。
(mf) mine-full - accept my version of entire file (ignore their change//丢弃新从服务器接收的变更,并只使用你查看文件的本地修改。
(tf) theirs-full - accept their version of entire file (lose my changes)//丢弃你对查看文件的本地修改,只使用从服务器新接收的变更。
(l) launch - launch external tool to resolve conflict//启动一个外置程序来执行冲突解决,这需要一些预先的准备。
(h) help - show this list //显示所有在冲突解决时可能使用的命令。

public function deleteallAction()
{
    $cartHelper = Mage::helper('checkout/cart');
    $items = $cartHelper->getCart()->getItems();        
    foreach ($items as $item) 
    {
        $itemId = $item->getItemId();
        $cartHelper->getCart()->removeItem($itemId)->save();
    } 
    $this->_redirectReferer(Mage::getUrl('*/*'));
}
$cartHelper = Mage::helper('checkout/cart');
$items = $cartHelper->getCart()->getItems();
foreach ($items as $item) {
    if ($item->getProduct()->getId() == $productId) {
        $itemId = $item->getItemId();
        $cartHelper->getCart()->removeItem($itemId)->save();
        break;
    }
}

今天安装一个模版,装上之后更新索引,出现“Invalid backend model specified: catalog/product_attribute_backend_startdate_specialprice”的错误,看字面意思是引用了无效的后端模块,查找这个模块,确实没有。网上搜了一圈,找到篇文章,说的大体是这意思,附上文章:

当你开始用Magento1.5,你就不能指望Magento能让你不头疼的去工作,今天就出事了。

我们开始处理一个网站从来没有遇到过的可能会毁掉整个网站的问题。这是给所谓的错误“Invalid backend model specified: catalog/attribute_backend_customlayoutupdate
这是问题的解决办法,
1.转到你的phpmyadmin,比如你的数据库名是XXX。
2.运行下面的语句
SELECT *
FROM `qubesys`.`eav_attribute`
WHERE (
`attribute_id` LIKE '%stomlayoutupdate%'
OR `entity_type_id` LIKE '%stomlayoutupdate%'
OR `attribute_code` LIKE '%stomlayoutupdate%'
OR `attribute_model` LIKE '%stomlayoutupdate%'
OR `backend_model` LIKE '%stomlayoutupdate%'
OR `backend_type` LIKE '%stomlayoutupdate%'
OR `backend_table` LIKE '%stomlayoutupdate%'
OR `frontend_model` LIKE '%stomlayoutupdate%'
OR `frontend_input` LIKE '%stomlayoutupdate%'
OR `frontend_label` LIKE '%stomlayoutupdate%'
OR `frontend_class` LIKE '%stomlayoutupdate%'
OR `source_model` LIKE '%stomlayoutupdate%'
OR `is_required` LIKE '%stomlayoutupdate%'
OR `is_user_defined` LIKE '%stomlayoutupdate%'
OR `default_value` LIKE '%stomlayoutupdate%'
OR `is_unique` LIKE '%stomlayoutupdate%'
OR `note` LIKE '%stomlayoutupdate%'
)

3.当你运行后,数据库会显示一些记录,选中,并删除

4.删除后,刷新一下网站前端,你的网站又回来了。

(上面是文章的原文,=_=!当年不好好学习,英语还是初中水平,大家凑合着看看吧。)

最关键的还是下面的一些回复,下面很多人问跟我的一样的问题,有个回复帮我解决了问题:大体意思是用上面的方法把记录找出来,select关键字是“special_price”,在记录里把“catalog/product_attribute_backend_startdate_specialprice”里的specialprice删掉(实际代码中确实也没有这个模块),之后刷新页面,问题解决了。

附上原来的地址,我描述不清楚的,请移步原文:http://www.learnmagento.org/magento-bug-fixes/invalid-backend-model-specified/