Jump to content

Chrisj

Members
  • Posts

    547
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Chrisj

  1. Thanks for your reply. I'm initially looking for some coding help with how to put the amount that is in the 'upload_amount' column of the db table 'u_paid_videos' to properly replace (amount - admin_com) in this line: $this_day_video_earn = $db->rawQuery("SELECT SUM(amount - admin_com) AS sum FROM ".T_VIDEOS_TRSNS." c WHERE `time` >= ".$day_start." AND `time` <= ".$day_end." AND user_id = ".$pt->user->id); to help calculate the amount earned for the day
  2. I'm using a php video web script which includes this buy_video.php file, which calculates the video uploader's earned amount, and insert's that amount in the 'u_paid_videos' table column named 'earned_amount', which appears in this file on line 73: <?php ob_start(); if (IS_LOGGED == false) { $data = array('status' => 400, 'error' => 'Not logged in'); echo json_encode($data); exit(); } if (!empty($_POST['id'])) { if (!is_array($_POST['id'])) { $id_array[] = $_POST['id']; } else { $id_array = $_POST['id']; } // get cost video // get the default video price, to use if there is no per video play price $db->where('name', 'video_play_price'); $db_cost = $db->getOne('config'); $video_cost = (float)$db_cost->value; // the number of submitted videos - used to determine if all records were inserted $count_video = count($id_array); $user_id = $user->id; $wallet = (float)str_replace(',', '', $user->wallet); $balance = (float)str_replace(',', '', $user->balance); // add up the video prices $amount = 0; foreach ($id_array as $id) { $video_id = (int)PT_Secure($id); // get video data $video = $db->where('id', $id)->getOne(T_VIDEOS); // add the video play price if any, or the default price $amount += $video->video_play_price?$video->video_play_price:$video_cost; } // determine if the user has enough credits if( ($wallet >= $amount) OR ($balance + $wallet >= $amount) ) { //if( ($wallet >= $amount) OR ($balance >= $amount) ) { $db->startTransaction(); $inserted_records = 0; foreach ($id_array as $id){ $video_id = (int)PT_Secure($id); // get video data $video = $db->where('id', $id)->getOne(T_VIDEOS); // use the video play price if any, or the default price $video_cost_new = $video->video_play_price?$video->video_play_price:$video_cost; // credit the user 50% of the video cost $uploader_amount = $video_cost_new *0.50; // add data to paid table $insert_buy = $db->insert('u_paid_videos', [ 'id_user' => $user_id, 'id_video' => $video_id, 'session_key' => $_SESSION['session_key'], 'video_play_price' => (string)$video_cost, // the cost at the time of purchase // this is the default video cost not the $video_cost_new 'video_title' => $video->title, // storing the title 'user_id_uploaded' => $video->user_id, // the user who uploaded the video 'earned_amount' => $uploader_amount, ]); // count successful inserted records if ($insert_buy) { $inserted_records++; } //update the 'balance' of the user who uploaded the video // get the user's record $userwallet = $db->where('id', $video->user_id)->getOne(T_USERS); // add to the balance $videouserwallet = $userwallet->balance+$uploader_amount; // update the record $db->where('id', $video->user_id); $update_balance = $db->update(T_USERS, [ 'balance' => number_format($videouserwallet, 1, '.', ''), ]); } $update_wallet = null; $update_user_balance = null; ETC ..................................................... Ultimately, I’m trying to integrate the buy_video.php file’s ‘$earned_amount’ into a web script’s existing transaction file. Here are a couple of lines from that transaction file: $this_day_video_earn = $db->rawQuery("SELECT SUM(amount - admin_com) AS sum FROM ".T_VIDEOS_TRSNS." c WHERE `time` >= ".$day_start." AND `time` <= ".$day_end." AND user_id = ".$pt->user->id); $today_earn = $this_day_ads_earn[0]->sum + $this_day_video_earn[0]->sum ; and $trans = $db->where('user_id',$user->id)->orderBy('id','DESC')->get(T_VIDEOS_TRSNS); That may not be enough info, but I’d like assistance changing those lines to: $this_day_video_earn = $db->rawQuery("SELECT SUM(earned_amount) AS sum FROM “.T_VIDEOS.” c WHERE time >= “.$day_start.” AND time <= “.$day_end.” AND user_id = ".$pt->user->id); $trans = $db->where('user_id',$user->id)->orderBy('id','DESC')->get(T_VIDEOS); I tried those changes without success. Any guidance/suggestions will be appreciated.
  3. Thanks for the replies. In tried this: use assets\import\PHPMailer; and I see this error: Fatal error: Uncaught Error: Class 'assets\import\PHPMailer' not found in /home/public_html/submit/submit.php:18 Stack trace: #0 {main} thrown in ... and I tried this: use assets/import/PHPMailer; and I see this error: Parse error: syntax error, unexpected '/', expecting ',' or ';' in any additional help will be welcomed.
  4. Yes, thanks, got it. Now I see this: Fatal error: Uncaught Error: Class 'PHPMailer\PHPMailer\PHPMailer' not found in /home/public_html/submit/submit.php:13 Stack trace: #0 {main} thrown in /home/public_html/submit/submit.php on line 13 any additional help is appreciated
  5. Thanks for your reply. I'm now trying the code below, but am getting this error: Warning: require(../assets/import/PHPMailer/PHPMailerAutoLoad.php): failed to open stream: No such file or directory in /home/public_html/submit/submit.php on line 11Warning: require(../assets/import/PHPMailer/PHPMailerAutoLoad.php): failed to open stream: No such file or directory in /home/public_html/submit/submit.php on line 11Fatal error: require(): Failed opening required '../assets/import/PHPMailer/PHPMailerAutoLoad.php' (include_path='.:/opt/cpanel/ea-php70/root/usr/share/pear') in /home/public_html/submit/submit.php on line 11 <?php /** * This example shows how to handle a simple contact form. */ //Import PHPMailer classes into the global namespace use PHPMailer\PHPMailer\PHPMailer; $msg = ''; //Don't run this unless we're handling a form submission if (array_key_exists('email', $_POST)) { date_default_timezone_set('Etc/UTC'); require '../assets/import/PHPMailer/PHPMailerAutoLoad.php'; //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP - requires a local mail server //Faster and safer than using mail() $mail->isSMTP(); $mail->Host = 'localhost'; $mail->Port = 25; //Use a fixed address in your own domain as the from address //**DO NOT** use the submitter's address here as it will be forgery //and will cause your messages to fail SPF checks $mail->setFrom('chrisj@hmail.com', 'First Last'); //Send the message to yourself, or whoever should receive contact for submissions $mail->addAddress('chrisj@hmail.com', 'John Doe'); //Put the submitter's address in a reply-to header //This will fail if the address provided is invalid, //in which case we should ignore the whole request if ($mail->addReplyTo($_POST['email'], $_POST['name'])) { $mail->Subject = 'PHPMailer contact form'; //Keep it simple - don't use HTML $mail->isHTML(false); //Build a simple message body $mail->Body = <<<EOT Email: {$_POST['email']} Name: {$_POST['name']} Message: {$_POST['message']} EOT; //Send the message, check for errors if (!$mail->send()) { //The reason for failing to send will be in $mail->ErrorInfo //but you shouldn't display errors to users - process the error, log it on your server. $msg = 'Sorry, something went wrong. Please try again later.'; } else { $msg = 'Message sent! Thanks for contacting us.'; } } else { $msg = 'Invalid email address, message ignored.'; } } ?> Any additional guidance is appreciated.
  6. Thanks for your reply. It's not so straight forward to me. Here's what I tried, without success: <?php use PHPMailer\PHPMailer\PHPMailer; $msg = ''; if (array_key_exists('userfile', $_FILES)) { $uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['userfile']['name'])); if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { // Upload handled successfully // Now create a message require '../vendor/autoload.php'; $mail = new PHPMailer; $mail->setFrom('from@example.com', 'First Last'); $mail->addAddress('s@hmail.com', 'John Doe'); $mail->Subject = 'PHPMailer file sender'; $mail->message = 'My message body'; // Attach the uploaded file $mail->addAttachment($uploadfile, 'My uploaded file'); if (!$mail->send()) { $msg .= "Mailer Error: " . $mail->ErrorInfo; } else { $msg .= "Message sent!"; } } else { $msg .= 'Failed to move file to ' . $uploadfile; } header('Location: https://........com'); exit; } ?> any additional guidance will be appreciated
  7. Thanks for your reply. I have PHPMailer installed. Maybe you can help direct me to tie-in this example code to my Form and to the PHPMailer: <?php /** * PHPMailer simple file upload and send example. */ //Import the PHPMailer class into the global namespace use PHPMailer\PHPMailer\PHPMailer; $msg = ''; if (array_key_exists('userfile', $_FILES)) { // First handle the upload // Don't trust provided filename - same goes for MIME types // See http://php.net/manual/en/features.file-upload.php#114004 for more thorough upload validation $uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['userfile']['name'])); if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { // Upload handled successfully // Now create a message require '../vendor/autoload.php'; $mail = new PHPMailer; $mail->setFrom('from@example.com', 'First Last'); $mail->addAddress('whoto@example.com', 'John Doe'); $mail->Subject = 'PHPMailer file sender'; $mail->Body = 'My message body'; // Attach the uploaded file $mail->addAttachment($uploadfile, 'My uploaded file'); if (!$mail->send()) { $msg .= "Mailer Error: " . $mail->ErrorInfo; } else { $msg .= "Message sent!"; } } else { $msg .= 'Failed to move file to ' . $uploadfile; } } ?> And my Form looks like this: <form action='/submit/submit.php' method='post' name='myform'> <input type="hidden" id="some-place" name="some_place" value="classified"> <div class="row"> <div class="col-sm-14"> <textarea name='message' placeholder="Message..." class="form-control" rows="9" ></textarea> </div> </div> <div class="row"> <input class="form-control" type="text" name="name" placeholder="Name "> <input class="form-control" type="email" name="email" placeholder="Email" required> </div> <div class="row"> <input class="btnbtn-action" type='submit' value="Send" onclick="return UpdateTheHiddenField()" > <br/><br/> </div> </div> </div> </form> Any additional guidance is appreciated
  8. Thanks for your reply and suggestion. Would you be interested in providing a simple basic example of a php mailer code similar to what I have shown in my posting?
  9. The html Form I'm using works successfully with this php code: <?php //check if form was sent if($_POST){ $to = 's@hmail.com'; $subject = 'Form1'; $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $headers = $name; $message .= "\r\n\r\n" . $name; if( empty($_POST["some_place"]) or $_POST['some_place'] != "glory" ) { header("HTTP/1.0 403 Forbidden"); }else{ mail( $to, $subject, $message, $email, $headers ); } header('Location: https://.......com'); exit; } ?> The problem is that when the email is received it shows the (from) email address to be my domain account user name @ the server name, like this: domain1@host3servername.com, where I’d prefer something more like noReply@actualdomain.com Any help or suggested remedy will be appreciated
  10. Thanks for your reply. After adding your suggestion and visiting each page, I see 'category' in the top right corner of a blank white page quickly (see attached) and then the page with this HELLOcategory text here print("<pre>".var_export($page, true)."</pre>"); $text = 'default'; $cateogry_id = ''; $videos = array(); if ($page == 'trending') { $title = $lang->trending; $db->where('privacy', 0); $videos = $db->where('time', time() - 172800, '>')->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); $text = 'trending text here'; } else if ($page == 'latest') { $title = $lang->latest_videos; $db->where('privacy', 0); $videos = $db->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); $text = 'latest text here'; } else if ($page == 'top') { $title = $lang->top_videos; $db->where('privacy', 0); $videos = $db->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); $text = 'top text here'; } else if ($page == 'category') { if (!empty($_GET['id'])) { if (in_array($_GET['id'], array_keys($categories))) { $pt->page_url_ = $pt->config->site_url.'/videos/'.$page.'/'.$_GET['id']; $category = PT_Secure($_GET['id']); $title = $categories[$category]; $category_id = "data-category='$category'"; if (!empty($_GET['sub_id'])) { $is_found = $db->where('type',PT_Secure($_GET['id']))->where('lang_key',PT_Secure($_GET['sub_id']))->getValue(T_LANGS,'COUNT(*)'); if ($is_found > 0) { $pt->page_url_ = $pt->config->site_url.'/videos/'.$page.'/'.$_GET['id'].'/'.$_GET['sub_id']; $db->where('sub_category', PT_Secure($_GET['sub_id'])); } } $db->where('privacy', 0); $category_old = str_replace('category__', '', $category); $videos = $db->where('category_id = "' . $category . '" OR category_id = "' . $category_old . '"')->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); $text = 'category text here'; } else { header("Location: " . PT_Link('404')); exit(); } } } Any additional help is appreciated.
  11. Thanks for your reply. However, I'm not clear on your message. My initial intention was to display separate unique text, on each page, of the three pages. When you say you're "printing custom text on each of the three specified pages", I see that I'm printing the same text on all three pages. Is that what you mean? Also, I'm not clear on this "you're just not testing from one of those three pages". Can you please explain what you mean? You say "If you need custom text per page", - yes, that's what I'd like. "and don't want to limit it to the three listed pages" - I do want it to display on each of just those three pages " you'll have to account for those pages in your conditional logic" so, having if ($page == 'latest') and $text = 'Latest text here'; is accounting for those pages? Any additional guidance is appreciated.
  12. Thanks again for your reply. Ultimately, I am looking for guidance to display unique text, when each of three pages appears. I don't see how that has goal has been reached Any additional help is appreciated
  13. Thanks for your reply. I've added: $text = 'category text here'; else if ($page == 'category') { if (!empty($_GET['id'])) { if (in_array($_GET['id'], array_keys($categories))) { $category = PT_Secure($_GET['id']); $title = $categories[$category]; $category_id = "data-category='$category'"; $db->where('privacy', 0); $videos = $db->where('category_id', $category)->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); $text = 'category text here'; } else { header("Location: " . PT_Link('404')); exit(); } } } when I remove die("<pre>".var_export($page, true)."</pre>"); I see this displayed on the html page: HELLOcategory text here when I add it back in I see blank page except for: 'category' And additional guidance is welcomed
  14. Thanks for your reply. You really don't have to be so condescending. I'm just trying to learn. Here's the code as requested. <?php declare( strict_types=1); // these should be set in PHP.ini error_reporting(-1); // set maximum errors ini_set('display_errors' , 'true'); if (empty($_GET['page'])) { header("Location: " . PT_Link('404')); exit(); } $page = PT_Secure($_GET['page']); $limit = 20; $pt->rss_feed = false; $pt->exp_feed = true; $pages = array( 'trending', 'category', 'latest', 'top' ); if (!in_array($page, $pages)) { header("Location: " . PT_Link('404')); exit(); } if (!empty($_GET['feed']) && $_GET['feed'] == 'rss') { $limit = 50; $pt->rss_feed = true; } die("<pre>".var_export($page, true)."</pre>"); $text = ''; $category_id = ''; $videos = array(); if ($page == 'trending') { $title = $lang->trending; $db->where('privacy', 0); $videos = $db->where('time', time() - 172800, '>')->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); $text = 'trending text here'; } else if ($page == 'latest') { $title = $lang->latest_videos; $db->where('privacy', 0); $videos = $db->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); $text = 'Latest text here'; } else if ($page == 'top') { $title = $lang->top_videos; $db->where('privacy', 0); $videos = $db->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); $text = 'Top text here'; } else if ($page == 'category') { if (!empty($_GET['id'])) { if (in_array($_GET['id'], array_keys($categories))) { $category = PT_Secure($_GET['id']); $title = $categories[$category]; $category_id = "data-category='$category'"; $db->where('privacy', 0); $videos = $db->where('category_id', $category)->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); } else { header("Location: " . PT_Link('404')); exit(); } } } use Bhaktaraz\RSSGenerator\Item; use Bhaktaraz\RSSGenerator\Feed; use Bhaktaraz\RSSGenerator\Channel; //Export rss feed if ($pt->rss_feed) { $rss_feed_xml = ""; $fl_rss_feed = new Feed(); $fl_rss_channel = new Channel(); $fl_rss_channel ->title($pt->config->title) ->description($pt->config->description) ->url($pt->config->site_url) ->appendTo($fl_rss_feed); if (is_array($videos)) { foreach ($videos as $feed_item_data) { $feed_item_data = PT_GetVideoByID($feed_item_data, 0, 0, 0); $fl_rss_item = new Item(); $fl_rss_item ->title($feed_item_data->title) ->description($feed_item_data->markup_description) ->url($feed_item_data->url) ->pubDate($feed_item_data->time) ->guid($feed_item_data->url,true) ->media(array( 'attr' => 'url', 'ns' => 'thumbnail', 'link' => PT_GetMedia($feed_item_data->org_thumbnail))) ->appendTo($fl_rss_channel); } } header('Content-type: text/rss+xml'); echo($fl_rss_feed); exit(); } $html_videos = ''; if (!empty($videos)) { foreach ($videos as $key => $video) { $video = PT_GetVideoByID($video, 0, 0, 0); $html_videos .= PT_LoadPage('videos/list', array( 'ID' => $video->id, 'VID_ID' => $video->id, 'TITLE' => $video->title, 'VIEWS' => $video->views, 'VIEWS_NUM' => number_format($video->views), 'USER_DATA' => $video->owner, 'THUMBNAIL' => $video->thumbnail, 'URL' => $video->url, 'TIME' => $video->time_ago, 'DURATION' => $video->duration, //'PRICE' => number_format($video->video_play_price<$config['video_play_price'] ? $config['video_play_price'] : $video->video_play_price) )); } } if (empty($videos)) { $html_videos = '<div class="text-center no-content-found empty_state"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-video-off"><path d="M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>' . $lang->no_videos_found_for_now . '</div>'; } $pt->videos_count= count($videos); $pt->page = $page; $pt->title = $title . ' | ' . $pt->config->title; $pt->description = $pt->config->description; $pt->keyword = @$pt->config->keyword; $pt->content = PT_LoadPage('videos/content', array( 'TITLE' => $title, 'VIDEOS' => $html_videos, 'TYPE' => $page, 'CATEGORY_ID' => $category_id, 'TEXT' => $text ));
  15. Thanks for your reply. I added this as per your instructions: die("<pre>".var_export($page, true)."</pre>"); $text = ''; $category_id = ''; $videos = array(); And all I see displayed on the whole html page is simply this: 'category' I look forward to any other guidance. Much thanks again
  16. Thanks for your reply. I didn't write this code, I'm just trying to modify it. So, it seems that the load page part should be at the end, which it is, assuming the everything should run first and then you load the page, I would guess. And saying that the conditional blocks aren't working doesn't seem correct. They serve a purpose for the script. Any other ideas will be welcomed
  17. Much thanks for your reply. Based on your suggestion, this is displayed (in html page): HELLOTest text Any additional guidance is greatly appreciated
  18. Thanks for your reply. I've now tried this: $text = ''; $category_id = ''; $videos = array(); if ($page == 'trending') { $title = $lang->trending; $db->where('privacy', 0); $videos = $db->where('time', time() - 172800, '>')->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); $text = 'trending text here'; } else if ($page == 'latest') { $title = $lang->latest_videos; $db->where('privacy', 0); $videos = $db->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); $text = 'Latest text here'; } else if ($page == 'top') { $title = $lang->top_videos; $db->where('privacy', 0); $videos = $db->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); $text = 'Top text here'; } along with this: $pt->content = PT_LoadPage('videos/content', array( 'TITLE' => $title, 'VIDEOS' => $html_videos, 'TYPE' => $page, 'CATEGORY_ID' => $category_id, 'TEXT' => $text and the html file page has this: <div class="test">HELLO{{TEXT}}</div> Yet, all that is displayed is: HELLOAny additional guidance is appreciated.
  19. I also have this in the php (I would have edited the last posting, but I don't see where I can): $pt->content = PT_LoadPage('videos/content', array( 'TITLE' => $title, 'VIDEOS' => $html_videos, 'TYPE' => $page, 'CATEGORY_ID' => $category_id, 'TEXT' => $text1, 'TEXT2' => $text2
  20. Thanks for your reply got it now. html needed this: <div class="test">HELLO{{TEXT}}</div> now it displays: "HELLO THIS IS A TEST" Much thanks.I am interested in a little more help, if you are so inclined.My initial intention was to display unique text, when each of three pages appears. When if ($page == 'trending')"unique text 1" displays. When if ($page == 'latest') than "unique text 2" displays, and when if ($page == 'top') than "unique text 3" displays. But, then I got that undefined variable error. Now, I'm trying to have the unique texts display again.I just tried this: $text1 = 'THIS IS A TEST'; $text2 = 'THIS IS TEST 2'; $category_id = ''; $videos = array(); if ($page == 'trending') { $title = $lang->trending; $db->where('privacy', 0); $videos = $db->where('time', time() - 172800, '>')->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); $text1 = 'TEXT'; } else if ($page == 'latest') { $title = $lang->latest_videos; $db->where('privacy', 0); $videos = $db->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); $text2 = 'TEXT2'; } and this in the html code: <div class="test">HELLO{{TEXT}}{{TEXT2}}</div> but it shows me this on all three displayed pages:HELLOTHIS IS A TESTTHIS IS TEST 2 Any guidance as to how to display unique text when each unique page is loaded, will be appreciated.
  21. Thanks so much again for your reply. Based on your suggestion, I tried this in the php: $pt->content = PT_LoadPage('videos/content', array( 'TITLE' => $title, 'VIDEOS' => $html_videos, 'TYPE' => $page, 'CATEGORY_ID' => $category_id, 'TEXT' => $text1 to try to send the value through, and still see the same error. Any guidance into what I have incorrect here is appreciated.
  22. Thanks for your reply. Sorry for the truncated code posting. There is a php file (where I added line 35 and line 39): <?php declare( strict_types=1); // these should be set in PHP.ini error_reporting(-1); // set maximum errors ini_set('display_errors' , 'true'); if (empty($_GET['page'])) { header("Location: " . PT_Link('404')); exit(); } $page = PT_Secure($_GET['page']); $limit = 20; $pt->rss_feed = false; $pt->exp_feed = true; $pages = array( 'trending', 'category', 'latest', 'top' ); if (!in_array($page, $pages)) { header("Location: " . PT_Link('404')); exit(); } if (!empty($_GET['feed']) && $_GET['feed'] == 'rss') { $limit = 50; $pt->rss_feed = true; } $text1 = 'THIS IS A TEST'; $cateogry_id = ''; $videos = array(); if ($page == 'trending') { $text1 = 'trending'; $title = $lang->trending; $db->where('privacy', 0); $videos = $db->where('time', time() - 172800, '>')->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); } else if ($page == 'latest') { $title = $lang->latest_videos; $db->where('privacy', 0); $videos = $db->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); } else if ($page == 'top') { $title = $lang->top_videos; $db->where('privacy', 0); $videos = $db->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); } else if ($page == 'category') { if (!empty($_GET['id'])) { if (in_array($_GET['id'], array_keys($categories))) { $cateogry = PT_Secure($_GET['id']); $title = $categories[$cateogry]; $cateogry_id = "data-category='$cateogry'"; $db->where('privacy', 0); $videos = $db->where('category_id', $cateogry)->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); } else { header("Location: " . PT_Link('404')); exit(); } } } use Bhaktaraz\RSSGenerator\Item; use Bhaktaraz\RSSGenerator\Feed; use Bhaktaraz\RSSGenerator\Channel; //Export rss feed if ($pt->rss_feed) { $rss_feed_xml = ""; $fl_rss_feed = new Feed(); $fl_rss_channel = new Channel(); $fl_rss_channel ->title($pt->config->title) ->description($pt->config->description) ->url($pt->config->site_url) ->appendTo($fl_rss_feed); if (is_array($videos)) { foreach ($videos as $feed_item_data) { $feed_item_data = PT_GetVideoByID($feed_item_data, 0, 0, 0); $fl_rss_item = new Item(); $fl_rss_item ->title($feed_item_data->title) ->description($feed_item_data->markup_description) ->url($feed_item_data->url) ->pubDate($feed_item_data->time) ->guid($feed_item_data->url,true) ->media(array( 'attr' => 'url', 'ns' => 'thumbnail', 'link' => PT_GetMedia($feed_item_data->org_thumbnail))) ->appendTo($fl_rss_channel); } } header('Content-type: text/rss+xml'); echo($fl_rss_feed); exit(); } $html_videos = ''; if (!empty($videos)) { foreach ($videos as $key => $video) { $video = PT_GetVideoByID($video, 0, 0, 0); $html_videos .= PT_LoadPage('videos/list', array( 'ID' => $video->id, 'VID_ID' => $video->id, 'TITLE' => $video->title, 'VIEWS' => $video->views, 'VIEWS_NUM' => number_format($video->views), 'USER_DATA' => $video->owner, 'THUMBNAIL' => $video->thumbnail, 'URL' => $video->url, 'TIME' => $video->time_ago, 'DURATION' => $video->duration )); } } if (empty($videos)) { $html_videos = '<div class="text-center no-content-found empty_state"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-video-off"><path d="M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>' . $lang->no_videos_found_for_now . '</div>'; } $pt->videos_count= count($videos); $pt->page = $page; $pt->title = $title . ' | ' . $pt->config->title; $pt->description = $pt->config->description; $pt->keyword = @$pt->config->keyword; $pt->content = PT_LoadPage('videos/content', array( 'TITLE' => $title, 'VIDEOS' => $html_videos, 'TYPE' => $page, 'CATEGORY_ID' => $cateogry_id )); and an html file ( I added line 23): <div class="wo_about_wrapper_parent"> <div class="wo_about_wrapper"> <div class="hero hero-overlay" style="background-color: #033d5d;"> <div class="container"> <h1 class="text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-video"><polygon points="23 7 16 12 23 17 23 7"></polygon><rect x="1" y="5" width="15" height="14" rx="2" ry="2"></rect></svg> {{TITLE}}</h1> </div> </div> <svg id="wave" viewBox="0 0 1440 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(0.000000, -564.000000)" fill="#033d5d"><g id="Head-background" transform="translate(-168.000000, -346.000000)"><g id="waves-background" transform="translate(888.000000, 934.000000) scale(-1, 1) translate(-888.000000, -934.000000) translate(168.000000, 910.000000)"><path d="M0,14.60779 C101.722445,4.7613277 195.244576,-4.14113188e-14 429,-2.84217094e-14 C732,-1.97619698e-14 798,45.6756592 1089,45.6756592 C1245.83848,45.6756592 1364.64602,29.5028807 1440,14.5904096 C1440,14.60779 1440,48 1440,48 L0,48 C0,48 0.0410082206,34 0,14.60779 Z" id="Path-3-Copy"></path></g></g></g></g></svg> </div> </div> <div class="content pt_shadow pt_page_margin" style="padding-top: 25px;"> <div class="col-md-12"> <div class="upload-head"> <div style="float: right;"> <button class="btn btn-main" data-action="multuple-buy-video" onclick="PT_MultipleBuyVideo();">View all selected</button> </div> <h4><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg></h4> <hr> </div> <div class="test"><font color="#696969" font size="3" face="Arial">HELLO<?php echo $text1;?></font> </div> <div class="videos-latest-list row"> {{VIDEOS}} </div> <?php if ($pt->videos_count > 1) { ?> <div class="watch-video-show-more desc load-more" data-type="{{TYPE}}" {{CATEGORY_ID}}> {{LANG show_more}} </div> <?php } ?> <div class="clear"></div> </div> <div class="clear"></div> </div> I am seeing the error on the html page: Notice: Undefined variable: text1 in /home/public_html/themes/videos/content.html on line 23 Any additional guidance to remedy this error is appreciated.
  23. I am trying to display some text "THIS IS A TEST" on the html page. I am getting this error: Notice: Undefined variable: text1 in /home/public_html/themes/videos/content.html on line 23 line 23 is this: <div class="test"><font color="#696969" font size="3" face="Arial">HELLO<?php echo $text1;?></font> The php file, related to the html page shows this (partially): $text1 = "THIS IS A TEST"; $cateogry_id = ''; $videos = array(); if ($page == 'trending') { $title = $lang->trending; $db->where('privacy', 0); $videos = $db->where('time', time() - 172800, '>')->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); } else if ($page == 'latest') { $title = $lang->latest_videos; echo "$text1"; $db->where('privacy', 0); $videos = $db->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); } else if ($page == 'top') { $title = $lang->top_videos; $db->where('privacy', 0); $videos = $db->orderBy('views', 'DESC')->get(T_VIDEOS, $limit); } else if ($page == 'category') { if (!empty($_GET['id'])) { if (in_array($_GET['id'], array_keys($categories))) { $cateogry = PT_Secure($_GET['id']); $title = $categories[$cateogry]; $cateogry_id = "data-category='$cateogry'"; $db->where('privacy', 0); $videos = $db->where('category_id', $cateogry)->orderBy('id', 'DESC')->get(T_VIDEOS, $limit); } else { header("Location: " . PT_Link('404')); exit(); } } } what do I need to correct to remedy the error? Any help is appreciated.
  24. Thanks again for your reply. Yes, I've been reading. I've been given a lot of advice and tried many things without success (including what was provided here and elsewhere). But, some of the explanation I don't understand, like this sentence "use the new wallet and balance amounts in that existing single query, per the comment i added at that point, rather than to start adding more queries before the start of where the transaction/rollback logic starts". Earlier in this thread I was told "Try reading your own code. Go through it line by line and check the value of each variable after each line executes". Based on that, as far as I can see, this should work, but shows 'not enough money: } else { // 4 + 4 >= 6 if ($wallet + $balance >= $amount) { // 8 = 4 + 4 $balance = (string)($balance + $wallet); // 2 = 8 - 6 $balance = (string)($balance - $amount); $wallet= '0'; $db->where('id', $user_id); $update_user_balance = $db->update(T_USERS, [ 'balance' => $balance ]); } } any additional guidance is appreciated
  25. Thanks for your reply. This seems to work successfully, where a purchase uses the amount in ‘wallet’ first, and then uses the amount in ‘balance’ if there is not enough in ‘wallet’: however, if all videos cost 2 (or higher), and there is “1” left in the ‘wallet’, it will never get used. I am looking to see how I can make more like if ‘wallet’ is zero then deduct from ‘earnings’ (or wallet + balance = amount)… I have tried this revision without success: // Check if user has enough wallet amount to purchase video if($wallet >= $amount){ $wallet = (string)($wallet - $amount); $db->where('id', $user_id); $update_wallet = $db->update(T_USERS, [ 'wallet' => $wallet ]); } else { if($wallet < $amount && $wallet + $balance >= $amount){ $wallet = (string)($wallet - $amount) + $balance = (string)($balance - $amount); $db->where('id', $user_id); $update_user_balance = $db->update(T_USERS, [ 'balance' => $balance ]); $db->where('id', $user_id); $update_wallet = $db->update(T_USERS, [ 'wallet' => $wallet ]); } } I’m trying to say this;if what’s in the ‘wallet’ is less than the amount AND $balance has more than or equal to the amount: if($wallet < $amount && $wallet + $balance >= $amount){ then proceed to deduct whatever is left in 'wallet' to satisfy the amount + the rest of the amount from $balance: $wallet = (string)($wallet - $amount) + $balance = (string)($balance - $amount); but, apparently I need to say this better in code: “then proceed to deduct whatever is left in 'wallet' to satisfy the amount + the rest of the amount from $balance” any additional help is greatly appreciated.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.