Jump to content
IPS Community Suite 简体中文

Search the Community

Showing results for tags 'ips community suite'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Public docs
  • Server Softwares
    • IPS
    • WordPress
  • 其它
    • Scratch
    • Python
    • Ubuntu & LinuxMint
    • Softwares
    • WordPress Plugins

Blogs

  • Dev

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 11 results

  1. 本文给出 IPS Community Suite 4.2.6 可用的 Nginx 重写规则。 在 IPS Community Suite 后台,可以直接下载 Apache 的重写规则,但是没有对 Nginx 支持太好,所以,就需要根据自己的情况,写下适用于 Nginx 的重写规则了。 This post will give you a sample about how to config your IPS Community Suite SEO Urls on Nginx . IPS Community Suite Nginx rewrite rules as following: server{ listen 80; #listen end server_name 你的域名; index index.html index.htm index.php; #set $subdomain ''; #root /home/wwwroot/html/$subdomain; #或者直接写绝对路径 root /home/wwwroot/html/你的域名; # 包含其它 Nginx 配置,一般是 fastcgi 相关的配置文件 #include /home/**/other.conf; #rewrite end # Set up rewrite rules. location / { # index index.php; try_files $uri $uri/ /index.php; # 下面的也行 # try_files $uri $uri/ /index.php?$args; } location ~^(/page/).*(.php)$ { try_files $uri $uri/ /index.php; } # Stub Status module location /server_status { # stub_status on; #allow 127.0.0.1; #deny all; } # GZIP static content not processed by IPB. gzip on; gzip_static on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_proxied any; gzip_types text/plain text/css application/json application/x-javascript application/xml application/xml+rss text/javascript application/javascript text/x-js; gzip_buffers 16 8k; gzip_disable "MSIE [1-6].(?!.*SV1)"; # IP.Board PHP/CGI Protection location ~^(/uploads/).*(.php)$ { deny all; } location ~^(/hooks/).*(.php)$ { deny all; } location ~^(/cache/).*(.php)$ { deny all; } location ~^(/screenshots/).*(.php)$ { deny all; } location ~^(/downloads/).*(.php)$ { deny all; } location ~^(/blog/).*(.php)$ { deny all; } location ~^(/public/style_).*(.php)$ { deny all; } # Caching directives for static files. location ~^(/uploads/profile/).*.(jpg|jpeg|gif|png)$ { access_log off; expires 1d; } location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml|htm|txt|swf|cur)$ { access_log off; expires 1w; } #error_page error_page 400 /ErrorPages/400.html; error_page 403 /ErrorPages/403.html; error_page 404 /ErrorPages/404.html; error_page 502 /ErrorPages/502.html; location ~ /ErrorPages/(400|401|403|404|405|502|503)\.html$ { root /home/wwwroot/lnmp02/domain/bbs/web; } location ~ .*\.php$ { # 如果你在Ubuntu 或者 LinuxMint 上安装,可能如此 fastcgi_pass unix:/run/php7.0-fpm.sock; fastcgi_index index.php; include fcgi.conf; fastcgi_param DOCUMENT_ROOT /home/wwwroot/html/你的域名; fastcgi_param SCRIPT_FILENAME /home/wwwroot/html/你的域名$subdomain$fastcgi_script_name; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$ { expires 30d; } location ~ .*\.(js|css)$ { expires 12h; } # 不要日志 access_log off; error_log /dev/null; } 按自己的 Nginx 和网站的路径配置,改写下上面的规则,然后在使用 Nginx 检查重写规则后,重载即可。 you may modify the above rules according your Nginx and the directory of your IPS ,then check rules via Nginx, and reload it. sudo nginx -t sudo nginx reload 下面再提供一个在 Ubuntu 上安装的 IPS 实例的 Nginx 规则: server { # listen 80 default_server; # listen [::]:80 default_server; server_name ips73.com; root /var/www/html/ips73.com; index index.php index.html index.htm index.nginx-debian.html; client_max_body_size 100M; # enforce NO www if ($host ~* ^www\.(.*)){ set $host_without_www $1; rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent; } #########IPS location ~ .*\.php$ { include /etc/nginx/snippets/fastcgi-php.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; include fastcgi_params; fastcgi_param DOCUMENT_ROOT /var/www/html/ips73.com; fastcgi_param SCRIPT_FILENAME /var/www/html/ips73.com$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; client_body_timeout 3000; fastcgi_read_timeout 3000; client_max_body_size 32m; fastcgi_buffers 8 128k; fastcgi_buffer_size 128k; send_timeout 600; keepalive_timeout 600; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; } location ~^(/page/).*(.php)$ { try_files $uri $uri/ /index.php; } location ~^(/uploads/).*(.php)$ { deny all; } location ~^(/hooks/).*(.php)$ { deny all; } location ~^(/cache/).*(.php)$ { deny all; } location ~^(/screenshots/).*(.php)$ { deny all; } location ~^(/downloads/).*(.php)$ { deny all; } location ~^(/blog/).*(.php)$ { deny all; } location ~^(/public/style_).*(.php)$ { deny all; } # Caching directives for static files. location ~^(/uploads/profile/).*.(jpg|jpeg|gif|png)$ { access_log off; expires 1d; } location ~* ^.+\.(jpe?g|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|avi|mp3)$ { expires 1m; access_log off; add_header Cache-Control "public"; } #location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|ttf|woff|woff2)$ { #expires 1m; #access_log off; #add_header Cache-Control "public"; #} #########IPS// # |php location ~ \.(aspx|asp|jsp|cgi)$ { return 410; } # CSS and Javascript location ~* \.(?:css|js)$ { expires 1m; access_log off; add_header Cache-Control "public"; } # unless the request is for a valid file, send to bootstrap if (!-e $request_filename){ rewrite ^(.+)$ /index.php?q=$1 last; } }
  2. 本站免费提供 IPS Community Suite core 简体中文 语言包。 下载 导入 后台->自定义->本地化->语言 将默认的 English(USA)语言包 copy 一份: copy 之后,点击新的语言包右侧的铅笔符号,进行编辑: 重命名为 “Chinese” 或者 “中文”,Locale Code 一栏必须输入 cn ,然后把它作为默认的语种: 导入下载到的语言包: 即可见到效果:
  3. 本文记录如何改进 IPS Community Suite 博客的描述生成方法。 IPS Community Suite 原有的博客描述生成方法 在文件 applications/blog/sources/Blog/Blog.php 中 public function metaDescription() { if( $this->member_id ) { return strip_tags( $this->desc ); } return parent::metaDescription(); } 同样没有换行和过滤空白字符。 改进后的 IPS Community Suite 博客描述的生成方法 public function metaDescription() { if( $this->member_id ) { $desc = str_replace(array("\n",'  ',' ',' '), array('','','',''), strip_tags( $this->desc )); return $desc; } return parent::metaDescription(); } 改进后,会滤除换行和空白字符,对 SEO 有一定的效果。
  4. 本文简单记录下如何修改 IPS Community Suite 中博文的 描述 meta 标签内容生成方法的改进。 IPS Community Suite 原有的生成方法 在文件 system/Content/Item.php 中: public function metaDescription() { $return = NULL; if( isset( $_SESSION['_findComment'] ) ) { $commentId = $_SESSION['_findComment']; unset( $_SESSION['_findComment'] ); $commentClass = static::$commentClass; if( $commentClass !== NULL ) { try { $comment = $commentClass::loadAndCheckPerms( $commentId ); $return = $comment->content(); } catch( \Exception $e ){} } } if ( $return === NULL ) { if ( isset( static::$databaseColumnMap['content'] ) ) { $return = parent::content(); } else { $return = $this->mapped('title'); } } if ( $return ) { $return = preg_replace( '#\n{1,}#', "\n", trim( str_replace( '&nbsp;', ' ', strip_tags( preg_replace('#(<(script|style)\b[^>]*>).*?(</\2>)#is', "$1$3", $return ) ) ) ) ); if ( mb_strlen( $return ) > 160 ) { $return = mb_substr( $return, 0, 157 ) . '...'; } } return $return; } 这个方法是 IPS 用来生成博文的 描述 标签的,但是生成的描述中有换行,这不太好,所以需要改进。 改进后的 IPS Community Suite 博文描述生成方法 public function metaDescription() { //return '假装这是Item的描述 ItemDescription'; $return = NULL; if( isset( $_SESSION['_findComment'] ) ) { $commentId = $_SESSION['_findComment']; unset( $_SESSION['_findComment'] ); $commentClass = static::$commentClass; if( $commentClass !== NULL ) { try { $comment = $commentClass::loadAndCheckPerms( $commentId ); $return = $comment->content(); } catch( \Exception $e ){} } } if ( $return === NULL ) { if ( isset( static::$databaseColumnMap['content'] ) ) { $return = parent::content(); // 获取第一个自然段 $return = substr( $return , 0, strpos( $return , '</p>' ) + 4 ); // 过滤特殊字符 $return = str_replace(array("\n",'&nbsp;&nbsp;','&nbsp;',' '), array('','','',''), strip_tags($return )); } else { $return = $this->mapped('title'); } } if ( $return ) { $return = preg_replace( '#\n{1,}#', "\n", trim( str_replace( '&nbsp;', ' ', strip_tags( preg_replace('#(<(script|style)\b[^>]*>).*?(</\2>)#is', "$1$3", $return ) ) ) ) ); if ( mb_strlen( $return ) > 160 ) { $return = mb_substr( $return, 0, 157 ) . '...'; } } return $return; } 改进之后,博文页面的 meta 标签 description 就不会再有换行了。
  5. ipscn

    WordPress IPS

    是一个 WordPress 插件,用于和 IPS/ IPB 论坛程序互联互通。 需要使用和这个插件同时提供的 IPS 应用 IPS WP Connector , 才能实现下面的特性。 特性 通过 自定义 IPS API 获取指定版块下的若干最新个帖子,支持在 WordPress 实例中,通过 短代码调用和通过小工具调用; [sso]通过自定义 IPS API 和 IPS 实时同步用户; [pages]通过 自定义 IPS API 获取指定IDs的页面内容; [commerce]通过 自定义 IPS API 获取指定商品IDs的商品内容; [commerce]通过 自定义 IPS API 获取指定订单IDs的订单内容; [commerce]在 WordPress 中, 通过 自定义 IPS API 获取指定的商品密钥是否有效; 截图 截图仅展示插件本体和 sso 扩展: 下载
  6. ipscn

    IPS Community Suite 4.2.6

    IPS Community Suite 4.2.6 升级到这个版本了。
  7. ipscn

    IPS 中的用户密码算法

    本帖记录 IPS Community Suite 4.2.x 以及之前版本通用的用户密码算法。 <?php $userPassword = 'ips2ips2'; $members_pass_salt = 'f6PSetImYzzQmefpC6oKxN'; /*require_once __DIR__ . DIRECTORY_SEPARATOR . '../wp-load.php'; */ function legacyEscape($val) { $val = str_replace("&", "&", $val); $val = str_replace("<!--", "<!--", $val); $val = str_replace("-->", "-->", $val); $val = str_ireplace("<script", "<script", $val); $val = str_replace(">", ">", $val); $val = str_replace("<", "<", $val); $val = str_replace('"', """, $val); $val = str_replace("\n", "<br />", $val); $val = str_replace("$", "$", $val); $val = str_replace("!", "!", $val); $val = str_replace("'", "'", $val); $val = str_replace("\\", "\", $val); return $val; } function encryptedPassword($password, $members_pass_salt) { /* New password style introduced in 4.0 using Blowfish */ if (mb_strlen($members_pass_salt) === 22) { return crypt($password, '$2a$13$' . $members_pass_salt); } else { return md5(md5($members_pass_salt) . md5(legacyEscape($password))); } } /* 数据库记录 $2a$13$f6PSetImYzzQmefpC6oKx.Th3VvrER2DzeDicz1CWy/oQ6wDjjbuq 计算结果 $2a$13$f6PSetImYzzQmefpC6oKx.Th3VvrER2DzeDicz1CWy/oQ6wDjjbuq */ $r = encryptedPassword($userPassword, $members_pass_salt); var_dump($r); 整理之后: <?php namespace IPSWP; /** * @Author: suifengtec * @Date: 2017-12-04 00:20:20 * @Last Modified by: suifengtec * @Last Modified time: 2017-12-04 00:30:28 **/ /** * IPB 4.X 以及更老版本的用户密码加密算法 */ class IPSWP_UserPwd { private $user; private $password; public function __construct($user, $password = '') { $this->user = $user; $this->password = $password; } /** * 用户输入的密码是否正确 * @return boolean [description] */ public function isValidPassword() { return $this->getUserPwdHash($this->password) == $this->user->members_pass_hash; } /** * 获取用户输入密码的 hash * @return [type] [description] */ public function getUserPwdHash() { if (mb_strlen($this->user->members_pass_salt) === 22) { return crypt($this->password, '$2a$13$' . $this->user->members_pass_salt); } else { return md5(md5($this->user->members_pass_salt) . md5(self::legacyEscape($this->password))); } } /** * 向后兼容的助手方法 * @param [type] $val [description] * @return [type] [description] */ public static function legacyEscape($val) { $val = str_replace("&", "&", $val); $val = str_replace("<!--", "<!--", $val); $val = str_replace("-->", "-->", $val); $val = str_ireplace("<script", "<script", $val); $val = str_replace(">", ">", $val); $val = str_replace("<", "<", $val); $val = str_replace('"', """, $val); $val = str_replace("\n", "<br />", $val); $val = str_replace("$", "$", $val); $val = str_replace("!", "!", $val); $val = str_replace("'", "'", $val); $val = str_replace("\\", "\", $val); return $val; } } /*模拟用户输入的 plainText 格式的密码*/ $pwd = 'ips2ips2'; /*模拟数据库记录中的一条用户数据的一部分*/ $user = new stdClass; $user->members_pass_salt = 'f6PSetImYzzQmefpC6oKxN'; $user->members_pass_hash = '$2a$13$f6PSetImYzzQmefpC6oKx.Th3VvrER2DzeDicz1CWy/oQ6wDjjbuq'; $a = new IPSWP_UserPwd($user, $pwd); /*用户输入的密码 hash后的字符串*/ $hashedPlainPwd = $a->getUserPwdHash(); /*用户密码是否输入正确*/ $isValidPassword = $a->isValidPassword(); /*调试:输出结果*/ var_dump($hashedPlainPwd); var_dump($isValidPassword);
  8. 1. 启用外部数据库 在系统->登陆处理 页面上,启用外部数据库这个登录选项: 2. 设置外部数据库 编辑外部数据库,输入与该 IPS 实例目录相邻的 WordPress 实例的数据库信息: 密码加密类型这一项,其实无用。 3. 修改 IPS 的文件 由于 WordPress 的用户密码加密类型(WordPress 采用的时 phpAss 这个加密“算法”,因为这种算法已经在多种语言中实现了)不在上面的选择列表中,所以我们需要按照提示: 以修改 IPS 文件的方式来让 WordPress 用户可以登录这个 IPS 实例。 修改方案如下: 修改`/system/Login/External.php`中的: 为 在这个类中添加两个方法: 经过测试, WordPress 的用户已经可以在这个 IPS 实例上进行登录以及登录后的各种操作了。 条件限制: WordPress 和 IPS 安装在同一个服务器的相邻子目录中。 更好的实现 在 WordPress 中添加自定义的鉴权 REST API, 在 IPS 中做个用户登录处理应用,调用那个 REST API,进行鉴权。 更更好的实现 SSO: 通过 REST API,让 IPS 和 WordPress 的用户保持一致,缺点是要使用两个重复很大的用户数据表,优点是用户体验比较好。
  9. ipscn

    IPS

    Version ips-4.3.0-cn-download-url

    75 downloads

    IPS Community Suite 无需key的最优版本。 优化了对中文字体的显示,去除了原有版本的暗链。
  10. ipscn

    IPS 简体中文字体优化

    本文记录如何更改 IPB / IPS 的前后台字体。 常规字体 到后台->自定义->主题,点击当前主题行的编辑: 这样处理后,点击保存按钮, IPS Community Suite 就可以以舒服些的字体显示汉字了: 前台其它地方的字体,更改为 代码字体的更改 这些代码字体 全部改为 效果展示 下载字体 Yahei Consolas Hybrid 字体下载 https://github.com/yakumioto/YaHei-Consolas-Hybrid-1.12 Hack 字体预览 https://www.dafont.com/hack.font Hack 字体下载 链接: https://pan.baidu.com/s/1hstP89m 密码: 6f4b 或者 https://github.com/powerline/fonts/tree/master/Hack
  11. ipscn

    安装 IPS Community Suite

    本贴介绍如何安装 IPS Community Suite。 准备 请先确认您的安装环境符合 IPS Community Suite 的安装需求 : 准备一个可以使用的 MySQL 数据库, 并记录下这个数据库的相关信息(host ,user, password, databaseName 之类)。 下载 声明: IPS Community Suite 是付费软件,不支持商用,本站提供的版本仅供研究。 如提供了以 cn 结尾的版本,请优先下载它: 安装 上传 IPS Community Suite 到想安装它的目录; 在浏览器输入相关的域名,就开始进入安装流程了。 如果安装过程之中遇到报错,请注意当前 URL 中是否有意外的两个斜杠,如果有,改为一个即可。 安装之后,需要进行分享设置,URLs优化,中文搜索支持定制,然后基本就是妥妥的了。
×