Я не уверен, что вы найдете здесь хороший ответ об этом.
Стоп, я не знаю, с чего начать. Я начну с номера 3. Вы хотите, чтобы виджеты. Тогда это означает, что вы должны создать класс виджетов или объекты, которые имеют шаблон или что-то, что делает их доступными для рисования "ну, вроде". На вашем месте он был бы загружен из JavaScript, а не из php. Каждый виджет был бы в некотором роде отдельным приложением, загруженным в div с использованием javascript.
Пункт 2, Вы хотели виджеты. Когда вы добавляете виджеты на свою страницу, вы должны сохранять некоторую информацию, такую как позиция, заголовок, размеры и так далее. Вы даже можете сохранить параметры создания. Например, ListWidget может быть запущен с другим ItemProvider. Таким образом, вам не нужно писать 1000 виджетов, а только один, который показывает различное содержание. Тем не менее, у вас есть виджеты, размерность и положение. Теперь это приводит нас к пункту 1.
Точка 1. Получив виджеты, положение и размеры, вы отправляете данные, которые вы использовали для их создания, связанные со страницей, на сервер. Это снова приводит нас к двум пунктам 2.
Как только вы сохранили страницу. Вы можете увидеть это, получив все виджеты с параметрами и так далее. Это оставляет вам 2 варианта.
- Создание Javascript, который будет воссоздавать сохраненные виджеты.
- Сгенерировать Html будут все виджеты.
Вариант 1 проще, так как вариант 2 не привязывает html к javascript сам по себе. Решение 2, с другой стороны, лучше, поскольку существует только 1 запрос к серверу.
Да, и последнее, вы должны установить для себя некоторые ограничения. Такие вещи могут быть очень сложными и, к сожалению, не такими уж хорошими. Смотри друпал например. Он делает много классных вещей, но как только вы установите много модулей. Drupal превращается в своего рода монстра, поедающего память. И почти все время вам не нужно столько динамического контента. Фиксированные макеты будут хорошо работать почти в 99% случаев.
Я также вынужден это сказать, но если вы попытаетесь создать приложение, которое даст пользователям столько же возможностей, сколько ученому, которое сможет вырастить семоногого кота. Я думаю, что вы собираетесь играть с очень непонятными силами!