Agent Skills › Dolibarr/dolibarr › skill-doli-website-edit

skill-doli-website-edit

GitHub

处理Dolibarr网站编辑指令,通过SQL查询和更新数据库中的页面内容,并调用内部函数重新生成对应的.tpl.php文件,确保网站内容变更生效。

.agents/skills/skill-doli-website-edit/SKILL.md Dolibarr/dolibarr

Trigger Scenarios

用户要求修改Dolibarr网站的页面内容 用户尝试更改网站模板或特定页面的HTML结构

Install

npx skills add Dolibarr/dolibarr --skill skill-doli-website-edit -g -y
More Options

Non-standard path

npx skills add https://github.com/Dolibarr/dolibarr/tree/develop/.agents/skills/skill-doli-website-edit -g -y

Use without installing

npx skills use Dolibarr/dolibarr@skill-doli-website-edit

指定 Agent (Claude Code)

npx skills add Dolibarr/dolibarr --skill skill-doli-website-edit -a claude-code -g -y

安装 repo 全部 skill

npx skills add Dolibarr/dolibarr --all -g -y

预览 repo 内 skill

npx skills add Dolibarr/dolibarr --list

SKILL.md

Frontmatter
{
    "name": "skill-doli-website-edit",
    "license": "MIT",
    "description": "Handles instructions to edit a Dolibarr website loaded into the database. Use when the user tries to modify a website, a website template or the content of a website page.",
    "user-invocable": true
}

Skill: Handle Dolibarr website edit

A Dolibarr website (module Website) is loaded into the database. It is NOT a set of static files: the source of truth is the database, and the files under documents/website/ are only generated artifacts.

Where the data lives

  • llx_website: the websites. Relevant columns: rowid, ref (site name, used as directory name), lang, fk_default_home, otherjs, othercss.
  • llx_website_page: the pages of each website. Relevant columns: rowid, fk_website, pageurl, title, lang, type_container, content (the HTML of the page), htmlheader (the <head> part).

To find the site and the page to edit:

SELECT rowid, ref FROM llx_website WHERE ref = 'mywebsite';
SELECT rowid, pageurl, title FROM llx_website_page WHERE fk_website = <siteid>;

Editing a page

Storage of page content

  1. Identify the website and the page (see queries above).
  2. To change the content of a page, edit the HTML stored in the content column of llx_website_page:
UPDATE llx_website_page SET content = '...new html...' WHERE rowid = <pageid>;
  1. The content is the HTML of the page body. Keep the existing HTML structure (containers, CSS classes) — do not redesign or reformat the whole page, apply the minimal change asked for.

Page format

  • The type_container column can be page (common page), banner if this is just a part of a page included into a main page, blogpost if the page is a news article (fulle page or included into another page), or library if page contains only PHP functions, or setup for a page never shown to visitor but used to offer a form to setup the website, or other (usually a part of page included into a main page type page)
  • The content of each page must be organized using <section conteneditable="true" id="a unique id"> tags to separate each independant block of content.

Regenerating the .tpl.php file

The content column alone is not rendered directly. Each page has a generated file:

documents/website/<site-ref>/page<pageid>.tpl.php
  • <site-ref> is the ref of the website (directory documents/website/<ref>/).
  • documents is the Dolibarr documents root ($dolibarr_main_data_root from htdocs/conf/conf.php). With multi-entity enabled, the path is documents/<entity>/website/<site-ref>/.
  • After any change to the content column, this file MUST be regenerated, otherwise the change is not visible on the rendered site.

Important: the .tpl.php file is NOT a raw copy of the content column. It is built by dolSavePageContent() (in htdocs/core/lib/website2.lib.php), which wraps the page content with a PHP header, the page htmlheader, the website CSS and other PHP code. So never write the content value raw into the .tpl.php file.

Two ways to regenerate the file:

  1. Preferred, through Dolibarr code: call dolSavePageContent($filetpl, $website, $objectpage, 1) with the website object and the page object loaded from database, where $filetpl = $dolibarr_main_data_root.'/website/'.$website->ref.'/page'.$pageid.'.tpl.php'. This is exactly what the website editor does when saving a page. It can also be done by saving the page from the website editor UI (Website menu -> site -> edit page -> Save).
  2. Only if Dolibarr code cannot be executed: archive the old file first (see below), then regenerate the file with the same structure as the previous version, replacing only the part that carries the page content with the new value from the content column.

Archiving the previous version

Before rewriting page<pageid>.tpl.php, the existing file MUST be archived as:

documents/website/<site-ref>/page<pageid>.tpl.php.v<TIMESTAMP>
  • <TIMESTAMP> is the unix timestamp of the moment of archiving (this is the convention of archiveOrBackupFile() in htdocs/core/lib/files.lib.php, which moves — not copies — the old file and keeps the last 5 versions only).
  • Never overwrite or delete the old .tpl.php without creating this .v<TIMESTAMP> version file first.

Verification

After an edit, check that:

  1. The content column of llx_website_page contains the new HTML.
  2. documents/website/<site-ref>/page<pageid>.tpl.php has been rewritten (check its modification time).
  3. The previous version exists as page<pageid>.tpl.php.v<TIMESTAMP>.

If the site is served through the alias/container mode, also check that the alias file documents/website/<site-ref>/<pageurl>.php still points to the right tpl file (it should not need to be regenerated when only the content changes).

Version History

  • f924282 Current 2026-10-19 03:57

Same Skill Collection

.agents/skills/add-unit-test/SKILL.md
.agents/skills/code-review/SKILL.md
.agents/skills/dolibarr-dev/SKILL.md
.agents/skills/dolibarr-interactive-test/SKILL.md
.agents/skills/skill-doli-code-review/SKILL.md
.agents/skills/skill-doli-dev/SKILL.md
.agents/skills/skill-doli-devmodule/SKILL.md
.agents/skills/skill-doli-github/SKILL.md
.agents/skills/skill-doli-test-interactive/SKILL.md
.agents/skills/skill-doli-test-phpunit/SKILL.md
.agents/skills/skill-doli-translation/SKILL.md
.agents/skills/skill-doli-upmerge/SKILL.md

Metadata

Files
0
Version
f924282
Hash
a01dae8c
Indexed
2026-10-19 03:57

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-23 02:58
浙ICP备14020137号-1