plugin fixes
This commit is contained in:
71
app/plugins/bookmarks/controllers/api/bookmark_folders.php
Normal file
71
app/plugins/bookmarks/controllers/api/bookmark_folders.php
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* app/plugins/bookmarks/controllers/api/bookmark_folders.php
|
||||||
|
*
|
||||||
|
* This is the api bookmark folders controller.
|
||||||
|
*
|
||||||
|
* @version 3.0
|
||||||
|
* @author Joey Kimsey <Joey@thetempusproject.com>
|
||||||
|
* @link https://TheTempusProject.com
|
||||||
|
* @license https://opensource.org/licenses/MIT [MIT LICENSE]
|
||||||
|
*/
|
||||||
|
namespace TheTempusProject\Controllers\Api;
|
||||||
|
|
||||||
|
use TheTempusProject\Models\User;
|
||||||
|
use TheTempusProject\Classes\ApiController;
|
||||||
|
use TheTempusProject\Houdini\Classes\Views;
|
||||||
|
use TheTempusProject\Canary\Bin\Canary as Debug;
|
||||||
|
use TheTempusProject\Bedrock\Functions\Input;
|
||||||
|
use TheTempusProject\Models\Folders;
|
||||||
|
|
||||||
|
class BookmarkFolders extends ApiController {
|
||||||
|
protected static $folders;
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
parent::__construct();
|
||||||
|
self::$folders = new Folders;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create() {
|
||||||
|
header('Access-Control-Allow-Origin: *');
|
||||||
|
|
||||||
|
$user = self::$authToken->createdBy;
|
||||||
|
|
||||||
|
$payload = @file_get_contents('php://input');
|
||||||
|
$payload = json_decode( $payload, true );
|
||||||
|
|
||||||
|
$result = self::$folders->create(
|
||||||
|
$payload['name'],
|
||||||
|
$payload['folder'] ?? 0,
|
||||||
|
$payload['notes'] ?? '',
|
||||||
|
$payload['color'] ?? 'default',
|
||||||
|
$payload['privacy'] ?? 'private',
|
||||||
|
$user
|
||||||
|
);
|
||||||
|
|
||||||
|
if ( ! $result ) {
|
||||||
|
$responseType = 'error';
|
||||||
|
$response = 'There was an error creating your folder.';
|
||||||
|
} else {
|
||||||
|
$responseType = 'success';
|
||||||
|
$response = 'success';
|
||||||
|
}
|
||||||
|
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function list( $id = '' ) {
|
||||||
|
header('Access-Control-Allow-Origin: *');
|
||||||
|
$user = self::$authToken->createdBy;
|
||||||
|
$folders = self::$folders->bySpecificUser( $user );
|
||||||
|
|
||||||
|
if ( ! $folders ) {
|
||||||
|
$responseType = 'error';
|
||||||
|
$response = 'There was an error creating your folder.';
|
||||||
|
} else {
|
||||||
|
$responseType = 'folders';
|
||||||
|
$response = $folders;
|
||||||
|
}
|
||||||
|
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -33,25 +33,22 @@ class Bookmarks extends ApiController {
|
|||||||
|
|
||||||
$payload = @file_get_contents('php://input');
|
$payload = @file_get_contents('php://input');
|
||||||
$payload = json_decode( $payload, true );
|
$payload = json_decode( $payload, true );
|
||||||
Debug::error($payload['name']);
|
|
||||||
|
|
||||||
$result = self::$bookmarks->create(
|
$result = self::$bookmarks->create(
|
||||||
$payload['name'],
|
$payload['name'],
|
||||||
$payload['url'],
|
$payload['url'],
|
||||||
0,
|
$payload['folder'] ?? 0,
|
||||||
$payload['notes'],
|
$payload['notes'] ?? '',
|
||||||
'default',
|
$payload['color'] ?? 'default',
|
||||||
'private',
|
$payload['privacy'] ?? 'private',
|
||||||
'external',
|
|
||||||
$user
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( ! $result ) {
|
if ( ! $result ) {
|
||||||
$responseType = 'error';
|
$responseType = 'error';
|
||||||
$response = 'There was an error creating your bookmark.';
|
$response = 'There was an error creating your folder.';
|
||||||
} else {
|
} else {
|
||||||
$responseType = 'success';
|
$responseType = 'data';
|
||||||
$response = 'success';
|
$response = $result;
|
||||||
}
|
}
|
||||||
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
|
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
|
||||||
}
|
}
|
||||||
|
@ -320,34 +320,34 @@ class Bookmarks extends DatabaseModel {
|
|||||||
}
|
}
|
||||||
if ( empty( $instance->hiddenAt ) ) {
|
if ( empty( $instance->hiddenAt ) ) {
|
||||||
$instance->hideBtn = '
|
$instance->hideBtn = '
|
||||||
<a href="{ROOT_URL}bookmarks/hideBookmark/'.$instance->ID.'" class="btn btn-sm btn-warning" role="button">
|
<a href="{ROOT_URL}bookmarks/hideBookmark/'.$instance->ID.'" class="btn btn-sm btn-warning">
|
||||||
<i class="fa fa-fw fa-eye"></i>
|
<i class="fa fa-fw fa-eye"></i>
|
||||||
</a>';
|
</a>';
|
||||||
} else {
|
} else {
|
||||||
$instance->hideBtn = '
|
$instance->hideBtn = '
|
||||||
<a href="{ROOT_URL}bookmarks/showBookmark/'.$instance->ID.'" class="btn btn-sm btn-default" role="button">
|
<a href="{ROOT_URL}bookmarks/showBookmark/'.$instance->ID.'" class="btn btn-sm btn-default">
|
||||||
<i class="fa fa-fw fa-eye"></i>
|
<i class="fa fa-fw fa-eye"></i>
|
||||||
</a>';
|
</a>';
|
||||||
}
|
}
|
||||||
if ( empty( $instance->archivedAt ) ) {
|
if ( empty( $instance->archivedAt ) ) {
|
||||||
$instance->archiveBtn = '
|
$instance->archiveBtn = '
|
||||||
<a href="{ROOT_URL}bookmarks/archiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-info" role="button">
|
<a href="{ROOT_URL}bookmarks/archiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-info">
|
||||||
<i class="fa fa-fw fa-briefcase"></i>
|
<i class="fa fa-fw fa-briefcase"></i>
|
||||||
</a>';
|
</a>';
|
||||||
} else {
|
} else {
|
||||||
$instance->archiveBtn = '
|
$instance->archiveBtn = '
|
||||||
<a href="{ROOT_URL}bookmarks/unarchiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-default" role="button">
|
<a href="{ROOT_URL}bookmarks/unarchiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-default">
|
||||||
<i class="fa fa-fw fa-briefcase"></i>
|
<i class="fa fa-fw fa-briefcase"></i>
|
||||||
</a>';
|
</a>';
|
||||||
}
|
}
|
||||||
if ( ! empty( $instance->refreshedAt ) && time() < ( $instance->refreshedAt + ( 60 * 10 ) ) ) {
|
if ( ! empty( $instance->refreshedAt ) && time() < ( $instance->refreshedAt + ( 60 * 10 ) ) ) {
|
||||||
$instance->refreshBtn = '
|
$instance->refreshBtn = '
|
||||||
<a href="{ROOT_URL}bookmarks/refreshBookmark/'.$instance->ID.'" class="btn btn-sm btn-danger" role="button">
|
<a href="{ROOT_URL}bookmarks/refreshBookmark/'.$instance->ID.'" class="btn btn-sm btn-danger">
|
||||||
<i class="fa fa-fw fa-refresh"></i>
|
<i class="fa fa-fw fa-refresh"></i>
|
||||||
</a>';
|
</a>';
|
||||||
} else {
|
} else {
|
||||||
$instance->refreshBtn = '
|
$instance->refreshBtn = '
|
||||||
<a href="{ROOT_URL}bookmarks/refreshBookmark/'.$instance->ID.'" class="btn btn-sm btn-success" role="button">
|
<a href="{ROOT_URL}bookmarks/refreshBookmark/'.$instance->ID.'" class="btn btn-sm btn-success">
|
||||||
<i class="fa fa-fw fa-refresh"></i>
|
<i class="fa fa-fw fa-refresh"></i>
|
||||||
</a>';
|
</a>';
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,10 @@ class Folders extends DatabaseModel {
|
|||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create( $title, $folderID = 0, $description = '', $color = 'default', $privacy = 'private' ) {
|
public function create( $title, $folderID = 0, $description = '', $color = 'default', $privacy = 'private', $user = null ) {
|
||||||
|
if ( empty( $user ) ) {
|
||||||
|
$user = App::$activeUser->ID;
|
||||||
|
}
|
||||||
if ( ! Check::dataTitle( $title ) ) {
|
if ( ! Check::dataTitle( $title ) ) {
|
||||||
Debug::info( 'Folders: illegal title.' );
|
Debug::info( 'Folders: illegal title.' );
|
||||||
return false;
|
return false;
|
||||||
@ -48,9 +51,10 @@ class Folders extends DatabaseModel {
|
|||||||
'description' => $description,
|
'description' => $description,
|
||||||
'color' => $color,
|
'color' => $color,
|
||||||
'privacy' => $privacy,
|
'privacy' => $privacy,
|
||||||
'createdBy' => App::$activeUser->ID,
|
'createdBy' => $user,
|
||||||
'createdAt' => time(),
|
'createdAt' => time(),
|
||||||
];
|
];
|
||||||
|
|
||||||
if ( !empty( $folderID ) ) {
|
if ( !empty( $folderID ) ) {
|
||||||
$fields['folderID'] = $folderID;
|
$fields['folderID'] = $folderID;
|
||||||
}
|
}
|
||||||
@ -102,6 +106,20 @@ class Folders extends DatabaseModel {
|
|||||||
return $this->filter( $folders->results() );
|
return $this->filter( $folders->results() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function bySpecificUser( $userID, $limit = null ) {
|
||||||
|
$whereClause = ['createdBy', '=', $userID];
|
||||||
|
if ( empty( $limit ) ) {
|
||||||
|
$folders = self::$db->get( $this->tableName, $whereClause );
|
||||||
|
} else {
|
||||||
|
$folders = self::$db->get( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||||
|
}
|
||||||
|
if ( !$folders->count() ) {
|
||||||
|
Debug::info( 'No Folders found.' );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return $this->filter( $folders->results() );
|
||||||
|
}
|
||||||
|
|
||||||
public function getName( $id ) {
|
public function getName( $id ) {
|
||||||
$folder = self::findById( $id );
|
$folder = self::findById( $id );
|
||||||
if (false == $folder) {
|
if (false == $folder) {
|
||||||
|
@ -13,16 +13,16 @@
|
|||||||
{LOOP}
|
{LOOP}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align: center;">
|
<td style="text-align: center;">
|
||||||
<a href="{url}" role="button">
|
<a href="{url}">
|
||||||
{title}
|
{title}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: center;">
|
<td style="text-align: center;">
|
||||||
{privacy}
|
{privacy}
|
||||||
</td>
|
</td>
|
||||||
<td><a href="{ROOT_URL}bookmarks/bookmark/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-upload"></i></a></td>
|
<td><a href="{ROOT_URL}bookmarks/bookmark/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||||
<td><a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil-square"></i></a></td>
|
<td><a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a></td>
|
||||||
<td><a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td><a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
{ALT}
|
{ALT}
|
||||||
@ -34,4 +34,4 @@
|
|||||||
{/ALT}
|
{/ALT}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<a href="{ROOT_URL}bookmarks/createBookmark" class="btn btn-sm btn-primary" role="button">Create</a>
|
<a href="{ROOT_URL}bookmarks/createBookmark" class="btn btn-sm btn-primary">Create</a>
|
@ -76,8 +76,8 @@
|
|||||||
{refreshBtn}
|
{refreshBtn}
|
||||||
{hideBtn}
|
{hideBtn}
|
||||||
{archiveBtn}
|
{archiveBtn}
|
||||||
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil-square"></i></a>
|
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a>
|
||||||
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a>
|
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<div class="card panel-{color}">
|
<div class="card panel-{color}">
|
||||||
<div class="card-header" data-target="#Collapse{ID}" data-toggle="collapse" aria-expanded="true" aria-controls="#Collapse{ID}">
|
<div class="card-header" data-bs-target="#Collapse{ID}" data-bs-toggle="collapse" aria-expanded="true" aria-controls="#Collapse{ID}">
|
||||||
{title}
|
{title}
|
||||||
</div>
|
</div>
|
||||||
<div id="Collapse{ID}" class="panel-collapse collapse in" style="width:100%; position: relative;" role="tabpanel" aria-expanded="true">
|
<div id="Collapse{ID}" class="panel-collapse collapse in" style="width:100%; position: relative;" role="tabpanel" aria-expanded="true">
|
||||||
@ -9,12 +9,12 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<a href="{ROOT_URL}bookmarks/createBookmark/{ID}" class="btn btn-sm btn-success" role="button"><i class="fa fa-fw fa-plus"></i></a></td>
|
<a href="{ROOT_URL}bookmarks/createBookmark/{ID}" class="btn btn-sm btn-success"><i class="fa fa-fw fa-plus"></i></a></td>
|
||||||
<span class="float-right">
|
<span class="float-right">
|
||||||
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-list"></i></a>
|
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-list"></i></a>
|
||||||
<a href="{ROOT_URL}bookmarks/folders/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-info-circle"></i></a></td>
|
<a href="{ROOT_URL}bookmarks/folders/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-info-circle"></i></a></td>
|
||||||
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil-square"></i></a></td>
|
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a></td>
|
||||||
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
|
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
|
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<li class="list-group-item list-group-item-{color}">
|
<li class="list-group-item list-group-item-{color}">
|
||||||
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm" role="button">{iconHtml}</a>
|
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm">{iconHtml}</a>
|
||||||
<a href="{url}" class="list-group"> {title}</a>
|
<a href="{url}" class="list-group"> {title}</a>
|
||||||
<span class="float-right">
|
<span class="float-right">
|
||||||
{hideBtn}
|
{hideBtn}
|
||||||
{archiveBtn}
|
{archiveBtn}
|
||||||
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil-square"></i></a>
|
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a>
|
||||||
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a>
|
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
<td align="center">{title}</td>
|
<td align="center">{title}</td>
|
||||||
<td align="center">{privacy}</td>
|
<td align="center">{privacy}</td>
|
||||||
<td>{description}</td>
|
<td>{description}</td>
|
||||||
<td><a href="{ROOT_URL}bookmarks/folders/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-info-circle"></i></a></td>
|
<td><a href="{ROOT_URL}bookmarks/folders/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-info-circle"></i></a></td>
|
||||||
<td><a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil-square"></i></a></td>
|
<td><a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a></td>
|
||||||
<td><a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td><a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
{ALT}
|
{ALT}
|
||||||
@ -30,4 +30,4 @@
|
|||||||
{/ALT}
|
{/ALT}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<a href="{ROOT_URL}bookmarks/createFolder" class="btn btn-sm btn-primary" role="button">Create</a>
|
<a href="{ROOT_URL}bookmarks/createFolder" class="btn btn-sm btn-primary">Create</a>
|
@ -38,9 +38,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-list"></i></a>
|
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-list"></i></a>
|
||||||
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil-square"></i></a>
|
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a>
|
||||||
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a>
|
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -36,6 +36,9 @@ class MembershipProducts extends DatabaseModel {
|
|||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ( ! self::$loaded ) {
|
if ( ! self::$loaded ) {
|
||||||
$api_key = Config::getValue( 'memberships/stripeSecret' );
|
$api_key = Config::getValue( 'memberships/stripeSecret' );
|
||||||
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
|
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
|
||||||
@ -45,6 +48,8 @@ class MembershipProducts extends DatabaseModel {
|
|||||||
}
|
}
|
||||||
self::$loaded = true;
|
self::$loaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create( $name, $description, $monthly_price, $yearly_price ) {
|
public function create( $name, $description, $monthly_price, $yearly_price ) {
|
||||||
|
@ -49,6 +49,8 @@ class Memberships extends DatabaseModel {
|
|||||||
}
|
}
|
||||||
self::$loaded = true;
|
self::$loaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function filter( $postArray, $params = [] ) {
|
public function filter( $postArray, $params = [] ) {
|
||||||
|
@ -24,8 +24,8 @@
|
|||||||
<td>{prettyPrice}</td>
|
<td>{prettyPrice}</td>
|
||||||
<td>{DTC}{current_period_start}{/DTC}</td>
|
<td>{DTC}{current_period_start}{/DTC}</td>
|
||||||
<td>{DTC}{current_period_end}{/DTC}</td>
|
<td>{DTC}{current_period_end}{/DTC}</td>
|
||||||
<td><a href="{ROOT_URL}admin/records/view/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-upload"></i></a></td>
|
<td><a href="{ROOT_URL}admin/records/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||||
<td><a href="{ROOT_URL}admin/records/delete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td><a href="{ROOT_URL}admin/records/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="checkbox" value="{ID}" name="MP_[]">
|
<input type="checkbox" value="{ID}" name="MP_[]">
|
||||||
</td>
|
</td>
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
<td>{name}</td>
|
<td>{name}</td>
|
||||||
<td>{monthly_price}</td>
|
<td>{monthly_price}</td>
|
||||||
<td>{yearly_price}</td>
|
<td>{yearly_price}</td>
|
||||||
<td><a href="{ROOT_URL}admin/products/view/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-upload"></i></a></td>
|
<td><a href="{ROOT_URL}admin/products/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||||
<td><a href="{ROOT_URL}admin/products/delete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td><a href="{ROOT_URL}admin/products/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="checkbox" value="{ID}" name="MP_[]">
|
<input type="checkbox" value="{ID}" name="MP_[]">
|
||||||
</td>
|
</td>
|
||||||
@ -36,6 +36,6 @@
|
|||||||
{/ALT}
|
{/ALT}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<a href="{ROOT_URL}admin/products/create" class="btn btn-sm btn-primary" role="button">Create</a>
|
<a href="{ROOT_URL}admin/products/create" class="btn btn-sm btn-primary">Create</a>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
||||||
</form>
|
</form>
|
@ -10,10 +10,10 @@
|
|||||||
</p>
|
</p>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<a href="{ROOT_URL}member/cancelconfirm/{cancelid}" class="btn btn-lg btn-danger btn-block" role="button">Cancel Subscription</a>
|
<a href="{ROOT_URL}member/cancelconfirm/{cancelid}" class="btn btn-lg btn-danger btn-block">Cancel Subscription</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<a href="{ROOT_URL}member/manage" class="btn btn-lg btn-primary btn-block" role="button">Go Back</a>
|
<a href="{ROOT_URL}member/manage" class="btn btn-lg btn-primary btn-block">Go Back</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
<p>Basic bookmark storage</p>
|
<p>Basic bookmark storage</p>
|
||||||
<p>No import/export</p>
|
<p>No import/export</p>
|
||||||
<p>Completely free</p>
|
<p>Completely free</p>
|
||||||
<a href="{ROOT_URL}member/getmonthly/{ID}" class="btn btn-success" role="button">Sign Up</a>
|
<a href="{ROOT_URL}member/getmonthly/{ID}" class="btn btn-success">Sign Up</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -40,7 +40,7 @@
|
|||||||
<p>Import/export bookmarks</p>
|
<p>Import/export bookmarks</p>
|
||||||
<p>Advanced curation tools</p>
|
<p>Advanced curation tools</p>
|
||||||
<p>{prettyPriceMonthly}/month</p>
|
<p>{prettyPriceMonthly}/month</p>
|
||||||
<a href="{ROOT_URL}member/getmonthly/{ID}" class="btn btn-primary" role="button">Sign Up</a>
|
<a href="{ROOT_URL}member/getmonthly/{ID}" class="btn btn-primary">Sign Up</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -53,7 +53,7 @@
|
|||||||
<p>Save with annual billing</p>
|
<p>Save with annual billing</p>
|
||||||
<p>All features included</p>
|
<p>All features included</p>
|
||||||
<p>{prettyPriceYearly}/year</p>
|
<p>{prettyPriceYearly}/year</p>
|
||||||
<a href="{ROOT_URL}member/getyearly/{ID}" class="btn btn-primary" role="button">Sign Up</a>
|
<a href="{ROOT_URL}member/getyearly/{ID}" class="btn btn-primary">Sign Up</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>{prettyPriceMonthly}/month</p>
|
<p>{prettyPriceMonthly}/month</p>
|
||||||
<p>All pro features unlocked</p>
|
<p>All pro features unlocked</p>
|
||||||
<a href="{ROOT_URL}member/getmonthly/{ID}" class="btn btn-success btn-block" role="button">Get Started</a>
|
<a href="{ROOT_URL}member/getmonthly/{ID}" class="btn btn-success btn-block">Get Started</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -30,7 +30,7 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>{prettyPriceYearly}/year</p>
|
<p>{prettyPriceYearly}/year</p>
|
||||||
<p>Save {prettySavings} annually!</p>
|
<p>Save {prettySavings} annually!</p>
|
||||||
<a href="{ROOT_URL}member/getyearly/{ID}" class="btn btn-info btn-block" role="button">Sign Up</a>
|
<a href="{ROOT_URL}member/getyearly/{ID}" class="btn btn-info btn-block">Sign Up</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
<td>{prettyPrice}</td>
|
<td>{prettyPrice}</td>
|
||||||
<td>{DTC=date}{current_period_start}{/DTC}</td>
|
<td>{DTC=date}{current_period_start}{/DTC}</td>
|
||||||
<td>{DTC=date}{current_period_end}{/DTC}</td>
|
<td>{DTC=date}{current_period_end}{/DTC}</td>
|
||||||
<td><a href="{ROOT_URL}member/pause/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-pause"></i></a></td>
|
<td><a href="{ROOT_URL}member/pause/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-pause"></i></a></td>
|
||||||
<td><a href="{ROOT_URL}member/cancel/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-times"></i></a></td>
|
<td><a href="{ROOT_URL}member/cancel/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-times"></i></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
{ALT}
|
{ALT}
|
||||||
@ -32,4 +32,4 @@
|
|||||||
{/ALT}
|
{/ALT}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<a href="{ROOT_URL}member/managepayment" class="btn btn-sm btn-primary" role="button">Manage Payment Method</a>
|
<a href="{ROOT_URL}member/managepayment" class="btn btn-sm btn-primary">Manage Payment Method</a>
|
@ -10,10 +10,10 @@
|
|||||||
</p>
|
</p>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<a href="{ROOT_URL}member/pauseconfirm/{pauseid}" class="btn btn-lg btn-danger btn-block" role="button">Pause Subscription</a>
|
<a href="{ROOT_URL}member/pauseconfirm/{pauseid}" class="btn btn-lg btn-danger btn-block">Pause Subscription</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<a href="{ROOT_URL}member/manage" class="btn btn-lg btn-primary btn-block" role="button">Go Back</a>
|
<a href="{ROOT_URL}member/manage" class="btn btn-lg btn-primary btn-block">Go Back</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user