Skip to content

Commit

Permalink
v.1.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
KmancusoRonik committed Sep 12, 2023
1 parent 44787ee commit ba509fb
Show file tree
Hide file tree
Showing 19 changed files with 1,966 additions and 58 deletions.
15 changes: 5 additions & 10 deletions admin/ajax/api-checkpoint.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@


if($_POST['plugin_slug'] == 'ronik_media_cleaner'){
if(!get_option('rbp_media_cleaner_api_key') && get_option('rbp_media_cleaner_api_key') !== '' ){
$f_option = add_option('rbp_media_cleaner_api_key', $_POST['apikey']);
} else {
$f_option = update_option('rbp_media_cleaner_api_key', $_POST['apikey']);
}
$f_option = update_option('rbp_media_cleaner_api_key', (isset($_POST['apikey'])) ? $_POST['apikey'] : '' );
$f_option_validation = update_option('rbp_media_cleaner_api_key_validation', (isset($_POST['apikeyValidation'])) ? $_POST['apikeyValidation'] : 'invalid' );

if($f_option){
// Send sucess message!
wp_send_json_success('Reload');
Expand All @@ -29,11 +27,8 @@
}

if($_POST['plugin_slug'] == 'ronik_optimization'){
if(!get_option('rbp_optimization_api_key')){
$f_option = add_option('rbp_optimization_api_key', $_POST['apikey']);
} else {
$f_option = update_option('rbp_optimization_api_key', $_POST['apikey']);
}
$f_option = update_option('rbp_optimization_api_key', (isset($_POST['apikey'])) ? $_POST['apikey'] : '' );
$f_option_validation = update_option('rbp_optimization_api_key_validation', (isset($_POST['apikeyValidation'])) ? $_POST['apikeyValidation'] : 'invalid' );

if($f_option){
// Send sucess message!
Expand Down
250 changes: 247 additions & 3 deletions admin/class-ronik-base-admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,11 @@ function child_plugin_notice(){

// We create our own option page due to ACF in-effective
public function rbp_plugin_interface() {
$rbp_media_cleaner_api_key = get_option('rbp_media_cleaner_api_key') ? get_option('rbp_media_cleaner_api_key') : "";
$rbp_optimization_api_key = get_option('rbp_optimization_api_key') ? get_option('rbp_optimization_api_key') : "";
$rbp_media_cleaner_validation = get_option('rbp_media_cleaner_api_key_validation') ? get_option('rbp_media_cleaner_api_key_validation') : "invalid";
$rbp_optimization_validation = get_option('rbp_optimization_api_key_validation') ? get_option('rbp_optimization_api_key_validation') : "invalid";

add_menu_page(
'General - Ronik Base', // page <title>Title</title>
'Ronik Base', // link text
Expand All @@ -162,7 +167,7 @@ public function rbp_plugin_interface() {
'Integrations',
'Integrations',
'manage_options',
'options-ronik-base_integrations', //
'options-ronik-base_integrations',
'ronikbase_integrations_callback',
2 // menu position
);
Expand All @@ -176,6 +181,82 @@ public function rbp_plugin_interface() {
'ronikbase_support_callback',
3 // menu position
);
if($rbp_media_cleaner_api_key && ($rbp_media_cleaner_validation !== "invalid")){
// Add Media Cleaner page.
add_submenu_page(
'options-ronik-base', // parent page slug
'Media Cleaner',
'Media Cleaner',
'manage_options',
'options-ronik-base_media_cleaner', //
'ronikbase_media_cleaner_callback',
4 // menu position
);
function ronikbase_media_cleaner_callback(){
echo '<div id="ronik-base_media_cleaner">Media Cleaner</div>';

$rbp_media_cleaner_counter = get_option('rbp_media_cleaner_counter') ? get_option('rbp_media_cleaner_counter') : "";
$rbp_media_cleaner_increment = update_option('rbp_media_cleaner_increment', 1);

if($rbp_media_cleaner_counter){
$numbers = range(0, ($rbp_media_cleaner_counter - 1));
?>
<style>
table, th, td {
border:1px solid black;
}
td{
padding: 1em;
max-width: 20%;
width: 100%;
}
</style>
<table style="width:100%">
<input class="ronik-user-exporter_increment" value="<?= $rbp_media_cleaner_increment; ?>">
<tr>
<th>Thumbnail Image</th>
<th>File Size</th>
<th>Image ID</th>
<th>Image Url</th>
<th>Remove Row <br> <sup>Clicking the button will not delete the image it will just exclude the selected image from the media list temporarily.</sup></th>
</tr>
<?php foreach($numbers as $number){
$rbp_media_cleaner_file_size = get_option('rbp_media_cleaner_'.$number.'_file_size') ? get_option('rbp_media_cleaner_'.$number.'_file_size') : "";
$rbp_media_cleaner_image_id = get_option('rbp_media_cleaner_'.$number.'_image_id') ? get_option('rbp_media_cleaner_'.$number.'_image_id') : "";
$rbp_media_cleaner_image_url = get_option('rbp_media_cleaner_'.$number.'_image_url') ? get_option('rbp_media_cleaner_'.$number.'_image_url') : "";

if($rbp_media_cleaner_image_id){ ?>
<tr data-media-id="<?= $rbp_media_cleaner_image_id; ?>">
<td><?= wp_get_attachment_image( $rbp_media_cleaner_image_id ); ?></td>
<td><?= $rbp_media_cleaner_file_size; ?> </td>
<td><?= $rbp_media_cleaner_image_id; ?> </td>
<td><?= $rbp_media_cleaner_image_url; ?> </td>
<td><button data-media-row="<?= $number; ?>">Remove Row</button></td>
</tr>
<?php }?>

<?php } ?>
</table>
<?php }
}
}
if($rbp_optimization_api_key && ($rbp_optimization_validation !== "invalid")){
// Add Optimizationr page.
add_submenu_page(
'options-ronik-base', // parent page slug
'Optimization',
'Optimization',
'manage_options',
'options-ronik-base_optimization', //
'ronikbase_optimization_callback',
5 // menu position
);
function ronikbase_optimization_callback(){
echo '
<div id="ronik-base_optimization">Optimization</div>
';
}
}

function ronikbase_support_general(){
echo '
Expand All @@ -193,13 +274,120 @@ function ronikbase_support_callback(){
';
}
function ronikbase_integrations_callback(){
$rbp_media_cleaner_api_key = get_option('rbp_media_cleaner_api_key') ? get_option('rbp_media_cleaner_api_key') : "";
$rbp_optimization_api_key = get_option('rbp_optimization_api_key') ? get_option('rbp_optimization_api_key') : "";
$rbp_media_cleaner_validation = get_option('rbp_media_cleaner_api_key_validation') ? get_option('rbp_media_cleaner_api_key_validation') : "invalid";
$rbp_optimization_validation = get_option('rbp_optimization_api_key_validation') ? get_option('rbp_optimization_api_key_validation') : "invalid";
echo '
<div id="ronik-base_integrations"></div>
<div id="ronik_media_cleaner_api_key" data-api='.get_option('rbp_media_cleaner_api_key').'></div>
<div id="ronik_optimization_api_key" data-api='.get_option('rbp_optimization_api_key').'></div>
<div id="ronik_media_cleaner_api_key" data-api='.$rbp_media_cleaner_api_key.'></div>
<div id="ronik_optimization_api_key" data-api='.$rbp_optimization_api_key.'></div>
<div id="ronik_media_cleaner_api_key_validation" data-api-validation='.$rbp_media_cleaner_validation.'></div>
<div id="ronik_optimization_api_key_validation" data-api-validation='.$rbp_optimization_validation.'></div>
';
}




// add_filter( 'wp_get_attachment_image_attributes', 'my_attachment_filter', 10, 3 );
// function my_attachment_filter($attr, $attachment, $size){
// error_log(print_r( 'TESTTST', true));
// if (is_admin()){
// if (array_key_exists( 'src' , $attr)){
// $old_src = $attr['src'];
// $new_src = strtr($old_src, array('_featured' => '_featured_eighth', '_portrait' => '_portrait_204', '_og.' => '_og_320.', '.jpg' => '.webp'));
// $attr['src'] = $new_src;
// }
// }
// return $attr;
// }


// Image Dimensions.
function rmc_media_column_dimensions( $cols ) {
$cols["rmc_dimensions"] = "Dimensions (width, height)";
return $cols;
}
// Image Isdetached.
function rmc_media_column_isdetached( $cols ) {
$cols["rmc_detached"] = "Ronik Media Cleaner Detached";
return $cols;
}
add_filter( 'manage_media_columns', 'rmc_media_column_isdetached' );
add_filter( 'manage_media_columns', 'rmc_media_column_dimensions' );

function rmc_media_column_value( $column_name, $id ) {
if( $column_name == 'rmc_detached' ){
echo 'detached';
}
if( $column_name == 'rmc_dimensions' ){
$meta = wp_get_attachment_metadata($id);
if(isset($meta['width'])){
echo $meta['width'].' x '.$meta['height'];
}
}
}
add_action( 'manage_media_custom_column', 'rmc_media_column_value', 10, 2 );










function media_add_author_dropdown(){
var_dump('eeee');
$scr = get_current_screen();
if ( $scr->base !== 'upload' ) return;

$author = filter_input(INPUT_GET, 'author', FILTER_SANITIZE_STRING );
$selected = (int)$author > 0 ? $author : '-1';
$args = array(
'show_option_none' => 'All Authors',
'name' => 'author',
'selected' => $selected
);
wp_dropdown_users( $args );
}
add_action('restrict_manage_posts', 'media_add_author_dropdown');

function author_filter($query) {
if ( is_admin() && $query->is_main_query() ) {
if (isset($_GET['author']) && $_GET['author'] == -1) {
$query->set('author', '');
}
}
}
add_action('pre_get_posts','author_filter');








}


















// This will setup all custom fields via php scripts.
Expand Down Expand Up @@ -228,4 +416,60 @@ public function rbp_acf_op_init_functions(){
public function api_checkpoint(){
include dirname(__FILE__) . '/ajax/api-checkpoint.php';
}







// This will setup all custom fields via php scripts.
public function rmc_acf_op_init_fields(){
// Include the ACF Fields
foreach (glob(dirname(__FILE__) . '/media-cleaner/acf-fields/*.php') as $file) {
include $file;
}
}

// Setup additional functionality.
public function rmc_acf_op_init_functions(){
// Include the acf-additions.
foreach (glob(dirname(__FILE__) . '/media-cleaner/acf-additions/*.php') as $file) {
include $file;
}
// Include the wp-functions.
foreach (glob(dirname(__FILE__) . '/media-cleaner/wp-functions/*.php') as $file) {
include $file;
}
}










// These files contain ajax functions.
// Init Remove Unused Media
public function rmc_ajax_media_cleaner(){
include dirname(__FILE__) . '/media-cleaner/ajax/media-cleaner.php';
}
// // Init Unused Media Migration
// public function rmc_ajax_media_cleaner_remove(){
// include dirname(__FILE__) . '/media-cleaner/ajax/media-cleaner-remove.php';

// }










}
7 changes: 4 additions & 3 deletions admin/interface/components/FetchAddon.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const FetchAddon = ({pluginName, pluginSlug, title, description, linkHref, linkN
e.preventDefault();
setDataResponse({ responseResults : 'invalid', response : 'License key deactivated.' });
setFormValues({ });
handlePostData(e, '');
handlePostData(e, '', 'invalid');
}
// Lets handle the input changes and store the changes to form values.
const handleChange = (e) => {
Expand All @@ -43,7 +43,7 @@ const FetchAddon = ({pluginName, pluginSlug, title, description, linkHref, linkN
const response = await fetch(`${endpoint}/wp-json/apikey/v1/data/apikey?pluginSlug=${pluginSlug}&key=${key}&websiteID=${websiteID}`);
const data = await response.json();
if(data == 'Success') {
handlePostData(e, e.target[0].value);
handlePostData(e, e.target[0].value, 'valid');
// acf js update field
setDataResponse({ responseResults : 'valid', response : 'License key activated.' });
} else {
Expand All @@ -55,11 +55,12 @@ const FetchAddon = ({pluginName, pluginSlug, title, description, linkHref, linkN



const handlePostData = async (e, val) => {
const handlePostData = async (e, val, validation) => {
const data = new FormData();
data.append( 'action', 'api_checkpoint' );
data.append( 'nonce', wpVars.nonce );
data.append( 'apikey', val );
data.append( 'apikeyValidation', validation );
data.append( 'plugin_slug', pluginSlug );

fetch(wpVars.ajaxURL, {
Expand Down
Loading

0 comments on commit ba509fb

Please sign in to comment.