[VSCodeでもっと楽になりたい] SFTPで楽になる

Bracketsが死んでVSCodeを使うようになって、軽いし使いやすいので重宝していますが、デフォルトだとちょっと痒いところに手が届かない、やっぱり作業は楽にしたいので、色々拡張を試しています。

ふと思いつくような拡張は大体世界の誰かがすでに作っているので、「あ、こういうの欲しいな」って思った時にすぐ追加できるのが手軽でいいですね。

SFTP

僕はウェブデザイナーなので、FTPが繋げられないと仕事ができなくてお金が稼げなくて餓死してしまいます。
SFTPは、VSCode内でFTP接続を可能にする拡張です。
できることは基本的によくあるFTPソフトと変わらないのですが、いちいちエディタとFTPソフトを往復したりしないで使い慣れたVSCodeのUIでアップロード/ダウンロードができるのは楽ちんだなと思っています。
細かい特徴はマーケットプレイスのページでご確認ください。

Very powerful, with smart features. Very simple, requires just three lines of config! Very fast, finished in a blink.

https://marketplace.visualstudio.com/items?itemName=liximomo.sftp

個人的に一番気に入っている「差分表示」

特徴にも記載されているDiff local and remote(ローカルとリモートの差分表示)がVSCode内でできることですね。
昔Macが32bitアプリが動く時代には、YummyFTPというアプリがあって外部アプリによる差分表示をサポートしていたのですが、作者の方がお亡くなりになったそうで64bitの対応は事実上無くなってしまったためOS Catalina以降は動作しなくなってしまいました。
なお、FTPソフトに差分表示をサポートしているものは他にもあります。

ForkLift 3

https://binarynights.com/

こういったFTPソフトが差分表示をサポートしている、というのは、たいていファイルを選択して差分表示と選択すると外部のDiffアプリが開くような仕様になっています。
上記のForkLiftもランディングページの説明に「Compare two text or images files with Xcode’s FileMerge, Kaleiodoscope, Beyond Compare, or Araxis Merge.」と記載されているので、 ForkLiftアプリ内で完結しているわけではなく、別のアプリが立ち上がると思われます。

個人的にはコードを見るときにFTPソフトに行ったりエディタに行ったりするのが面倒なので、VSCode内で差分表示まで完結できる方がメリットがあると思っています。

ファイルを右クリック→「Diff with Remote」

VSCodeで左がリモート・右がローカルが開く 差分のある<main>の部分がハイライトされている。

他にもオートアップロード(一長一短だが)があったり、除外ディレクトリを指定したりとか、色々便利です。
使ったことないな、って人は是非使ってみてくださいね!

Mac OS10.14以降+Firefox環境でAdobe fontsの貂明朝の文字色が上書きされる問題についての根本的な解決にならない情報共有

タイトル通り結論から言うと、根本的な解決方法は無いので、webフォントで貂明朝を使わないのが一番かと思います。

先週2日間くらい嵌りました。
Mac+Firefox環境下(Mac OS 11.4/ Firefox 89.0.2)でcssでcolor: #fff;にしているのにも関わらずテキストの色が黒になってしまって、何をしても解決できないという問題に直面しました。

発見当初、cssの継承でうっかり黒を記述しているのかな?自分の書き方がおかしいのかな?と安直に考えていたのですが、css内のどこを見ても黒を指定している記述が無く、八方塞がりでした。

思いついた対策としては、color: #fff !iimportant; のように!importantを付けるとか、セレクタの特定度を極限まで細分化して何がなんでもこのテキストだけは白くしてやる!と息巻いたところでなんの結果も得られず敗北を味わいました。この仕事を始めて15年以上になりますがこんな無力感を味わったのは初めてだと思いました。

ここまでセレクタの特定度を高めても効かなかった

おや?何かおかしいですね?

色々やってるうちにスーパーリロード(キャッシュリセット)をすると、一瞬だけ白が表示された後に黒くなっている現象に気づきました。
つまり、
ロードが終わる→cssが効く→色が置き換えられている
という順で文字色が黒になっている仮説が立てられました。

上記の仮説が正しいのなら、何かロードの後に走る処理、要するに大体Javascriptの問題だと思ったのですが、ロード後に何か処理をするようなJavascriptを記述した記憶が一切ありません。
とりあえず一度Javascriptを全て切りました。

