Emlog Pro 去除商店限制/未注册提示

emlog是完全开源的软件,但编写,支持和分发仍然需要花费很多时间和费用。投我以桃,报之以李,作为付费贡献者你将获得一个pro版本的注册码,用于解锁pro的全部功能,你的支持也将帮助emlog变的更好。

【上面是作者原话,虽然我并未使用 Emlog,如果正式使用推荐捐赠获得注册码注册,仅测试可用下方办法去除】

去除商店验证位置: /include/lib/register.php

<?php
/**
 * register check
 * @package EMLOG (www.emlog.net)
 */

class Register {

	/**
	 * Check user is registered on the local side
	 */
	public static function isRegLocal() {
		$CACHE = Cache::getInstance();
		$options_cache = $CACHE->readCache('options');
		$emkey = $options_cache['emkey'] ?? '';
		//这里注释掉

		/*if (empty($emkey)) {
			return false;
		}*/
		return true;
	}

	/**
	 * Check user is registered on the server side
	 */
	public static function isRegServer() {
		//这里注释掉
		/*$CACHE = Cache::getInstance();
		$options_cache = $CACHE->readCache('options');
		$emkey = $options_cache['emkey'] ?? '';
		return self::checkEmKey($emkey);*/
		return true;
	}

	/**
	 * check emkey
	 */
	public static function checkEmKey($emkey) {
		//这里注释掉
		/*if (empty($emkey)) {
			return false;
		}

		$emcurl = new EmCurl();
		$emcurl->setPost(['emkey' => $emkey]);
		$emcurl->request(OFFICIAL_SERVICE_HOST . 'proauth/register');
		if ($emcurl->getHttpStatus() !== 200) {
			return false;
		}
		$response = $emcurl->getRespone();
		$response = json_decode($response, 1);
		if ($response['code'] !== 200) {
			$CACHE = Cache::getInstance();
			Option::updateOption('emkey', '');
			$CACHE->updateCache('options');
			return false;
		}*/

		return true;
	}

}

去除未注册提示位置:/include/lib/option.php

<?php
/**
 * 配置项
 * @package EMLOG (www.emlog.net)
 */

class Option {

	const EMLOG_VERSION = 'pro 体验版';               //版本编号
	const EMLOG_VERSION_TIMESTAMP = 9999999999;      //版本时间戳
	const ICON_MAX_W = 160;                          //头像缩略图最大宽
	const ICON_MAX_H = 160;                          //头像缩略图最大高
	const UPLOADFILE_PATH = '../content/uploadfile/';//上传路径

	static function get($option) {
		$CACHE = Cache::getInstance();
		$options_cache = $CACHE->readCache('options');
		if (isset($options_cache[$option])) {
			switch ($option) {
				case 'active_plugins':
				case 'navibar':
				case 'widget_title':
				case 'custom_widget':
				case 'widgets1':
				case 'custom_topimgs':
					if (!empty($options_cache[$option])) {
						return @unserialize($options_cache[$option]);
					} else {
						return array();
					}
					break;
				case 'blogurl':
					if ($options_cache['detect_url'] == 'y') {
						return realUrl();
					} else {
						return $options_cache['blogurl'];
					}
					break;
				default:
					return $options_cache[$option];
					break;
			}
		}
	}

	static function getAll() {
		$CACHE = Cache::getInstance();
		$options_cache = $CACHE->readCache('options');
		$options_cache['site_title'] = $options_cache['site_title'] ?: $options_cache['blogname'];
		$options_cache['site_description'] = $options_cache['site_description'] ?: $options_cache['bloginfo'];
		//这里注释掉
		/*if (empty($options_cache['emkey'])) {
			$options_cache['footer_info'] .= ' &#x672A;&#x6CE8;&#x518C;&#x7684;PRO&#x7248;&#x672C;';
			$options_cache['site_title'] = '&#x672A;&#x6CE8;&#x518C;&#x7684;PRO&#x7248;&#x672C;' . $options_cache['site_title'];
		}
		return $options_cache;*/
	}

