Changeset 13174 for trunk/src/bp-core/bp-core-attachments.php
- Timestamp:
- 12/11/2021 09:40:29 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/bp-core-attachments.php
r13134 r13174 1598 1598 } 1599 1599 add_action( 'wp_ajax_bp_cover_image_delete', 'bp_attachments_cover_image_ajax_delete' ); 1600 1601 /** 1602 * List the files of a directory. 1603 * 1604 * @since 10.0.0 1605 * 1606 * @param string $directory_path Absolute path of a directory. 1607 * @return array The file objects list of the directory. 1608 */ 1609 function bp_attachments_list_directory_files( $directory_path = '' ) { 1610 if ( ! is_dir( $directory_path ) ) { 1611 return array(); 1612 } 1613 1614 $files = array(); 1615 $iterator = new FilesystemIterator( $directory_path, FilesystemIterator::SKIP_DOTS ); 1616 1617 foreach ( $iterator as $file ) { 1618 $_file = new stdClass(); 1619 1620 $_file->name = $file->getfilename(); 1621 $_file->path = $file->getPathname(); 1622 $_file->size = $file->getSize(); 1623 $_file->type = $file->getType(); 1624 $_file->mime_type = mime_content_type( $_file->path ); 1625 $_file->last_modified = $file->getMTime(); 1626 $_file->latest_access_date = $file->getATime(); 1627 $_file->id = pathinfo( $_file->name, PATHINFO_FILENAME ); 1628 $files[ $_file->id ] = $_file; 1629 } 1630 1631 return $files; 1632 } 1633 1634 /** 1635 * List the files of a directory recursively and eventually find a file using its ID. 1636 * 1637 * @since 10.0.0 1638 * 1639 * @param string $directory_path Absolute path of a directory. 1640 * @param string $find The file ID to find into the directory or its children. 1641 * @return array The file objects list of the directory and subdirectories. 1642 */ 1643 function bp_attachments_list_directory_files_recursively( $directory_path = '', $find = '' ) { 1644 if ( ! is_dir( $directory_path ) ) { 1645 return array(); 1646 } 1647 1648 $files = array(); 1649 $directory = new RecursiveDirectoryIterator( $directory_path, FilesystemIterator::SKIP_DOTS ); 1650 $iterator = new RecursiveIteratorIterator( $directory, RecursiveIteratorIterator::CHILD_FIRST ); 1651 $bp_upload = bp_upload_dir(); 1652 $basedir = str_replace( '\\', '/', $bp_upload['basedir'] ); 1653 1654 foreach ( $iterator as $file ) { 1655 $_file = new stdClass(); 1656 1657 $_file->name = $file->getfilename(); 1658 $_file->path = $file->getPathname(); 1659 $_file->size = $file->getSize(); 1660 $_file->type = $file->getType(); 1661 $_file->mime_type = mime_content_type( $_file->path ); 1662 $_file->last_modified = $file->getMTime(); 1663 $_file->latest_access_date = $file->getATime(); 1664 $_file->parent_dir_path = str_replace( '\\', '/', dirname( $_file->path ) ); 1665 $_file->parent_dir_url = str_replace( $basedir, $bp_upload['baseurl'], $_file->parent_dir_path ); 1666 $_file->id = pathinfo( $_file->name, PATHINFO_FILENAME ); 1667 1668 // Ensure URL is https if SSL is set/forced. 1669 if ( is_ssl() ) { 1670 $_file->parent_dir_url = str_replace( 'http://', 'https://', $_file->parent_dir_url ); 1671 } 1672 1673 $file_id = $_file->id; 1674 if ( $_file->parent_dir_path !== $directory_path ) { 1675 $file_id = trailingslashit( str_replace( trailingslashit( $directory_path ), '', $_file->parent_dir_path ) ) . $file_id; 1676 } 1677 1678 $files[ $file_id ] = $_file; 1679 } 1680 1681 if ( $find ) { 1682 return wp_filter_object_list( $files, array( 'id' => $find ) ); 1683 } 1684 1685 return $files; 1686 }
Note: See TracChangeset
for help on using the changeset viewer.