";
$params = [1 => [$id, 'Integer']];
- if ($id == 0) {
- $query .= " OR contact_id IS NULL";
- }
+## this is related to RT#765026
+# Something is occasionally inserting records in civicrm_acl_cache with id null. That causes i
+# for our anonymous visitors who want to sign petitions.
+# Removed. Ward, 2012-07-20
+# if ($id == 0) {
+# $query .= " OR contact_id IS NULL";
+# }
$dao = CRM_Core_DAO::executeQuery($query, $params);
RESTORE = 108,
COMMUNICATION_PREFS = 109,
INDIVIDUAL_CONTACTS = 110,
- ADD_TO_CASE = 111;
+ ADD_TO_CASE = 111,
+ LATEX_LETTER = 112;
/**
* @var string
'url' => 'civicrm/task/alter-contact-preference',
'icon' => 'fa-check-square-o',
],
+ self::LATEX_LETTER => [
+ 'title' => ts('Print Latex PDF Letter for Contacts'),
+ 'class' => 'CRM_Contact_Form_Task_LatexPDF',
+ 'result' => TRUE,
+ ],
self::RESTORE => [
'title' => ts('Restore contacts from trash'),
'class' => 'CRM_Contact_Form_Task_Delete',
UPDATE_STATUS = 401,
PDF_RECEIPT = 402,
PDF_THANKYOU = 403,
- PDF_INVOICE = 404;
+ PDF_INVOICE = 404,
+ LATEX_TEST = 405;
/**
* @var string
'class' => 'CRM_Contribute_Form_Task_Invoice',
'result' => FALSE,
],
+ self::LATEX_TEST => [
+ 'title' => ts('Latex Letters for Contributions'),
+ 'class' => 'CRM_Contribute_Form_Task_PDFLatex',
+ 'result' => FALSE,
+ ],
];
//CRM-4418, check for delete
/**
* Settings
*/
- const MAX_WARNINGS = 25, DEFAULT_TIMEOUT = 30;
+ const MAX_ERRORS = 10000, MAX_WARNINGS = 25, DEFAULT_TIMEOUT = 30;
/**
* Return codes
* @package CRM
* @copyright CiviCRM LLC https://civicrm.org/licensing
*/
+
class CRM_Utils_PDF_Utils {
+ public static function latex2pdf(&$text, $fileName = 'civicrm.pdf', $output = FALSE, $pdfFormat = NULL) {
+ /* FIXME: get $paper_size, $orientation, $margins */
+
+ if (is_array($text)) {
+ $pages = &$text;
+ }
+ else {
+ $pages = array($text);
+ }
+
+
+ $head='\documentclass[11pt]{letter}
+\usepackage{url}
+\usepackage{ucs}
+\usepackage{graphicx}
+\usepackage[T1]{fontenc}
+\usepackage{fullpage}
+
+\newcommand{\fsfclosing}[1]{\par\nobreak\vspace{\parskip}
+ \stopbreaks
+ \noindent
+ \ifx\@empty\fromaddress\else
+ \hspace*{\longindentation}\fi
+ \parbox{\indentedwidth}{\raggedright
+ \ignorespaces #1\\\\[1\medskipamount]
+ \hspace*{-0.25in}\includegraphics[scale=1.0]{sigjohns.pdf}
+ \\\\
+
+ \ifx\@empty\fromsig
+ \fromname
+ \else \fromsig \fi\strut}
+ \par}
+\medskipamount=\parskip
+
+%% This line might be necessary, but it was not able to find utf8.def on my
+%% machine.
+\usepackage[utf8x]{inputenc}
+\pagestyle{empty}
+\tolerance=8000
+\address{\vspace{0.05in}}
+\signature{John Sullivan \\\\ Executive Director}
+\usepackage[
+top = 0.4in,
+bottom = 0.9in,
+left = 0.8in,
+right = 0.8in]{geometry}
+\begin{document}
+';
+ $footer='
+\end{document}';
+
+ $latex = $head;
+ foreach ($pages as $page) {
+ $latex.=$page;
+ }
+ $latex.=$footer;
+
+ $descriptorspec = array(
+ 0 => array("pipe", "r"),
+ 1 => array("pipe", "w")
+ );
+
+
+
+ $process = proc_open("/usr/local/bin/pdflatex_wrapper.sh", $descriptorspec, $pipes);
+
+
+ if (is_resource($process)) {
+ fwrite($pipes[0], $latex);
+ fclose($pipes[0]);
+
+ $pdf = stream_get_contents($pipes[1]);
+ fclose($pipes[1]);
+ } else {
+ CRM_Core_Error::debug_log_message("ERROR creating PDF. Check /tmp/pdflatex_*");
+ }
+
+ if ($output) {
+ return $pdf;
+ }
+ else {
+ header('Content-Type: application/pdf');
+ header('Content-Disposition: attachment; filename="' . $fileName . '"');
+ echo $pdf;
+ }
+ }
+
/**
* @param array $text
* List of HTML snippets.
$str
);
- $str = preg_replace('/\\\\|\{(\s*)?\}/', ' ', $str);
+ //$str = preg_replace('/\\\\|\{(\s*)?\}/', ' ', $str); //WHY you do this?
return $str;
}
* @param string $str ref to the string that will be scanned and modified
*/
public static function unescapeTokens(&$str) {
- $str = preg_replace('/\\\\|\{(\{\w+\.\w+\})\}/', '\\1', $str);
+ //$str = preg_replace('/\\\\|\{(\{\w+\.\w+\})\}/', '\\1', $str);
}
/**
$params['gender_id']['api.aliases'] = ['gender'];
}
+/**
+ * Added by Ward; basic filter-able contribution list
+ * use filter.receive_date_high etc
+ * 2013-07-02
+ */
+function civicrm_api3_contact_list($params) {
+ return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+}
+
/**
* Retrieve one or more contacts, given a set of search params.
*
$params['id']['api.aliases'] = ['contribution_id'];
}
+/**
+ * Added by Ward; basic filter-able contribution list
+ * use filter.receive_date_high etc
+ * 2013-07-02
+ */
+function civicrm_api3_contribution_list($params) {
+ return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+}
+
/**
* Retrieve a set of contributions.
*