Skip to content
alan-nullPublic

Repository files navigation

Build Status

Sitecore Extensions

Sitecore Extensions is a google chrome/firefox extension which provides small improvements for Sitecore CMS.

Supported Sitecore versions

  • Sitecore XMCloud
  • Sitecore.NET 8.0 and newer (full)
  • Sitecore.NET 7.5 (partial)
  • Sitecore.NET 7.2 (partial)
  • Sitecore.NET 7.1 (partial)
  • Sitecore.NET 7.0 (partial)

Supported browsers

Features

Full documentation is available at https://alan-null.github.io/sc_ext/.

  • Launcher - launch Sitecore commands using command omnibox,
  • Favorites - save Content Editor items for a specific instance, any instance, or hosts matching a wildcard pattern such as *.cm. Edit hostnames and patterns and choose the default scope under Options → Modules → Favorites, or use the launcher command “Change favorite scope” for the current item. Patterns match the whole hostname, ignoring case and port; matching favorites open on the current host,
  • GUID formats - copy the current item ID in common GUID formats or generate a new GUID,
  • Collapse all sections - you can collapse all opened sections in Content Editor with just one click,
  • Expand all sections - you can expand all opened sections in Content Editor with just one click,
  • Database name - Displays current database name in the Content Editor header,
  • Database color - Change the global header color depending on current database,
  • Icon color - changes color to red when using Sitecore on current tab, otherwise will be grayed,
  • Field Search - quickly find a field or section in the Content view in Content Editor,
  • Restore Last Location - restores last opened item in Content Editor,
  • Toggle Ribbon - small button which allows you to hide whole ribbon while working in Experience Editor,
  • Tree Auto Expand - it will automatically expand tree structure if there is only one child under expanded item,
  • Tree Scope - give an ability to scope a content tree to the currently selected item,
  • Field Inspector - go to field, inspect field name, reset value to __Standard values,
  • Add Here - extends AddHere button in ExperienceEditor with placeholder name,
  • Treelist Field - extension adds path of the item inside treelist field,
  • Go to item - quickly navigate to an item selected in link fields (DropLink, Name Lookup Value List, TreeList, MultiList),
  • Placeholder - remove all renderings from the placeholder with one click,
  • Quick Info Extender - additional buttons for quick info section in Content Editor,
  • Scroll To Item - automatically scrolls to the active tree node in Content Editor upon item change

More information about all available features with gif demos can be found in the documentation.

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute

Development

Follow steps below if you want to start coding.

Read Architecture first - it explains the two execution worlds, the page bridge and how to add a new module.

Prerequisites

If you want avoid nodejs on your machine use docker to build project inside container.

Install nodejs

https://nodejs.org/en/download/

Environment setup

Clone repository

git clone https://github.com/alan-null/sc_ext.git

Install node modules

npm install

Build project

npm run build

Run watch task if you want dynamic code rebuild in the background

npm run watch

Development - one click

If you are tired of downloading all those modules there is a quicker way.

Open PowerShell Console and run following code:

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
choco install nodejs.install -y
choco install git.install -y
choco install visualstudiocode -y
choco install googlechrome -y

git clone https://github.com/alan-null/sc_ext.git
npm install

If needed remove unnecessary choco packages.

Development - docker

Prerequisites

Install docker

Build

Connect to a node container

On Windows, run:

.\.devcontainer\run.ps1

On Linux, run from the repository root with your host user's UID and GID so generated files remain writable on the host:

docker compose -f .devcontainer/docker-compose.yml run --rm --user "$(id -u):$(id -g)" -e HOME=/tmp localdev

Install dependencies and build inside the container:

npm install
npm run build

If a previous container created files under a different UID, the build removes and regenerates the common JavaScript outputs. If cleanup itself reports EACCES, restore ownership of the affected generated files or directories on the host before rebuilding. The container user needs write access to the mounted repository, including app, dist and node_modules.

For example, if cleanup cannot remove dist/_locales, run this once from the repository root to restore ownership of dist to your host user, then start the container with your UID and GID as shown above:

docker compose -f .devcontainer/docker-compose.yml run --rm --user 0:0 --entrypoint /bin/sh localdev -c "chown -R $(id -u):$(id -g) /data/app/dist"

node_modules are shared between host and container. Container was introduced only to exclude need of having node installed.

The repository bind mount also shares package-lock.json with the host. Keep this file in version control to record the resolved dependency versions, and commit updates alongside dependency changes in package.json. Keep node_modules ignored. Run dependency installs inside the container to use the project's Node.js and npm versions consistently.

Image available on dockerhub

Legal

License Privacy Policy

Releases

Used by

Contributors

Languages