pickles2/px2-sitemapexcel

为Pickles 2添加了以图形化Excel格式(xlsx)编辑网站地图的功能。

2.3.3 2024-09-10 04:41 UTC

README

pickles2/px2-sitemapexcel 是一个插件,可以将Pickles 2的网站地图编辑为Excel格式(*.xlsx)。

原本的Pickles 2网站地图是使用CSV格式编写的。CSV是最简单、最基本的数据格式之一,计算机处理起来方便,但对于人来说编辑起来不太方便。通过安装此插件,可以更直观地以图形化Excel格式(*.xlsx)进行编辑。

  • 可以直接读取Excel格式的网站地图文件。
    • 更新*.xlsx后,在下次访问时将自动读取,并覆盖*.csv的内容。
    • 如果更新了*.csv,则反过来会覆盖*.xlsx。以时间戳较新的一方为准,较旧的一方被覆盖。
    • 此行为可以通过master_format选项和files_master_format选项进行更改。
  • 可以以可视化的层次结构表示页面的层次结构。
  • 可以使用Excel的彩色单元格或文本装饰等功能来编排美丽的表格。
  • 可以在单元格值中使用Excel的公式。
  • 在*.xlsx的A1单元格中,有网站地图的设置。
    • 设置示例:row_definition=8&row_data_start=9&skip_empty_col=20&version=2.0.5
    • row_definition:定义行号
    • row_data_start:数据行开始行号
    • skip_empty_col:如果定义行有空的列,则读取其后的列数
    • version:生成此*.xlsx文件的pickles2/px2-sitemapexcel的版本号
  • 如果在A列中找到字符串EndOfData,则不会扫描该行以下的内容。可以自由使用,如添加注释栏或页面计数器。
  • 将扩展列**delete_flg设置为1,则不会在CSV中输出。
  • 使用第一张工作表。不读取第二张以上的工作表。

在操作Excel文件时,使用phpoffice/phpexcel

※从pickles-sitemap-excel-2更名至px2-sitemapexcel。

导入步骤 - 设置

1. 在composer.json中添加pickles2/px2-sitemapexcel

在"require"项中添加"pickles2/px2-sitemapexcel"。

$ composer require pickles2/px2-sitemapexcel;

2. 在config.php中添加功能

编辑设置文件config.php(通常是./px-files/config.php)。在before_sitemap的某处(例如最后)添加tomk79\pickles2\sitemap_excel\pickles_sitemap_excel::exec

<?php
	/* 中略 */

	// funcs: Before sitemap
	$conf->funcs->before_sitemap = [
		 // PX=config
		'picklesFramework2\commands\config::register' ,

		 // PX=phpinfo
		'picklesFramework2\commands\phpinfo::register' ,

		// PX=clearcache
		'picklesFramework2\commands\clearcache::register' ,

		// sitemapExcel
		'tomk79\pickles2\sitemap_excel\pickles_sitemap_excel::exec'
	];

如果使用JSON格式编辑Pickles 2的设置,请在config.json的相应位置添加。

设置网站地图目录的权限

在某些情况下,macOS或Linux系统可能需要此操作。

$ cd {$documentRoot}
$ chmod -R 777 ./px-files/sitemaps

在网站地图目录中放置sitemap.xlsx

请以此存储库中包含的sitemap.xlsx为样本创建Excel文件。

编辑的文件应放在您的Pickles 2网站地图目录中(通常是./px-files/sitemaps/)。下次通过浏览器访问时,将自动更新同名CSV文件(如果为sitemap.xlsx,则为sitemap.csv)。之后,每当Excel的时间戳更新时,CSV文件也会自动更新。

相反,如果CSV文件比XLSX文件新,则XLSX文件将根据CSV文件的内容进行更新。

选项 - 选项

<?php
	// funcs: Before sitemap
	$conf->funcs->before_sitemap = [
		// sitemapExcel
		'tomk79\pickles2\sitemap_excel\pickles_sitemap_excel::exec('.json_encode(array(
			// `master_format`
			// マスターにするファイルフォーマットを指定します。
			//   - `timestamp` = タイムスタンプが新しい方をマスターにする(デフォルト)
			//   - `xlsx` = XLSXをマスターにする
			//   - `csv` = CSVをマスターにする
			//   - `pass` = 変換しない
			// のいずれかを指定します。
			'master_format'=>'timestamp',

			// `files_master_format`
			// サイトマップファイル名ごとにマスターにするファイルフォーマットを指定します。
			// ここに設定されていないファイルは、 `master_format` の設定に従います。
			'files_master_format'=>array(
				'timestamp_sitemap'=>'timestamp',
				'csv_master_sitemap'=>'csv',
				'xlsx_master_sitemap'=>'xlsx',
				'no_convert'=>'pass',
			),

			// `files_master_format_blogs`
			// ブログファイル名ごとにマスターにするファイルフォーマットを指定します。
			// ここに設定されていないファイルは、 `master_format` の設定に従います。
			'files_master_format_blogs'=>array(
				'timestamp_sitemap'=>'timestamp',
				'csv_master_sitemap'=>'csv',
				'xlsx_master_sitemap'=>'xlsx',
				'no_convert'=>'pass',
			),
		)).')'
	];

