Ответы в темах

Просмотр 14 ответов — с 136 по 149 (всего 149)
  • @wpgear , по поводу:

    Если вы не предполагаете оформлять свой Проект в виде Плагина

    хочу добавить, что данный топик носит для меня также и концептуальный характер — пытаюсь получить правильную концепцию моего разрабатываемого первого проекта на WP, рассматривая все варианты и собственно, спрашивая вашего мнения. Поэтому прошу прощения, если задаю где-то несуразные вопросы. В данном варианте я вижу смысл использования плагина WP-Recall для оформления личного кабинета и своего плагина для работы со своими таблицами. Поправьте, если это в корне не верно: мой плагин создает и обрабатывает мои же таблицы, а плагин WP-Recall выводит эти таблички в ЛК пользователя

    @yube , спасибо за ответ. Значит я могу создавать произвольные таблицы при активации стороннего (не своего) плагина, к примеру WP-Recall (привязав свою нужную функцию к хуку активации плагина register_activation_hook) ?

    По поводу вопросов, связанных с использованием функции dbDelta(), в интернете очень много информации о том КАК её использовать — синтаксис без апострофов, каждое поле с новой строчки, два пробела между PRIMARY KEY и определением ключа и пр., но нет информации ГДЕ её использовать — только в коде плагина или можно где-то ещё ?

    @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 верное на ваш взгляд или в него следует внести какие-либо правки ?

    @otshelnik-fm , а могу ли я создавать произвольные таблицы при активации стороннего (не своего) плагина, к примеру WP-Recall ? Для этого в основном файле плагина нужно прописать хук активации плагина register_activation_hook( __FILE__, 'функция создания произвольных таблиц' ); ?

    (я не хочу создавать отдельный плагин для создания произвольных таблиц)
    Могу ли я создать произвольные таблицы функцией dbDelta() при активации своей темы, используя хук after_switch_theme в файле темы functions.php ?

    @otshelnik-fm , про функцию dbDelta() Вы написали:

    — таблицы создаете через db_delta — зачем плагину дублировать то, что отлично делает вордпресс.

    Вопрос — где и как (в каком файле) лучше использовать функцию dbDelta() ? В коде своего плагина (а если плагин не создаёшь)? Можно ли создавать произвольные таблицы при активации темы, используя хук after_switch_theme ?

    @otshelnik-fm , @wpgear , спасибо за комментарии
    Но если смотреть в сторону использования плагина WP-Recall, то прежде чем читать документацию по нему хотел ещё спросить — готовый ЛК, созданный при помощи WP-Recall, позволяет работать с любыми таблицами DB — как с исходными типа usermeta, terms, termmeta, term_taxonomy, так и собственными таблицами добавленными в DB и выводить информацию из них ?
    И второй вопрос — если использовать плагин WP-Recall для вывода и работы ЛК, то для добавления собственных таблиц в DB, расчета параметров, сохранения данных в DB нужен всё равно свой собственный плагин или же всё это реализуется собственными правками в плагине WP-Recall ?

    Если вывести резюме из всей темы, то можно сформулировать следующее:

    • Целесообразно либо использовать существующие Таблицы в исходной 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) :

    Но возможно, что вы захотите, чтобы все в вашей Админке имело единый Интерфейс в плане Навигации и Управления. (однако, это можно будет решать уже в более поздних Версиях)

    Поэтому, можно (но не обязательно) «Типы организаций», «Типы насел. пунктов», «Типы отчетов» перечислить в обычных Массивах

    @wpgear , спасибо за комментарии, но осталась одна неясность — большие по объему таблицу Организации и таблицу Населенные пункты вписывать для хранения в таблицы terms, termmeta и term_taxonomy в качестве таксономий (и затем привязывать к пользователям и отчетам в качестве той или иной категории) или же лучше не извращаться и создавать для организаций и населенных пунктов собственные таблицы ?

    Но скорее всего, учитывая ваши хотелки, проще написать свой Плагин, добавив пару собственных Таблиц.

    @wpgear , сейчас в моей базе 8 таблиц:

    1. Пользователи
    2. Организации (каждый пользователь принадлежит определенной организации)
    3. Типы организаций (каждая организация имеет свой тип и данный тип определяет категорию доступа к данным отчетов)
    4. Населенные пункты (каждая организация принадлежит определенному населенному пункту)
    5. Типы насел. пунктов (каждый насел. пункт имеет свой тип)
    6. Регионы (каждая организация находится в определенном регионе)
    7. Отчеты ( @otshelnik-fm , именно сюда и сохраняются те 4-6 параметров, о которых я упоминал выше)
    8. Типы отчетов (каждая организация на основе своего типа имеет доступ к определенным типам отчетов)

    Правильно ли я понимаю —

    1. поля таблицы Пользователи(фамилия, имя, отчество, должность, идентификатор организации как внешний ключ) вписываются для хранения в таблицу usermeta ?
    2. Можно ли таблицы Организации Типы организаций Населенные пункты Типы насел. пунктов Регионы вписать для хранения в таблицы terms termmeta и term_taxonomy в качестве таксономий или же нужно создавать свои собственные таблицы ?
    3. В таблице Отчеты хранятся идентификаторы пользователя, насел. пункта, id типа отчета и 4-6 параметров, вводимых пользователем в форму + расчетный параметр — для таблицы Отчеты наверное нужно точно создавать свою таблицу ?

    Поправьте, пожалуйста, наверняка я где-то ошибаюсь
    Заранее благодарен за любые советы

    И если вы сформулируете хотя бы в общих словах Цели и Возможности вашего ЛК, то можно будет надеяться на получение разумных советов.

    @wpgear , помимо целей и возможностей — ниже также сформулировал приблизительные входные и выходные данные:

      Цели:

    • предоставить пользователям доступ к расчетной системе (круг пользователей ограничен)
    • предоставить пользователям возможность вводить определенные данные в расчетную систему и получать на их основе необходимые расчетные данные
      Возможности:

    • ввод необходимых данных для расчета
    • сохранение введенных данных в базе данных
    • определение расчетных параметров на основе исходных данных
    • отправка введённых данных и результата расчета на согласование
    • просмотр архива с данными
      Входные данные:

    • логин/пароль пользователя
    • ФИО
    • e-mail
    • № телефона
    • адрес
    • период расчета
    • вид населенного пункта
    • наименование населенного пункта
    • показатели a,b,c,d,e
    • Каждый пользователь обладает определенным набором прав доступа к данным (первая категория пользователей: только просмотр всей ветки; вторая категория: просмотр и редактирование определенной области ветки)
    • Каждый пользователь относится к определённой организации — на основе принадлежности к той или иной организации определяется уровень доступа к данным
    • существует третья главная категория пользователей, одобряющая или отклоняющая введенные данные первой категорией пользователей
      Выходные данные

    • расчетные показатели f1,f2,fn на основе введенных a,b,c,d,e

    Буду очень признателен за любой совет и комментарий

    @wpgear , упоминая про личный кабинет я просто конкретизировал суть проекта.

    <p>В зависимости от вашей Структуры вашей Затеи, целесообразно либо использовать существующие Таблицы в существующей DB, либо создать и использовать новые Таблицы в существующей DB.</p>

    То есть либо создавать свои собственные новые таблицы, либо использовать существующие таблицы в существующей DB без какого-либо добавления в них новых полей (и таким образом, структуру исходных таблиц базы данных WP не редактировать) ? Я правильно понял?

Просмотр 14 ответов — с 136 по 149 (всего 149)