Форма канала: як explcitly выдаліць выбраную катэгорыю праз схаванае поле на аснове першаснага значэння Cateogry

Гэта дзіўная сітуацыя, я прызнаю.

I'm using Channel Forms to make all entries on my site created & editable via the front-end.

У мяне ёсць катэгорыя групы месцазнаходжанне.

Я выкарыстоўваю асноўную катэгорыю, каб дазволіць карыстачу паказаць, што іх асноўнае месцазнаходжанне. Некаторыя платныя запісу прэміум таксама могуць быць прызначаныя дадатковыя катэгорыі (месцазнаходжання).

У CP, калі вы паказваеце катэгорыю ў якасці асноўнай катэгорыі, ён аўтаматычна выбірае гэтую катэгорыю, нават калі ён быў раней абраны. Гэта bahaviour не пераносіцца на формы канала. Калі я выбіраю асноўную катэгорыю праз пярэдні канец ўтварае катэгорыя не фактычна абраная. Я выкарыстоўваю JavaScript на форме ўявіць, каб скапіяваць першасны ідэнтыфікатар катэгорыі для схаванай катэгорыі [] поле, каб пераканацца, што абраная катэгорыя. Гэта выдатна працуе на стварэнне новага ўваходу.

Складанасць ўзнікае на ўваход рэдагавання праз канал формаў.

Цяпер, калі я змяніць першасны Cateogry, я магу выкарыстоўваць той жа JavaScript, каб прызначыць гэты кот ID як значэнне схаванага поля, <моцны> але як адмяніць старую асноўную катэгорыю? Калі я не зніміце старую катэгорыю, калі Асноўная катэгорыя змяняецца, аўтар можа дадаць свой запіс на ўсё больш і больш месца, калі яны працягваюць змяняць асноўную катэгорыю, калі ў большасці выпадкаў я хачу, каб абмежаваць іх маючы толькі адзін Primary абранай катэгорыі.

Такім чынам, у сутнасці, мне трэба схаванае поле формы са значэннем, эквівалентным нешта накшталт гэтага:

<input type="hidden" name="category[]" value="not {some-cat-id}" />

Ці іншы творчае рашэнне выкарыстаць Channel Form (Змяніць запіс), каб адмяніць старую асноўную катэгорыю, калі абраны новы адзін.

0
Поле катэгорыі можа мець некалькі варыянтаў абраныя такім чынам, гэта вызначаюцца як імя масіва = «: катэгорыя, []», што азначае, калі вы дадаеце новае значэнне ў тым, што я не думаю, што яна выдаляе іншыя існуючыя значэння. Я ў цяперашні час выкарыстоўваю поле выбару для primary_category поля, якое функцыянуе нармальна сама па сабе, але не мае ніякага дачынення да катэгорыі [] палёў. Што мне трэба зрабіць, гэта падключыць яго з катэгорыяй [] поле, каб выдаліць «старую» асноўную катэгорыю, калі абраны новы адзін. Гэта можа працаваць з множным выбарам скрынкай і JS, але ў маім выпадку мне трэба выкарыстоўваць сцяжкі для дадатковага выбару катэгорыі.
дададзена аўтар David A Gibson, крыніца
Я знайшоў рашэнне, якое працуе для мяне на аснове наводкі адказу, які з тых часоў быў выдалены аўтарам. Калі хто-небудзь хоча, каб прыняць ўдар на гэта адказваць, я да гэтага часу шчадротаў выдаваць!
дададзена аўтар David A Gibson, крыніца
Я думаю, што проста усталяваўшы схаванае поле для новай катэгорыі сатрэ стары. Калі няма, то вы спрабавалі з дапамогай выбару замест гэтага, дакладна, як у канале з'яўляецца прыкладам ( ellislab.com/expressionengine/user-guide/modules/channel/… ) і проста зніміце/ўсталюйце адпаведныя катэгорыі з JavaScript?
дададзена аўтар Seamus Lee, крыніца

адказаў няма

0