";
$params = array(1 => array($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);
EMAIL_UNHOLD = 22,
RESTORE = 23,
DELETE_PERMANENTLY = 24,
- COMMUNICATION_PREFS = 25;
+ COMMUNICATION_PREFS = 25,
+ LATEX_LETTER = 26;
/**
* The task array
'title' => ts('Alter Contact Communication Preferences'),
'class' => 'CRM_Contact_Form_Task_AlterPreferences',
),
+ self::LATEX_LETTER => array(
+ 'title' => ts('Print Latex PDF Letter for Contacts'),
+ 'class' => 'CRM_Contact_Form_Task_LatexPDF',
+ 'result' => TRUE,
+ ),
self::RESTORE => array(
'title' => ts('Restore Contacts'),
'class' => 'CRM_Contact_Form_Task_Delete',
*
*/
class CRM_Contribute_Task {
- const DELETE_CONTRIBUTIONS = 1, PRINT_CONTRIBUTIONS = 2, EXPORT_CONTRIBUTIONS = 3, BATCH_CONTRIBUTIONS = 4, EMAIL_CONTACTS = 5, UPDATE_STATUS = 6, PDF_RECEIPT = 7;
+ CONST DELETE_CONTRIBUTIONS = 1, PRINT_CONTRIBUTIONS = 2, EXPORT_CONTRIBUTIONS = 3, BATCH_CONTRIBUTIONS = 4, EMAIL_CONTACTS = 5, UPDATE_STATUS = 6, PDF_RECEIPT = 7, LATEX_TEST = 10;
/**
* The task array
'class' => 'CRM_Contribute_Form_Task_Invoice',
'result' => FALSE,
),
+ 10 => array(
+ 'title' => ts('Latex Letters for Contributions'),
+ 'class' => 'CRM_Contribute_Form_Task_PDFLatex',
+ 'result' => FALSE,
+ ),
);
//CRM-4418, check for delete
* @return string
*/
public function renderSetting() {
- // On a standard page request we construct the CRM object from scratch
+ /*// On a standard page request we construct the CRM object from scratch
if (!self::isAjaxMode()) {
$js = 'var CRM = ' . json_encode($this->getSettings()) . ';';
}
$js = 'CRM.$.extend(true, CRM, ' . json_encode($this->getSettings()) . ');';
}
return sprintf("<script type=\"text/javascript\">\n%s\n</script>\n", $js);
+ */
+ $js = 'var CRM = ' . json_encode($this->getSettings()) . ';';
+ //return sprintf("<script type=\"text/javascript\">\n%s\n</script>\n", $js);
+ return sprintf("<script type=\"text/javascript\">\n// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3\n%s\n// @license-end\n</script>\n", $js);
}
/**
/**
* Settings
*/
- const MAX_ERRORS = 250, MAX_WARNINGS = 25, DEFAULT_TIMEOUT = 30;
+ CONST MAX_ERRORS = 10000, MAX_WARNINGS = 25, DEFAULT_TIMEOUT = 30;
/**
* Return codes
* $Id$
*
*/
+
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 $text
* @param string $fileName
$str
);
- $str = preg_replace('/\\\\|\{(\s*)?\}/', ' ', $str);
+ //$str = preg_replace('/\\\\|\{(\s*)?\}/', ' ', $str); //WHY you do this?
return $str;
}
* this function works directly on the string that is passed
*/
public static function unescapeTokens(&$str) {
- $str = preg_replace('/\\\\|\{(\{\w+\.\w+\})\}/', '\\1', $str);
+ //$str = preg_replace('/\\\\|\{(\{\w+\.\w+\})\}/', '\\1', $str);
}
/**
$params['gender_id']['api.aliases'] = array('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'] = array('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.
*