Plugin Directory

Changeset 3248450


Ignore:
Timestamp:
02/28/2025 11:59:35 AM (13 months ago)
Author:
DesignPlus
Message:

Release version 1.2

Location:
tcd-classic-editor/trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • tcd-classic-editor/trunk/assets/css/admin-ui.css

    r3235706 r3248450  
    150150.tcdce-message--success,
    151151.tcdce-message--failed,
    152 .tcdce-message--reset {
     152.tcdce-message--reset,
     153.tcdce-message--imported {
    153154  position: absolute;
    154155  inset: 0;
     
    161162}
    162163
    163 .tcdce-message--success {
     164.tcdce-message--success,
     165.tcdce-message--imported {
    164166  background: #00c554;
    165167}
     
    175177.tcdce-page.is-success .tcdce-message,
    176178.tcdce-page.is-failed .tcdce-message,
    177 .tcdce-page.is-reset .tcdce-message {
     179.tcdce-page.is-reset .tcdce-message,
     180.tcdce-page.is-imported .tcdce-message {
    178181  height: 40px;
    179182}
     
    181184.tcdce-page.is-success .tcdce-message--success,
    182185.tcdce-page.is-failed .tcdce-message--failed,
    183 .tcdce-page.is-reset .tcdce-message--reset {
     186.tcdce-page.is-reset .tcdce-message--reset,
     187.tcdce-page.is-imported .tcdce-message--imported {
    184188  pointer-events: auto;
    185189  visibility: visible;
     
    189193/* main setting */
    190194.tcdce-setting {
     195  position: relative;
    191196  padding: 40px;
    192197  background: #fff;
     
    199204  line-height: 1.6;
    200205  margin: -0.3em 0 calc(40px - 0.3em);
     206}
     207
     208/* import / export */
     209.tcdce-setting-data {
     210  display: flex;
     211  gap: 10px;
     212  position: absolute;
     213  inset: 30px 40px auto auto;
     214}
     215
     216.tcdce-setting-data-action {
     217  cursor: pointer;
     218  display: flex;
     219  align-items: center;
     220  gap: 5px;
     221  height: 40px;
     222  border: 1px solid #ddd;
     223  font-size: 13px;
     224  padding-inline: 10px 15px;
     225  transition: opacity 0.5s ease;
     226}
     227
     228.tcdce-setting-data-action:has(input:checked) {
     229  color: #fff;
     230  background: var(--tcdce-main-color);
     231  border-color: var(--tcdce-main-color);
     232}
     233
     234.tcdce-setting-data-action:hover {
     235  opacity: 0.8;
     236}
     237
     238.tcdce-setting-data-form {
     239  position: absolute;
     240  top: calc(100% + 10px);
     241  right: 0;
     242  z-index: 3;
     243  display: grid;
     244  align-content: start;
     245  row-gap: 10px;
     246  width: 450px;
     247  padding: 20px;
     248  background: #fff;
     249  border: 1px solid var(--tcdce-main-color);
     250  font-size: 13px;
     251  line-height: 1.4;
     252}
     253
     254.tcdce-setting-data-action:not(:has(input:checked)) + .tcdce-setting-data-form {
     255  display: none;
     256}
     257
     258.tcdce-setting-data-form-button {
     259  cursor: pointer;
     260  border: none;
     261  padding: 0 1em;
     262  height: 30px;
     263  font-size: 13px;
     264  background: var(--tcdce-main-color);
     265  color: #fff;
     266}
     267
     268/* ファイルが未設定の場合にボタン押させない */
     269input[type="file"]:not([data-file="1"]) + .tcdce-setting-data-form-button {
     270  opacity: 0.5;
     271  pointer-events: none;
    201272}
    202273
     
    18651936  display: none;
    18661937}
     1938
     1939/* 吹き出しプリセット別 */
     1940.tcdce-edit__options:has(input[value="preset01"])
     1941  :is(.tcdce-sb-bg-color, .tcdce-sb-border-color, ),
     1942.tcdce-edit__options:has(input[value="preset02"])
     1943  :is(.tcdce-sb-bg-color, .tcdce-sb-border-color, ),
     1944.tcdce-edit__options:has(input[value="preset03"]) :is(.tcdce-sb-border-color, ),
     1945.tcdce-edit__options:has(input[value="preset04"])
     1946  :is(.tcdce-sb-border-color, ) {
     1947  display: none;
     1948}
  • tcd-classic-editor/trunk/assets/css/editor.css

    r3235706 r3248450  
    538538}
    539539
    540 @container tcdce (max-width: 400px) {
     540@container tcdce (max-width: 600px) {
    541541  :is(.tcdce-body, .tcdce-body .wp-block-group__inner-container) > * {
    542542    --tcdce-base-margin-bottom-pc: var(--tcdce-base-margin-bottom-sp);
     
    722722}
    723723
    724 @container tcdce (max-width: 400px) {
     724@container tcdce (max-width: 600px) {
    725725  :is(.tcdce-body, .editor-styles-wrapper) h1 {
    726726    font-size: var(--tcdce-h1-font-size-sp);
     
    829829}
    830830
    831 @container tcdce (max-width: 400px) {
     831@container tcdce (max-width: 600px) {
    832832  :is(.tcdce-body, .editor-styles-wrapper) h2 {
    833833    font-size: var(--tcdce-h2-font-size-sp);
     
    936936}
    937937
    938 @container tcdce (max-width: 400px) {
     938@container tcdce (max-width: 600px) {
    939939  :is(.tcdce-body, .editor-styles-wrapper) h3 {
    940940    font-size: var(--tcdce-h3-font-size-sp);
     
    10431043}
    10441044
    1045 @container tcdce (max-width: 400px) {
     1045@container tcdce (max-width: 600px) {
    10461046  :is(.tcdce-body, .editor-styles-wrapper) h4 {
    10471047    font-size: var(--tcdce-h4-font-size-sp);
     
    11501150}
    11511151
    1152 @container tcdce (max-width: 400px) {
     1152@container tcdce (max-width: 600px) {
    11531153  :is(.tcdce-body, .editor-styles-wrapper) h5 {
    11541154    font-size: var(--tcdce-h5-font-size-sp);
     
    12571257}
    12581258
    1259 @container tcdce (max-width: 400px) {
     1259@container tcdce (max-width: 600px) {
    12601260  :is(.tcdce-body, .editor-styles-wrapper) h6 {
    12611261    font-size: var(--tcdce-h6-font-size-sp);
     
    13561356}
    13571357
    1358 @container tcdce (max-width: 400px) {
     1358@container tcdce (max-width: 600px) {
    13591359  :is(.tcdce-body, .editor-styles-wrapper) ul {
    13601360    font-size: var(--tcdce-ul-font-size-sp);
     
    14681468}
    14691469
    1470 @container tcdce (max-width: 400px) {
     1470@container tcdce (max-width: 600px) {
    14711471  :is(.tcdce-body, .editor-styles-wrapper) ol {
    14721472    font-size: var(--tcdce-ol-font-size-sp);
     
    15611561}
    15621562
    1563 @container tcdce (max-width: 400px) {
     1563@container tcdce (max-width: 600px) {
    15641564  :is(.tcdce-body, .editor-styles-wrapper)
    15651565    :is(.tcdce-box, .well, .well2, .well3, .q_frame) {
     
    17331733}
    17341734
    1735 @container tcdce (max-width: 400px) {
     1735@container tcdce (max-width: 600px) {
    17361736  :is(.tcdce-body, .editor-styles-wrapper)
    17371737    :is(.tcdce-button-wrapper, .q_button_wrap, .wp-block-buttons) {
     
    18341834}
    18351835
    1836 @container tcdce (max-width: 400px) {
     1836@container tcdce (max-width: 600px) {
    18371837  :is(.tcdce-body, .editor-styles-wrapper) * + .tcdce-sb {
    18381838    margin-top: var(--tcdce-sb-margin-top-sp);
     
    18491849  height: auto;
    18501850  vertical-align: bottom;
    1851 }
    1852 
    1853 :is(.tcdce-body, .editor-styles-wrapper) p:has(> img) {
    1854   margin: 40px 0;
    18551851}
    18561852
     
    25042500}
    25052501
    2506 /* 2025年フッターバー対策 */
     2502/* GRAVITY以降、固定フッター対策 */
    25072503@media (max-width: 767px) {
    2508   body:has(.p-footer-fix) .p-toc-open {
     2504  /* アイコンメニュー */
     2505  body:has(.p-footer-fix-nav) .p-toc-open {
    25092506    margin-bottom: 40px;
     2507  }
     2508  /* バナーCTA NOTE: バナー表示中は非表示 */
     2509  body:has(.p-footer-fix-cta-image) .p-toc-open {
     2510    display: none;
     2511  }
     2512  /* テキストCTA */
     2513  body:has(.p-footer-fix-cta-text) .p-toc-open {
     2514    margin-bottom: 55px;
    25102515  }
    25112516}
     
    26402645}
    26412646
    2642 @container tcdce (max-width: 400px) {
     2647@container tcdce (max-width: 600px) {
    26432648  .tcdce-tab {
    26442649    font-size: 14px;
  • tcd-classic-editor/trunk/assets/css/utility.css

    r3236860 r3248450  
    867867img.frame {
    868868  border: 1px solid #d2d2d2;
    869   margin-bottom: -12px;
    870869  box-shadow: 0 6px 6px -6px #cccccc;
    871870}
  • tcd-classic-editor/trunk/assets/js/admin-ui.js

    r3235706 r3248450  
    4848    $(this).attr("type", "submit").closest("form").submit();
    4949  });
     50
     51  // インポート/エクスポートの表示切り替え
     52  $(document).on("click", function (e) {
     53    if (
     54      !$(e.target).closest(".js-tcdce-setting-data-form").length &&
     55      !$(e.target)
     56        .closest(".tcdce-setting-data-action")
     57        .find(".js-tcdce-setting-data-form-input:checked").length
     58    ) {
     59      $(".js-tcdce-setting-data-form-input:checked")
     60        .removeAttr("checked")
     61        .prop("checked", false)
     62        .change();
     63    }
     64  });
     65
     66  // インポート実行後のメッセージ
     67  const url = new URL(window.location.href);
     68  if (url.searchParams.get("imported")) {
     69    // パラメータ削除
     70    url.searchParams.delete("imported");
     71    window.history.replaceState({}, "", url.toString());
     72    // メッセージ表示切り替え
     73    const page = document.getElementById("js-tcdce-page");
     74    page?.classList.add("is-imported");
     75    setTimeout(() => {
     76      page?.classList.remove("is-imported");
     77    }, 5000);
     78  }
    5079});
    5180
  • tcd-classic-editor/trunk/assets/js/editor.js

    r3235706 r3248450  
    11document.addEventListener("DOMContentLoaded", (event) => {
    22  // 本文のマージン対策
     3  const entryContents = document.querySelectorAll(".tcdce-body");
     4  if (entryContents) {
     5    entryContents.forEach((el) => {
     6      // 条件を判定するための関数
     7      const isTextOnlyParagraph = (el) => {
     8        // pタグじゃなければ終了
     9        if (!el || el.tagName?.toLowerCase() !== "p") return false;
     10
     11        // 画像を含む場合は終了
     12        if (el.querySelector("img")) {
     13          return false;
     14        }
     15
     16        // テキストが空白だけなら除外
     17        const text = el.textContent.trim();
     18        if (!text) {
     19          // テキストが完全に空ならfalse
     20          return false;
     21        }
     22
     23        return true;
     24      };
     25
     26      // 最初の要素
     27      const firstEl = el.firstElementChild;
     28      if (isTextOnlyParagraph(firstEl)) {
     29        firstEl.style.marginTop = "calc((1em - 1lh) / 2)";
     30      }
     31
     32      // 最後の要素
     33      const lastEl = el.lastElementChild;
     34      if (isTextOnlyParagraph(firstEl)) {
     35        firstEl.style.marginBottom = "calc((1em - 1lh) / 2)";
     36      }
     37    });
     38  }
    339
    440  // marker
  • tcd-classic-editor/trunk/classes/class-tcdce-admin-menu.php

    r3235706 r3248450  
    212212        <?php esc_html_e( 'Settings reset.', 'tcd-classic-editor' ); ?>
    213213    </div>
     214    <div class="tcdce-message--imported">
     215        <?php esc_html_e( 'Import is complete.', 'tcd-classic-editor' ); ?>
     216    </div>
    214217</div>
    215218<?php
  • tcd-classic-editor/trunk/classes/class-tcdce-editor.php

    r3235706 r3248450  
    7777            }
    7878
     79            // the_content フィルター
     80            add_filter( 'the_content', array( $this, 'the_content' ), 8 );
     81
    7982            // エディターの本文をdivで囲むフィルター
    80             add_filter( 'the_content', array( $this, 'the_content' ), 8 );
     83            // NOTE: 誤って動作するのを防ぐため、wpautopよりも遅いタイミングで実行する
     84            add_filter( 'the_content', function( $content ){
     85                return '<div class="tcdce-body">' . $content . '</div>';
     86            }, 11 );
    8187
    8288            // ページ分割のマークアップ上書き
     
    125131            }
    126132
    127             // エディター用クラス
    128             $content = '<div class="tcdce-body">' . $content . '</div>';
    129 
    130133            return $content;
    131 
    132134        }
    133135
     
    173175     */
    174176    public function admin_init() {
     177            global $pagenow;
     178
     179            // コメント一覧、コメント編集ページではクイックタグを読み込まない
     180            if( in_array( $pagenow, [ 'comment.php', 'edit-comments.php' ], true ) ){
     181                return;
     182            }
    175183
    176184            // tinymceのスクリプト登録
     
    404412
    405413                $post = get_post( $post_id );
    406                 $image = get_the_post_thumbnail_url( $post_id );
     414                $image = get_the_post_thumbnail_url( $post_id, 'tcdce-s' );
    407415                $title = get_the_title( $post );
    408416                $date = get_the_date( 'Y.m.d', $post );
  • tcd-classic-editor/trunk/helper.php

    r3235706 r3248450  
    106106}
    107107add_action( 'admin_init', 'tcdce_redirect_site_editor_patterns_to_classic' );
     108
     109
     110/**
     111 * インポート / エクスポート ボタン
     112 */
     113function tcdce_import_export_view( $option = 'tcdce_quicktag' ){
     114  global $plugin_page;
     115?>
     116<div class="tcdce-setting-data">
     117  <label class="tcdce-setting-data-action">
     118    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="currentColor"><path d="M460-249.23h40V-437l84 84 28.31-28.54L480-513.85 347.69-381.54l28.54 28.31L460-437v187.77ZM264.62-120q-27.62 0-46.12-18.5Q200-157 200-184.62v-590.76q0-27.62 18.5-46.12Q237-840 264.62-840H580l180 180v475.38q0 27.62-18.5 46.12Q723-120 695.38-120H264.62ZM560-640v-160H264.62q-9.24 0-16.93 7.69-7.69 7.69-7.69 16.93v590.76q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69h430.76q9.24 0 16.93-7.69 7.69-7.69 7.69-16.93V-640H560ZM240-800v160-160 640-640Z"/></svg>
     119    <input class="js-tcdce-setting-data-form-input" type="checkbox" style="display:none;">
     120    <?php esc_html_e( 'Import', 'tcd-classic-editor' ); ?>
     121  </label>
     122  <div class="js-tcdce-setting-data-form tcdce-setting-data-form">
     123    <?php esc_html_e( 'Import exported data to restore settings.', 'tcd-classic-editor' ); ?>
     124    <form method="post" enctype="multipart/form-data" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
     125      <?php wp_nonce_field( 'tcdce_import' ); ?>
     126      <input type="hidden" name="action" value="tcdce_import_action" />
     127      <input type="hidden" name="setting" value="<?php echo esc_attr( $option ); ?>" />
     128      <input type="hidden" name="base_url" value="<?php echo esc_url( menu_page_url( $plugin_page, false ) ); ?>" />
     129      <input type="file" name="tcdce_import_file" accept=".json" onchange="this.setAttribute('data-file',this.files.length)" />
     130      <input type="submit" class="tcdce-setting-data-form-button" value="<?php esc_html_e( 'Import', 'tcd-classic-editor' ); ?>" />
     131    </form>
     132  </div>
     133  <label class="tcdce-setting-data-action">
     134    <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="currentColor"><path d="M720-148.46 851.54-280 824-307.54l-84 84V-419h-40v195.46l-84-84L588.46-280 720-148.46ZM580-20v-40h280v40H580ZM244.62-180q-26.08 0-45.35-19.27Q180-218.54 180-244.62v-550.76q0-26.08 19.27-45.35Q218.54-860 244.62-860H520l220 220v125.62h-40V-620H500v-200H244.62q-9.24 0-16.93 7.69-7.69 7.69-7.69 16.93v550.76q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69h240v40h-240ZM220-220v-600 600Z"/></svg>
     135    <input class="js-tcdce-setting-data-form-input" type="checkbox" style="display:none;">
     136    <?php esc_html_e( 'Export', 'tcd-classic-editor' ); ?>
     137  </label>
     138  <div class="js-tcdce-setting-data-form tcdce-setting-data-form">
     139    <?php esc_html_e( 'Download the current configuration as a JSON file.', 'tcd-classic-editor' ); ?>
     140    <form method="get" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
     141      <?php wp_nonce_field( 'tcdce_export' ); ?>
     142      <input type="hidden" name="action" value="tcdce_export_action" />
     143      <input type="hidden" name="setting" value="<?php echo esc_attr( $option ); ?>" />
     144      <input type="submit" class="tcdce-setting-data-form-button" value="<?php esc_html_e( 'Export', 'tcd-classic-editor' ); ?>" />
     145    </form>
     146  </div>
     147</div>
     148<?php
     149}
     150
     151
     152/**
     153 * インポート処理
     154 */
     155add_action( 'admin_post_tcdce_import_action', 'tcdce_import_action' );
     156function tcdce_import_action() {
     157
     158  // nonce認証
     159  check_admin_referer( 'tcdce_import' );
     160
     161  // 設定ページのリンクがなければ終了
     162  $setting = sanitize_text_field( wp_unslash( $_POST['setting'] ?? '' ) );
     163  $setting_page_url =sanitize_text_field( wp_unslash( $_POST['base_url'] ?? '' ) );
     164  if( ! $setting || ! $setting_page_url ){
     165    wp_die( esc_html__( 'Incorrect setting item.', 'tcd-classic-editor' ) );
     166  }
     167
     168  // ファイルがアップロードされていなければ終了
     169  if ( empty( $_FILES['tcdce_import_file']['tmp_name'] ) ) {
     170    wp_die(
     171      esc_html__( 'File has not been uploaded.', 'tcd-classic-editor' ),
     172      'Import error',
     173      [ 'back_link' => true ]
     174    );
     175  }
     176
     177  // ファイルの中身を読み取り
     178  $uploaded_file_path = sanitize_text_field( wp_unslash( $_FILES['tcdce_import_file']['tmp_name'] ) );
     179  $json_string = file_get_contents( $uploaded_file_path );
     180  if (! $json_string) {
     181    wp_die(
     182      esc_html__( 'Failed to load uploaded file. The file may be corrupted.', 'tcd-classic-editor' ),
     183      'Import error',
     184      ['back_link' => true]
     185    );
     186  }
     187
     188  // JSON のパース
     189  try {
     190    $decoded = json_decode( $json_string, true, 512, JSON_THROW_ON_ERROR );
     191  } catch (\JsonException $e) {
     192    // JSONのパースに失敗した場合
     193    wp_die(
     194      esc_html__( 'JSON parsing failed. Please upload a file in the correct format.', 'tcd-classic-editor' ),
     195      'Import error',
     196      ['back_link' => true]
     197    );
     198  }
     199
     200  // パース結果が配列かどうかチェック
     201  if ( ! is_array( $decoded ) ) {
     202    wp_die(
     203      esc_html__( 'This is not expected data. Please upload the corresponding JSON format file.', 'tcd-classic-editor' ),
     204      'Import error',
     205      ['back_link' => true]
     206    );
     207  }
     208
     209  // オプションを上書き
     210  update_option( $setting, $decoded );
     211
     212  // 終了後にリダイレクト
     213  wp_safe_redirect( add_query_arg( [ 'imported' => 1 ], $setting_page_url ) );
     214  exit;
     215}
     216
     217
     218/**
     219 * エクスポート処理
     220 */
     221add_action( 'admin_post_tcdce_export_action', 'tcdce_export_action' );
     222function tcdce_export_action() {
     223
     224  // nonce認証
     225  check_admin_referer( 'tcdce_export' );
     226
     227  // optionの設定キー
     228  $setting = sanitize_text_field( wp_unslash( $_GET['setting'] ?? '' ) );
     229  if( ! $setting ){
     230    wp_die( esc_html__( 'Incorrect setting item.', 'tcd-classic-editor' ) );
     231  }
     232
     233  // 現在のオプションを取得
     234  $option_data = get_option( $setting );
     235
     236  // JSON 化
     237  try {
     238    $json_data = json_encode(
     239      $option_data,
     240      JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE
     241    );
     242  } catch (\JsonException $e) {
     243      // JSONエンコード失敗時
     244    wp_die( esc_html__( 'Failed to create JSON data for export.', 'tcd-classic-editor' ) );
     245  }
     246
     247  // 日付文字列 (例: 20250218)
     248  $date_str = wp_date( 'Ymd' );
     249
     250  // ダウンロードファイル名を組み立て
     251  $filename = "{$setting}-{$date_str}.json";
     252
     253  // ダウンロード用のヘッダーを送信
     254  header( 'Content-Type: application/json; charset=utf-8' );
     255  header( "Content-Disposition: attachment; filename=\"{$filename}\"" );
     256  header( 'Cache-Control: no-cache, must-revalidate' );
     257  header( 'Expires: 0' );
     258
     259  // JSON を出力して終了
     260  // echo $json_data;
     261  echo wp_kses( $json_data, wp_kses_allowed_html( 'tcdce' ) );
     262  exit;
     263}
  • tcd-classic-editor/trunk/languages/ja.po

    r3236860 r3248450  
    33"Project-Id-Version: design-plus\n"
    44"Report-Msgid-Bugs-To: https://core.trac.wordpress.org/\n"
    5 "POT-Creation-Date: 2025-02-06 06:05+0900\n"
    6 "PO-Revision-Date: 2025-02-06 08:15+0900\n"
     5"POT-Creation-Date: 2025-02-28 20:38+0900\n"
     6"PO-Revision-Date: 2025-02-28 20:38+0900\n"
    77"Last-Translator: Design Plus <support@wp-dp.com>\n"
    88"Language-Team: design plus\n"
     
    5252msgstr "設定をリセットしました。"
    5353
    54 #: classes/class-tcdce-admin-menu.php:237
     54#: classes/class-tcdce-admin-menu.php:215
     55msgid "Import is complete."
     56msgstr "インポートが完了しました。"
     57
     58#: classes/class-tcdce-admin-menu.php:240
    5559#: classes/support/class-tcdce-support.php:726
    5660msgid "Settings"
     
    6872msgstr "デフォルト"
    6973
    70 #: classes/class-tcdce-editor.php:233 setting/quicktag.php:17
     74#: classes/class-tcdce-editor.php:241 setting/quicktag.php:17
    7175#: setting/start-guide.php:33
    7276msgid "Quicktag"
    7377msgstr "クイックタグ"
    7478
    75 #: classes/class-tcdce-editor.php:262
     79#: classes/class-tcdce-editor.php:270
    7680msgid "2 column"
    7781msgstr "2カラム"
    7882
    79 #: classes/class-tcdce-editor.php:263 classes/class-tcdce-editor.php:268
     83#: classes/class-tcdce-editor.php:271 classes/class-tcdce-editor.php:276
    8084msgid "Text and image tags to display in the left column"
    8185msgstr "ここに左カラムに表示させたい任意のテキストや画像タグを入力します"
    8286
    83 #: classes/class-tcdce-editor.php:263 classes/class-tcdce-editor.php:268
     87#: classes/class-tcdce-editor.php:271 classes/class-tcdce-editor.php:276
    8488msgid "Text and image tags to display in the right column"
    8589msgstr "ここに右カラムに表示させたい任意のテキストや画像タグを入力します"
    8690
    87 #: classes/class-tcdce-editor.php:267
     91#: classes/class-tcdce-editor.php:275
    8892msgid "3 column"
    8993msgstr "3カラム"
    9094
    91 #: classes/class-tcdce-editor.php:268
     95#: classes/class-tcdce-editor.php:276
    9296msgid "Text and image tags to display in the center column"
    9397msgstr "ここに真ん中カラムに表示させたい任意のテキストや画像タグを入力します"
    9498
    95 #: classes/class-tcdce-editor.php:272
     99#: classes/class-tcdce-editor.php:280
    96100msgid "Tab"
    97101msgstr "タブ"
    98102
    99 #: classes/class-tcdce-editor.php:273
     103#: classes/class-tcdce-editor.php:281
    100104msgid ""
    101105"[tcd_tab tab1=\"Tab1 headline\" img1=\"Tab1 image url\" tab2=\"Tab2 "
     
    105109"\" img2=\"タブ2の画像URL\"]"
    106110
    107 #: classes/class-tcdce-editor.php:424
     111#: classes/class-tcdce-editor.php:432
    108112msgid "Please enter the correct URL."
    109113msgstr "正しいURLを入力してください。"
    110114
    111 #: classes/class-tcdce-editor.php:521
     115#: classes/class-tcdce-editor.php:529
    112116msgid "The address has not been entered."
    113117msgstr "住所が入力されておりません。"
    114118
    115 #: classes/class-tcdce-editor.php:528
     119#: classes/class-tcdce-editor.php:536
    116120msgid "Google Maps Platform API key not entered."
    117121msgstr "Google Maps Platform APIキーが入力されておりません。"
     
    334338msgstr "ブロックエディター"
    335339
     340#: helper.php:120 helper.php:130
     341msgid "Import"
     342msgstr "インポート"
     343
     344#: helper.php:123
     345msgid "Import exported data to restore settings."
     346msgstr "エクスポートしたデータをインポートして設定を復元します。"
     347
     348#: helper.php:136 helper.php:144
     349msgid "Export"
     350msgstr "エクスポート"
     351
     352#: helper.php:139
     353msgid "Download the current configuration as a JSON file."
     354msgstr "現在の設定をJSONファイルとしてダウンロードします。"
     355
     356#: helper.php:165 helper.php:230
     357msgid "Incorrect setting item."
     358msgstr "不正な設定項目です。"
     359
     360#: helper.php:171
     361msgid "File has not been uploaded."
     362msgstr "ファイルがアップロードされていません。"
     363
     364#: helper.php:182
     365msgid "Failed to load uploaded file. The file may be corrupted."
     366msgstr ""
     367"アップロードされたファイルの読み込みに失敗しました。ファイルが破損している可"
     368"能性があります。"
     369
     370#: helper.php:194
     371msgid "JSON parsing failed. Please upload a file in the correct format."
     372msgstr ""
     373"JSON のパースに失敗しました。正しい形式のファイルをアップロードしてください。"
     374
     375#: helper.php:203
     376msgid ""
     377"This is not expected data. Please upload the corresponding JSON format file."
     378msgstr ""
     379"想定されるデータではありません。対応したJSON形式のファイルをアップロードして"
     380"ください。"
     381
     382#: helper.php:244
     383msgid "Failed to create JSON data for export."
     384msgstr "エクスポート用 JSON データ作成に失敗しました。"
     385
    336386#: setting/basic.php:17 setting/start-guide.php:28
    337387msgid "Basic settings"
     
    449499msgstr "背景色"
    450500
    451 #: setting/quicktag.php:122
     501#: setting/quicktag.php:121
    452502msgid "The ability to add quick tags to the classic editor."
    453503msgstr "クラシックエディタにクイックタグを追加できる機能です。"
    454504
    455 #: setting/quicktag.php:123
     505#: setting/quicktag.php:122
    456506msgid ""
    457507"Add headings, lists, buttons, and other items you need to use your own quick "
     
    461511"を利用できます。"
    462512
    463 #: setting/quicktag.php:124
     513#: setting/quicktag.php:123
    464514msgid ""
    465515"We have already designed presets for you to set up each quick tag. Please "
     
    469519"す。お好みのプリセットを選択してから、お客様自身でご調整ください。"
    470520
    471 #: setting/quicktag.php:141
     521#: setting/quicktag.php:142
    472522msgid "Registered Quicktags"
    473523msgstr "登録済みクイックタグ"
    474524
    475 #: setting/quicktag.php:174
     525#: setting/quicktag.php:175
    476526msgid "Quicktags you can add"
    477527msgstr "追加できるクイックタグ"
    478528
    479 #: setting/quicktag.php:213
     529#: setting/quicktag.php:214
    480530#, php-format
    481531msgid "%s Presets"
    482532msgstr "%sプリセット"
    483533
    484 #: setting/quicktag.php:216
     534#: setting/quicktag.php:217
    485535msgid "Close"
    486536msgstr "閉じる"
    487537
    488 #: setting/quicktag.php:221
     538#: setting/quicktag.php:222
    489539msgid "Hover the mouse cursor over the button to see the hover animation."
    490540msgstr "ボタンにマウスカーソルをあてると、ホバーアニメーションを確認できます。"
    491541
    492 #: setting/quicktag.php:248
     542#: setting/quicktag.php:249
    493543msgid "Load Preset"
    494544msgstr "プリセットを読み込む"
     
    670720
    671721#: setting/quicktag/box.php:401 setting/quicktag/heading.php:674
    672 #: setting/quicktag/ol.php:403 setting/quicktag/sb.php:302
     722#: setting/quicktag/ol.php:403 setting/quicktag/sb.php:303
    673723#: setting/quicktag/ul.php:382
    674724msgid "Border color"
     
    708758#: setting/quicktag/box.php:515 setting/quicktag/button.php:374
    709759#: setting/quicktag/heading.php:900 setting/quicktag/ol.php:553
    710 #: setting/quicktag/sb.php:311 setting/quicktag/ul.php:506
     760#: setting/quicktag/sb.php:313 setting/quicktag/ul.php:506
    711761msgid "Margin"
    712762msgstr "マージン"
     
    714764#: setting/quicktag/box.php:517 setting/quicktag/button.php:376
    715765#: setting/quicktag/heading.php:902 setting/quicktag/ol.php:555
    716 #: setting/quicktag/sb.php:313 setting/quicktag/ul.php:508
     766#: setting/quicktag/sb.php:315 setting/quicktag/ul.php:508
    717767msgid "Margin top"
    718768msgstr "上の余白"
     
    720770#: setting/quicktag/box.php:530 setting/quicktag/button.php:390
    721771#: setting/quicktag/heading.php:916 setting/quicktag/ol.php:568
    722 #: setting/quicktag/sb.php:326 setting/quicktag/ul.php:521
     772#: setting/quicktag/sb.php:328 setting/quicktag/ul.php:521
    723773msgid "Margin bottom"
    724774msgstr "下の余白"
  • tcd-classic-editor/trunk/readme.txt

    r3236860 r3248450  
    44Requires at least: 6.7
    55Tested up to: 6.7
    6 Stable tag: 1.1.1
     6Stable tag: 1.2
    77Requires PHP: 8.0
    88License: GPLv2 or later
     
    4747
    4848== Changelog ==
     49= 1.2 =
     50* Changed: Implemented import/export functionality and fixed styling issues.
     51
    4952= 1.1.1 =
    5053* Updated: Minor CSS adjustments for improved design.
    5154
    52 = 1.1.0 =
     55= 1.1 =
    5356* Official stable release after test version
    5457
    55 = 1.0.0 =
     58= 1.0 =
    5659* Initial test release
    5760
  • tcd-classic-editor/trunk/setting/quicktag.php

    r3235706 r3248450  
    8282
    8383  return apply_filters( "tcdce_quicktag_setting_default", $default );
    84 
    8584}
    8685
     
    130129?>
    131130  <div class="tcdce-setting">
     131    <?php // インポート / エクスポート ?>
     132    <?php tcdce_import_export_view(); ?>
    132133    <form id="js-tcdce-form" class="tcdce-setting__form" action="options.php" method="post">
    133134<?php
  • tcd-classic-editor/trunk/setting/quicktag/sb.php

    r3235706 r3248450  
    297297      'title' => __( 'Background color', 'tcd-classic-editor' ),
    298298      'col' => 2,
    299       'field' => $instance->color( $style_name, $style_value, '--tcdce-sb-preset-color--bg' )
     299      'field' => $instance->color( $style_name, $style_value, '--tcdce-sb-preset-color--bg' ),
     300      'class' => 'tcdce-sb-bg-color'
    300301    ),
    301302    array(
    302303      'title' => __( 'Border color', 'tcd-classic-editor' ),
    303304      'col' => 2,
    304       'field' => $instance->color( $style_name, $style_value, '--tcdce-sb-preset-color--border' )
     305      'field' => $instance->color( $style_name, $style_value, '--tcdce-sb-preset-color--border' ),
     306      'class' => 'tcdce-sb-border-color'
    305307    ),
    306308
  • tcd-classic-editor/trunk/tcd-classic-editor.php

    r3236860 r3248450  
    44 * Plugin URI:
    55 * Description: This is a classic editor extension plug-in for TCD users.
    6  * Version: 1.1.1
     6 * Version: 1.2
    77 * Author: TCD
    88 * Author URI: https://tcd-theme.com/
     
    6565);
    6666
     67// add image size
     68add_image_size( 'tcdce-s', 300, 300, true );
     69
    6770// helper
    6871require_once TCDCE_PATH . 'helper.php';
Note: See TracChangeset for help on using the changeset viewer.