	static function getRoutingTable() {
		$routingtable = array(
			array(
				'model'  => 'calendar',
				'method' => 'generate',
				'reg_0'  => '|^.*/\?action=cal|',
			),
			array(
				'model'  => 'Log_Controller',
				'method' => 'displayContent',
				'reg_0'  => '|^.*/\?(post)=(\d+)(&(comment-page)=(\d+))?([\?&].*)?$|',
				'reg_1'  => '|^.*/(post)-(\d+)\.html(/(comment-page)-(\d+))?/?([\?&].*)?$|',
				'reg_2'  => '|^.*/(post)/(\d+)(/(comment-page)-(\d+))?/?$|',
				'reg_3'  => '|^/([^\./\?=]+)(\.html)?(/(comment-page)-(\d+))?/?([\?&].*)?$|',
			),
			array(
				'model'  => 'Record_Controller',
				'method' => 'display',
				'reg_0'  => '|^.*/\?(record)=(\d{6,8})(&(page)=(\d+))?([\?&].*)?$|',
				'reg'    => '|^.*/(record)/(\d{6,8})/?((page)/(\d+))?/?([\?&].*)?$|',
			),
			array(
				'model'  => 'Sort_Controller',
				'method' => 'display',
				'reg_0'  => '|^.*/\?(sort)=(\d+)(&(page)=(\d+))?([\?&].*)?$|',
				'reg'    => '|^.*/(sort)/([^\./\?=]+)/?((page)/(\d+))?/?([\?&].*)?$|',
			),
			array(
				'model'  => 'Tag_Controller',
				'method' => 'display',
				'reg_0'  => '|^.*/\?(tag)=([^&]+)(&(page)=(\d+))?([\?&].*)?$|',
				'reg'    => '|^.*/(tag)/([^/?]+)/?((page)/(\d+))?/?([\?&].*)?$|',
			),
			array(
				'model'  => 'Author_Controller',
				'method' => 'display',
				'reg_0'  => '|^.*/\?(author)=(\d+)(&(page)=(\d+))?([\?&].*)?$|',
				'reg'    => '|^.*/(author)/(\d+)/?((page)/(\d+))?/?([\?&].*)?$|',
			),
			array(
				'model'  => 'Log_Controller',
				'method' => 'display',
				'reg_0'  => '|^.*/\?(page)=(\d+)([\?&].*)?$|',
				'reg'    => '|^.*/(page)/(\d+)/?([\?&].*)?$|',
			),
			array(
				'model'  => 'Search_Controller',
				'method' => 'display',
				'reg_0'  => '|^.*/\?(keyword)=([^/&]+)(&(page)=(\d+))?([\?&].*)?$|',
			),
			array(
				'model'  => 'Comment_Controller',
				'method' => 'addComment',
				'reg_0'  => '|^.*/\?(action)=(addcom)([\?&].*)?$|',
			),
			array(
				'model'  => 'Plugin_Controller',
				'method' => 'loadPluginShow',
				'reg_0'  => '|^.*/\?(plugin)=([\w\-]+).*([\?&].*)?$|',
			),
			array(
				'model'  => 'Log_Controller',
				'method' => 'displayContent',
				'reg_0'  => '|^.*?/([^/\.=\?]+)(\.html)?(/(comment-page)-(\d+))?/?([\?&].*)?$|',
			),
			array(
				'model'  => 'Log_Controller',
				'method' => 'display',
				'reg_0'  => '|^/?([\?&].*)?$|',
			),
		);
		return $routingtable;
	}

	/**
	 * 获取允许上传的文件类型
	 */
	static function getAttType() {
		return explode(',', self::get('att_type'));
	}

	/**
	 * 获取上传最大限制,单位字节
	 */
	static function getAttMaxSize() {
		return self::get('att_maxsize') * 1024;
	}

	/**
	 * 获取widget组件标题
	 */
	static function getWidgetTitle() {
		return [
			'blogger'     => '个人资料',
			'calendar'    => '日历',
			'tag'         => '标签',
			'sort'        => '分类',
			'archive'     => '存档',
			'newcomm'     => '最新评论',
			'newlog'      => '最新文章',
			'hotlog'      => '热门文章',
			'link'        => '链接',
			'search'      => '搜索',
			'custom_text' => '自定义组件'
		];
	}

	/**
	 * 获取初始安装时的widget列表
	 */
	static function getDefWidget() {
		return ['blogger', 'newcomm', 'link', 'search'];
	}

	/**
	 * 获取初始安装时的插件
	 */
	static function getDefPlugin() {
		return ['tips/tips.php'];
	}

	/**
	 * 更新配置选项
	 * @param $name
	 * @param $value
	 * @param $isSyntax 更新值是否为一个表达式
	 */
	static function updateOption($name, $value, $isSyntax = false) {
		$DB = Database::getInstance();
		$value = $isSyntax ? $value : "'$value'";
		$sql = 'INSERT INTO ' . DB_PREFIX . "options (option_name, option_value) values ('$name', $value) ON DUPLICATE KEY UPDATE option_value=$value, option_name='$name'";
		$DB->query($sql);
	}
}

去除重定向位置:/admin/globals.php

<?php
/**
 * 后台全局项加载
 * @package EMLOG (www.emlog.net)
 */

/**
 * @var string $action
 * @var object $CACHE
 */

require_once '../init.php';

$sta_cache = $CACHE->readCache('sta');
$user_cache = $CACHE->readCache('user');
$action = isset($_GET['action']) ? addslashes($_GET['action']) : '';

loginAuth::checkLogin();

User::checkRolePermission();

//这里注释掉
/*if (!Register::isRegLocal() && mt_rand(1, 15) === 10) {
	emDirect("auth.php");
}*/

<<:  宝塔面板操作日志定时清理

>>:  Windows10/11 自动调整深浅色软件 Auto Dark Mode

Day 01 - 参赛初衷

第一次参加铁人赛,第一天就来纪录一下参赛初衷吧。 身为一个非本科毕业,转职踏入职场才两个多月的菜鸟网...

Day 28 : 案例分享(8.2) 讯息、邮件与线上会议 - 线上会议 odoo15 新功能

功能说明 odoo在其运用中,讯息及讨论,一直是个标准的内附功能 在各单据中都可直接发送讯息给相关内...

【把玩Azure DevOps】Day13 Pipeline与Artifacts应用:Build nuget package上传到Private nuget

前一篇内容设定了C#专案里的Generate NuGet package on build,让专案编...

【在厨房想30天的演算法】Day 21 演算法 : 最短路径 Shortest Path Dijkstra 演算法

Aloha!嗨~我是少女人妻 Uerica ! 最近因为常常查演算法跟资料结构的文章,文章推荐跟...

大共享时代系列_020_共同工作空间(Coworking Space)

透过开放式的工作空间,让我们发现有更多的可能性~~~ 在哪上班? 当你问朋友:嘿,你现在在哪上班? ...