Dmitry Kohan
Ответы в темах
-
Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@wpgear , по поводу:
Если вы не предполагаете оформлять свой Проект в виде Плагина
хочу добавить, что данный топик носит для меня также и концептуальный характер — пытаюсь получить правильную концепцию моего разрабатываемого первого проекта на WP, рассматривая все варианты и собственно, спрашивая вашего мнения. Поэтому прошу прощения, если задаю где-то несуразные вопросы. В данном варианте я вижу смысл использования плагина WP-Recall для оформления личного кабинета и своего плагина для работы со своими таблицами. Поправьте, если это в корне не верно: мой плагин создает и обрабатывает мои же таблицы, а плагин WP-Recall выводит эти таблички в ЛК пользователя
Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@yube , спасибо за ответ. Значит я могу создавать произвольные таблицы при активации стороннего (не своего) плагина, к примеру WP-Recall (привязав свою нужную функцию к хуку активации плагина
register_activation_hook
) ?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressПо поводу вопросов, связанных с использованием функции
dbDelta()
, в интернете очень много информации о том КАК её использовать — синтаксис без апострофов, каждое поле с новой строчки, два пробела между PRIMARY KEY и определением ключа и пр., но нет информации ГДЕ её использовать — только в коде плагина или можно где-то ещё ?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressФорум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@wpgear , спасибо за Ваш ответ. Резюме из моего поста
https://ru.wordpress.org/support/topic/%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d1%81%d0%b2%d0%be%d0%b5%d0%b9-%d0%b1%d0%b4-%d1%81-%d0%b1%d0%b4-wordpress/#post-12176079
верное на ваш взгляд или в него следует внести какие-либо правки ?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@otshelnik-fm , а могу ли я создавать произвольные таблицы при активации стороннего (не своего) плагина, к примеру WP-Recall ? Для этого в основном файле плагина нужно прописать хук активации плагина
register_activation_hook( __FILE__, 'функция создания произвольных таблиц' );
?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress(я не хочу создавать отдельный плагин для создания произвольных таблиц)
Могу ли я создать произвольные таблицы функциейdbDelta()
при активации своей темы, используя хукafter_switch_theme
в файле темы functions.php ?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@otshelnik-fm , про функцию
dbDelta()
Вы написали:— таблицы создаете через db_delta — зачем плагину дублировать то, что отлично делает вордпресс.
Вопрос — где и как (в каком файле) лучше использовать функцию
dbDelta()
? В коде своего плагина (а если плагин не создаёшь)? Можно ли создавать произвольные таблицы при активации темы, используя хукafter_switch_theme
?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@otshelnik-fm , @wpgear , спасибо за комментарии
Но если смотреть в сторону использования плагинаWP-Recall
, то прежде чем читать документацию по нему хотел ещё спросить — готовый ЛК, созданный при помощи WP-Recall, позволяет работать с любыми таблицами DB — как с исходными типаusermeta
,terms
,termmeta
,term_taxonomy
, так и собственными таблицами добавленными в DB и выводить информацию из них ?
И второй вопрос — если использовать плагинWP-Recall
для вывода и работы ЛК, то для добавления собственных таблиц в DB, расчета параметров, сохранения данных в DB нужен всё равно свой собственный плагин или же всё это реализуется собственными правками в плагинеWP-Recall
?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressЕсли вывести резюме из всей темы, то можно сформулировать следующее:
- Целесообразно либо использовать существующие Таблицы в исходной DB WorpPress, либо создавать и использовать новые Таблицы в исходной DB WordPress при помощи функции dbDelta(), и, таким образом, структуру исходных таблиц базы данных WP НЕ РЕДАКТИРОВАТЬ
- Таблица usermeta идеально подходит для хранения любых данных о пользователе, создавать в ней новые поля нет необходимости (также как и нет необходимости править структуру любой другой исходной таблицы DB WordPress)
- Для хранения небольших списков данных (например, «Типы организаций», «Типы насел. пунктов», «Типы отчетов») можно как создавать собственные таблицы в DB WordPress, а можно и перечислить их в обычных Массивах без создания таблиц в DB
- Для хранения больших списков данных (например, «Организации», «Насел. пункты») нужно либо создавать собственные таблицы в DB WordPress, либо использовать Пользовательские Таксономии и соответственно хранить всю информацию данных списков в таблицах
terms
,termmeta
иterm_taxonomy
- Для Управления с распределением Прав Доступа между пользователями, можно попробовать некоторые Плагины, например Ultimate Members или WP-Recall, но проще будет написать свой Плагин, добавив пару собственных Таблиц
- оформить всё вышесказанное вообще в отдельный плагин, который при активации будет вносить все изменения в DB и создавать необходимые таблицы, и далее данный плагин будет выполнять остальной функционал — управление с распределением прав доступа между пользователями, ввод данных пользователем в формы, расчеты, сохранение данных в DB, отображение личного кабинета пользователя и прочее
@wpgear , поправьте, пожалуйста, если я где-то ошибся и спасибо огромное за помощь.
p.s. еще не совсем понял, что Вы имели ввиду под этой фразой (видимо эта фраза как-то связано с использованием либо пользовательских таксономий, либо собственных таблиц в структуре DB) :Но возможно, что вы захотите, чтобы все в вашей Админке имело единый Интерфейс в плане Навигации и Управления. (однако, это можно будет решать уже в более поздних Версиях)
Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressПоэтому, можно (но не обязательно) «Типы организаций», «Типы насел. пунктов», «Типы отчетов» перечислить в обычных Массивах
@wpgear , спасибо за комментарии, но осталась одна неясность — большие по объему таблицу
Организации
и таблицуНаселенные пункты
вписывать для хранения в таблицыterms
,termmeta
иterm_taxonomy
в качестве таксономий (и затем привязывать к пользователям и отчетам в качестве той или иной категории) или же лучше не извращаться и создавать для организаций и населенных пунктов собственные таблицы ?Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressНо скорее всего, учитывая ваши хотелки, проще написать свой Плагин, добавив пару собственных Таблиц.
@wpgear , сейчас в моей базе 8 таблиц:
- Пользователи
- Организации (каждый пользователь принадлежит определенной организации)
- Типы организаций (каждая организация имеет свой тип и данный тип определяет категорию доступа к данным отчетов)
- Населенные пункты (каждая организация принадлежит определенному населенному пункту)
- Типы насел. пунктов (каждый насел. пункт имеет свой тип)
- Регионы (каждая организация находится в определенном регионе)
- Отчеты ( @otshelnik-fm , именно сюда и сохраняются те 4-6 параметров, о которых я упоминал выше)
- Типы отчетов (каждая организация на основе своего типа имеет доступ к определенным типам отчетов)
Правильно ли я понимаю —
- поля таблицы
Пользователи
(фамилия, имя, отчество, должность, идентификатор организации как внешний ключ) вписываются для хранения в таблицуusermeta
? - Можно ли таблицы
Организации
Типы организаций
Населенные пункты
Типы насел. пунктов
Регионы
вписать для хранения в таблицыterms
termmeta
иterm_taxonomy
в качестве таксономий или же нужно создавать свои собственные таблицы ? - В таблице
Отчеты
хранятся идентификаторы пользователя, насел. пункта, id типа отчета и 4-6 параметров, вводимых пользователем в форму + расчетный параметр — для таблицыОтчеты
наверное нужно точно создавать свою таблицу ?
Поправьте, пожалуйста, наверняка я где-то ошибаюсь
Заранее благодарен за любые советыФорум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressИ если вы сформулируете хотя бы в общих словах Цели и Возможности вашего ЛК, то можно будет надеяться на получение разумных советов.
@wpgear , помимо целей и возможностей — ниже также сформулировал приблизительные входные и выходные данные:
-
Цели:
- предоставить пользователям доступ к расчетной системе (круг пользователей ограничен)
- предоставить пользователям возможность вводить определенные данные в расчетную систему и получать на их основе необходимые расчетные данные
-
Возможности:
- ввод необходимых данных для расчета
- сохранение введенных данных в базе данных
- определение расчетных параметров на основе исходных данных
- отправка введённых данных и результата расчета на согласование
- просмотр архива с данными
-
Входные данные:
- логин/пароль пользователя
- ФИО
- № телефона
- адрес
- период расчета
- вид населенного пункта
- наименование населенного пункта
- показатели a,b,c,d,e
- Каждый пользователь обладает определенным набором прав доступа к данным (первая категория пользователей: только просмотр всей ветки; вторая категория: просмотр и редактирование определенной области ветки)
- Каждый пользователь относится к определённой организации — на основе принадлежности к той или иной организации определяется уровень доступа к данным
- существует третья главная категория пользователей, одобряющая или отклоняющая введенные данные первой категорией пользователей
-
Выходные данные
- расчетные показатели f1,f2,fn на основе введенных a,b,c,d,e
Буду очень признателен за любой совет и комментарий
Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@wpgear , упоминая про личный кабинет я просто конкретизировал суть проекта.
<p>В зависимости от вашей Структуры вашей Затеи, целесообразно либо использовать существующие Таблицы в существующей DB, либо создать и использовать новые Таблицы в существующей DB.</p>
То есть либо создавать свои собственные новые таблицы, либо использовать существующие таблицы в существующей DB без какого-либо добавления в них новых полей (и таким образом, структуру исходных таблиц базы данных WP не редактировать) ? Я правильно понял?