更新日志 - 变更日志

pickles2/px2-sitemapexcel v2.3.3 (2024年9月10日)

  • 更新了依赖的包。

pickles2/px2-sitemapexcel v2.3.2 (2024年2月18日)

  • 同包含的插件现在可以使用更直接的表达方式进行设置。

pickles2/px2-sitemapexcel v2.3.1 (2023年11月13日)

  • 对性能进行了改进。

pickles2/px2-sitemapexcel v2.3.0 (2023年4月22日)

  • 支持博客地图的转换。
  • 添加了选项files_master_format_blogs
  • 修复了生成xlsx文件时单元格中不显示边框的问题。
  • xlsx2csv现在不再输出**delete_flg列。
  • 其他内部代码修正。

pickles2/px2-sitemapexcel v2.2.2 (2023年3月11日)

  • 对内部代码进行了微小修正。

pickles2/px2-sitemapexcel v2.2.1 (2023年2月11日)

  • 对内部代码进行了微小修正。

pickles2/px2-sitemapexcel v2.2.0 (2022年1月8日)

  • 将支持的PHP版本更改为>=7.3.0
  • 支持PHP 8.1。

pickles2/px2-sitemapexcel v2.1.0 (2020年6月21日)

  • 将Excel文件解析库从PHPExcel迁移到PhpSpreadsheet。
  • 根据PhpSpreadsheet更新了系统要求。PHP 7.1.x以下不再适用,并添加了一些PHP扩展作为要求。

pickles2/px2-sitemapexcel v2.0.12 (2020年6月21日)

  • 在PHP 7.4系列中,已将PHPExcel的Warning隐藏。

pickles2/px2-sitemapexcel v2.0.11 (2019年5月21日)

  • 当单元格格式为标准型和字符串型以外的类型时,将删除前后空白字符。

pickles2/px2-sitemapexcel v2.0.10 (2019年4月19日)

  • 在将CSV转换为XLSX时,只有在确认需要更新后才进行锁定。
  • 在将CSV转换为XLSX时,可以处理data架构。
  • 在将CSV转换为XLSX时,如果网站地图树不正常,则在各个列表的末尾添加。

pickles2/px2-sitemapexcel v2.0.9 (2019年1月11日)

  • 改善了生成lock文件的处理。
  • 可以读取xlsm扩展名的文件。

pickles2/px2-sitemapexcel v2.0.8 (2017年9月14日)

  • 在将xlsx转换为csv时,已修正消耗内存量的问题。
  • 已修复当值位于标题列的右侧列时,将其解释为别名的不当问题。

pickles2/px2-sitemapexcel v2.0.7 (2017年5月29日)

  • 在CSV的标准规范中添加了proc_type
  • 添加了插件选项 master_formatfiles_master_format
  • 更改了从xlsx转换为csv时自动生成的页面ID的命名规则。
  • 当xlsx文件中有logical_path列时,现在优先应用此值。

pickles2/px2-sitemapexcel v2.0.6 (2016年10月20日)

  • 在转换网站地图格式时,开始锁定进程。

pickles2/px2-sitemapexcel v2.0.5 (2016年8月24日)

  • 当单元格设置了日期、百分比等特殊单元格格式时,尽可能地用格式化后的值替换。
  • 修复了当网站地图CSV中包含http://〜〜//〜〜时,无法正常转换为xlsx的问题。
  • 修复了当网站地图XLSX中包含http://〜〜///〜〜/时,在转换为CSV时自动添加index.html的问题。
  • 修复了在检测到从网站地图注册ID错误时异常退出的不稳定性。

pickles2/px2-sitemapexcel v2.0.4 (2016年7月27日)

  • 开始跳过LibreOffice格式的时间文件。
  • 对应role列(角色)。

pickles2/px2-sitemapexcel v2.0.3 (2016年2月9日)

  • 当设置在简化的扉页表达式中category_top_flg时,现在只设置在最顶层的别名上,删除下层的标志。

tomk79/px2-sitemapexcel v2.0.2 (2015年8月7日)

  • 当同时发现path和title列都为空行时,现在不会终止,而是跳过并查找下一行。
  • 修复了在导出时,定义在sitemap.csv中的自定义列被丢弃的问题。

tomk79/pickles-sitemap-excel-2 v2.0.1 (2015年3月19日)

  • 当未设置时区时,控制不输出错误。

tomk79/pickles-sitemap-excel-2 v2.0.0 (2014年12月24日)

  • 首次发布。

许可证 - License

MIT许可证

作者 - Author

开发者信息 - for Developer

测试 - Test

$ php ./vendor/phpunit/phpunit/phpunit