magento安全 - 修改后台路径/改变后台地址

为了安全考虑, 相信很多人都会想修改Magento默认的后台地址/admin

下面记录一下如何改变Magento的后台访问路径。

System - Configuration - Advanced - Admin - Use custom admin URL 设为YES

Custom admin URL 填入要改的后台路径,比如newadmin

另外修改:/app/etc/local.xml文件

找到<frontName><![CDATA[admin]]></frontName>,将admin改为newadmin

清空var/cache 和 var/session,OK。

 

出现问题报错的话检查以下:

select * from core_config_data where path='admin/url/custom'; -- should be http://www.yourdomain.com/newadminpath
select * from core_config_data where path='admin/url/use_custom'; -- should be: 0
select * from core_config_data where path='web/secure/base_url'
select * from core_config_data where path='web/unsecure/base_url'; -- should be: http://www.yourdomain.com/

标签: magento, admin, 后台

Magento 多货币设置,Magento显示多货币

本文针对Magento 1.4.0.1,其他版本未测试。

顺便提提Magento后台设置多货币

System - Configuration - Currency Setup
在右边Currency Options里的Allowed currencies勾选,

然后 System - Manage Currency Rates
点击Import自动设置汇率或者自己手动输入,然后保存。

(像Magento安装IPS支付通道就需要先设置人民币CNY的汇率)

如此Magento后台设置多货币的处理就OK了。

<?php if($this->getCurrencyCount()>1): ?>
        <div id="currency_html" style="display:none">
        <?php foreach ($this->getCurrencies() as $_code => $_name): ?>
            <input type="radio" name="currency_radio" id="currency_radio" onclick="changeCurrency('<?php echo $_code ?>')" value="<?php echo $_code ?>"<?php if($_code==$this->getCurrentCurrencyCode()): ?> checked <?php endif; ?>>
                <?php echo $_code ?>
        <?php endforeach; ?>
       </div>
<script type="text/javascript">
//<![CDATA[
function changeCurrency(sObject){
    if(sObject){
        setLocation('<?php echo $this->helper('directory/url')->getSwitchCurrencyUrl() ?>currency/'+sObject);
    }
}
//]]>
document.getElementById('currency_display').innerHTML=document.getElementById('currency_html').innerHTML;
</script>
<?php endif; ?>

Magento前台自定义显示多货币选项

假定用的主题是:app/design/frontend/base/default/
这个,

修改模板文件template/directory/currency.phtml
这个改为以上内容:

然后在头部位置:template/page/html/header.phtml
挑个位置加入以下内容:

<div id="currency_display" ></div>

接着修改布局文件,要加的内容(代号A)都是:

<block type="directory/currency" name="right_currency" before="-" template="directory/currency.phtml"/>

首页显示多货币选项
更改default/layout/cms.xml
,在<cms_page translate="label">这个位置里的<reference name="content">里面加上代号A。

目录页和商品详细页面显示多货币选项
default/layout/catalog.xml
这个文件里的<default><reference name="left">里加入代号A。

后台清空Cache。

重新刷新访问,Magento显示多货币选项如预期的实现了。

有问题留言一起讨论~

emlog完美增加热门日志功能

晚上比较闲,就想来对博客emlog3.4.0 进行热门日志功能的开发。

废话不说,看我的做法。

 

1. 首先就后台博客管理模块下的 Widgets 功能页面添加一个类似已有的随机日志或最新日志的热门日志选择。

方法:在/admin/views/default/widgets.php页面的大概136行添加如下代码


<form action="widgets.php?action=setwg&wg=hot_log" method="post">
    <div class="widget-line" id="hot_log">
        <div class="widget-top">
            <li class="widget-title">热门日志</li>
            <li class="widget-act-add"></li>
            <li class="widget-act-del"></li>
        </div>
        <div class="widget-control">
            <li>标题</li>
            <li><input type="text" name="title" value="<?php echo $customWgTitle['hot_log']; ?>"  /></li>
            <li>首页显示热门日志数</li>
            <li><input maxlength="5" size="10" value="<?php echo $index_hotlognum; ?>" name="index_hotlognum" /> <input type="submit" name="" value="更改" class="submit" /></li>
        </div>
    </div>
    </form>

这样子即在后台管理的widgets设置中有了热门日志的设置功能,当然,这只是空壳。接下来


2.使第一步界面中的设置能生效。

方法:在/admin/widgets.php大概104行添加如下代码


