์๋์ผ๋ก ์ถ๊ฐ๋๋ ์ผ๋ถ ํ๋ฌ๊ทธ์ธ์ ๊ฒฝ์ฐ Redactor์ addButtonBefore
๋๋ addButtonAfter
๋ค๋ฅธ ํน์ ๋ฒํผ์ ์ง์ํฉ๋๋ค...
Craft ํ๋ฌ๊ทธ์ธ์ด Redactor ํ๋ฌ๊ทธ์ธ์ด ํ์๋๋ ์์๋ฅผ ๊ฒฐ์ ํด์๋ ์ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์์ ์ผ๋ก๋ JSON ํ์ผ์ ๋์ด๋ ์์๋๋ก ํ์๋ฉ๋๋ค.
"buttons": [
"bold",
"italic",
"underline",
"link",
"lists"
],
"plugins": [
"alignment",
"table" <--- Table is at the end
],
Craft ํ๋ฌ๊ทธ์ธ์ด ์ด๋ฌํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ด ์ฌ์ฉ์ ์ง์ ๋๊ตฌ ๋ชจ์์์ ์ด์ํ ๋์์ด ๋ฐ์ํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ(์ table
)์ ์ถ๊ฐํ๋ฉด ๋๊ตฌ ๋ชจ์์ _ํน์ _ ์์น์ ์๋์ผ๋ก ๋ฐฐ์น๋ฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ๋ฒํผ์ด ๋ด๊ฐ ๋ฐฐ์นํ ์์น๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ํผ๋์ค๋ฝ์ต๋๋ค .
์ฌ์ ์ค์ ๋ ์ฃผ๋ฌธ ๊ธฐ๋ณธ ์ค์ ์ ์ ๊ฑฐํ ์ ์์ต๋๊น? ์๋๋ฉด ์ด๋ป๊ฒ ๋ ๊ทธ๊ฒ๋ค์ ์ฌ์ ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋์๊ฒ ์ต๋๊น?
์ด๊ฒ๋ค์ Redactor์์ ์ ๊ณตํ๋ ํ๋ฌ๊ทธ์ธ์ด๋ฏ๋ก ํด๋น ์ฝ๋๋ฅผ ์กฐ์ํ๋ ๊ฒ์ด ์ผ๋ง๋ ํ๋ช ํ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
ํ, ๋๋ ๊ทธ๊ฒ์ด ๋จ์ง Craft๊ฐ ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌํํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. Redactor๊ฐ ํด๋น ๋ฒํผ์ด ํ์๋๋ ์์น์ ๋ํด ๊ทธ๋ ๊ฒ ์๊ฒฉํ๋ค๋ ๊ฒ์ ์ด์ํฉ๋๋ค... Redactor์ ์ ์ฒด ์์ ์ ์ ์ฐ์ฑ์ด ์๋๊ฐ์?
๊ทธ๊ฒ์ ์ฌ์ ์ ํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ํ ์ด๋ธ ๋ฒํผ์ด _๋ฐ๋์_ ๋งํฌ ๋ฒํผ ์์ ์์ด์ผ ํ๋ค๋ ์ฌ์ค์ด ๋ฏฟ๊ธฐ ์ด๋ ต์ต๋๋ค. ์์ธ๋ ์์ต๋๋ค. ๐
์ผ๋ถ JS ์ฝ๋๋ก ์ด๋ฅผ ์ฌ์ ์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ์๋ ์์ง๋ง, ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ฌ๋ฐ๋ฅด๊ฒ ํฉ์๋ค.
ํ ์ด๋ธ ๋ฒํผ์ ์ค๊ฐ์ ์ฝ์ ํ๊ธฐ๋ฅผ _์ํ์๋ฉด_ ๊ตฌ์ฑ์์ ์ด๊ฒ์ ์ด๋ป๊ฒ ์ ์ํ์๊ฒ ์ต๋๊น?
ํ ... ์ข์ ์ง๋ฌธ์ ๋๋ค. Redactor๋ ์ด๋ฏธ ๋จ์ถ๋ฅผ ๋ฐฐ์ดํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ถ์ฃผํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด์์ ์ผ๋ก๋ before
๋ฐ after
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ์์น์ ๋ฐฐ์นํ ์ ์์ต๋๋ค.
https://imperavi.com/redactor/docs/settings/button/#s -buttonsaddafter
๊ทธ๋ฌ๋ ์ต์
์ ์๋๋ฆฌ์ค์์๋ plugins
๋ฐฐ์ด์ ๋ฃ์ ์์น์ ์ ํํ ์ฐฉ๋ฅํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค...
"plugins": [
"alignment",
"fontcolor",
"table", <--- Table should be in the middle
"fullscreen",
"clips"
]
@lindseydiloreto ๋ด๊ฐ ์๋ฏธํ๋ ๋ฐ๋ ์๋ฅผ ๋ค์ด ๋ณผ๋์ฒด์ ์ดํค๋ฆญ์ฒด ๋ฒํผ ์ฌ์ด์ ์ฝ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
"์ด๋ป๊ฒ ์๋ํ๋์ง ์์ํ ์ ์์ต๋๊น?"๋ผ๊ณ ๋ฌป๊ณ ์์ต๋๊น? ์๋ง๋ ์ด๋ฐ ์ผ์ด...
"buttonsAddAfter": {
"after": "bold",
"buttons": ["table"] // Places the plugin button
},
"plugins": [
"table" // Loads the plugin
],
... ๋๋ ์๋ง๋ ์ด์ ๊ฐ์ด ...
"pluginsAddAfter": {
"after": "bold",
"buttons": ["table"] // Loads & places the button
},
Redactor ๋ฐ/๋๋ Craft ํ๋ฌ๊ทธ์ธ์ด ์ด๋ฏธ ์ํํ๊ณ ์๋ ์์ ์ ์ผ๋ง๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด ์ปค๋ฐ ์ ๋ณด๋ฉด Craft ํ๋ฌ๊ทธ์ธ์ด ๋๋๋ก Redactor์ ํจ๊ป ๋ฌด์ฐจ๋ณ ๋์ ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋น์ ์ ์๊ฐ์ ์๋ ค์ฃผ๊ฑฐ๋ ์ง๋ฌธ์ ์์ ํ ์๋ชป ์ดํดํ๋ค๋ฉด! ๐
ํธ์ง์๊ฐ ๋ฐฐ์ด์ ์ ์๋ ๋ฒํผ์ ์์๋๋ก ์ ๋ ฌํ ์ ์๋ค๋ ๊ฒ์ ์ ๋ง ์ด์ํ ์ผ์ ๋๋ค. ๋ฒํผ์ ์ ์ํ ๋ ์์๋๋ ๊ธฐ๋ณธ ๋์์ ๋๋ค. redactor๊ฐ ์ ๋ฃ ๋๊ตฌ๋ผ๋ ์ ์ ๊ณ ๋ คํ ๋ ๋ ๋ง์ ์ ์ฐ์ฑ๊ณผ ์์ธก ๊ฐ๋ฅ์ฑ์ ์ํฉ๋๋ค.
๋ช ๋ฌ์ด ๊ฑธ๋ ธ์ง๋ง ๋ง์นจ๋ด ์๋ก์ด enforceButtonOrder
Redactor ๊ตฌ์ฑ ์ต์
์ ํํ๋ก ์๋ฃจ์
์ด ์ ๊ณต๋์์ต๋๋ค!
(๋ค์ ๋ฆด๋ฆฌ์ค์ ํจ๊ป)
์, ๋ฉ์ง @andris-sevcenko! ๊ทธ๊ฒ์ ์ ์ ๋ฆฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ OCD๋ ํจ์ฌ ๋ ํ๋ณตํ ๊ฒ์ ๋๋ค. ๐
ํ์ ์ ์ํด ๊ทธ๊ฒ์ ๊ธฐ๋ค๋ฆด ์ ์์ด! ๐บ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ช ๋ฌ์ด ๊ฑธ๋ ธ์ง๋ง ๋ง์นจ๋ด ์๋ก์ด
enforceButtonOrder
Redactor ๊ตฌ์ฑ ์ต์ ์ ํํ๋ก ์๋ฃจ์ ์ด ์ ๊ณต๋์์ต๋๋ค!