Как разрешить пользователям изменять CSS и загружать их собственные стили - PullRequest
1 голос
/ 16 ноября 2011

В настоящее время я нахожусь на проекте asp.net mvc, в котором будет 2 или более тем, css тем, поэтому я спрашиваю, какой wqy лучше всего обрабатывать при таких запросахМогу ли я разрешить пользователям записывать в файл css или я должен сохранить некоторые значения css в базе данных и загрузить их в css с помощью jquery после входа пользователя в систему?Я просто ищу лучший подход и способы сделать это красиво и гладко.

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

если у вас есть заранее определенные темы, которые пользователь может выбрать для своих будущих входов в систему, вы можете создать таблицу тем в своей базе данных и сохранить соответствующий идентификатор темы для пользователя.если пользователь не выбирает какую-либо тему, у вас будет тема по умолчанию.

И вы создадите css файлы тем отдельно на вашем сервере, каждая тема будет иметь свой файл.

Однако, если пользователь выбирает тему для своих будущих входов, сохраните ее в своей базе данных после того, как вы аутентифицируете пользователя при входе в систему.Передайте значение в любое скрытое поле в форме и используйте значение id из скрытого поля. Измените таблицу стилей и загрузите один и тот же файл на каждую веб-страницу, используя javascript.

После вашего комментария:

если хотитечтобы дать пользователю контроль над созданием своих собственных стилей, я думаю, что в основном это будет для изменений цветов и шрифтов, вы можете создавать различные CSS-файлы с одинаковыми именами классов и загружать их после входа в систему.с базой идентификатора в базе данных, которую вы имеете против пользователя, это поможет вам быстрее загружать страницы, и подключение к базе данных будет меньше.

Вы можете просто получить идентификатор пользователя, используя

if (!Page.User.Identity.IsAuthenticated)
{
  MembershipUser member = Membership.GetUser();
  if (member != null)
      {
         ProfileCommon opC = Profile.GetProfile(Email.Text);
         hdnTheme.Value =  opC.ThemeID;
         hdnUserID.Value =  member.ProviderUserKey.ToString(); 

      }

}

в вашем ASPX-коде при загрузке страницы

$(document).ready(function (){
var themeid = $("#hdnTheme.ClientID").val()
var UserID= $("#hdnUserID.ClientID").val()

if (themeid == 1)// for user specific theme 
 <link href="includes/css/"+ UserID +".css" type="text/css" rel="stylesheet" />
else if (themeid == 2) // for the theme which you have created and already the file exists 
  <link href="includes/css/2.css" type="text/css" rel="stylesheet" />
else 
    <link href="includes/css/default.css" type="text/css" rel="stylesheet" />

});
0 голосов
/ 16 ноября 2011

Вы должны сохранить значения CSS в базе данных, а затем загрузить их, когда этот пользователь войдет в систему. Это самый простой способ.

Однако, когда на вашем веб-сайте много пользователей журнала, это может значительно замедлить работу сайта.

Более продвинутый подход был бы, когда пользователь заполняет форму и щелкает, чтобы скрипт php мог сгенерировать и сохранить файл CSS (он может называться user_id.css). Я не могу вспомнить, почему функция делает это, но Google или этот сайт ваш друг здесь. Тогда при входе пользователя в папку CSS расположение файла будет сохранено в базе данных и вызвано в теге head

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...