分类目录归档:技术

Rails 遭遇 Error loading 'sqlite3' Active Record adapter

很久没写过 Rails 了,最近也更新了 5.2.2 ,于是决定再看看。

使用 rails new 生成了一个新的项目,却未能成功跑起来。报错 Error loading 'sqlite3' Active Record adapter

搜索后得知,原来是 新版的 Rails 项目中并未为 SQlite 设置版本导致的。

因此,你只需要将 gemfile 中的

gem 'sqlite3'
Code language: JavaScript (javascript)

修改为

gem 'sqlite3', '~> 1.3.6'
Code language: JavaScript (javascript)

重新 bundle install 即可。

WordPress 主题开发时应备的辅助函数

在 WordPress 主题开发时,经常会用到 三目运算符 来判断 Options Framework 的返回值。因此,可以将其封装为一个函数进行调用。


function hf_config_echo($name, $default = '')
{
    $value = of_get_options($name);
    if ($value) {
        echo $value;
    } else {
        echo $default;
    }
}
Code language: PHP (php)

Options Framework 如何将菜单移动到顶级菜单?

打开 inc/includes/class-options-framework-admin.php 文件,然后知道其中的 add_custom_options_page 方法,将其代码替换为如下代码

public function add_custom_options_page()
    {
        $menu = $this->menu_settings();
        switch ($menu['mode']) {
            case 'menu':
                // http://codex.wordpress.org/Function_Reference/add_menu_page
                $this->options_screen = add_menu_page(
                    $menu['page_title'],
                    $menu['menu_title'],
                    $menu['capability'],
                    $menu['menu_slug'],
                    array($this, 'options_page'),
                    $menu['icon_url'],
                    $menu['position']
                );
                break;
            default:
                // http://codex.wordpress.org/Function_Reference/add_submenu_page
                $this->options_screen = add_submenu_page(
                    $menu['parent_slug'],
                    $menu['page_title'],
                    $menu['menu_title'],
                    $menu['capability'],
                    $menu['menu_slug'],
                    array($this, 'options_page'));
                break;
        }
    }
Code language: PHP (php)

添加完成后,在你的主题的 functions.php 文件中添加如下代码:

function harvardchina_options_menu_filter($menu)
{
    $menu['mode'] = 'menu';
    $menu['page_title'] = 'Harvard 主题设置';
    $menu['menu_title'] = 'Harvard 主题设置';
    $menu['menu_slug'] = 'harvardchina-options';
    return $menu;
}
add_filter('optionsframework_menu', 'harvardchina_options_menu_filter');
Code language: PHP (php)

就可以实现将主题配置移动到顶级菜单。

reference:

https://gist.github.com/devinsays/884d6abe92857a329d99

如何自定义 WordPress 后台的 Admin

WordPress 的后台有非常多的东西,其中的很多东西都并非我们想要的,时间长了,看起来特别的头疼,所以,不妨写一些代码,来精简你的后台。

你所需要做的很简单,就是在你的主题的 functions.php 文件中添加如下代码。

function ixiqin_com_remove_menu_item()
{
    // 移除菜单项目的代码
}
add_action('admin_menu', 'ixiqin_com_remove_menu_item');
Code language: JavaScript (javascript)

其中,移除菜单项目的代码主要有以下两个函数

  • remove_menu_page('upload.php') 这个是移除一级菜单的,比如这个移除的是媒体库的菜单项目。
  • remove_submenu_page('options-general.php','options-reading.php')这个是移除设置中,阅读二级菜单的。

这两个函数的参数都是文件路径,这个路径你可以在 URL 栏中找到

dil27

Micro:bit 收信强度测试

本代码用于测试不同信号强度下的发信距离。

7c3v6
radio.onReceivedNumber(function (receivedNumber) {
    basic.showNumber(radio.receivedPacket(RadioPacketProperty.SignalStrength))
})
input.onButtonPressed(Button.A, function () {
    basic.showString("A")
})
input.onButtonPressed(Button.B, function () {
    basic.showString("B")
})
basic.showIcon(IconNames.Yes)
Code language: JavaScript (javascript)

Micro:bit 显示室内温度

Micro:bit 所使用的核心芯片 nrf51822 自带了温度传感器,因此,我们可以使用micro:bit 来显示室内的温度。

实现

实现方法很简单,只需要在 makecode 上加入这样的代码,就可以实现输出温度了。

6zvg1