Changeset 3095795
- Timestamp:
- 05/31/2024 05:39:29 PM (21 months ago)
- Location:
- social-networks-auto-poster-facebook-twitter-g/trunk
- Files:
-
- 6 edited
-
NextScripts_SNAP.php (modified) (2 diffs)
-
inc/nxs_class_flt.php (modified) (1 diff)
-
inc/nxs_functions_adv.php (modified) (3 diffs)
-
inc/nxs_functions_engine.php (modified) (2 diffs)
-
inc/nxs_functions_wp.php (modified) (4 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
social-networks-auto-poster-facebook-twitter-g/trunk/NextScripts_SNAP.php
r3084635 r3095795 5 5 Description: This plugin automatically publishes posts from your blog to your social media accounts on Twitter, FB, Telegram, LinkedIn, and 25 more networks. 6 6 Author: NextScripts 7 Version: 4.4. 47 Version: 4.4.5 8 8 Author URI: https://www.nextscripts.com 9 9 Text Domain: social-networks-auto-poster-facebook-twitter-g … … 11 11 */ 12 12 13 const NextScripts_SNAP_Version = '4.4. 4'; const NextScripts_SNAP_Version_Date = 'May 10, 2024';13 const NextScripts_SNAP_Version = '4.4.5'; const NextScripts_SNAP_Version_Date = 'May 30, 2024'; 14 14 require_once "inc/nxs_functions_wp.php"; if(!defined( 'NXSSNAP_BASENAME' ) ) define( 'NXSSNAP_BASENAME', plugin_basename( __FILE__ ) ); 15 15 16 if (true===nxs_doSystemInitCheck()) { //error_reporting(E_ALL); ini_set('display_errors', '1');16 if (true===nxs_doSystemInitCheck()) { // error_reporting(E_ALL); ini_set('display_errors', '1'); 17 17 // $vb = get_site_option('_nxs_v5b', 0); if ($vb==1) require_once "src/smsync.php"; //## V5 Beta 18 18 require_once "inc/nxs_functions.php"; require_once "inc/nxs_functions_adv.php"; require_once "inc/nxs_functions_engine.php"; require_once "inc/nxs_class_http.php"; require_once "inc/nxs_class_addns.php"; -
social-networks-auto-poster-facebook-twitter-g/trunk/inc/nxs_class_flt.php
r3084635 r3095795 273 273 if ($optionsii['rpstOn']=='1' && ($rpstEvrySecNew!=$rpstEvrySecEx || $optionsii['rpstTimes']!=$pval['rpstTimes'] || !$isRpstWasOn || ($isTD && $pval['rpstCustTD'][0]!=$optionsii['rpstNxTime']) || !empty($_POST['resetStats']) )) { global $wpdb; 274 274 $optionsii['rpstNxTime'] = $isTD?strtotime($pval['rpstCustTD'][0]):$nxs_cTime + $rpstEvrySecNew; 275 $dbItem = array('datecreated'=>date_i18n('Y-m-d H:i:s'), 'type'=>'R', 'postid'=>$post_id, 'nttype'=>'', 'refid'=>'', 'timetorun'=> date_i18n('Y-m-d H:i:s',$optionsii['rpstNxTime']), 'extInfo'=>'', 'descr'=> 'Reposter ID:('.$post_id.')', 'uid'=>get_current_user_id()); 276 $wpdb->delete( $wpdb->prefix . "nxs_query", array( 'postid' => $post_id ) ); 277 $nxDB = $wpdb->insert( $wpdb->prefix . "nxs_query", $dbItem ); $lid = $wpdb->insert_id; 275 $dbItem = ['datecreated'=>date_i18n('Y-m-d H:i:s'), 'type'=>'R', 'postid'=>$post_id, 'nttype'=>'', 'refid'=>'', 'timetorun'=> date_i18n('Y-m-d H:i:s',$optionsii['rpstNxTime']), 'extInfo'=>'', 'descr'=> 'Reposter ID:('.$post_id.')', 'uid'=>get_current_user_id()]; 276 $table_name = $wpdb->prefix . "nxs_query"; 277 $dbDel = ['postid' => $post_id]; 278 $wpdb -> delete( $table_name, $dbDel ); 279 $nxDB = $wpdb -> insert($table_name, $dbItem); 280 $lid = $wpdb->insert_id; 278 281 } 279 282 if (empty($optionsii['rpstOn'])) { global $wpdb; $wpdb->delete( $wpdb->prefix . "nxs_query", array( 'postid' => $post_id ) );} -
social-networks-auto-poster-facebook-twitter-g/trunk/inc/nxs_functions_adv.php
r3084635 r3095795 137 137 _e('Done. All SNAP data has been removed from posts.', 'social-networks-auto-poster-facebook-twitter-g'); 138 138 } 139 if ($_POST['nxsact']=='deleteAllSNAPInfo') { global $wpdb; $wpdb->query( "DELETE FROM ". $wpdb->options ." WHERE option_name = 'nxsSNAPOptions'" ); $wpdb->query( "DELETE FROM ". $wpdb->options ." WHERE option_name = 'nxsSNAPNetworks'" ); 140 $wpdb->query( 139 if ($_POST['nxsact']=='deleteAllSNAPInfo') { 140 global $wpdb; 141 142 $sql1 = $wpdb->prepare( 143 "DELETE FROM {$wpdb->options} WHERE option_name = %s", 144 'nxsSNAPOptions' 145 ); 146 $wpdb->query($sql1); 147 148 $sql2 = $wpdb->prepare( 149 "DELETE FROM {$wpdb->options} WHERE option_name = %s", 150 'nxsSNAPNetworks' 151 ); 152 $wpdb->query($sql2); 153 154 $wpdb->query( 141 155 $wpdb->prepare( 142 156 "DELETE FROM %s WHERE option_name = %s", … … 199 213 _e('Done. Backup has been restored. <script> setTimeout(function () { location.reload(1); }, 3000); </script>', 'social-networks-auto-poster-facebook-twitter-g'); 200 214 } 201 if ($_POST['nxsact']=='resetSNAPQuery') { global $wpdb; $wpdb->query( "DELETE FROM ". $wpdb->prefix . "nxs_query" ); 215 if ($_POST['nxsact']=='resetSNAPQuery') { global $wpdb; $table_name = $wpdb->prefix . "nxs_query"; 216 $sql = $wpdb->prepare("DELETE FROM $table_name"); $wpdb->query($sql); 202 217 _e('Done. SNAP query has been cleared.', 'social-networks-auto-poster-facebook-twitter-g'); 203 218 } … … 206 221 _e('Done. All SNAP Crons has been deleted.', 'social-networks-auto-poster-facebook-twitter-g'); 207 222 } 208 if ($_POST['nxsact']=='resetSNAPCache') { global $wpdb; $wpdb->query( "DELETE FROM ". $wpdb->options ." WHERE option_name LIKE 'nxs_snap_%'" ); $wpdb->query( "DELETE FROM ". $wpdb->postmeta ." WHERE meta_key LIKE '_nxs_slinks'" ); 223 if ($_POST['nxsact']=='resetSNAPCache') { global $wpdb; 224 $options_table = $wpdb->options; 225 $sql1 = $wpdb->prepare( 226 "DELETE FROM $options_table WHERE option_name LIKE %s", 227 'nxs_snap_%' 228 ); 229 $wpdb->query($sql1); 230 231 $postmeta_table = $wpdb->postmeta; 232 $sql2 = $wpdb->prepare( 233 "DELETE FROM $postmeta_table WHERE meta_key LIKE %s", 234 '_nxs_slinks' 235 ); 236 $wpdb->query($sql2); 209 237 _e('Done. All SNAP Cache has been cleared.', 'social-networks-auto-poster-facebook-twitter-g'); 210 238 } -
social-networks-auto-poster-facebook-twitter-g/trunk/inc/nxs_functions_engine.php
r3084635 r3095795 27 27 if (!isset($options['nxsHTDP']) || $options['nxsHTDP']=='S') { if(isset($NXS_POST["snapEdIT"]) && $NXS_POST["snapEdIT"]=='1') { $publtype='S'; $delay = rand(2,10); } else $publtype='A'; 28 28 if (!$aj && !empty($options['quLimit']) && $options['quLimit']=='1') { global $wpdb; //## Add to posting query 29 $quNxTime=$wpdb->get_var("SELECT timetorun FROM ".$wpdb->prefix."nxs_query WHERE type='Q' ORDER BY timetorun DESC LIMIT 1"); if (empty($quNxTime)) $quNxTime = time()+5; $quNxTime=strtotime($quNxTime); 29 $table_name = $wpdb->prefix . "nxs_query"; 30 $sql = $wpdb->prepare( 31 "SELECT timetorun FROM $table_name WHERE type = %s ORDER BY timetorun DESC LIMIT 1", 32 'Q' 33 ); 34 $quNxTime = $wpdb->get_var($sql); 35 if (empty($quNxTime)) $quNxTime = time()+5; $quNxTime=strtotime($quNxTime); 30 36 $rndSec=$options['quLimitRndMins']*60; $pstEvrySec=$options['quDays']*86400+$options['quHrs']*3600+$options['quMins']*60; $rndTime=rand(0-$rndSec, $rndSec); $quNxTime=$quNxTime + $pstEvrySec + $rndTime; 31 37 $dbItem = array('datecreated'=>date_i18n('Y-m-d H:i:s'), 'type'=>'Q', 'postid'=>$postID, 'timetorun'=> date_i18n('Y-m-d H:i:s', $quNxTime), 'descr'=> 'Post ID:('.$postID.')', 'uid'=>$postUser); … … 267 273 if ($rpstrOpts['rpstStop']=='O') { $rpstrOpts['rpstOn'] = 'F'; $wpdb->delete( $wpdb->prefix . "nxs_query", array( 'postid' => $row['postid'] ) ); nxs_LogIt('INF', 'Reposter Finished: End of the line', 'RP','','Reposter ID:'.$row['postid'].' ', '-=[ '.print_r($rpstrOpts, true).' ]=-'); nxs_Filters::save_meta($row['postid'], 'nxs_rpstr', $rpstrOpts ); break; } 268 274 //## Loop it - restart from the beginning 269 if ($rpstrOpts['rpstStop']=='R') { $wpdb->query( "DELETE FROM ". $wpdb->postmeta ." WHERE meta_key = 'snap_isRpstd".$row['postid']."'" ); //delete_post_meta($row['postid'], 'nxs_rpstr_stats'); 275 if ($rpstrOpts['rpstStop']=='R') { 276 $sql = $wpdb->prepare( 277 "DELETE FROM {$wpdb->postmeta} WHERE meta_key = %s", 278 'snap_isRpstd' . $row['postid'] 279 ); 280 $wpdb->query($sql); 270 281 nxs_LogIt('INF', 'Reposter Finished: Restarting...', 'RP','','Reposter ID:'.$row['postid'].' ', '-=[ '.print_r($rpstrOpts, true).' ]=-'); 271 282 } -
social-networks-auto-poster-facebook-twitter-g/trunk/inc/nxs_functions_wp.php
r3084635 r3095795 739 739 740 740 //## Post from "Quick Post Form" 741 if (!function_exists('nxs_doNewNPPost')){ function nxs_doNewNPPost($networks){ global $nxs_snapAvNts, $wpdb; $postResults = ''; $currTime = time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); 741 if (!function_exists('nxs_doNewNPPost')){ function nxs_doNewNPPost($networks){ global $nxs_snapAvNts, $wpdb; $postResults = ''; $currTime = time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); 742 $qpid = sanitize_key($_POST['qpid']); 742 743 if (!empty($_POST['ddt'])) { $ddt = strtotime(str_replace(',','',$_POST['ddt'])); $isSch = $ddt>$currTime;} else $isSch = false; 743 if (!empty($_POST['nxs_mqTest']) && $_POST['nxs_mqTest']=="\'") { $_POST['mText'] = stripslashes($_POST['mText']); $_POST['mTitle'] = stripslashes($_POST['mTitle']); } 744 $ttl = nsTrnc(!empty($_POST['mTitle'])?$_POST['mTitle']:$_POST['mText'], 200); if (empty($ttl)) $ttl = 'Quick post ['.date('F j, Y, g:i a', time()+( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ).']'; //## Format title for saving info .... 744 if (!empty($_POST['nxs_mqTest']) && $_POST['nxs_mqTest']=="\'") { $_POST['mText'] = stripslashes($_POST['mText']); $_POST['mTitle'] = stripslashes($_POST['mTitle']); } $pst = $_POST; 745 $ttl = nsTrnc(!empty($_POST['mTitle'])?sanitize_text_field($_POST['mTitle']):sanitize_text_field($_POST['mText']), 200); 746 if (empty($ttl)) $ttl = 'Quick post ['.date('F j, Y, g:i a', time()+( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ).']'; //## Format title for saving info .... 745 747 { //###### Make it savable as option. Put If () here. 746 748 //## Insert Post 747 749 $user_id = get_current_user_id(); 748 $my_post = array( 'post_title' => $ttl, 'post_content' => $_POST['mText'], 'post_status' => 'publish', 'post_author' => $user_id, 'post_type' => 'nxs_qp', 'post_category' => array( ) );749 if (!empty($ _POST['qpid'])) { $my_post['ID'] = $_POST['qpid']; wp_update_post( $my_post );} else $_POST['qpid']= wp_insert_post( $my_post );750 $my_post = array( 'post_title' => $ttl, 'post_content' => sanitize_text_field($_POST['mText']), 'post_status' => 'publish', 'post_author' => $user_id, 'post_type' => 'nxs_qp', 'post_category' => array( ) ); 751 if (!empty($qpid)) { $my_post['ID'] = $qpid; wp_update_post( $my_post );} else $qpid = wp_insert_post( $my_post ); 750 752 //## Insert Post meta 751 if (!empty($_POST['qpid'])) { $metaArrEx = get_post_meta($_POST['qpid'], '_nxs_snap_data', true ); $metaArr = array('posts'=>array(), 'postType'=>$_POST['mType'], 'imgURL'=>$_POST['mImg'], 'linkURL'=>$_POST['mLink']); 752 if (!empty($metaArrEx['posts'])) $metaArr['posts'] = $metaArrEx['posts']; update_post_meta($_POST['qpid'], '_nxs_snap_data', $metaArr); 753 if (!empty($qpid)) { $metaArrEx = get_post_meta($qpid, '_nxs_snap_data', true ); 754 $metaArr = array('posts'=>array(), 'postType'=>sanitize_text_field($_POST['mType']), 'imgURL'=>sanitize_text_field($_POST['mImg']), 'linkURL'=>sanitize_text_field($_POST['mLink'])); 755 if (!empty($metaArrEx['posts'])) $metaArr['posts'] = $metaArrEx['posts']; update_post_meta($qpid, '_nxs_snap_data', $metaArr); 753 756 } 754 757 } 755 758 if (!empty($_POST['mNts']) && is_array($_POST['mNts'])) { 756 nxs_addToLogN('S', '-=== New Quick Form Post '.($isSch?'Schedulled for '. $_POST['ddt']:'requested').' ===-', 'Form', count($_POST['mNts']).' Networks', print_r($_POST['mNts'], true));759 nxs_addToLogN('S', '-=== New Quick Form Post '.($isSch?'Schedulled for '.sanitize_text_field($_POST['ddt']):'requested').' ===-', 'Form', count($_POST['mNts']).' Networks', sanitize_text_field(print_r($_POST['mNts'], true))); 757 760 $message = array('title'=>'', 'text'=>'', 'siteName'=>'', 'url'=>'', 'imageURL'=>'', 'videoURL'=>'', 'tags'=>'', 'urlDescr'=>'', 'urlTitle'=>''); 758 761 if ($isSch) { 759 $dbItem = array('datecreated'=>date_i18n('Y-m-d H:i:s'), 'type'=>'F', 'timetorun'=> date_i18n('Y-m-d H:i:s', $ddt), 'postid'=>$ _POST['qpid'], 'extInfo'=>serialize($_POST), 'descr'=>$ttl, 'uid'=>get_current_user_id()); //prr($dbItem);760 $nxDB = $wpdb->insert( $wpdb->prefix . "nxs_query", $dbItem ); $lid = $wpdb->insert_id; echo '<br/>Post ID: '.$lid.'. Schedulled for '. $_POST['ddt'];761 } else echo nxs_postFromForm($ _POST, $networks);762 $dbItem = array('datecreated'=>date_i18n('Y-m-d H:i:s'), 'type'=>'F', 'timetorun'=> date_i18n('Y-m-d H:i:s', $ddt), 'postid'=>$qpid, 'extInfo'=>serialize($pst), 'descr'=>$ttl, 'uid'=>get_current_user_id()); //prr($dbItem); 763 $nxDB = $wpdb->insert( $wpdb->prefix . "nxs_query", $dbItem ); $lid = $wpdb->insert_id; echo '<br/>Post ID: '.$lid.'. Schedulled for '.sanitize_text_field($_POST['ddt']); 764 } else echo nxs_postFromForm($pst, $networks); 762 765 } 763 766 }} 764 767 if (!function_exists('nxs_postFromForm')){ function nxs_postFromForm($post, $networks, $isSilent=false){ global $nxs_snapAvNts; $postResults = ''; 765 if (!empty($post['mNts']) && is_array($post['mNts'])) { nxs_addToLogN('S', '-=== New Qiuck Post ===-', 'Form', count($post['mNts']).' Networks', print_r($post['mNts'], true)); //.'<br/>|<br/><pre>'.print_r($post, true).'</pre>'); 768 if (!empty($post['mNts']) && is_array($post['mNts'])) { 769 nxs_addToLogN('S', '-=== New Qiuck Post ===-', 'Form', count($post['mNts']).' Networks', sanitize_text_field(print_r($post['mNts'], true))); //.'<br/>|<br/><pre>'.print_r($post, true).'</pre>'); 766 770 $message = array('title'=>'', 'text'=>'', 'siteName'=>'', 'url'=>'', 'imageURL'=>'', 'videoURL'=>'', 'tags'=>'', 'urlDescr'=>'', 'urlTitle'=>'', 'urlCaption'=>''); 767 771 if (!empty($_POST['nxs_mqTest']) && $_POST['nxs_mqTest']=="\'") { $post['mText'] = stripslashes($post['mText']); $post['mTitle'] = stripslashes($post['mTitle']); } 768 $message['pText'] = nxs_doSpin( $post['mText']); $message['pTitle'] = nxs_doSpin($post['mTitle']);772 $message['pText'] = nxs_doSpin(sanitize_text_field($post['mText'])); $message['pTitle'] = nxs_doSpin(sanitize_text_field($post['mTitle'])); 769 773 //## Get URL info 770 if (!empty($post['mLink']) && substr($post['mLink'], 0, 4)=='http') { $message['url'] = $post['mLink'];774 if (!empty($post['mLink']) && substr($post['mLink'], 0, 4)=='http') { $message['url'] = sanitize_text_field($post['mLink']); 771 775 $flds = array('id'=>$message['url'], 'scrape'=>'true'); $response = wp_remote_post('http://graph.facebook.com', array('body' => $flds)); 772 776 if (is_wp_error($response)) $badOut['Error'] = print_r($response, true)." - ERROR"; else { $response = json_decode($response['body'], true); … … 776 780 } 777 781 } 778 if (!empty($post['mImg']) && substr($post['mImg'], 0, 4)=='http') $message['imageURL'] = $post['mImg']; $nts = array(); $postResultsArr = array('date'=> time(), 'errors'=>0, 'ok'=>0, 'data'=>array());782 if (!empty($post['mImg']) && substr($post['mImg'], 0, 4)=='http') $message['imageURL'] = sanitize_text_field($post['mImg']); $nts = array(); $postResultsArr = array('date'=> time(), 'errors'=>0, 'ok'=>0, 'data'=>array()); 779 783 780 784 foreach ($post['mNts'] as $ntC){ $ntA = explode('--',$ntC); $ntOpts = $networks[$ntA[0]][$ntA[1]]; $nts[] = $ntA[0].$ntA[1]; // nxs_addToLogN('L', 'IN', $logNT, 'Go ', print_r($ntA, true)); 781 785 if (!empty($ntOpts) && is_array($ntOpts)) { $logNT = $ntA[0]; $clName = 'nxs_class_SNAP_'.strtoupper($logNT); 782 786 $logNT = '<span style="color:#800000">'.strtoupper($logNT).'</span> - '.$ntOpts['nName']; // prr($ntOpts); 783 $message['pText'] = nxs_doSpin( $post['mText']); $message['pTitle'] = nxs_doSpin($post['mTitle']);784 $ntOpts['postType'] = $post['mType']; $ntToPost = new $clName(); $ret = $ntToPost->doPostToNT($ntOpts, $message); // nxs_addToLogN('L', 'OUT', $logNT, 'Ex ', print_r($ntA, true));787 $message['pText'] = nxs_doSpin(sanitize_text_field($post['mText'])); $message['pTitle'] = nxs_doSpin(sanitize_text_field($post['mTitle'])); 788 $ntOpts['postType'] = sanitize_text_field($post['mType']); $ntToPost = new $clName(); $ret = $ntToPost->doPostToNT($ntOpts, $message); // nxs_addToLogN('L', 'OUT', $logNT, 'Ex ', print_r($ntA, true)); 785 789 if (!is_array($ret) || empty($ret['isPosted']) || $ret['isPosted']!='1') { //## Error 786 790 nxs_addToLogN('E', 'Error', $logNT, '-=ERROR=- '.print_r($ret, true), ''); $postResults .= $logNT ." - Error (Please see log)<br/>"; $postResultsArr['errors']++; … … 794 798 795 799 //## Save AutoPost Info to Saved QP 796 if (!empty($post['qpid'])) { $metaArr = get_post_meta($post['qpid'], '_nxs_snap_data', true ); $metaArr['nts'] = $nts; $metaArr['posts'][] = $postResultsArr; update_post_meta($post['qpid'], '_nxs_snap_data', $metaArr); } 800 if (!empty($post['qpid'])) { $quid = sanitize_key($post['qpid']); 801 $metaArr = get_post_meta($quid, '_nxs_snap_data', true ); $metaArr['nts'] = $nts; $metaArr['posts'][] = $postResultsArr; update_post_meta($quid, '_nxs_snap_data', $metaArr); 802 } 797 803 if (!$isSilent) echo $out; else return $out; } 798 804 }} … … 952 958 function nxs_wp_allow_comment($commentdata) { global $wpdb; extract($commentdata, EXTR_SKIP); 953 959 // Simple duplicate check // expected_slashed ($comment_post_ID, $comment_author, $comment_author_email, $comment_content) 954 $dupe = "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = '$comment_post_ID' AND comment_parent = '$comment_parent' AND comment_approved != 'trash' AND ( comment_author = '$comment_author' "; 955 if ( $comment_author_email ) $dupe .= "OR comment_author_email = '$comment_author_email' "; $dupe .= ") AND comment_content = '$comment_content' LIMIT 1"; 956 $dupeID = $wpdb->get_var($dupe); if ( $dupeID ) { do_action( 'comment_duplicate_trigger', $commentdata ); return $dupeID; } 960 961 $dupe = "SELECT comment_ID FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_parent = %d AND comment_approved != 'trash' AND (comment_author = %s "; 962 if ($comment_author_email) $dupe .= "OR comment_author_email = %s "; else $dupe .= "%s"; 963 $dupe .= ") AND comment_content = %s LIMIT 1 "; 964 if ($comment_author_email) { 965 $sql = $wpdb->prepare($dupe, $comment_post_ID, $comment_parent, $comment_author, $comment_author_email, $comment_content); 966 } else { 967 $sql = $wpdb->prepare($dupe, $comment_post_ID, $comment_parent, $comment_author, '', $comment_content); 968 } 969 $dupeID = $wpdb->get_var($sql); 970 971 if ( $dupeID ) { do_action( 'comment_duplicate_trigger', $commentdata ); return $dupeID; } 957 972 do_action( 'check_comment_flood', $comment_author_IP, $comment_author_email, $comment_date_gmt ); 958 973 if ( ! empty( $user_id ) ) { $user = get_userdata( $user_id ); $post_author = $wpdb->get_var($wpdb->prepare("SELECT post_author FROM $wpdb->posts WHERE ID = %d LIMIT 1", $comment_post_ID)); } -
social-networks-auto-poster-facebook-twitter-g/trunk/readme.txt
r3084635 r3095795 6 6 Requires at least: 5.0 7 7 Tested up to: 6.5.3 8 Stable tag: 4.4. 48 Stable tag: 4.4.5 9 9 License: GPLv2 or later 10 10 … … 178 178 == Changelog == 179 179 180 = 4.4.5 [30/05/2024] = 181 182 * Bug Fix - Few possible security issues/unsafe SQL Calls 183 180 184 = 4.4.4 [10/05/2024] = 181 185
Note: See TracChangeset
for help on using the changeset viewer.