原因はJavascript!?

Javascriptを全て切ることによって、color: #fff;が適用されることがわかりました。
原因がある程度絞れたので、Javascriptを一個ずつ戻していき、最終的に、Adobe fontsの<script>を除外すればいいということがわかりました。

貂明朝のせいだった

今まで数年Adobe fontsを利用してwebフォントを使ってきましたが、貂明朝は使ったことがなかったので、色指定が効かないということに気づきませんでした。
試しに簡単なhtmlを作ってテストをしてみたところ、ビンゴでした。

// css
h1 {
  font-family: ten-mincho-text, serif;  ←貂明朝
  font-weight: 400;
  font-style: normal;
  color: #f00; ←赤
}
h2 {
  font-family: ten-mincho-text, serif; ←貂明朝
  font-weight: 400;
  font-style: normal;
  color: #00f; ←青
}
h3 {
  font-family: fot-matisse-pron, sans-serif; ←FOTマティス
  font-weight: 500;
  font-style: normal;  
  color: #f00; ←赤
}
h4 {
  font-family: fot-matisse-pron, sans-serif; ←FOTマティス
  font-weight: 500;
  font-style: normal;  
  color: #00f; ←青
}

// html
<h1>貂明朝テキスト 赤色指定赤色指定赤色指定赤色指定</h1>
<h2>貂明朝テキスト 青色指定青色指定青色指定</h2>
<h3>FOTマティス 赤色指定赤色指定赤色指定赤色指定</h3>
<h4>FOTマティス 青色指定青色指定青色指定</h4>

貂明朝には色指定が効かない

貂明朝を使わなければ、問題は解決、ということです。
しかしながら、どうしてもサイトのコンセプトと、デザイン的に貂明朝を使いたかったのでもうちょっと粘って調べてみることにしました。
すでに、2年前に対処法が発見されていました。

color 指定が効かないなら、文字自体に色を付けるのを諦め、背景色を文字で切り取って表示することで、まるで文字色を付けているかのように見せています。

Mac+Firefox の一部の環境で「貂明朝」に色が付かない問題に対処する
https://qiita.com/sofpyon/items/d8f5fe83117f189f1c55

なお、この問題についてメッセンジャーで友人に相談していたのですが、友人曰く、「background-clip: textは確かdisplay: inlineやinline-blockなどのインライン系要素でしか適用できないので、この対応はヤバい気がする。」とのこと。
block要素で使えないとなると、かなり使用範囲が狭くなってしまいますね。
ぶっちゃけ画像でテキストを作った方がまだ汎用性があるような気がします。

泣く泣く貂明朝を諦めて、FOTマティスにすることにしました。FOTマティスなら上記画像の通り色指定が効きます。

この問題はMac OS 10.14以降で発生

Adobeのフォーラムでも同様の事象の記事がありましたが、Adobeのサポートの環境では色変更が効くらしい、つまりMac+Firefoxでも色変更が効く環境があることがわかります。

サポートに問い合わせをしたのですが、
確認したところ、弊社の検証環境では「貂明朝」をwebフォント化させてCSSにて文字色を変更すると
Firefoxでも色の変更が反映いたしました。
と返信がありました。

貂明朝のwebフォントにおいて、Firefoxでcssでの文字色指定が効かない件
https://community.adobe.com/t5/adobe-fonts%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A9%E3%83%A0/%E8%B2%82%E6%98%8E%E6%9C%9D%E3%81%AEweb%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6-firefox%E3%81%A7css%E3%81%A7%E3%81%AE%E6%96%87%E5%AD%97%E8%89%B2%E6%8C%87%E5%AE%9A%E3%81%8C%E5%8A%B9%E3%81%8B%E3%81%AA%E3%81%84%E4%BB%B6/m-p/10587306

また、先述の友人の環境(Mac OS 10.13.7 + Firefox 89.0.2)では、色変更が適用された状態で表示できるということでした。

記事には記載されていませんが、おそらくAdobeのサポートの検証環境もOS 10.13 High Sierra以前のものだと推測されます。

また、同じフォーラム記事のリプライ欄にMac OS 10.14.5で文字色変更ができないという投稿がありましたので、OS 10.14以降にこの現象が発生していることがわかります。

Mac(10.14.5)/Firefox68.0.1で色が着かないのを確認しました。Firefoxは素の状態です。

