miercuri, 10 ianuarie 2018

State-of-Art Gradient Background for values in a table chart in Qlikview

I have looked very much and didn't find a solution for a gradient background for values in a table chart in Qlikview. The scope is to have values in a sorted fashion (smallest to largest), and by their position in the list, by their position away from the middle of the list, color the background of the cells with red - to - white when the values are below the middle, and white - to - green when they are above. Red is the smallest (-1 normalized) value, middle is white (0 normalized), biggest is green (1 normalized). So use the following function and logic:
Colormix2( (NoOfRows(TOTAL) - rank(OurColumnName) + 1)/ceil(NoOfRows(TOTAL)/2) - 1, red(), green(), white() )
The formula would assign the ranked position away from the middle (-1 to 1) to the current value in the list. If there are NULL's in the column, then NoOfRows(TOTAL) would perhaps render a wrong count, so use a NumericCount(aggr (... )) as in the following example:
(NumericCount(TOTAL aggr( sum( {< %year_q={$(vMaxYearQ_1)}, year={$(vGlobalYear1)} >} alt(marketing_USD,0) ) , global_brand_select ) )
That was a big search and big result!

joi, 7 septembrie 2017

Multiple Series Line Chart with PHPExcel

Below is a sample piece of script which creates a multiple lines (multi - series) chart with the PHPExcel library:


  $dataSeriesLabels = array();
  $xAxisTickValues = array();
  $dataSeriesValues = array();
  $series = array();
  $dataPointCount =  8 /* the count of datapoints: $by-2 to $by+5 inclusive */;
  for ($i=0; $i<=4; $i++)
  {
   $r = 35+$i;
   $dataSeriesLabels[$i] = new \PHPExcel_Chart_DataSeriesValues('String', $sheetTitle.'!$B$'.$r, NULL, 1);
   $xAxisTickValues[$i] = new \PHPExcel_Chart_DataSeriesValues('Number', $sheetTitle.'!$C$34:$J$34', NULL, $dataPointCount);
   $dataSeriesValues[$i] = new \PHPExcel_Chart_DataSeriesValues('Number', $sheetTitle.'!$C$'.$r.':$J$'.$r, NULL, $dataPointCount);
  }
  $series[0] = new \PHPExcel_Chart_DataSeries(
   \PHPExcel_Chart_DataSeries::TYPE_LINECHART,  // plotType
   \PHPExcel_Chart_DataSeries::GROUPING_STANDARD,  // plotGrouping
   range(0, count($dataSeriesValues) - 1),   // plotOrder
   $dataSeriesLabels,        // plotLabel
   $xAxisTickValues,        // plotCategory
   $dataSeriesValues         // plotValues
  );
  $series[0]->setPlotDirection(\PHPExcel_Chart_DataSeries::DIRECTION_HORIZONTAL);

  //  Set the series in the plot area
  $plotarea = new \PHPExcel_Chart_PlotArea(NULL, $series);
  //  Set the chart legend
  $legend = new \PHPExcel_Chart_Legend(\PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
  $title = new \PHPExcel_Chart_Title('');

  //  Create the chart
  $chart = new \PHPExcel_Chart(
    'chart1', // name
    $title, // title
    $legend, // legend
    $plotarea, // plotArea
    true, // plotVisibleOnly
    0, // displayBlanksAs
    NULL, // xAxisLabel
    NULL   // yAxisLabel
  );

  $chart->setTopLeftPosition('L31');
  $chart->setBottomRightPosition('AC43');
  $objWorksheet->addChart($chart);
  header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  header('Content-Disposition: attachment;filename="'.$fname.'"');
  header('Cache-Control: max-age=0');

  // Do your stuff here
  $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
  //PHPExcel_Writer_Excel2007
  $writer->setIncludeCharts(TRUE);


  $writer->save('php://output');

vineri, 10 martie 2017

Sample sr_feuser_register typo3 template configuration.

From http://lists.typo3.org/pipermail/typo3-english/2006-September/030773.html A sample good configuration of sr_feuser_register : # ---------- front-end user registration CONSTANTS ----------- # --- folder where FE users are contained --- plugin.tx_srfeuserregister_pi1.pid = 1826 # --- different groups: unprivilaged users --- plugin.tx_srfeuserregister_pi1.userGroupUponRegistration = 1 # --- different groups: privilaged users --- plugin.tx_srfeuserregister_pi1.userGroupAfterConfirmation = 2 # --- page ID of page with login box and FE registration (Login) -- plugin.tx_srfeuserregister_pi1.loginPID = 1822 # --- page ID of second page with FE registration (Second Page) -- plugin.tx_srfeuserregister_pi1.registerPID = 1825 # --- page ID of third page with FE registration (Third Page) -- plugin.tx_srfeuserregister_pi1.editPID = 1828 # --- page ID of fourth page with FE registration (Fourth Page) -- plugin.tx_srfeuserregister_pi1.confirmPID = 1829 plugin.tx_srfeuserregister_pi1.formFields = username, password, gender, first_name,last_name, email, address, city, zip, telephone, fax, title, company, www,module_sys_dmail_html, image, disable, comments plugin.tx_srfeuserregister_pi1.requiredFields = username,password,first_name,last_name,email,comments # ---------- front-end user registration SETUP ----------- # -------------- sr_feuser_register (start) -------------- plugin.tx_srfeuserregister_pi1 { templateFile = {$plugin.tx_srfeuserregister_pi1.file.templateFile} wrap1.wrap = {$plugin.tx_srfeuserregister_pi1.wrap1} wrap2.wrap = {$plugin.tx_srfeuserregister_pi1.wrap2} wrap3.wrap = {$plugin.tx_srfeuserregister_pi1.wrap3} color1.wrap = {$plugin.tx_srfeuserregister_pi1.color1} color2.wrap = {$plugin.tx_srfeuserregister_pi1.color2} color3.wrap = {$plugin.tx_srfeuserregister_pi1.color3} icon_delete = {$plugin.tx_srfeuserregister_pi1.file.icon_delete} pid = {$plugin.tx_srfeuserregister_pi1.pid} registerPID = {$plugin.tx_srfeuserregister_pi1.registerPID} editPID = {$plugin.tx_srfeuserregister_pi1.editPID} confirmPID = {$plugin.tx_srfeuserregister_pi1.confirmPID} confirmType = {$plugin.tx_srfeuserregister_pi1.confirmType} loginPID = {$plugin.tx_srfeuserregister_pi1.loginPID} defaultCODE = {$plugin.tx_srfeuserregister_pi1.defaultCODE} formName = {$plugin.tx_srfeuserregister_pi1.formName} onChangeCountryAttribute = {$plugin.tx_srfeuserregister_pi1.onChangeCountryAttribute} # you may modify here the conditions under which an attachment file will be added to the email addAttachment = {$plugin.tx_srfeuserregister_pi1.enableEmailAttachment} addAttachment.cmd = setfixed addAttachment.sFK = APPROVE addAttachment.file = {$plugin.tx_srfeuserregister_pi1.file.attachmentFile} create = 1 create { preview = {$plugin.tx_srfeuserregister_pi1.enablePreviewRegister} fields = {$plugin.tx_srfeuserregister_pi1.formFields} required = {$plugin.tx_srfeuserregister_pi1.requiredFields} defaultValues { redemptionCode = module_sys_dmail_html = 1 disable = {$plugin.tx_srfeuserregister_pi1.enableEmailConfirmation} } overrideValues { # usergroup = {$plugin.tx_srfeuserregister_pi1.userGroupUponRegistration} disable = {$plugin.tx_srfeuserregister_pi1.enableEmailConfirmation} processed = 0 paid = 0 } evalValues { password = twice, atLeast[{$plugin.tx_srfeuserregister_pi1.passwordAtLeast}], atMost[{$plugin.tx_srfeuserregister_pi1.passwordAtMost}] username = uniqueLocal, atLeast[{$plugin.tx_srfeuserregister_pi1.usernameAtLeast}], atMost[{$plugin.tx_srfeuserregister_pi1.usernameAtMost}] usergroup = # email = email,atMost[255],uniqueLocal email = email,atMost[255] name = atMost[{$plugin.tx_srfeuserregister_pi1.nameAtMost}] first_name = atMost[50] last_name = atMost[50] date_of_birth = date company = atMost[50] city = atMost[40] zip = atMost[20] telephone = atMost[25] fax = atMost[25] image = upload title = address = www = wwwURL payment_method = zone = pco cc_number = creditcard,atMost[20] cc_expiry = expiry,atMost[7] cc_name = atMost[255],trim cc_type = atMost[20] ach_routing = routing,atMost[9] ach_account = int,atMost[17] join_agree = referrer_uri = starttime = endtime = redemptionCode = redemptionCode tt_products = tx_securityquestion_question = int tx_securityquestion_answer = atMost[255],trim } } setfixed = {$plugin.tx_srfeuserregister_pi1.enableEmailConfirmation} setfixed.APPROVE { _FIELDLIST = uid,pid,usergroup # usergroup = {$plugin.tx_srfeuserregister_pi1.userGroupAfterConfirmation} disable = 0 } enableAutoLoginOnConfirmation = {$plugin.tx_srfeuserregister_pi1.enableAutoLoginOnConfirmation} autoLoginRedirect_url = {$plugin.tx_srfeuserregister_pi1.autoLoginRedirect_url} setfixed.DELETE { _FIELDLIST = uid,pid } authcodeFields = {$plugin.tx_srfeuserregister_pi1.authcodeFields} authcodeFields.codeLength = {$plugin.tx_srfeuserregister_pi1.codeLength} invite < .create edit < .create edit { preview = {$plugin.tx_srfeuserregister_pi1.enablePreviewEdit} defaultValues { disable = 0 module_sys_dmail_html > } overrideValues { usergroup > disable = 0 } evalValues { usergroup = unsetEmpty } } infomail = 0 forceFileDelete = {$plugin.tx_srfeuserregister_pi1.forceFileDelete} parseValues { username = nospace,trim usergroup = trim email = lower,nospace,trim password = trim,nospace name = trim first_name = trim last_name = trim date_of_birth = date title = trim company = trim city = trim zip = image = files module_sys_dmail_html = setEmptyIfAbsent www = wwwURL zone = cc_number = trim cc_expiry = cc_name = trim cc_type = trim payment_method = trim ach_routing = trim ach_account = trim join_agree = trim referrer_uri = trim starttime = trim endtime = trim redemptionCode = tt_products = tx_securityquestion_question = tx_securityquestion_answer = trim } parseFromDBValues { date_of_birth = adodb_date } parseToDBValues { date_of_birth = adodb_date } email.from = {$plugin.tx_srfeuserregister_pi1.email} email.fromName = {$plugin.tx_srfeuserregister_pi1.siteName} email.admin = {$plugin.tx_srfeuserregister_pi1.email} email.field = email email.HTMLMail = {$plugin.tx_srfeuserregister_pi1.enableHTMLMail} email.HTMLMailCSS = {$plugin.tx_srfeuserregister_pi1.HTMLMailCSS} email.CREATE_SAVED = {$plugin.tx_srfeuserregister_pi1.enableEmailOnRegister} email.EDIT_SAVED = {$plugin.tx_srfeuserregister_pi1.enableEmailOnUpdate} email.DELETE_SAVED = {$plugin.tx_srfeuserregister_pi1.enableEmailOnDelete} email.SETFIXED_APPROVE = {$plugin.tx_srfeuserregister_pi1.enableEmailOnApprove} email.SETFIXED_DELETE = {$plugin.tx_srfeuserregister_pi1.enableEmailOnRefuse} notify.CREATE_SAVED = {$plugin.tx_srfeuserregister_pi1.enableAdminNotifyOnRegister} notify.EDIT_SAVED = {$plugin.tx_srfeuserregister_pi1.enableAdminNotifyOnUpdate} notify.DELETE_SAVED = {$plugin.tx_srfeuserregister_pi1.enableAdminNotifyOnDelete} notify.SETFIXED_CREATE = {$plugin.tx_srfeuserregister_pi1.enableAdminNotifyConfirmation} notify.SETFIXED_INVITE = {$plugin.tx_srfeuserregister_pi1.enableAdminNotifyConfirmation} notify.SETFIXED_APPROVE = {$plugin.tx_srfeuserregister_pi1.enableAdminNotifyOnApprove} notify.SETFIXED_DELETE = {$plugin.tx_srfeuserregister_pi1.enableAdminNotifyOnRefuse} ccAllowedTypes = {$plugin.tx_srfeuserregister_pi1.ccAllowedTypes} tempuserTimelimit = {$plugin.tx_srfeuserregister_pi1.tempuserTimelimit} timelimit = {$plugin.tx_srfeuserregister_pi1.timelimit} enableAutoLoginTempuser = {$plugin.tx_srfeuserregister_pi1.enableAutoLoginTempuser} enableAutoLogin = {$plugin.tx_srfeuserregister_pi1.enableAutoLogin} enableCreditcardSave = {$plugin.tx_srfeuserregister_pi1.enableCreditcardSave} userGroupUponRegistration = {$plugin.tx_srfeuserregister_pi1.userGroupUponRegistration} dropFields = {$plugin.tx_srfeuserregister_pi1.dropFields} corporateGroup = 16 professionalGroup = 2 complimentaryGroup = 4 memberGroup = 1 corporateMembershipCharge = 2000 professionalMembershipCharge = 249 corporateMembershipProductID = 8 professionalMembershipProductID = 13 _CSS_DEFAULT_STYLE ( .tx-srfeuserregister-pi1 P { font-family:Verdana, sans-serif; font-size:12px; line-height:125%; color:#35006d; margin-top:8px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; padding-right:3px; padding-left:3px; text-indent:0px; } .tx-srfeuserregister-pi1 A:link { background-color:transparent; color:navy; text-decoration:none; font-weight:bold;} .tx-srfeuserregister-pi1 A:visited { background-color:transparent; color:navy; font-weight:bold; text-decoration:none; } .tx-srfeuserregister-pi1 A:hover { background-color:transparent; color:#333333; text-decoration:none; } .tx-srfeuserregister-pi1 A:active { background-color:transparent; color:navy; font-weight:bold; text-decoration:none; } .tx-srfeuserregister-pi1 TD { vertical-align:top; font-family:Verdana, sans-serif; font-size:12px; line-height:125%; color:#35006d; margin-top:8px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; padding-right:3px; padding-left:3px; text-indent:0px;} .tx-srfeuserregister-pi1 INPUT { font-size:10px; font-family:Verdana; background-color:#35006d; color:#ffffff; font-weight:bold; } .tx-srfeuserregister-pi1 INPUT.tx-srfeuserregister-pi1-submit { font-size:10px; font-family:Verdana; background-color:#35006d; color:#ffffff; font-weight:bold; } .tx-srfeuserregister-pi1 INPUT.tx-srfeuserregister-pi1-uploader { font-size:10px; font-family:Verdana; background-color:#35006d; color:#ffffff; font-weight:bold; } .tx-srfeuserregister-pi1 INPUT.tx-srfeuserregister-pi1-icon { font-size:10px; font-family:Verdana; background-color:transparent;} .tx-srfeuserregister-pi1 SELECT { font-size:10px; font-family:Verdana; background-color:#35006d; color:#ffffff; font-weight:bold; } .tx-srfeuserregister-pi1 TEXTAREA { font-size:10px; font-family:Verdana; background-color:#35006d; color:#ffffff; font-weight:bold; } .tx-srfeuserregister-pi1 .tx-srfeuserregister-pi1-radio INPUT { font-size:10px; font-family:Verdana; background-color:transparent; color:#35006d; font-weight:bold; vertical-align:middle; } .tx-srfeuserregister-pi1 .tx-srfeuserregister-pi1-checkbox INPUT { font-size:10px; font-family:Verdana; background-color:transparent; color:#35006d; font-weight:bold; vertical-align:middle; } ) _DEFAULT_PI_VARS { } enableCanspamLogging = {$plugin.tx_srfeuserregister_pi1.enableCanspamLogging} } # -------------- sr_feuser_register (end) --------------

marți, 7 martie 2017

Typo3 hook when user logs in

best is to have your own extension under a folder like vendor_name (notice the underscore and the camelcasing below). in your extensions ext_localconf.php, configure your hook like: // hooks when logging in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['postUserLookUp'][] = 'VendorName\Classes\Hooks\AfterRegistrationHook->postLogin'; and our file vendor_name/Classes/Hooks/AfterRegistrationHook.php should look like:
function postLogin(&$params, &$pObj) {
  if ($pObj->loginType === 'FE' &&
            $pObj->loginFailure === false &&
            is_array($pObj->user) &&
            $pObj->loginSessionStarted === true
        ) {
   print_r($params);
   die("here we are just after the user has logged in");


        }

 }


luni, 26 septembrie 2016

What is the current mysql license, how to find it?

Hi, You're wondering how to find the current mysql license? One should just query the instance variables, it's as easy as this:
SHOW VARIABLES LIKE '%license%';
That's it! (of course one needs first to connect to the instance like : mysql -u your_username -p )

vineri, 19 august 2016

ASP Classic Recursively Delete Files (older than) and folders

In ASP Classic (VBScript), this piece of script will recursively walk through all subfolders and remove all files older than 6 hours (change it to days, weeks, months), and all empty subdirectories.



DeleteFiles("C:\cleanThisSub")

dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")

' recursively deletes files older than 6 hours and the empty directories
Sub DeleteFiles(ByVal sFolder)
    Set folderObj = fso.GetFolder(sFolder)
    dim aFiles, aSubFolders, aSubFolders2, file, folder, folderObj2
    Set aFiles = folderObj.Files
    Set aSubFolders = folderObj.SubFolders

    For Each file in aFiles
        if ( DateDiff("s", file.DateLastModified, Now()) > 6 * 3600 ) then
            'delete files older than 6 hours
            response.write "del " & file.Path & "<br>"
            fso.deleteFile(file.Path)
        End If
    Next

    For Each folder in aSubFolders
        Set folderObj2 = fso.GetFolder(folder.Path)
        DeleteFiles(folder.Path)
        Set aFiles = folderObj2.Files
        if aFiles.Count<1 then
            set asubfolders2 = folderObj2.SubFolders
            if aSubFolders2.Count<1 then
                ' subfolder is empty, can be removed
                response.write "rmdir " & folder.Path & "<br>"
                fso.deleteFolder(folder.Path)
            end if
        end if
    Next
  
End Sub

vineri, 13 mai 2016

Windows 10 Unable to open Link in Mail

For a while now, every time i clicked a link inside any email , within the Windows 10 Mail app,
this failed with the warning 'Unable to open Link: http://... '.

After some research i've figured it is due to the fact that i stopped&disabled the windows Firewall service.
As soon as i opened services.msc , scrolled down to windows firewall, and started it - all windows 10 mail Links started opening up immediately, like magic!


Thanks Microsoft + Windows 10.
You're doing a great job.