case 'hot_log':
            $index_hotlognum = isset($_POST['index_hotlognum']) ? intval($_POST['index_hotlognum']) : 20;
            $DB->query("update ".DB_PREFIX."options set option_value='$index_hotlognum' where option_name='index_hotlognum'");
            break;

另外还需在数据库中的options表里添加一条记录:index_hotlognum  5    ,初始数字可以先随便设之后后台可再设置。然后再 Widgets管理添加热门日志块到右侧(即设置前台可显示)。


3.如此下来后台设置功能已结束!剩下步骤是使前台可显示,且继续看贱··

方法:在/model/class.blog.php里添加如下函数


    /**
     * 获取指定数统计热门日志
     *
     * @param int $num
     * @return array
     */
    function getHotLog($num)
    {
        $sql = "SELECT gid,title,views FROM ".DB_PREFIX."blog WHERE hide='n' and type='blog' ORDER BY views desc LIMIT 0, $num";
        $res = $this->db->query($sql);
        $logs = array();
        while($row = $this->db->fetch_array($res))
        {
            $row['gid'] = intval($row['gid']);
            $row['title'] = htmlspecialchars($row['title']);
            $row['views'] = intval($row['views']);
            $logs[] = $row;
        }
        return $logs;
    }
 

接着在/content/templates/当前主题/module.php 文件里添加一方法


<?php
//widget:随机日志
function widget_hot_log($title){
    global $index_hotlognum, $emBlog;
    if (!isset($emBlog))
    {
        global $DB;
        require_once(EMLOG_ROOT.'/model/class.blog.php');
        $emBlog = new emBlog($DB);
    }
    $randLogs = $emBlog->getHotLog($index_hotlognum);?>
    <li>
    <h3><?php echo $title; ?></h3>
    <ul id="randlog">
    <?php foreach($randLogs as $value): ?>
    <li><a href="<?php echo BLOG_URL; ?>?post=<?php echo $value['gid']; ?>"><?php echo $value['title']; ?></a><?php echo $value['views']; ?></li>
    <?php endforeach; ?>
    </ul>
    </li>
<?php }?>
 

 

如此下来便可实现emlog显示热门日志的功能!

 

如果你有更好的方法欢迎留言一起沟通哦~~ ^_^

 

magento网站后台无法打开解决办法

一批magento网站从win系统转移到linux系统后,出现网站后台无法登录,提示错误:

Recoverable Error: Argument 1 passed to Mage_Eav_Model_Entity_Abstract::setConnection() must be an instance of Zend_Db_Adapter_Abstract, boolean given, called in /var/www/html/uggbootsky.com/app/code/core/Mage/Sales/Model/Mysql4/Order.php on line 44 and defined in /var/www/html/uggbootsky.com/app/code/core/Mage/Eav/Model/Entity/Abstract.php on line 151


判断错误原因可能是:由于Win系统和Linux系统下字符格式造成的问题,无法获取到订单配置文件,之前都是在Win系统中,直接修改配置,一些 xml 的配置文件。 怀疑这些文件格式不兼容,到Linux下无法读取,所以,无法打开订单表。

 

解决办法

1、建立一个新的网站程序。

2、将旧站的模板,配置,图片等等拷贝到新目录中。(注意要拷贝 .htaccess 文件)。

3、使用旧库,及相同的加密Key。

4、进入后台,重新设置样式。

5、新网站程序能正常进入后台,操作正常,订单,目录,商品资料无丢失。

6、问题解决!

 

Ps, 另外这种解决方案会造成的magento安装的一些新闻插件、支付插件等插件的丢失,需要重新安装。

magento 安装过程无法选择语言和安装完成后不能登录后台的解决

magento安装
过程
中:选择

言时,无法选择
,老是会跳到默认的engilsh

magento安装
成功后:登录后台
用户
名和密码
正确。但就是登录不进去

原因
:产生这个问题
原因
其实很简单: Magento的cookie
域名
控制是很严格的,一般有这种错误
提示都是在本地机器上测试时出现的,因为大家大
习惯
采用http://localhost/....这种链接方式
来访问测试站,但是 magento这里采用的cookie
禁止浏览器
保存没有"."的域名

解决

1.该问地址
中里加入“xxxxxx.com/.cn /.net”等域名
形式
来访问你的站点,这种解决
方案
可以通过修改本地host文件
来实现。修改C:\WINDOWS\system32\drivers\etc里的hosts文件
,将localhost改为具有 . 的名称

2.以IP地址
形式
该问你的前后台
,如:http://127.0.0.1/.....。