plugin wip

This commit is contained in:
Joey Kimsey
2024-12-17 22:45:47 -05:00
parent 0955fb4175
commit e537771708
42 changed files with 1043 additions and 693 deletions

View File

@ -434,8 +434,11 @@ class Bookmarks extends Controller {
}
public function import() {
// echo '<pre>';
if ( !App::$isMember ) {
Issues::add( 'notice', 'You must have an active membership to import bookmarks.' );
return $this->index();
}
if ( ! Input::exists('submit') ) {
return Views::view( 'bookmarks.import' );
}
@ -489,6 +492,11 @@ class Bookmarks extends Controller {
}
public function export() {
if ( !App::$isMember ) {
Issues::add( 'notice', 'You must have an active membership to export bookmarks.' );
return $this->index();
}
$folders = self::$folders->byUser();
if ( ! Input::exists('submit') ) {
@ -544,6 +552,35 @@ class Bookmarks extends Controller {
}
}
public function share( $id = '' ) {
$panelArray = [];
$folders = self::$folders->byUser();
if ( empty( $folders ) ) {
return Views::view( 'bookmarks.share' );
}
foreach ( $folders as $key => $folder ) {
$panel = new \stdClass();
$folderObject = new \stdClass();
if ( $folder->privacy == 'private' ) {
$links = self::$bookmarks->publicByFolder( $folder->ID );
} else {
$links = self::$bookmarks->byFolder( $folder->ID );
}
$folderObject->bookmarks = $links;
$folderObject->ID = $folder->ID;
$folderObject->uuid = $folder->uuid;
$folderObject->title = $folder->title;
$folderObject->color = $folder->color;
$folderObject->privacyBadge = $folder->privacyBadge;
$folderObject->bookmarkListRows = Views::simpleView( 'bookmarks.components.shareListRows', $folderObject->bookmarks );
$panel->panel = Views::simpleView( 'bookmarks.components.shareListPanel', [$folderObject] );
$panelArray[] = $panel;
}
return Views::view( 'bookmarks.share', $panelArray );
}
private function exportFolder( $title, $editedAt, $createdAt, $links ) {
$htmlDoc = '<DT><H3 ADD_DATE="'.$createdAt.'" LAST_MODIFIED="'.$editedAt.'">'.$title.'</H3>' . PHP_EOL;
$htmlDoc .= '<DL><p>' . PHP_EOL;
@ -561,37 +598,7 @@ class Bookmarks extends Controller {
return $htmlDoc;
}
public function share( $id = '' ) {
$panelArray = [];
$folders = self::$folders->byUser();
foreach ( $folders as $key => $folder ) {
$panel = new \stdClass();
$folderObject = new \stdClass();
if ( $folder->privacy == 'private' ) {
$folderObject->privacyBadge = '<span class="mx-2 badge bg-success">Private</span>';
$links = self::$bookmarks->publicByFolder( $folder->ID );
} else {
$folderObject->privacyBadge = '<span class="mx-2 badge bg-danger">Public</span>';
$links = self::$bookmarks->byFolder( $folder->ID );
}
$folderObject->bookmarks = $links;
$folderObject->ID = $folder->ID;
$folderObject->uuid = $folder->uuid;
$folderObject->title = $folder->title;
$folderObject->color = $folder->color;
$folderObject->bookmarkListRows = Views::simpleView( 'bookmarks.components.shareListRows', $folderObject->bookmarks );
$panel->panel = Views::simpleView( 'bookmarks.components.shareListPanel', [$folderObject] );
$panelArray[] = $panel;
}
return Views::view( 'bookmarks.share', $panelArray );
}
public function parseBookmarks($htmlContent)
{
private function parseBookmarks($htmlContent) {
$started = false;
$out = [];
$currentFolder = [];