function ContentImage() { // Check for image $img = $this->owner->obj('FeaturedImage'); if ($img && $img->exists()) { return $img; } // else try to get first image tag from article. $matches = array(); if (preg_match('#<img [^>]*src="([^">]+)"#smi', $this->owner->Content, $matches)) { if (isset($matches[1])) { $filename = preg_replace('#_resampled/resizedimage[0-9]+-#smi', '', $matches[1]); $file = DataObject::get_one('File', 'Filename=\'' . Convert::Raw2SQL($filename) . '\''); if ($file) { return $file; } } } }
function pdf() { exit("deactivated for now..."); if ($ID = Director::urlParam("ID")) { if ($invoice = DataObject::get_one("ShopInvoice", "PublicURL = '" . Convert::Raw2SQL($ID) . "'")) { $this->Invoice = $invoice; if (!isset($_REQUEST['view'])) { //generate pdf require dirname(__FILE__) . '/Thirdparty/html2fpdf/html2fpdf.php'; //to get work HTML2PDF error_reporting(E_ALL ^ (E_NOTICE | E_DEPRECATED)); $pdf = new HTML2FPDF(); $pdf->AddPage(); $pdfPath = $invoice->generatePDF(); $outputPath = TEMP_FOLDER . "/shopsystem/"; $outputFile = $outputPath . $invoice->PublicURL . ".pdf"; $fp = fopen($pdfPath, "r"); $strContent = fread($fp, filesize($pdfPath)); fclose($fp); $pdf->WriteHTML($strContent); $pdf->Output($outputFile); header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="invoice.pdf"'); echo file_get_contents($outputFile); //PDF file is generated successfully! exit; } if (isset($_REQUEST['remove'])) { //remove invoice from public by generating a new public url $invoice->PublicURL = ShopInvoice::generatePublicURL(); $invoice->write(); } } } return array(); }
/** * Get the whole tree of a part of the tree via an AJAX request. * * @param SS_HTTPRequest $request * @return string */ public function tree(SS_HTTPRequest $request) { // Array sourceObject is an explicit list of values - construct a "flat tree" if (is_array($this->sourceObject)) { $output = "<ul class=\"tree\">\n"; foreach ($this->sourceObject as $k => $v) { $output .= '<li id="selector-' . $this->name . '-' . $k . '"><a>' . $v . '</a>'; } $output .= "</ul>"; return $output; } // Regular source specification $isSubTree = false; $this->search = Convert::Raw2SQL($request->requestVar('search')); $ID = is_numeric($request->latestparam('ID')) ? (int) $request->latestparam('ID') : (int) $request->requestVar('ID'); if ($ID) { $obj = DataObject::get_by_id($this->sourceObject, $ID); $isSubTree = true; if (!$obj) { throw new Exception("TreeDropdownField->tree(): the object #{$ID} of type {$this->sourceObject} could not be found"); } } else { if ($this->baseID) { $obj = DataObject::get_by_id($this->sourceObject, $this->baseID); } if (!$this->baseID || !$obj) { $obj = singleton($this->sourceObject); } } // pre-process the tree - search needs to operate globally, not locally as marking filter does if ($this->search != "") { $this->populateIDs(); } if ($this->filterCallback || $this->sourceObject == 'Folder' || $this->search != "") { $obj->setMarkingFilterFunction(array($this, "filterMarking")); } $obj->markPartialTree(); // allow to pass values to be selected within the ajax request if (isset($_REQUEST['forceValue']) || $this->value) { $forceValue = isset($_REQUEST['forceValue']) ? $_REQUEST['forceValue'] : $this->value; if (($values = preg_split('/,\\s*/', $forceValue)) && count($values)) { foreach ($values as $value) { if (!$value) { continue; } $obj->markToExpose($this->objectForKey($value)); } } } $eval = '"<li id=\\"selector-' . $this->Name() . '-{$child->' . $this->keyField . '}\\" data-id=\\"$child->' . $this->keyField . '\\" class=\\"class-$child->class"' . ' . $child->markingClasses() . "\\"><a rel=\\"$child->ID\\">" . $child->' . $this->labelField . ' . "</a>"'; if ($isSubTree) { return substr(trim($obj->getChildrenAsUL('', $eval, null, true)), 4, -5); } else { return $obj->getChildrenAsUL('class="tree"', $eval, null, true); } }
function doSubmitRecieverForm($data, $form) { $text = $data['Text']; $text = str_replace(",", ";", $text); $text = str_replace(";;", "; ;", $text); if ($lines = explode("\n", $text)) { $id = (int) $data['ID']; $str = ""; $firstLine = $lines[0]; $fields = explode(";", $firstLine); $j = 0; $table = array(); foreach ($fields as $f) { $f = strtolower(trim($f)); if ($f == "sex" || $f == "gender" || $f == "geschlecht") { $table['gender'] = $j; } if ($f == "first" || $f == "firstname" || $f == "vorname") { $table['firstname'] = $j; } if ($f == "sur" || $f == "surname" || $f == "nachname") { $table['surname'] = $j; } if ($f == "email" || $f == "mail") { $table['mail'] = $j; } $j++; } $i = 0; foreach ($lines as $line) { $line = trim($line); if ($segments = explode(";", $line)) { $firstname = $surname = $gender = null; if (isset($table['firstname'])) { $firstname = Convert::Raw2SQL(trim($segments[$table['firstname']])); } if (isset($table['surname'])) { $surname = Convert::Raw2SQL(trim($segments[$table['surname']])); } if (isset($table['gender'])) { $gender = Convert::Raw2SQL(trim($segments[$table['gender']])); } //serach all segments for email foreach ($segments as $s) { $email = trim($s); if (eregi("^[a-z0-9]+([-_\\.]?[a-z0-9])+@[a-z0-9]+([-_\\.]?[a-z0-9])+\\.[a-z]{2,4}", $email)) { if (!DataObject::get("NewsletterReciever", "NewsletterID = {$id} AND Email LIKE '{$email}'")) { $i++; $r = new NewsletterReciever(); $r->FirstName = $firstname; $r->Surname = $surname; $r->Gender = $gender; $r->NewsletterID = $id; $r->Send = 0; $r->Email = $email; $r->write(); $str .= "<strong>" . $r->Email . "</strong> ({$gender} {$firstname} {$surname}) hinzugefügt...<br/>\n"; } } } } } $form->sessionMessage($str . "<p>{$i} neu eingetragen</p>", 'good'); } Director::redirectBack(); }
/** * Get the whole tree of a part of the tree via an AJAX request. * * @param SS_HTTPRequest $request * @return string */ public function tree(SS_HTTPRequest $request) { // Array sourceObject is an explicit list of values - construct a "flat tree" if (is_array($this->sourceObject)) { $output = "<ul class=\"tree\">\n"; foreach ($this->sourceObject as $k => $v) { $output .= '<li id="selector-' . $this->name . '-' . $k . '"><a>' . $v . '</a>'; } $output .= "</ul>"; return $output; } // Regular source specification $isSubTree = false; $this->search = Convert::Raw2SQL($request->requestVar('search')); $ID = is_numeric($request->latestparam('ID')) ? (int) $request->latestparam('ID') : (int) $request->requestVar('ID'); if ($ID && !$request->requestVar('forceFullTree')) { $obj = DataObject::get_by_id($this->sourceObject, $ID); $isSubTree = true; if (!$obj) { throw new Exception("TreeDropdownField->tree(): the object #{$ID} of type {$this->sourceObject} could not be found"); } } else { if ($this->baseID) { $obj = DataObject::get_by_id($this->sourceObject, $this->baseID); } if (!$this->baseID || !$obj) { $obj = singleton($this->sourceObject); } } // pre-process the tree - search needs to operate globally, not locally as marking filter does if ($this->search != "") { $this->populateIDs(); } if ($this->filterCallback || $this->sourceObject == 'Folder' || $this->search != "") { $obj->setMarkingFilterFunction(array($this, "filterMarking")); } $obj->markPartialTree(); // allow to pass values to be selected within the ajax request if (isset($_REQUEST['forceValue']) || $this->value) { $forceValue = isset($_REQUEST['forceValue']) ? $_REQUEST['forceValue'] : $this->value; if (($values = preg_split('/,\\s*/', $forceValue)) && count($values)) { foreach ($values as $value) { if (!$value || $value == 'unchanged') { continue; } $obj->markToExpose($this->objectForKey($value)); } } } $self = $this; $escapeLabelField = $obj->escapeTypeForField($this->labelField) != 'xml'; $titleFn = function (&$child) use(&$self, $escapeLabelField) { $keyField = $self->keyField; $labelField = $self->labelField; return sprintf('<li id="selector-%s-%s" data-id="%s" class="class-%s %s %s"><a rel="%d">%s</a>', Convert::raw2xml($self->getName()), Convert::raw2xml($child->{$keyField}), Convert::raw2xml($child->{$keyField}), Convert::raw2xml($child->class), Convert::raw2xml($child->markingClasses()), $self->nodeIsDisabled($child) ? 'disabled' : '', (int) $child->ID, $escapeLabelField ? Convert::raw2xml($child->{$labelField}) : $child->{$labelField}); }; // Limit the amount of nodes shown for performance reasons. // Skip the check if we're filtering the tree, since its not clear how many children will // match the filter criteria until they're queried (and matched up with previously marked nodes). $nodeThresholdLeaf = Config::inst()->get('Hierarchy', 'node_threshold_leaf'); if ($nodeThresholdLeaf && !$this->filterCallback && !$this->search) { $className = $this->sourceObject; $nodeCountCallback = function ($parent, $numChildren) use($className, $nodeThresholdLeaf) { if ($className == 'SiteTree' && $parent->ID && $numChildren > $nodeThresholdLeaf) { return sprintf('<ul><li><span class="item">%s</span></li></ul>', _t('LeftAndMain.TooManyPages', 'Too many pages')); } }; } else { $nodeCountCallback = null; } if ($isSubTree) { $html = $obj->getChildrenAsUL("", $titleFn, null, true, $this->childrenMethod, 'numChildren', true, null, $nodeCountCallback); return substr(trim($html), 4, -5); } else { $html = $obj->getChildrenAsUL('class="tree"', $titleFn, null, true, $this->childrenMethod, 'numChildren', true, null, $nodeCountCallback); return $html; } }
function doSubmitSummaryForm($data, $form) { $session = ShopOrder::orderSession(); $session->Note = Convert::Raw2SQL($data['Note']); if (!isset($data['TermsAndConditions']) && ShopCheckoutPage::$termsAndConditionsAgreementRequired) { Director::redirect($this->Link() . "agree_terms_and_conditions"); return array(); } $session->write(); if ($session->isComplete()) { $this->redirectToNextStepFrom("summary"); } return array(); }
static function checkForSessionOrCreate() { if (!($session = Session::get(self::$hashField))) { //create session $hash = substr(md5(rand(0, 1000) . time()), 0, 10); $s = new ShopOrder(); if ($m = Member::currentUser()) { $s->Member = $m; } $s->Hash = $hash; Session::set(self::$hashField, $hash); $s->IP = $_SERVER['REMOTE_ADDR']; $s->Currency = self::getLocalCurrency(); $s->VAT = self::getVATType(); $s->Tax = self::getLocalTax(); $s->write(); //generate ID // else user_error("Couldn't create ShoppingSession..."); } else { if (!($s = DataObject::get_one("ShopOrder", "Hash = '" . Convert::Raw2SQL($session) . "' AND Status = 'Unsubmitted'"))) { $hash = substr(md5(rand(0, 1000) . time()), 0, 10); $s = new ShopOrder(); if ($m = Member::currentUser()) { $s->Member = $m; } $s->Hash = $hash; Session::set(self::$hashField, $hash); $s->IP = $_SERVER['REMOTE_ADDR']; $s->Currency = self::getLocalCurrency(); $s->VAT = self::getVATType(); $s->Tax = self::getLocalTax(); $s->write(); } } //create address fields for shipping+invoicing //is now done in ShopCheckoutPage --> doSubmitEmailForm if (!($s->PaymentID > 0)) { $p = new ShopPayment(); $p->Price = 0; $p->OrderID = $s->ID; $p->write(); $s->PaymentID = $p->ID; } if (!($s->ShippingID > 0)) { $d = new ShopShipping(); $d->OrderID = $s->ID; $d->Price = 0; $d->write(); $s->ShippingID = $d->ID; } //save session $s->write(); return $s; }