貂明朝のwebフォントにおいて、Firefoxでcssでの文字色指定が効かない件
https://community.adobe.com/t5/adobe-fonts%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A9%E3%83%A0/%E8%B2%82%E6%98%8E%E6%9C%9D%E3%81%AEweb%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6-firefox%E3%81%A7css%E3%81%A7%E3%81%AE%E6%96%87%E5%AD%97%E8%89%B2%E6%8C%87%E5%AE%9A%E3%81%8C%E5%8A%B9%E3%81%8B%E3%81%AA%E3%81%84%E4%BB%B6/m-p/10587306

おまけ:XDの色指定も効かなくなった

もともとXDでデザインを作っていた時は色は白だった貂明朝の色が、いつの間にか黒に置き換わっていた。

おそらくいつかのアップデートで仕様が変わっていて、いつの間にか色指定が効かないようになっていました。

PhotoshopやIllustratorでも確認しましたが、そちらは特に問題なく、色の変更が可能でした。

[Concrete5] フルサイトマップでページ属性を変更したときに即時公開されてしまうのを承認待ち状態にする設定

デフォルトの状態のConcrete5のフルサイトマップでページ属性を変更すると即時公開される仕様なのですが、
ページの歯車から属性を変更すると承認待ちになるという仕様なのを今まで知りませんでした。

フルサイトマップのメニュー

ページの設定

知らなかったというか、基本的に納品までの制作を請け負うことはあっても、納品後の運用はクライアントが行うので納品後にページから属性を変更する作業をしたことがなかった、というのが正しいのかもしれません。

設定を教えていただいたので、備忘録的に残しておきます。

/concrete/config/concrete.php の430行目あたりに ‘sitemap_approve_immediately’ => true, とあるので、これをfalseにして /application/config/concrete.php に記述してオーバーライドします。

/application/config/concrete.php

<?php

return [
    'misc'              => [
        'sitemap_approve_immediately' => false,
    ],
];

これでフルサイトマップで属性を変更しても承認待ちになります。

[Mautic 2.16.2] 漢字がピンインに、ひらがなカタカナがローマ字に変換されるのをどうにかしたい

Mauticのコンタクトでトラッキングしたユーザーのイベントに表示されるページタイトルが漢字はピンインに、ひらがなカタカナはローマ字に変換されるという謎の仕様があります。

「o weni hewase (ru lipeji)」や「o weni hewase (que renpeji)」は本来はそれぞれ「お問い合わせ(入力ページ)」、「お問い合わせ(確認ページ)」というページタイトルで、「お」→「o」とひらがながローマ字に、「問」→「wen」のように漢字がピンインに変換されてしまい、全く読めない謎の言語が誕生してしまうので、これをどうにかしたい。

ファイルの場所 /app/bundles/PageBundle/Model/PageModel.php

// 616行目
$safeTitle = InputHelper::transliterate($query['page_title']);
↓
$safeTitle = $query['page_title'];

本来は便利な機能なはずなのですが、「InputHelper::transliterate」が悪さをしているので、使用しないように変更しました。

[Mautic 2.16.2] 日本語化しても日本向けにならない部分を直そう

オープンソースのMAツール、Mauticを使い始めたところ、一応日本語対応しているのですが細かい部分でちらほら日本の環境に最適化されていないなと思った部分がいくつかあったので、直しました。

姓名が逆順で表示される

デフォルトだと「名, 姓」の順で表示されてしまうので、これを「姓 名」の表示に変えたい。
こういうのは管理画面で設定できると本当に便利なのになぁと思ったり。
主に姓名逆順で困るのが、以下。

  • コンタクト(リード)のリスト
  • 送信メールの名前

コンタクト(リード)のリスト

ファイルの場所 /app/bundles/LeadBundle/Controller/LeadController.php

// 1308行目
$leadName         = $leadFields['firstname'].' '.$leadFields['lastname'];
↓
$leadName         = $leadFields['lastname'].' '.$leadFields['firstname'];

ファイルの場所 /app/bundles/LeadBundle/Controller/LeadController.php

// 1308行目
$leadName         = $leadFields['firstname'].' '.$leadFields['lastname'];
↓
$leadName         = $leadFields['lastname'].' '.$leadFields['firstname'];

