Поиск сообщества
Показаны результаты для тегов 'база данных'.
Найдено: 9 результатов
-
-
- база данных
- статья
-
(и ещё 1 )
C тегом:
-
Доступ к базе данных для записи и выборки данных является необходимостью почти всех приложений и плагинов, которые интегрируются с Invision Community. Класс \IPS\Db обрабатывает соединения с базой данных и расширяет стандартный класс mysqli в основной библиотеке PHP. Подключение к базе данных Стандартное соединение с базой данных (обозначенное деталями подключения в файле conf_global.php) может быть установлено автоматически с помощью вызова метода \IPS\Db::i(). Если соединение еще не было установлено, это будет сделано немедленно на лету, когда будет вызван этот метод. Стандартное соединение использует utf8 (или utf8mb4 в зависимости от вашей конфигурации), и все таблицы и столбцы базы данных должны быть настроены на utf8. Это обычно обрабатывается Invision Community, но об этом всё равно важно знать и помнить! Если вам нужно установить соединение с удаленной базой данных, это можно сделать, передав параметры методу i() класса \IPS\Db. Первый параметр - произвольный идентификатор строкового соединения, а второй параметр - массив с настройками соединения. $connection = \IPS\Db::i( 'external', array( 'sql_host' => 'localhost', 'sql_user' => 'username', 'sql_pass' => 'password', 'sql_database' => 'database_name', 'sql_port' => 3306, 'sql_socket' => '/var/lib/mysql.sock', 'sql_utf8mb4' => true, ) ); Вам нужно только указать параметры, необходимые для вашего подключения. Вы также можете автоматически поддерживать разделение чтения и записи, передавая те же параметры во второй раз с префиксом «sql_read_» вместо «sql_», указывая на ваш экземпляр MySQL только для чтения. Выборка данных Выборка данных из базы данных является одной из наиболее распространенных задач при взаимодействии с базой данных. /** * Build SELECT statement * * @param array|string $columns The columns (as an array) to select or an expression * @param array|string $table The table to select from. Either (string) table_name or (array) ( name, alias ) or \IPS\Db\Select object * @param array|string|NULL $where WHERE clause - see \IPS\Db::compileWhereClause() for details * @param string|NULL $order ORDER BY clause * @param array|int $limit Rows to fetch or array( offset, limit ) * @param string|NULL|array $group Column(s) to GROUP BY * @param array|string|NULL $having HAVING clause (same format as WHERE clause) * @param int $flags Bitwise flags * @li \IPS\Db::SELECT_DISTINCT Will use SELECT DISTINCT * @li \IPS\Db::SELECT_SQL_CALC_FOUND_ROWS Will add SQL_CALC_FOUND_ROWS * @li \IPS\Db::SELECT_MULTIDIMENSIONAL_JOINS Will return the result as a multidimensional array, with each joined table separately * @li \IPS\Db::SELECT_FROM_WRITE_SERVER Will send the query to the write server (if read/write separation is enabled) * @return \IPS\Db\Select * */ public function select( $columns=NULL, $table, $where=NULL, $order=NULL, $limit=NULL, $group=NULL, $having=NULL, $flags=0 ) Вы можете вызвать метод select() для выполнения SELECT запроса к вашей базе данных. Метод возвращает \IPS\Db\Select объект, который позволяет вам в дальнейшем усовершенствовать SELECT запрос. Например, в этом классе есть методы, позволяющие принудительно использовать определенный индекс, делать JOIN запросы к другим таблицам и указывать, какие поля ключ/значение использовать для результатов. // Получить объект выборки $select = \IPS\Db::i()->select( '*', 'some_table', array( 'field=?', 1 ), 'some_column DESC', array( 0, 10 ) ); // Использовать указанный индекс для запроса $select = $select->forceIndex( 'some_index' ); // Присоединить выборку из другой таблицы $select = $select->join( 'other_table_name', 'other_table_name.column=some_table.column', 'LEFT' ); // Теперь вернем количество полученных результатов $results = count( $select ); // Сообщить итератору, что ключ должны быть столбцом 'column_a', а значения 'column_b' $select = $select->setKeyField( 'column_a' )->setValueField( 'column_b' ); // Наконец, перейдем к результатам foreach( $select as $columnA => $columnB ) { print $columnA . ': ' . $columnB . '<br>'; } Здесь есть некоторые важные моменты. Параметр WHERE принимает много разных форматов, о которых вы должны знать. Вы можете передать строку в качестве оператора WHERE some_column='some value', или вы можете передать массив с первым элементом WHERE, используя ? в качестве плейсхолдеров для значений, а затем каждый плейсхолдер заменяется на последующие записи массива. Это использует подготовленные операторы в MySQL, чтобы избежать проблем с SQL-инъекциями и это рекомендуется array( 'some_column=? OR some_column=?', 'first value', 'second value' ), или, наконец, вы можете передать массив операторов, которые будут объединены вместе AND array( array( 'some_column=?', 'test value' ), array( 'other_column=?', 1 ) ). Вы можете вызвать setKeyField() без вызова setValueField(). Вместо значения, являющегося строкой в этом случае, это будет просто массив всех выбранных столбцов (или если выбран только один столбец, значение будет строкой с значением этого столбца). Обратите внимание, что вы должны выбрать столбцы, которые вы хотите использовать для setKeyField и/или setValueField. Определение метода для join() требует, чтобы первый параметр был название таблицы, к которой вы хотите присоединить данные, затем оператор 'on', затем тип присоединения (по умолчанию LEFT). Вы также можете использовать оператор для присоединения данных в качестве четвёртого параметра, если необходимо. Для контролирования по каким столбцам сделать выборку, вы должны изменить первый параметр оператора SELECT (если вы передаёте '*' MySQL вернёт все столбцы из всех таблиц, выбранных из и/или присоединения). \IPS\Db\Select реализует Iterator и Countable. Это означает, что вы можете рассматривать его как массив и использовать цикл foreach() для обработки результатов, а также вы можете вызвать count() для объекта, чтобы получить количество результатов. Помните, однако, что count() по умолчанию только возвращает количество результатов, возвращаемых запросом. Если у вас 1000 строк в таблице и вы используйте оператор limit, чтобы возвращать только 100 результатов, тогда count() покажет 100. Если вы хотите получить общее количество строк в таблице, как буд-то оператор limit не используется, вы можете передать флаг \IPS\Db::SELECT_SQL_CALC_FOUND_ROWS в стандартный метод select(), как отмечено блоком phpdoc выше. Часто вы выбираете только одну строку (то есть при выполнении запроса COUNT(*)), встроенный метод first() облегчает это. Однако имейте в виду, что если строка не существует, генерируется исключение UnderflowException, поэтому вы должны перенести такие запросы в оператор try/catch. try { $row = \IPS\Db::i()->select( '*', 'table', array( 'id=?', 2 ) )->first(); } catch( \UnderflowException $e ) { // В таблице нет строки с id = 2 } Вставка, обновление и удаление строк Вы также захотите периодически вставлять, обновлять и удалять строки в MySQL. Для этого вы можете использовать соответствующие методы insert(), update() и delete(). // Вставить строку $new_id = \IPS\Db::i()->insert( 'some_table', array( 'column_one' => 'value', 'column_two' => 'value2' ) ); // Обновить эту строку \IPS\Db::i()->update( 'some_table', array( 'column_two' => 'other value' ), array( 'id_column=?', $new_id ) ); // Удалить строку \IPS\Db::i()->delete( 'some_table', array( 'id_column=?', $new_id ) ); Первым параметром метода добавления строки является имя таблицы, далее следует ассоциативный массив названий столбцов => значения. Метод возвращает новый автоинкрементный (если применимо) ID. Обратите внимание, что существует также метод replace(), который ведет себя как insert(), только будет выполнено запрос REPLACE INTO вместо INSERT INTO (в этом случае, если встречается повторяющийся уникальный индекс, оригинал будет заменен новой строкой). Метод update() ожидает, что первым параметром будет имя таблицы, второй параметр будет ассоциативным массивом имен столбцов => значений, а третьим параметром будет оператор WHERE (если необходимо). Кроме того, при необходимости вы можете передать массив присоединений таблиц (оператор JOIN) в качестве четвёртого параметра, если он необходим, массив, представляющий оператор limit как пятый параметр и флаги для изменения запроса в качестве последнего параметра, в том числе: \IPS\Db::LOW_PRIORITY Использует LOW_PRIORITY \IPS\Db::IGNORE Использует IGNORE Метод delete() обычно вызывается только с первым параметром, именем таблицы, для удаления всей таблицы, а также со вторым параметром оператором where для удаления определенных строк. Метод дополнительно принимает третий параметр для управления упорядочивания результатов для запроса DELETE, четвёртый параметр для ограничения количества результатов удаления, и пятый столбце, который указывает столбец оператора, если оператор WHERE является оператором. О структуре базы данных Вы можете создавать таблицы базы данных, добавлять, изменять и удалять столбцы из существующих таблиц, изменять и удалять индекс из существующих таблиц с помощью библиотеки \IPS\Db. Кроме того, существуют методы, позволяющие определить, существует ли таблица, столбец или индекс, прежде чем использовать его. /** * Существует ли таблица? * * @param string $name Table Name * @return bool */ public function checkForTable( $name ) /** * Существует ли столбец? * * @param string $name Table Name * @param string $column Column Name * @return bool */ public function checkForColumn( $name, $column ) /** * Существует ли индекс? * * @param string $name Table Name * @param string $index Index Name * @return bool */ public function checkForIndex( $name, $index ) /** * Создать таблицу * * @code \IPS\Db::createTable( array( 'name' => 'table_name', // Table name 'columns' => array( ... ), // Column data - see \IPS\Db::compileColumnDefinition for details 'indexes' => array( ... ), // (Optional) Index data - see \IPS\Db::compileIndexDefinition for details 'comment' => '...', // (Optional) Table comment 'engine' => 'MEMORY', // (Optional) Engine to use - will default to not specifying one, unless a FULLTEXT index is specified, in which case MyISAM is forced 'temporary' => TRUE, // (Optional) Will sepcify CREATE TEMPORARY TABLE - defaults to FALSE 'if_not_exists' => TRUE, // (Optional) Will sepcify CREATE TABLE name IF NOT EXISTS - defaults to FALSE ) ); * @endcode * @param array $data Table Definition (see code sample for details) * @throws \IPS\Db\Exception * @return void|string */ public function createTable( $data ) /** * Создать копию структуры таблицы * * @param string $table The table name * @param string $newTableName Name of table to create * @throws \IPS\Db\Exception * @return void|string */ public function duplicateTableStructure( $table, $newTableName ) /** * Переименовать таблицу * * @see <a href='http://dev.mysql.com/doc/refman/5.1/en/rename-table.html'>Rename Table</a> * @param string $oldName The current table name * @param string $newName The new name * @return void * @see <a href='http://stackoverflow.com/questions/12856783/best-practice-with-mysql-innodb-to-rename-huge-table-when-table-with-same-name-a'>Renaming huge InnoDB tables</a> * @see <a href='http://www.percona.com/blog/2011/02/03/performance-problem-with-innodb-and-drop-table/'>Performance problem dropping huge InnoDB tables</a> * @note A race condition can occur sometimes with InnoDB + innodb_file_per_table so we can't drop then rename...see above links */ public function renameTable( $oldName, $newName ) /** * Изменить таблицу * Можно обновлять комментарии и движок * @note This will not examine key lengths and adjust. * * @param string $table Table name * @param string|null $comment Table comment. NULL to not change * @param string|null $engine Engine to use. NULL to not change * @return void */ public function alterTable( $table, $comment=NULL, $engine=NULL ) /** * Удалить таблицу * * @see <a href='http://dev.mysql.com/doc/refman/5.1/en/drop-table.html'>DROP TABLE Syntax</a> * @param string|array $table Table Name(s) * @param bool $ifExists Adds an "IF EXISTS" clause to the query * @param bool $temporary Table is temporary? * @return mixed */ public function dropTable( $table, $ifExists=FALSE, $temporary=FALSE ) /** * Добавить столбец в таблицу в базе данных * * @see \IPS\Db::compileColumnDefinition * @param string $table Table name * @param array $definition Column Definition (see \IPS\Db::compileColumnDefinition for details) * @return void */ public function addColumn( $table, $definition ) /** * Изменить существующий столбец * * @see \IPS\Db::compileColumnDefinition * @param string $table Table name * @param string $column Column name * @param array $definition New column definition (see \IPS\Db::compileColumnDefinition for details) * @return void */ public function changeColumn( $table, $column, $definition ) /** * Удалить столбец * * @param string $table Table name * @param string|array $column Column name * @return void */ public function dropColumn( $table, $column ) /** * Добавить индекс в таблицу в базе данных * * @see \IPS\Db::compileIndexDefinition * @param string $table Table name * @param array $definition Index Definition (see \IPS\Db::compileIndexDefinition for details) * @param bool $discardDuplicates If adding a unique index, should duplicates be discarded? (If FALSE and there are any, an exception will be thrown) * @return void */ public function addIndex( $table, $definition, $discardDuplicates=TRUE ) /** * Изменить существующий индекс * * @see \IPS\Db::compileIndexDefinition * @param string $table Table name * @param string $index Index name * @param array $definition New index definition (see \IPS\Db::compileIndexDefinition for details) * @return void */ public function changeIndex( $table, $index, $definition ) /** * Удалить индекс * * @param string $table Table name * @param string|array $index Column name * @return mixed */ public function dropIndex( $table, $index ) Большинство из этих методов описаны в phpdoc и редко используются, за исключением случаев использования центра разработчика для добавления запросов на обновлений. Разное Наконец, в классе есть несколько методов и свойств, которые могут оказаться полезными или актуальными при работе с драйвером базы данных. Если вам нужно получить префикс базы данных, используемый у таблиц (он же sql_tbl_prefix в conf_global.php), вы можете сделать это, вызвав \IPS\Db::i()->prefix . Если вы создаете запросы для запуска вручную, вам нужно будет добавить его к именам ваших таблиц. Если вам нужно построить SQL оператор и вернуть её вместо запуска, вы можете установить \IPS\Db::i()->returnQuery = TRUE перед вызовом драйвера для построения запроса. Для запуска MySQL запроса, который был полностью построен и представляет из себя строку, вы можете можете вызвать метод query(). Например: \IPS\Db::i()->query( "UPDATE some_table SET field_a='value' WHERE id_field=1" ); Обычно вам следует избегать непосредственного использования метода query(), поскольку другие встроенные методы автоматически обрабатывают такие вещи, как экранирование значений, добавление префикса таблицы базы данных и т.д. Если вам нужно создать инструкцию UNION, для облегчения этого метода также существует способ. /** * Построение инструкции UNION * * @param array $selects Array of \IPS\Db\Select objects * @param string|NULL $order ORDER BY clause * @param array|int $limit Rows to fetch or array( offset, limit ) * @param string|null $group Group by clause * @param bool $unionAll TRUE to perform a UNION ALL, FALSE (default) to perform a regular UNION * @param int $flags Bitwise flags * @param array|string|NULL $where WHERE clause (see example) * @param string $querySelect Custom select for the outer query * @li \IPS\Db::SELECT_SQL_CALC_FOUND_ROWS Will add SQL_CALC_FOUND_ROWS * @return \IPS\Db|Select */ public function union( $selects, $order, $limit, $group=NULL, $unionAll=FALSE, $flags=0, $where=NULL, $querySelect='*' ) Для построения оператора FIND_IN_SET(), который позволяет запросу искать определенные значения в поле MySQL, которое содержит значения, разделенные запятыми, вы можете использовать метод findInSet(). /** * FIND_IN_SET * Generates a WHERE clause to determine if any value from a column containing a comma-delimined list matches any value from an array * * @param string $column Column name (which contains a comma-delimited list) * @param array $values Acceptable values * @param bool $reverse If true, will match cases where NO values from $column match any from $values * @return string Where clause * @see \IPS\Db::in() More efficient equivilant for columns that do not contain comma-delimited lists */ public function findInSet( $column, $values, $reverse=FALSE ) Аналогичным образом вы можете построить оператор IN() с помощью метода in(): /** * IN * Generates a WHERE clause to determine if the value of a column matches any value from an array * * @param string $column Column name * @param array $values Acceptable values * @param bool $reverse If true, will match cases where $column does NOT match $values * @return string Where clause * @see \IPS\Db::findInSet() For columns that contain comma-delimited lists */ public function in( $column, $values, $reverse=FALSE ) Если вы выполняете запрос по побитовому столбцу и вам нужно проверить значение, вы можете использовать метод bitwiseWhere (или просто построить оператор WHERE вручную). /** * Bitwise WHERE clause * * @param array $definition Bitwise keys as defined by the class * @param string $key The key to check for * @param bool $value Value to check for * @return string * @throws \InvalidArgumentException */ public function bitwiseWhere( $definition, $key, $value=TRUE ) Вы обнаружите, что большинство этих разных методов не так часто используются, как методы ядра insert, update, delete, replace и select.
-
Разработчики представили новую функцию, которая позволяет модераторам, имеющим соответствующее разрешение, копировать темы из приложения Форумы в любую пользовательскую базу данных приложения Страницы. Эта функция скопирует содержимое первого сообщения темы в содержимое новой записи в базе данных. Модератору при копировании темы будет представлена предварительно заполненная форма, которая уже будет содержать заголовок и контент, взятые из названия темы и содержания первого сообщения, которые могут быть изменены путём добавления дополнительного примечания. Форма также будет содержать все пользовательские поля, которые могут быть заполнены, а также все настройки модератора, которые доступны при обычном создании темы. В дополнение ко всем стандартным параметрам, существует две дополнительных опции. Первая - возможность копировать все сообщения темы в комментарии новой записи. Вторая - возможность опубликовать запись от автора темы или модератора, копирующего тему в запись.
-
При установке Для запуска кода изменения базы данных при установке вашего плагина, откройте файл /plugins/<ваш_плагин>/dev/setup/install.php и следуйте инструкциям в комментариях. Примечание. Чтобы файл установки install.php был выполнен, вы должны добавить начальную (initial) версию в центр разработчика. При обновлении Плагины поддердивают систему контроля версий. Всякий раз, когда вы выпускаете новую версию своего плагина, вам необходимо добавить новую версию в Plugin Developer Center. При добавлении версии, необходимо указать идентификационный номер (например, "10000", "10001" и т.д.), а также удобную для восприятия пользователем строку (например, "1.0.0", "1.0.1", и т.д.). Конкретного стандарта на то, как должен быть отформатирован идентификационный номер, нет, но необходимо увеличить номера для более новых версий. Строка для пользователя должна быть в формате "x.y.z". В файле, который находится в каталоге /plugins/<your plugin>/dev/setup, вы можете указать код, который будет выполняться при обновлении до этой версии (см комментарии в файле для более подробной информации). Важно отметить, что при установке, будет выполнена только установка, поэтому, когда вы вносите изменения, как правило, необходимо добавить их как к установщику, так и в соответствующий файл обновления для этой версии.
-
В IPS4 вы можете использовать внешнюю базу данных в качестве обработчика авторизации в систему. Это можно сделать из следующей области админцентра: Система > Настройки > Методы авторизации. Здесь вы можете указать соответствующие детали для соединения с внешней базой данных. Детали подключения к базе данных В первой области настроек вы должны ввести все необходимые данные для подключения в mysql базе данных. Убедитесь, что детали подключения 100% рабочие и сервер, где расположен ваш Invision Community, может подключить по указанным данным. Настройки соединения с внешней базой данных в IPS4 Детали схемы базы данных Здесь вы должны указать информацию, относящуюся к местонахождению пользователей. Вам необходимо указать таблицу и минимум адрес электронной почты или столбец имени пользователя. Конечно, вы можете указать оба столбца, если используете оба метода авторизации в систему. Вам нужно будет указать столбец паролей и выбрать правильный способ их шифрования. Существует дополнительное поле, которое позволяет вам добавить данные в конец запроса, возвращающего пользователей. Например, если добавить значение "active=1", в запросе это будет отображено: 'WHERE active=1". Колонка пользователей во внешней базе данных Настройки авторизации Наконец, вам необходимо будет установить тип используемой аутентификации и разрешить или нет доступ в админцентр с помощью данного метода авторизации. Тип аутентификации и доступ в админцентр
-
URL адрес вашего сайта и детали, которые Invision Community использует для подключения к вашей MySQL базе данных, которые вы указывали при первой установке программного обеспечения, находятся в файле con_global.php в корневой директории вашего сайта, там же расположены файлы index.php и init.php. Тем не менее, сайт использует эти значения для создания некоторых уникальных ключей, предназначенных для определённых функций. Если вы изменили адрес вашего сайта или данные для подключения к базе данных, вам также необходимо создать и заменить ранее используемые ключи: Затрагивают изменения URL адреса или SQL данных: Настройка "Отдавать изображения с локального сервера?" в админцентре Система > Настройки > Постинг. Запросы поддержки в приложении Магазин. Затрагивают только изменение SQL данных, но не URL адреса: Хранение "Имя пользователя"/"Пароль" или "FTP данные" дополнительных полей в приложении Магазин. Учетные записи хостинга в приложении Магазин. IPS Connect. Если вы пользуетесь какими-либо из перечисленных выше возможностей, то, перед обновлением значений в файле conf_global.php, скачайте этот скрипт hashgenerator.php и загрузите его в корневую директорию вашего сайта. Далее откройте его в вашем браузере по ссылке, например site.ru/hashgenerator.php (где site.ru - адрес вашего сайта) и следуйте указанным инструкциям. Обновление хешей в Invision Community 4
-
Приложение Pages (Страницы) обладает функцией баз данных. Это мощный и сложный модуль приложения, позволяющий собирать, хранить и отображать информацию на вашем сайте. В стандартной установке приложения модуль баз данных работает в качестве статей сайта. Вы можете удалить его и создать свои собственные базы данных, которую будут хранить в себе различную информацию. Записи в базе данных (называемые 'records') состоят из двух полей: Заголовок статьиКонтент статьиЗаписи могут храниться как в различных категориях, так и без них. Записи можно комментировать, добавлять отзыв или комментарий, оценивать, выставлять репутацию, отправлять на почту или делиться с друзьями в популярных социальных сетях, добавлять теги и многое другое. Однако, в отличие от многих систем управления контентом, существующих ныне, приложение позволяет оперировать множеством различных дополнительных полей при построении базы данных. Например, с их помощью вы можете создать у себя на сайте базу новостроек своего города, книгу отзывов, систему вопросов и ответов, каталог ресторанов, каталог видеоигр и многое другое. Давайте рассмотрим процесс создания базы данных. Создание базы данных в Invision Community Чтобы создать новую базу данных или отредактировать существующую, перейдите в админцентр > Страницы > Контент > Базы данных. Нажмите кнопку Создать. Откроется окно с выбором создать новую базу данных или импортировать базу из файла. Для данной инструкции нам нужно создать новую. Перед вами откроются настройки создания базы данных, они не обязательны, обязательно к заполнению лишь одно поле - название базы данных. После ввода названия базы данных вы можете нажать кнопку Создать, оставив заполнение остальных параметров 'на потом', либо сразу просмотреть поля и заполнить нужные. Напомним: любые параметры при создании базы данных вы можете изменить/заполнить позже. Рассмотрим опции. Описание Необязательное к заполнению поле, коротко описывающее информацию, которая будет содержаться в создаваемой базе данных. Использовать категории Вы можете хранить все записи базы данных в одной категории, либо распределять их по разным категориям. Если выбрать последнее, пользователи будут просматривать материалы по категориям, а URL slug категории будет добавлен к URL адресу записи базы данных. Включить рейтинг звёздами? Если вы выберите не хранить записи в категориях, вам откроется возможность активировать функцию рейтинга звёздами. Главная страница базы данных Опция определяет внешний вид главной страницы базы данных. Если вы используете категории для хранения записей, вы можете выбрать два варианта: Показать список записей. Отображение записей будет схоже с главной страницей форума. В данном режиме вы можете добавить фильтры для сортировки записей пользователями.Показать записи как статьи. Статьи будут отображены в виде блога (запись следует за записью). В данном режиме вы не сможете использовать фильтры для сортировки, однако, у вас появится возможность отобразить популярные записи, отобразить записи от определённых категорий, указать порядок сортировки и количество записей для отображения. Этот режим можно использовать в качестве главной страницы вашего сайта для отображения важных новостей или популярных статей.Шаблоны Шаблоны являются основой того, как отображается информация в базе данных. Каждая страница базы данных имеет собственный шаблон отображения, который можно модернизировать и приводить к абсолютно любому виду. Показать записи как статьи Данный режим просмотра применим только к индексным (главным) страницам баз данных. В данном режиме записи не могут быть разделены на различные категории. Если вы выберите данный режим отображения информации для главной страницы своей базы данных, вы увидите список записей базы с названием записи, изображение в левой области записи (если изображения активированы в настройках), небольшое содержание статьи, изображение и имя автора записи, количество комментариев и просмотров: Режим просмотра категорий Если вы активируете категоризацию записей в базе данных и укажите в настройке "Показать категории", то пользователи увидят список существующих в базе данных категорий: Данный режим отобразит список категорий и подкатегорий (если таковы имеются) с информацией о последней записи и количестве записей в категории. Список записей По-умолчанию список записей в базе данных отображается в виде списка форумов. Записи ссылаются на страницу подробной информации о каждой записи: Просмотр записи Данный режим просмотра отображает только одну запись из базы данных со всеми дополнительными полями и полным содержанием (по-умолчанию). На странице просмотра записи, по-умолчанию, так же присутствуют дополнительные элементы: форма комментирования/отзыва записи, кнопки поделиться в социальных сетях, кнопки возможных действий над записью и так далее: Форма добавления/редактирования Пользователи с разрешённым доступом добавлять или редактировать записи в базе данных могут использовать страницу редактирования/добавления записи. Данная страница состоит из различных форм, которые вы добавите в настройках вашей базы данных. В большинстве случаев администратору ничего менять в шаблоне не нужно. Назначение шаблонов к базе данных Приложение Pages содержит в себе стандартные шаблоны для всех этих режимов отображения информации, которые автоматически выбираются при создании новой базы данных. Для каждого режима просмотра вы можете создавать собственные шаблоны и присваивать их к любым страницам любых баз данных (такая возможность будет описана в другой статье). Вкладка Язык На данной вкладке определяется общее определение записей вашей базы данных. (Например, вы создали базу данных по фильмам, каждая запись будет определена как фильм, если база данных авто - запись будет названа - автомобиль). По-умолчанию в новой базе данных записи значатся как 'запись' ('record'), но вы можете изменить на другое название, описывающее содержание вашей базы данных. Это название будет использовано по всему вашему сайта (в меню, боковых блоках, в базе данных ...). Вкладка Параметры На данной вкладке представлено большое количество различных настроек базы данных. Редактирование в Wiki-стиле Данный режим позволит пользователю редактировать не заблокированные записи (если позволяют права). Если функция не активирована, пользователи смогут редактировать только свои собственные не заблокированные записи (если позволяют права). Редактировать собственные записи неопределенный срок Включение этой опции позволит автору записи редактировать собственные не заблокированные и не скрытые записи неопределенный срок. Если опция не включена, будут использованы настройки доступа редактирования контента групп пользователей. Хранить изменения Когда пользователи или администраторы редактируют записи в базе данных, будет сохранена исходная копия редактируемой записи, которая может быть позже восстановлена. Разрешить поиск Настройка определяет, будет ли содержимое базы данных доступно для общего поиска на сайте. Обновление после последнего действия Настройка определяет при каком действии считать запись новой/непрочитанной. Модерировать новые записи Если вы позволяете пользователям добавлять записи в базу данных, вы можете модерировать представленный пользователями материал. Включить RSS ленту Настройка разрешает экспортировать записи для RSS лент. Вы можете установить количество записей для экспорта. Комментарии, отзывы, теги Область настроек, позволяющих активировать/отключить функционал комментирования/отзывов, добавления тегов и префиксов, а так же возможность модерировать комментарии/отзывы. Параметры полей Область настроек определяет порядок отображения записей базы данных. Вы можете выбрать поле сортировки, порядок сортировки и число записей на странице. Настройки изображения записи В базу данных вы можете добавить сколько угодно полей, позволяющих добавлять изображения, однако, существует специальное поле изображения, которое можно активировать в настройках базы данных или в дополнительных полях базы данных. Отличие этого поля заключается в том, что его отображение уже включено в некоторые шаблоны базы данных, а так же изображение этого поля используется при распространения контента в социальные сети. Вы можете настроить здесь максимальный размер изображения и размер его миниатюры. Это позволяет уменьшить время загрузки страниц базы данных, особенно нагруженные изображениями страницы. Вкладка Форум На данной вкладке вы можете активировать возможность автоматического создания темы для каждой новой записи в определённый форум. Такая возможность позволит быстрее информировать пользователей вашего форума о новой добавленной информации в базы данных. Разрешения Последним шагом создания базы данных является возможность настройки доступа к действиям для определённых групп. Мы завершили создание новой базы данных, однако база данных пуста и не отображается для пользователей на сайте. Следующим шагом мы создадим отдельную страницу для отображения нашей базы данных. Добавление базы данных на страницу Абсолютно все страницы приложения управляются В Страницы > Менеджер страниц > Страницы. Нажмите кнопку Добавить страницу. Вам будет предложено воспользоваться специальным инструментом, позволяющим строить страницы, либо заполнить контент страницы исходным HTML кодом. Выбираем Строительство страницы: Здесь нам нужно указать название страницы (будет использовано в теге title), указать название файла страницы (например movies.html, либо просто movies). Так же вы можете указать папку страницы, таким образом url базы данных будет по адресу: сайт.ru/папка/страница. Кроме того, вы можете выбрать количество колонок, которое будет использовано на странице. Обратите внимание, что боковая панель в это количество не входит. На вкладке Заголовок и мета-теги вы можете указать собственные теги title, description и keywords. Это не обязательно, но желательно для seo продвижения. На последней вкладке вы можете добавить страницу в главное меню сайта. Это не обязательно, т.к. меню мы можем отредактировать в любой момент в менеджере меню: Страницы > Менеджер страниц > Меню. Далее нажимаем Сохранить и настраиваем права доступа. Новая страница создана: Чтобы открыть и начать редактировать нашу страницу, необходимо кликнуть на иконку строителя страницы справа (волшебная палочка). На новой вкладке браузера откроется наша чистая страница, разделённые на доступные области, а слева боковой блок с доступными для строительства блоками: В боковом блоке откройте категорию Страницы, захватите блок База данных и перетащите его на одну из выделенных областей страницы. Нажмите кнопку Изменить и укажите созданную нами ранее базу данных. Каждая база данных может быть использована только на одной странице. Таким образом, в окне выбора базы данных будут отображены только неиспользованные базы. Нажмите сохранить и Закончить редактирование в боковом блоке. Таким образом вы можете создать сколько угодно баз данных и страниц для них. Чтобы добавить запись в базу данных, вы можете перейти на страницу базы и нажать кнопку Создать (которая доступна только для пользователей, кому доступна возможность добавлять записи), либо открыть меню + Создать и выбрать соответствующий пункт. Теперь мы можем добавить нашу первую запись в базу, указав название фильма, добавив его описание и загрузив обложку: Таким образом мы полностью закончили создание нашей первой базы данных. Более детальную настройку будем рассматривать в следующей статье.
-
Supex Dumper - очень удобная программа для снятия резервной копии с базы данных. Снимать копии рекомендуется перед каждыми манипуляциями с базой. Программа бесплатная, но для более гибкой работы с базой, Вы можете приобрести её расширенную версию. Загружаем папку sxd в корень нашего сайта и переходим в неё из браузера: сайт.ru/sxd. Для корректной работы программы необходимо установить следующие права: Chmod 777 для каталога backup Chmod 666 или 777 для файлов cfg.php и ses.php Перед нами появится интерфейс программы: Вы находитесь на вкладке Экспорт. Здесь представлены некоторые опции, которые вы можете настроить под свои нужны. После создания архива вы сможете скачать копию прямо из окна программы.
-
- бэкап
- supex dumper
-
(и ещё 2 )
C тегом: