Great news, I got it working, and it’s working great!
Just need to clean up some things, and finish it to be fully dynamic (there is one new wp_option I may need to store, and maybe add a few inputs to file-manager/add-new-package for it). I also need to add some if conditions, to properly handle my script to only be triggered if “FTP-DUMP” or something is enabled. I’d like to clean up my handling of absolute/relative paths too. It’s very dirty still.
So far, I only had to add change one block of code, and add a new block.
Then, I referenced my own script in it’s own PHP file, and I just include it once if admin.php?page=file-manager&task=RefreshPackage, it pulls the needed references to define it’s variables from $_GET[‘id] (WPDM’s file package DB records). I built it off your current Add/Edit system.
Here is the change log to your source:
[the code tags on this forum seem to trim some of my code, so I will also attach a .txt]
**NOTE:**
I always apply source formatting via Dreamweaver when I edit files, so my line numbers won't match unless you do that first.
Therefore, relying on line numbers isn't best, so I will also reference local objects
/*///////////////////////////////////////////////////////////////
//in: list-files.php
+:
[replaces][div class="button-group"](near line 119 w/ applied source formatting)
creates a new button for "Refresh Package" on the Download Package Management back-end page, and inserts a line break () in button-group div
so that all the buttons fit in the table cell
//////////////////////////////////////////////////////////////*/
<a class="button" href="admin.php?page=file-manager&task=RefreshPackage&id=" style="color: #90F">Refresh Package
<a class="button" href="admin.php?page=file-manager&task=EditPackage&id=">Edit
<a class="button" href="admin.php?page=file-manager/add-new-package&clone=" style="color: #336699">Clone
<a class="button" target="_blank" href='' style="color: #005500">View
<a href="admin.php?page=file-manager&task=DeleteFile&id=" class="button submitdelete" style="color: #cc0000" rel=" " title="Permanently">Delete
/*///////////////////////////////////////////////////////////////
//in: wpdm.php
+:
[appended][fuction RefreshPackage()](added near line 409 w/ applied source formatting)
adds function for "Refresh Package" button to refresh the package's item
//////////////////////////////////////////////////////////////*/
function RefreshPackage(){
global $wpdb, $current_user;
get_currentuserinfo();
$cond_uid = wpdm_multi_user()&&!wpdm_is_custom_admin()?"and uid='{$current_user->ID}'":"";
$id = $_GET['id'];
$table_name = "{$wpdb->prefix}ahm_files";
$file = $wpdb->get_row("SELECT * FROM {$table_name} WHERE `id` = {$id} $cond_uid", ARRAY_A);
if(!$file[id]) {
$error = "Sorry, You don't have permission to edit that file!";
include("error-page.php");
return;
}
include('refreshpackage.php');
}
and this is the code for my refreshpackage.php, needs to be cleaned up now as I said:
$dir) {
// find first non-matching dir
if($dir === $to[$depth]) {
// ignore this directory
array_shift($relPath);
} else {
// get number of remaining dirs to $from
$remaining = count($from) - $depth;
if($remaining > 1) {
// add traversals up to first matching dir
$padLength = (count($relPath) + $remaining - 1) * -1;
$relPath = array_pad($relPath, $padLength, '..');
break;
} else {
$relPath[0] = './' . $relPath[0];
}
}
}
return implode('/', $relPath);
}
/* END RELATIVE PATH COMPARER */
/* DEFINE VARS */
$packageID = $_GET['id'];
$siteurl = site_url();
$wpmdpath = WPDM_BASE_DIR;
$zippath = $file[sourceurl]; //full path needs to be trimmed below...
$zipfilename = basename($file[sourceurl]); //file name
$zippath = str_replace($zipfilename,"",$zippath); //trim trailing file name
$sourceDIRname = "http://www.example.com/downloads/General-Packages/imagesonly/"; //need to dynamically define this later. MUST BE ON SAME SERVER!!
/* END DEFINE VARS */
/* CLEAN/TRIM SOURCE PATHS */
//the idea here is to trim all the prefixes to the file-sourceurl and the site_url(), so we can compare them, even if
//the site_url is http://example.com and the file-sourceurl is http://www.example.com/file.zip, or hopefully even if it was a local WP site.
//
//trim possible url prefixes..
$zippath = str_replace("http://","",$zippath);
$zippath = str_replace("www.","",$zippath);
$zippath = str_replace("//","",$zippath);
$zippath = str_replace("\\","",$zippath);
$siteurl = str_replace("http://","",$siteurl);
$siteurl = str_replace("www.","",$siteurl);
$siteurl = str_replace("//","",$siteurl);
$siteurl = str_replace("\\","",$siteurl);
$sourceDIRname = str_replace("http://","",$sourceDIRname);
$sourceDIRname = str_replace("www.","",$sourceDIRname);
$sourceDIRname = str_replace("//","",$sourceDIRname);
$sourceDIRname = str_replace("\\","",$sourceDIRname);
//trim off remaining site url...
$zippath = str_replace($siteurl,"",$zippath);
$sourceDIRname = str_replace($siteurl,"",$sourceDIRname);
/* END CLEAN/TRIM SOURCE PATHS */
/**************************************/
/* COMPARE PATHS TO FIND REAL REL PATH */
/* FOR ZIP-SOURCE-DIR & ZIP-OUTPUT-DIR */
$sourcefolder = wpmd_getRelativePath("./", $sourceDIRname); // must be rel to $wpmdpath
$outputfolder = wpmd_getRelativePath("./", $zippath); // must be rel to $wpmdpath
/**************************************/
$timeout = 100000 ; // Default: 50000
// This creates the zip file
$dirlist = new RecursiveDirectoryIterator($sourcefolder);
$filelist = new RecursiveIteratorIterator($dirlist);
// Set the php timeout
ini_set('max_execution_time', $timeout);
// Defines the action
$zip = new ZipArchive();
?>
open("$zipfilename", ZipArchive::OVERWRITE) !== TRUE) {
die ("Could not open archive");
}
// adds files to the file list
foreach ($filelist as $key►$value) {
//fix archive paths
$path = str_replace($sourcefolder, "", $key);
$zip->addFile(realpath($key), $path) or die ("ERROR: Could not add file: $key");
}
// closes the archive
$zip->close();
//move to output if necessary
if ($outputfolder != "./") {
if (copy("./" . $zipfilename,"" .$outputfolder . "/" . $zipfilename . "")) {
unlink("./" . $zipfilename);
}
}
echo "Archive ". $zipfilename . " created successfully!";
?>
Of course, I will also add a location href at the end of my script to reload page?=file-manager, and will echo a “Successful!” message there when it’s done. Now I get to smooth out all the details! 🙂
Do you think any of this may be of benefit to you?
Hello again, I noticed this tonight while I was doing some testing:
When you click on the “View” link that appears in the pop-down window after clicking “update package”, it returns a 404.
the link is:
[root]/download/holland-bar-stool-dealer-package/
the view button on page=file-manager works just fine tho, that link appears as:
[root]/?wpdmpro=wpdmpro&download=holland-bar-stool-dealer-package
Thought I’d mention it.
BTW, my integration of my add-on is making progress again 🙂
Hi,
If a user creates two packages with identical names (eg “somename”) the View link on the “Manage Download Packages” listing, “Edit Download Package” page for the package don’t work properly. Also the http://foo.com/packages/somename/ doesn’t work right. The issue seems to be that url_key in cnotb_ahm_filemeta and cnotb_ahm are not being created with unique values. If we manually update the cnotb_ahm_filemeta and cnotb_ahm_files tables in the database manually these can work.
Ideally we need a fix that both addresses packages added in future and fixes existing packages with this problem.
Thanks
Mark
Hi,
I created many pages using the free version and inserted the shortcode [wpdm_file id=***] on each page with the proper id number and really liked how it just displayed an icon and a password field to enter your password. The file would simply download from that same page when the password was entered correctly. Now, i’ve upgraded to Pro and completed the install and imported my existing packages and i noticed that the shortcode associated with each package has changed from [wpdm_file id=***] to [wpdm_package id=***]. When I view my pages on the front end, I now see a text link that take you to another page for downloading that displays “version” “Download” “Stock” “create date” etc…. What settings do I need to change in the Pro version to make it display and work like the free version? Thanks, Brian
Hello,
I would like to use the download packet from an article without redirect to the download page of the packet.
Is it possible?
Thanks.
Hello,
The popup isn´t showing correctly.
You can see this link http://objetivofitness.com/download/dieta-para-perder-grasa-rapidamente/
Regards.
See image, how do i get rid of the text link?
Hi, i did buy the Pro Version + alot of Plugin’s.
here is a list of my Problems.
1. I did a translation with the .po File.
After a day of Translation i found out that still alot of stuff will be displayed in english.
Is this a known problem ?
2. When i Display the Archive-Page it doesn’t show the ICON’s of the choosen content inside the Categorie
seems like somethink wrong with the ICON Adress.
Right now it is :
https://download.medidok.net/index.php/alle-downloads/%3Cimg%20width=48%20class=’wpdm_icon’%20align=’left’%20src=’https://download.medidok.net/wp4mddown/wp-content/plugins/download-manager/file-type-icons/download2.png’%20/%3E
If i open a Categorie by the Widget
3.
I Ordered first the Pro Version with Plugin and then i Ordered again the speed Control Plugin
what Key should i use? I have 2 key’s now.
When i look inside my account here it doesn’t have a domain ?! normal ?
4. I had Problems with the permalink structure
The Site is https://download.medidok.net
The content is https://download.medidok.net/wp4mddown/
I had to change the Startsite inside WP to https://download.medidok.net/index.php
After that i could use /%postname%/ inside permalink settings.
Beside that i did change inside download-manager/modules/ the file canonical-url.php
under function wpdm_flat_url
i did change every .site_url to .home_url
I’m note sure if that was really needed but i’ve done it to get it working
I’m Using IIS7.5 and WP3.51 on php 5.3.21 (Fast-CGI)
hopefully i can get some help here
Hi,
I’m trying to create a package but I’m having some trouble doing so. Here is a list of the problems:
1. On Upload files from PC when I click on the Select Files button nothing happends.
2. When I try to add preview image and click on the Add main preview image link, nothing happends.
3. When I click on open dir browser it redirects me to http://localhost/wordpress/wp-admin/admin.php?page=file-manager&task=wpdm_dir_browser and dont open lightbox.
4. Adding additional previews doesnt work.
5. When i write on the content text area it writes it but using white font color.
6. When I click on the create package button it redirect me to http://localhost/wordpress/wp-admin/admin.php?page=file-manager/add-new-package# With json output:
{
“result”: “success”,
“id”: 1
}
Please help me out.
Thanks