Jump to content

PauloV

Members
  • Content Count

    1,384
  • Joined

  • Last visited

  • Days Won

    39

PauloV last won the day on August 1

PauloV had the most liked content!

About PauloV

  • Rank
    Advanced Member

Profile Information

  • Gender
    Male
  • Location
    Portugal

Recent Profile Visitors

2,788 profile views
  1. Thanks Tyson I Will test it on Monday Have a nice weekend
  2. Hello Blestars Is there a way to add a variable to the Cart Summary wen adding a service to Cart? Exemple, I need to add the Domain Name to the Cart Summary next to the Package Name Thanks in advance PV
  3. @Tyson @MBH2006 @Nahuel Hello We have made some years in 2015 lol, long time ago a tool to map/move services from one module to outher in this case was moving from "Blesta Universal Module" to "OpenSRS Module" We only need the Services ID from Module A (cPanel) and Module B (Direct Admin) Here is the code exemple on the Plugin: public function install($plugin_id) { $sendreport = null; $module_A = array('1','2','3'); // put here the Service Package Id's from Module A $module_B = array('4','5','6'); // put here the Service Package Id's equivalent to Module A to migrate $module_migrate_map = array_map(null, $module_A, $module_B); foreach ($module_migrate_map as &$value) { $upackages = $this->Record->select(array("pricing_id","package_id"))->from("package_pricing")->where("package_pricing.package_id", "=", $value[0])->fetchAll(); $sendreport .= "Module A Package ID = ". $value[0]."\n"; foreach ($upackages as $upackage) { $upricings = $this->Record->select(array("id","period","term"))->from("pricings")->where("pricings.id", "=", $upackage->pricing_id)->fetchAll(); $sendreport .= "Module A Package Price ID = ". $upackage->pricing_id."\n"; foreach ($upricings as $upricing) { $gterm = $upricing->term; if ($upricing->period == "month") $gterm = ($upricing->term / 12); $sendreport .= "Module A Price Period = ". $upricing->period."\n"; $sendreport .= "Module A Package Price Term = ". $gterm." -> Original Term = ".$upricing->term." \n\n"; $sendreport .= "Module B Package ID = ". $value[1]."\n"; $opackages = $this->Record->select(array("pricing_id","package_id"))->from("package_pricing")->where("package_pricing.package_id", "=", $value[1])->fetchAll(); foreach ($opackages as $opackage) { $sendreport .= "Module B Price ID = ". $opackage->pricing_id."\n"; $opricings = $this->Record->select(array("id","period","term"))->from("pricings")->where("pricings.id", "=", $opackage->pricing_id)->where("pricings.period", "=", "year")->where("pricings.term", "=", $gterm)->fetchAll(); foreach ($opricings as $opricing) { $opricingid = $opricing->id; $sendreport .= "Module B Package Price Period = ". $opricing->period."\n"; $sendreport .= "Module B Package Price Term = ". $opricing->term."\n"; $sendreport .= "\n\n---------------BEGINING---------------\n"; $oservices = $this->Record->select(array("id"))->from("services")->where("pricing_id", "=", $upricing->id)->fetchAll(); foreach ($oservices as $oservice) { $sendreport .= "Migrate from A to B Imported Service ID = ". $oservice->id."\n"; $this->Record->where("pricing_id", "=", $upricing->id)->where("module_row_id", "=", "2")->update("services", array("pricing_id"=>$opricingid, "module_row_id"=>"3")); $this->Record->where("service_id", "=", $oservice->id)->where("key", "=", "user1")->update("service_fields", array("key"=>"domain")); $this->Record->from("service_fields")->where("service_id", "=", $oservice->id)->where("key", "in", array("opt1","opt2","pass","user2"))->delete(); } $sendreport .= "\n------------------END-------------------\n\n"; } } } } $sendreport .= "\n\n"; } mail("notify@mydomain.com", "Blesta - Migrate from Module A to Module B Report", $sendreport); } Hope this help someone Regards, PV
  4. Hello Please download on the first post the updated version, replace and test it Make sure you open the port 55443 on your firewall Regards, PV
  5. Hello @Gabriel Gutierrez Let me try to test it tomorow on 4.6 and I will reply with an updated Version Regards, PV
  6. For a dev, all actions have to be able to run pre eventes and after events, thas common sence For me this is a priority one inclusion and its very easy for Paul/Tyson/etc to include in next release
  7. ++1 defenitly must have. If dont we have to make 2 steps like open a Ticket to inform the client the reason.
  8. +1 to Portugal/Europe
  9. In Portugal to add Promos ,the product/service has to have an inicial date and end date visible to the client or elese we are fine €€€€ big time lol Yes, I know what your are sayng, and even now in our WHMCS we have diferent prices, but in Blesta we opt to not have diferent prices, for now
  10. I think that could be a WHMCS/cPanel killer in this critical fase on almost alf world is in the same boat For exemple 1 click migrate all from cPanel to Direct Admin or Virtualmin lol Its not hard, the only problem is the Background job, because can take hours, days or even weeks to migrate depending on the hardware
  11. Cool, but now in our company we will put the same prices for registering/renewing we have think a lot and since almost every 6 months or so the proces are changed, we cannot spend time in changing the prices everytime, so we will always put the higher price for both to minimise riscs on rasing prices that we have not notice.
  12. Hello blestars My 2 cents on this mater We are ditching cPanel for good, mass migrations servers to Virtualmin, the Virtualmin handle 100% cPanel Backups restore witout any issues and so we only need to point the DNS's to the new servers We only made a few changes on Virtualmin. On Webmin, we add ports 2096/2097 to redirect to Usermin port 2000 and 2086/2087/2082/2083 ports to Virtualmin port 10000 We also pré-installed on the hostname phpMyAdmin and RoundCube with the Mobile Theme (https://github.com/messagerie-melanie2/Roundcube-Plugin-Mobile) to all users have normal acess to a known Webmail and MariaDB Database managment (Virtualmin alredy bring there own DataBase Managmente and Webmail software). and add a Link on Usermin Painel to open RoundCube Webmail Finally we add CSF Firewall like so: cd /usr/src rm -fv csf.tgz wget https://download.configserver.com/csf.tgz tar -xzf csf.tgz cd csf sh install.sh - Install the csf webmin module in: Webmin > Webmin Configuration > Webmin Modules > From local file > /etc/csf/csfwebmin.tgz > Install Module (sometimes because the webmin cache we have to make this step twice) After you install the module, you can simply log in to Virtualmin, chick on Webmin (top left) and then: System > ConfigServer Security & Firewall Also we add PHP verions 5.4, 5.6, 7.2 (now by default virtualmin alredy brings php 5.4 and 7.2) #we install remi repository to add more php versions and modules yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install php56 php56-php-bcmath php56-php-cli php56-php-devel php56-php-fpm php56-php-gd php56-php-mbstring php56-php-mysqlnd php56-php-opcache php56-php-pdo php56-php-pspell php56-php-xmlrpc php56-php-memcached php56-php-iconv php56-php-zlib php56-php-mcrypt php56-php-simplexml #you cann add/remove extensions abose :) We also add ioncube like so: cd /usr/local wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip unzip ioncube_loaders_lin_x86-64.zip rm ioncube_loaders_lin_x86-64.zip And add to php.ini on Virtualmin the line for exemple for php7.2 zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.2.so To start migrate you can do it on Virtualmin GUI or on CLI, on CLI (https://www.virtualmin.com/documentation/id%2Cvirtualmin_for_cpanel_users) you can make a batch file with mass import in a very easy way like so: virtualmin migrate-domain --type cpanel --source /home/cpanel_username_backup_file.tar.gz --user cpanel_username_here --pass 'cpanel_username_password_here' --webmin #for multiple just add a .sh file with a somethin like this: virtualmin migrate-domain --type cpanel --source /home/cpanel_username_backup_file1.tar.gz --user cpanel_username1_here --pass 'cpanel_username_password1_here' --webmin virtualmin migrate-domain --type cpanel --source /home/cpanel_username_backup_file2.tar.gz --user cpanel_username2_here --pass 'cpanel_username_password2_here' --webmin virtualmin migrate-domain --type cpanel --source /home/cpanel_username_backup_file3.tar.gz --user cpanel_username3_here --pass 'cpanel_username_password3_here' --webmin #and so on... Its more easy and less troblen then DirectAdmin, Plesk or even Interworx Common problems after migration: #Error 500 .htacess file with the directive "Options +FollowSymlinks" just comment that line #Rong php version (client can change PHP on Virtualmin painel) #Some notes for anyonw that never try Virtualmin/Webmin Virtualmin/Webmin (port 10000) Root = WHM (so many features that in the first time we "lost" inside, but the more time we spent the more you will likeit, its a lot better and more mature then cPanel) Virtulmin/Webmin User (port 10000) = cPanel (A lot more options than cPanel) Usermin = Webmail (but with a loit more option like POP/IMAP external emails sincronizing and SPAM filters more advanced than cPanel) The only thing is that dosent support CloudLinux (its not a downside) and dosent support Softaculous (Virtualmin has is own Software inside that you can add toyr own scripts or buy the Pro License that is 200$ per year with unlimited accounts) The GPL verion dosent support Reseller accounts, but you can bypass this if you dont want to spend now any money, just creat on Webmin New users with permissions to only acess there clients accounts, is like a Reseller accouny but witout any limit on creating, or do it like us and create for each reseller a VPS or CLOUD server for that reseller maybe is cheper than buy a Virtualmin Pro license, on this critical fase Any problems or any douths you can ask me and I will try to fill in P.S- We are migrating more than 5k clients from cPanel to Virtualmin and we have tested a lot Virtualmin since last year iin migrations and compability (we have several CLOUD on production with dozens of clients with CentoS 7 + Virtualmin), because of our new CLOUD platform that we have created.
×
×
  • Create New...