// 1835行目
$items[$user['id']] = $user['firstName'].' '.$user['lastName'];
↓
$items[$user['id']] = $user['lastName'].' '.$user['firstName'];

ファイルの場所 /app/bundles/LeadBundle/Entity/Lead.php

// 710行目
public function getName($lastFirst = false) //この$lastFirstのtrue/falseで判定している
↓
public function getName($lastFirst = true)

// 717行目
$fullName = $lastName.', '.$firstName;
↓
$fullName = $lastName.' '.$firstName; // カンマが不要なので削除

// 754行目
public function getPrimaryIdentifier($lastFirst = false)
↓
public function getPrimaryIdentifier($lastFirst = true)

送信メールの名前

//*ファイルの場所 /app/bundles/EmailBundle/Model/EmailModel.php
// 1622行目
if (!$mailer->setTo($user['email'], $user['firstname'].' '.$user['lastname'])) {
↓
if (!$mailer->setTo($user['email'], $user['lastname'].' '.$user['firstname'])) {

// 2404行目
if (!$mailer->setTo($user['email'], $user['firstname'].' '.$user['lastname'])) {
↓
if (!$mailer->setTo($user['email'], $user['lastname'].' '.$user['firstname'])) {

コンタクトの詳細で住所の順番が海外式

住所の表記も逆に表示されてしまうので、これを解消したい。

//*ファイルの場所 /app/bundles/LeadBundle/Views/Lead/lead.html.php
// 511行目から
<address class="text-muted">
  <?php if (isset($fields['core']['address1'])): ?>
    <?php echo $view->escape($fields['core']['address1']['value']); ?><br>
  <?php endif; ?>
  <?php echo (!empty($fields['core']['address2']['value'])) ? $view->escape($fields['core']['address2']['value']).'<br>' : ''; ?>
  <?php echo $view->escape($lead->getLocation()); ?>
  <?php echo isset($fields['core']['zipcode']) ? $view->escape($fields['core']['zipcode']['value']) : '' ?>
<br>
</address>
↓
<address class="text-muted">
  〒 <?php echo isset($fields['core']['zipcode']) ? $view->escape($fields['core']['zipcode']['value']) : '' ?>
<br>
  <?php echo $view->escape($lead->getLocation()); ?>
  <?php if (isset($fields['core']['address1'])): ?>
    <?php echo $view->escape($fields['core']['address1']['value']); ?>
  <?php endif; ?>
  <?php echo (!empty($fields['core']['address2']['value'])) ? $view->escape($fields['core']['address2']['value']) : ''; ?>
</address>

[scss]毎回面倒な吹き出しをmixin化

なんでもっと早くやらなかったのか不思議で仕方ない。
毎回普通にcss書いてたので、流石にめんどくさくてmixin作りました。
単色の吹き出しに使えます。

// mixin
@mixin balloon-arrow($direction, $duration, $color) {
    position: absolute;
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    @if $direction == top {
        top: -$duration;
        left: 50%;
        margin-left: -$duration;
        border-width: 0 $duration $duration $duration;
        border-color: transparent transparent $color transparent;
    }
    @if $direction == right {
        right: -$duration;
        top: 50%;
        margin-top: -$duration;
        border-width: $duration 0 $duration $duration;
        border-color: transparent transparent transparent $color;
    }
    @if $direction == bottom {
        bottom: -$duration;
        left: 50%;
        margin-left: -$duration;
        border-width: $duration $duration 0 $duration;
        border-color: $color transparent transparent transparent;
    }
    @if $direction == left {
        left: -$duration;
        top: 50%;
        margin-top: -$duration;
        border-width: $duration $duration $duration 0 ;
        border-color: transparent $color transparent transparent;
    }
}

引数はそれぞれ
$direction 吹き出しの方向、top, right, bottom, leftで指定 bottomだったらボックスの下にくっつく
$duration 吹き出しの大きさ pxで指定
$color 吹き出しの色 hexでもrgbでもrgbaでもok

// scss
.balloon {
    background: #000;
    border-radius: 20px;
    position: relative;
        
    &:after {
        @include balloon-arrow(bottom, 20px, #000);
    }
}

[Concrete5] オプションリスト属性で複数の値を設定したときのタグ付け[メモ]

属性の値はページテンプレートでそのまま取得しようとすると以下のような書き方になるのですが、

// ページテンプレートの場合
<?php echo $c->getAttribute('option_list');?>

オプションリストで複数の値が設定されている場合、すべて生のテキストが出力されてしまってデザインが実現できません。

オプション1 オプション2 オプション3

foreachで回せばタグ付けできます。

<ul class="option-list">
<?php 
$option = $c->getAttribute('option_list');
foreach($option as $op) {?>
  <li><?php echo $op;?></li>
<?php } ?>
</ul>

<ul class="option-list">
  <li>オプション1</li>
  <li>オプション2</li>
  <li>オプション3</li>
<ul>

[Concrete5] サイト属性の取得 [メモ]

Concrete5のバージョン8からサイトに属性がつけられるようになったので、使ってみました。

[参照元]
サイト属性値を取得する concrete5 Japan 日本語公式サイト

/dashboard/system/basics/attributes で属性を作って、
/dashboard/system/basics/name に属性値を入力して、
テーマに

<?= Core::make('site')->getSite()->getAttribute('属性のキー'); ?>

を書くだけ!簡単!すごい!!

なぜか「<?=」が、「<?php 」だと動かなかったのですが、その辺は詳しくないのでよくわからないです。

[EC-CUBE3] 商品総数を表示したかった。[メモ]

EC-CUBE2時代はテンプレートにサクッとphpを書けば表示できてたものが、EC-CUBE3になってsymfonyベースになったせいで非常にデザイナー泣かせのシステムになってしまいました。

何が辛いって、「変数一つ表示するのにそんなに手間をかけないといけないの?」ってレベルの話で、データベースの値を変更しないとそもそもcontrollerが動かないという正直なところ、symfonyはもう二度と触りたくないと思いました。
全然仕組みがわからないので、かれこれ数十時間を無駄に費やしたと思います。
本も数冊買ったけど全然やくに立たなかった。

愚痴っても仕方ないので、登録されている商品の総商品点数の表示の仕方をメモしておきます。

1. ブロックを作る

全ページのヘッダーに商品数を表示したかったので、全ページに表示するための、ブロックを管理画面から作成します。
(既存のブロックに追加する場合は、ここは飛ばしてok)
スクリーンショット 2018-04-10 19.34.40

2. ページレイアウトにブロックを追加

レイアウト管理で、作成したブロックをページレイアウトに追加します。
スクリーンショット 2018-04-10 19.35.42

3. [重要]DBでdtb_blockのlogic_flgを1にする

これをしないと、上に書いたように、そもそもControllerが動かないという謎の仕様。
管理画面のブロック追加のページに書いといてほしいと思いました。
スクリーンショット 2018-04-10 19.39.22

4. Controllerを作る

/src/Eccube/Controller/Block/に、任意の名前のファイルを作ります。
ProductCountController.phpとかでいいと思います。

中身は、以下。

<?php 
namespace Eccube\Controller\Block;
use Eccube\Application;
class ProductCountController
{
    public function index(Application $app)
    {
        $products = $app['eccube.repository.product']->findAll();
        $num = count($products);
        
        return $app->render('Block/product_count.twig', array(
            'count' => $num,
        ));
    }
}

これはもうどうしようもなくてフォーラムに質問したら教えてくれました。
やはり本読んだりググるより、直接知ってる人に聞くのが一番だと思いました。

5. ControllerProviderに追記をする

/src/Eccube/ControllerProvider/FrontControllerProvider.php
の、
75行目付近にブロック関連のプロバイダーが書いてあるので、そこに追記します。

$c->match('/block/product_count', '\Eccube\Controller\Block\ProductCountController::index')->bind('block_product_count');

6. ブロックに変数を記述

ここで、ようやくビューに変数を書きます。

<dl>
<dt>商品点数</dt>
<dd>{{ count }}</dd>
</dl>

以上です。

EC-CUBE2だったら、/data/Smarty/templates/default/header.tpl に以下を書くだけだったのに、本当めんどくさくなりましたね。

<!--{php}-->
    $objQuery = new SC_Query();
    $table = 'dtb_products';
    $where = 'del_flg = 0 AND status = 1';
    $count = $objQuery->count($table, $where);
        echo $count;
    <!--{/php}-->

[Concrete5 v8]上級権限モードで権限を設定する時につまづく私のための備忘録[メモ]

Concrete5で、上級権限モードにすると承認フローや、アカウント別の管理画面へのアクセス処理など、非常に細かく設定ができます。
が、制作上権限の設定を忘れて、ファイルマネージャーへ管理者アカウント以外でアクセスできなくなってしまったり、新規ページコンポーザーでアクセス拒否のエラーが出たりして、あれ、どこで設定するんだっけ?的なことがちらほらあります。
上級権限モードにした時に設定を忘れないように、備忘録をつけておきます。

上級権限モードとは

上級権限モードにすると

  • ページの閲覧・編集・編集の承認(公開)・管理(移動やコピー)・削除
  • ページの公開日時と公開終了日時の指定
  • エリアの閲覧・編集・編集の承認(公開)・管理(移動やコピー)・削除
  • エリアに追加出来るブロックの制限
  • ブロックの閲覧・編集・削除
  • 作成できる子ベージのページタイプの限定
  • グループへの期間限定加入

をユーザーやグループ毎に行えるようになります。
Concrete5日本語公式サイトより

権限の設定箇所が結構とっ散らかっている印象があって、ついうっかり設定を忘れてしまうことが多いです。

設定する箇所について

権限グループを作って、ユーザーごとに権限グループを割り当てる方法をとっています。
デフォルトでは、スーパーユーザー(インストール時のアカウント)はグループに属していないため、制作中はスーパーユーザーを使っていると、承認フロー周りの確認などでつまづくことがあります。
実際ありました。

僕が設定するグループは大体三つで、

  • 管理者:最上位権限
  • 編集者:編集・ページ追加のみ
  • 制作者:最上位権限

になります。
管理者と制作者は基本同じ権限に設定しているのですが、運用時に承認フローで承認メールを飛ばしたりする際に制作側に承認を求められても困るので、
管理者グループのみに承認メールを飛ばすようにするための区分けです。
スーパーユーザーがあるのに制作者グループを作っているのは、チームで制作する際のアカウントのためです。

原則的に、編集者が編集を行ってワークフローに送信してもらって、管理者が承認を行って公開、というイメージです。
そのほかにも編集者にはページを削除する権限を外したり、テンプレートの変更を行えないようにして作業範囲を限定的にすることで意図しないサイトの崩壊を防ぐ目的で制作しています。

なお、僕がいつも設定している箇所は以下の通りです。

ページ権限

場所:/index.php/dashboard/sitemap/full
基本的に、ページの権限は、フルサイトマップでトップページに設定をして、下階層はトップページを継承するようにしています。

また、もっと細かく設定したい場合、例えば、
「NEWS」ページだけを追加編集できる権限グループには、トップページから権限継承せずにNEWSページ以下のみにページ追加の権限を与えるとか、
ページ追加はできないけど、編集だけできる権限グループを作ったりとか、応用するとかなり細かく設定できます。

一般公開したくないページを作る場合は、権限を継承せずに手動で「表示」のゲストを登録ユーザーなどに変更すればいいかと思います。

ページタイプ権限

場所:/index.php/dashboard/pages/types
追加できるページタイプごとに権限を設定できます。
ここの設定をすることで、「ページの追加とサイトの案内」ボタンクリック時の「新しいページ」にページタイプが表示されます。
ここの設定を完全に忘れていて、下位権限グループで「新しいページ」の項目が表示されなくて小一時間悩みました。

スクリーンショット 2018-03-15 17.10.07

Screen Shot 2018-03-15 at 17.18.10-fullpage

スクリーンショット 2018-03-15 17.37.16

ファイルマネージャー権限

場所:/index.php/dashboard/system/files/permissions
ファイルマネージャーにアクセスする権限や、ファイルの操作に関する権限を設定できます
スクリーンショット 2018-03-15 17.22.05

タスク権限

場所:/index.php/dashboard/system/permissions/tasks
各種設定や、操作などの権限を設定できます。
なぜかフルサイトマップのアクセスもここにあったりして、ややこしいです。
僕はフルサイトマップを使用してページの更新をするのが効率がいいと考えているので、編集者グループにもフルサイトマップへのアクセスを許可すべきかと思っています。
スクリーンショット 2018-03-15 17.24.17

ユーザー権限

場所:/index.php/dashboard/system/permissions/tasks
ユーザーの追加や、削除などへのアクセスの権限です。
編集者にユーザーの追加や削除の権限は与えない方針です。
スクリーンショット 2018-03-15 17.26.59

以上です。