Как да инсталирам тема?

ReminD

Well-Known Member
clickbait заглавие, за да го видят повече хора
Здравейте, някой може ли да шеърне някакви четива или да сподели личен опит ако е правил template engine.
Идеята ми е даден сайт да може лесно да си сменя views посредством upload на темплейт файлове.
Пример:
да кажем портал за новини, какви принципи да спазя за да направя читаво theme/ templates support. Идеята е въпросният сайт/ script идва с default view и потребителите / ползвателите на въпросния сайт да могат да сменят темата или да разработят собсвена такава.

Друг user-case - имам моя разработена платформа, която смятам да публикувам безплатно. Към нея отделно искам да има различни themes, които след това потребителите да инсталират с някакъв upload за най-лесно.
Как да подходя откъм имплементация? Един интерфейс, който дава ясни правила какво е то menu/ post/ header и т.н.. и валидира дали нещото е theme? Да кажем I/O върху .zip и след това чекваме за .css и т.н.. задължителни файлове и чак след това рендира ако интерфейса е спазен? И какъв шаблон за дизайн трябва да спазва това откъм имплементация и ооп? Много съм объркан, идват ми някакви идеи, но не искам да пиша известно време и да се окаже спагети код. Става въпрос за php / nodeJS-ExpressJS, но предполагам нещата са фундаментални, искам нещата да са читави, а не да стане "мазаляк", пък и да не е само за PHP, вие как бихте имплементирали подобно нещо и да е читаво написано, няма значение езика, ООП-то ме интересува как ще се скалъпи, майната му на езика и технологията.
Благодаря предварително
 
Кажи как да го направя, не мога да намеря инфо как да се закачи подобно нещо към същинския код и да е читаво коднато.
 
просто сменяш пътя до папката където е темата преди да я покажеш. нещо къстъм ли пишеш или ползваш framework?
А как да си гарантирам, че всичко е валидно? С интерфейс описващ нещата? И това как да го навържа към нещата, кога трябва да гръмне и изпищи с error? Всмисъл имаме upload Поле за theme, оттам нататък как се случват нещата? От към гледна точка на ООП и някакъв шаблон как трябва да се реализира като да е максимално разкачено от логиката.
 
Това ми звучи доста теоретично - като упражнение в училище.
От какъв зор някой ще иска да качва темплейт?
От какъв зор някой ще се съгласява да му ъплойдват на сайта php / nodeJS-ExpressJS или каквото и да е друго?
 
Това ми звучи доста теоретично - като упражнение в училище.
От какъв зор някой ще иска да качва темплейт?
От какъв зор някой ще се съгласява да му ъплойдват на сайта php / nodeJS-ExpressJS или каквото и да е друго?

Защо да не иска? Ако ти предлагаш нещо безплатно и искаш към него да закачиш теми, които да ги продаваш или да не ги , все тая, би искал да си направиш някаква стабилна архитектура на цялото приложение, за да може N-ти юзер да цъкне на сайта ти, да даде някакви долари и да купи темата, оттам да си я инсталира с няколко клика, вместо да го съпортваш няколко часа и да му нагласяш нещата :) .
 
Останах с впечатлението, че търсиш директен анонимен ъплойд на тема.
 
Въпроса с темите не е толкова прост. Ти ще имаш да кажем директория с теми 1,2,3 100. Те ще съдържат css, js и html кода. Идва обаче момента когато дадена тема и трябва нещо ново от бизнес логиката на контролера, да не стигаме и до модела. Там става вече мазалището и бъгове в логиката. Тоест моята мисъл е по-добре направи нещо стабилно, вместо да го окичваш с излишни неща. Есетвено може да се избере и друг подход към темите, в който си дизайнваш темата в един нов клон на сорс контрола и след това само добавяш клона, след като е тестван. Той замества изцяло съществуващата тема. Защото наред с темите ще искаш да добавяш и функционалности, тоест да надграждаш системата, което е правилния подход към всичко което се създава.
 
Значи първо взимаш някой temlate engine. Да кажем https://expressjs.com/en/guide/using-template-engines.html правиш си структурата на приложението и след това намираш начин да може лесно да се сменя папката в която се намират view-тата. Да кажем в папка views/default ще имаш тема по подразбиране в папка views/black ще имаш черна тема и тн.
Тук са написали как се сменя папката на view-to: https://stackoverflow.com/questions...on-where-is-the-file-that-res-render-is-calle
 
@bobbydigital това изглежда най-лесно както го описа, само да сменям вютата. Трябва само да го изнасиля да едитва и public папката
a6a0e2c1d577978d2013d766332a6638.png
.
Това е директорията на app-a, и се сещам ако има повече javascript-ове и статични файлове ще стане мазаляк.
Тоест правя си един файл, който се рънва като рънне и app-a, който пуска fs (file system модула ) , сканира за themes/ name + .Js / html, ако всичко е окей, рендерира, а при ъплоада, разархивира в отделна папка, цъка се бутон activate и тоя файл почва да пипа по app.express нещата и сменя views директорията. Seems legit на обяснения, ще видим какво ще се кодне накрая.
Или самия модул да прави require на папка от зип-а, която се казва static files и да я бута в публик папката, а другите файлове да отиват във views.
 
в тази папка views сега си направи една папка примерно default и сложи вътре в нея всички папки и файлове да стане:
views/default/categories
views/default/home
views/default/layouts

и тн. после задай на express че по подразбиране не е views ами е е views/default и после като искаш нова тема просто правиш нова папка например black и копираш всичко от default и даваш на express че view-тата са в views/black и тн.
 
Точно така смятам да направя, благодаря. Остава проблема със статичните файлове, но ще го измисля, като знам колко ме бива да пипам по файловата система с джаваскрипт... Накрая ще си остане смяната на файловете ръчно.
 
Оправих се, zip файл с css / js файловете ( статичните ) , друга папка за вютата и инструктаж кое къде да заместват :D
 

Горе