示例#1
0
 public function executeCartOrder()
 {
     $this->setLayout(false);
     $orderPage = Document::getDocumentByExclusiveTag("order_page");
     if ($orderPage) {
         $orderPageUrl = $orderPage->getHref();
     }
     $referer = $_SERVER['HTTP_REFERER'];
     if ($referer == $orderPageUrl) {
         $c = new Criteria();
         $cat = CategoryI18nPeer::doSelectOne($c);
         if ($cat) {
             $referer = UtilsHelper::cleanURL($cat);
         }
     }
     $this->referer = $referer;
     /*$this->count = 0;
     		if(array_key_exists("cart", $_SESSION))
     		{
     			$this->count = count($_SESSION["cart"]);
     			$products = array();
     			foreach ($_SESSION["cart"] as $item)
     			{
     				$doc = Document::getDocumentInstance($item);
     				if($doc) $products[] = $doc;
     			}
     			$this->products = $products;
     		}*/
 }
示例#2
0
 public function executeForceLogin()
 {
     $access = false;
     $user = $this->getUser()->getSubscriber();
     if ($user && $user->getType() == "admin" && $user->getBackend() == 1) {
         $access = true;
     } else {
         $user = $this->getUser()->getAttribute('forceAutoLogAsAdmin');
         $access = true;
     }
     if ($access) {
         if ($this->getRequestParameter("fulid")) {
             $fulid = $this->getRequestParameter('fulid');
             $subscriber = Document::getDocumentInstance($fulid);
             if ($subscriber) {
                 $this->getUser()->setAttribute('forceAutoLogAsAdmin', $user);
                 $this->getUser()->signIn($subscriber);
                 $this->user = $subscriber;
                 if (!($page = Document::getDocumentByExclusiveTag("website_page_welcome"))) {
                     $page = Document::getDocumentByExclusiveTag("website_page_home");
                 }
                 if ($page) {
                     $href = $page->getHref();
                     $this->redirect($href);
                 }
             }
         }
     }
     exit;
 }
示例#3
0
 public function executeSearchForm()
 {
     $this->setLayout(false);
     $page = Document::getDocumentByExclusiveTag("website_page_search");
     if ($page) {
         $this->searchUrl = $page->getHref(false);
     }
 }
示例#4
0
 public function executeLogout()
 {
     $this->getUser()->signOut();
     $loginPage = Document::getDocumentByExclusiveTag("website_page_home");
     if ($loginPage) {
         $loginPageUrl = $loginPage->getHref();
         $this->redirect($loginPageUrl);
     }
     $this->redirect('http://' . $_SERVER['SERVER_NAME']);
 }
示例#5
0
文件: MenuHelper.php 项目: kotow/work
 public static function get_menu_by_tag($tagname, $options = array())
 {
     $menu = Document::getDocumentByExclusiveTag($tagname);
     if (!$menu) {
         return null;
     }
     /*$path = sfConfig::get('sf_root_dir')."/cache/menus/".$tagname.UtilsHelper::cleanStr($_SERVER['REQUEST_URI']);
     		if (is_readable($path))
     		{
     			return file_get_contents($path);
     		}*/
     $content = self::buildMenu($menu, array(), null, $options);
     //FileHelper::writeFile($path, $content);
     return $content;
 }
示例#6
0
 public function executeMainNav()
 {
     $this->setLayout(false);
     $menuItems = array();
     if ($menu = Document::getDocumentByExclusiveTag("website_menu_main")) {
         $topics = Document::getChildrenOf($menu->getId(), 'Topic');
         foreach ($topics as $t) {
             $pages = Document::getChildrenOf($t->getId(), 'Page');
             foreach ($pages as $p) {
                 if (Document::hasTag($p, 'website_page_index')) {
                     $menuItems[$t->getId()] = $p;
                     break;
                 }
             }
         }
     }
     $this->menuItems = $menuItems;
 }
示例#7
0
 public function executeResult()
 {
     $this->setLayout(false);
     if ($code = $this->getRequestParameter("codeid")) {
         $c = new Criteria();
         $c->add(SubscriberPeer::CODE, $code);
         $user = SubscriberPeer::doSelectOne($c);
         if ($user) {
             $user->setPublicationStatus(UtilsHelper::STATUS_ACTIVE);
             //$user->setCode(null);
             $user->save();
             $this->msg = "Subscribtion confirmed";
         } else {
             $this->err = "A problem occured";
         }
         return "Confirm";
     }
     $email = trim($this->getRequestParameter('newsletter_email'));
     if (!empty($email)) {
         $new = false;
         $c = new Criteria();
         $c->add(SubscriberPeer::EMAIL, $email);
         $c->add(SubscriberPeer::PUBLICATION_STATUS, UtilsHelper::STATUS_WAITING);
         $subscriber = SubscriberPeer::doSelectOne($c);
         if (!$subscriber) {
             $subscriber = new Subscriber();
             $subscriber->setLabel($email);
             $subscriber->setEmail($email);
             $code = md5(time());
             $subscriber->setCode($code);
             $new = true;
         } else {
             $code = $subscriber->getCode();
         }
         $from_name = UtilsHelper::SYSTEM_SENDER;
         $from_email = UtilsHelper::NO_REPLY_MAIL;
         $mail = new sfMail();
         $mail->initialize();
         $mail->setMailer('sendmail');
         $mail->setCharset('utf-8');
         $mail->setSender($from_email, $from_name);
         $mail->setFrom($from_email, $from_name);
         $mail->addReplyTo($from_email);
         $mail->addAddress($email);
         $mail->addBcc(UtilsHelper::COPY_MAIL);
         $mail->setContentType('text/html');
         $mail->setSubject('Newsletter subscribtion');
         $resultPage = Document::getDocumentByExclusiveTag('website_page_newsletter_result');
         if ($resultPage) {
             $resultPageHref = $resultPage->getHref();
         }
         $request = $this->getRequest();
         $request->setParameter('activationUrl', $resultPageHref . "?codeid=" . $code);
         $body = $this->getPresentationFor("newsletter", "confirmMail");
         $mail->setBody($body);
         try {
             $mail->send();
             $defMailinglist = Document::getDocumentByExclusiveTag('newsletter_mailinglist_default');
             if ($defMailinglist && $new) {
                 $subscriber->save(null, $defMailinglist);
                 $subscriber->setPublicationStatus(UtilsHelper::STATUS_WAITING, true);
             }
             $this->msg = "Subscribtion successfull, check your email";
         } catch (Exception $e) {
             $this->getRequest()->setError('newsletter_email', "A problem occured");
         }
     } else {
         $this->getRequest()->setError('newsletter_email', "Please enter your email");
         $this->form = true;
     }
 }
示例#8
0
 public function executeError404()
 {
     /*$uri = substr($_SERVER["REQUEST_URI"], 1);
     
     		if (BackendService::loadUrlRelations())
     		{
     		if(array_key_exists('urlRelations', $_SESSION) && array_key_exists($uri, $_SESSION['urlRelations']))
     		{
     
     		$documentId = $_SESSION['urlRelations'][$uri];
     		exit("Doc".$documentId);
     		}
     		}
     		else
     		{
     		$c = new Criteria();
     		$c->add(UrlrewritePeer::LABEL, $uri);
     		$rewriteUrl = UrlrewritePeer::doSelectOne($c);
     
     		if ($rewriteUrl) $documentId = $rewriteUrl->getPageId();
     		}
     
     		if (isset($documentId))
     		{
     		$this->getRequest()->setParameter("pageref", $documentId);
     		$this->forward("website", "display");
     		}*/
     $page404 = Document::getDocumentByExclusiveTag("website_page_404");
     if ($page404) {
         $this->redirect($page404->getHref());
     } else {
         exit("PAGE 404 NOT FOUND, PLEASE DEFINE TAG 'website_page_404' AND TAG A PAGE DOCUMENT");
     }
     /*$uri = substr($_SERVER["REDIRECT_URL"], 1);
     
     		if (BackendService::loadUrlRelations())
     		{
     		if(array_key_exists('urlRelations', $_SESSION) && array_key_exists($uri, $_SESSION['urlRelations']))
     		{
     		$documentId = $_SESSION['urlRelations'][$uri];
     		}
     		else
     		{
     		$elements = explode("_", substr($uri, 0, -5));
     		$id = array_pop($elements);
     		$rewritedDoc = Document::getDocumentInstance($id);
     		if ($rewritedDoc)
     		{
     		$documentClass = get_class($rewritedDoc);
     		if($document = Document::getDocumentByExclusiveTag("website_page_".$documentClass."_detail"))
     		{
     		$this->getRequest()->setParameter($documentClass."_id", $id);
     		$documentId = $document->getid();
     		}
     		}
     		}
     		}
     		else
     		{
     		$c = new Criteria();
     		$c->add(UrlrewritePeer::LABEL, $uri);
     		$rewriteUrl = UrlrewritePeer::doSelectOne($c);
     		if ($rewriteUrl)
     		{
     		$documentId = $rewriteUrl->getPageId();
     		}
     		else
     		{
     		$elements = explode("_", substr($uri, 0, -5));
     		$id = array_pop($elements);
     		$rewritedDoc = Document::getDocumentInstance($id);
     		if ($rewritedDoc)
     		{
     		$documentClass = get_class($rewritedDoc);
     		if($document = Document::getDocumentByExclusiveTag("website_page_".$documentClass."_detail"))
     		{
     		$this->getRequest()->setParameter($documentClass."_id", $id);
     		$documentId = $document->getid();
     		}
     		}
     		}
     		}
     
     		if (isset($documentId))
     		{
     		$this->getRequest()->setParameter("pageref", $documentId);
     		$this->forward("website", "display");
     		}
     
     		$page404 = Document::getDocumentByExclusiveTag("website_page_404");
     
     
     		if ($page404)
     		{
     		$this->redirect($page404->getHref());
     		}
     		else
     		{
     		exit("PAGE 404 NOT FOUND, PLEASE DEFINE TAG 'website_page_404' AND TAG A PAGE DOCUMENT");
     		}*/
 }
示例#9
0
文件: Page.php 项目: kotow/work
 public function getBreadcrumb()
 {
     $breadcrumb = array();
     $parent = Document::getParentOf($this->getId());
     while ($parent) {
         if (get_class($parent) == 'Topic') {
             $breadcrumb[] = $parent;
         }
         if (get_class($parent) == 'Menu' || get_class($parent) == 'Website') {
             break;
         }
         $parent = Document::getParentOf($parent->getId());
     }
     $breadcrumb[] = Document::getDocumentByExclusiveTag('website_page_home');
     return array_reverse($breadcrumb);
 }
示例#10
0
 public static function objectSave(&$obj, &$parent, $documentName = null)
 {
     try {
         $parameters = sfContext::getInstance()->getRequest()->getParameterHolder()->getAll();
         if (!$documentName) {
             $documentName = $parameters["documentName"];
         }
         if (!$parent) {
             $parent = Document::getDocumentInstance($parameters['parent']);
         }
         if (!is_object($obj)) {
             if (is_numeric($parameters['id']) && !$parent) {
                 $obj = Document::getDocumentInstance($parameters['id']);
                 $parent = Document::getParentOf($parameters['id']);
                 $documentName = $parameters["documentName"];
             } else {
                 $obj = new $documentName();
             }
         }
         include_once sfConfig::get('sf_root_dir') . "/config/Schema.class.php";
         $m = "get" . $documentName . "Properties";
         $properties = Schema::$m();
         //$imageFields = explode(",", $parameters['imageFields']);
         foreach ($parameters as $key => $value) {
             if (!(strpos($key, 'attr') === false) && $key != "attrRewriteUrl") {
                 $key = str_replace('attr', '', $key);
                 if ($properties && $key != "Password" && !in_array($key, $properties)) {
                     continue;
                 }
                 if ($key == "Password" && empty($value)) {
                     continue;
                 }
                 $function = 'set' . $key;
                 if (is_array($value)) {
                     //$value = implode('-', $value);
                     $date = $value['year'] . '-' . $value['month'] . '-' . $value['day'];
                     // 2009-02-09 16:10:20
                     if ($value['hour'] && $value['minute']) {
                         $time = $value['hour'] . ':' . $value['minute'];
                         $value = $date . ' ' . $time;
                     } else {
                         $value = $date;
                     }
                 }
                 /*if (in_array($key, $imageFields))
                 					{
                 					$getFunction = 'get'.$key;
                 
                 					$imgId = $obj->$getFunction();
                 					if ($imgId != $value)
                 					{
                 					$img = Document::getDocumentInstance($imgId);
                 					if ($img)
                 					{
                 					$imgExt = $img->getExtention();
                 					@unlink(sfConfig::get('sf_root_dir')."/www/media/upload/thumbs/".$parameters["moduleName"]."/".$imgId."-".$key.".".$imgExt);
                 					}
                 					}
                 					}*/
                 if ($key == "Keywords") {
                     if ($value) {
                         $value = str_replace(',', '][', $value);
                         $value = '[' . substr($value, 0, -1);
                     }
                 }
                 $obj->{$function}($value);
             }
             /*if (in_array($key, $imageFields) && (!empty($value)))
             		{
             			$image = Document::getDocumentInstance($value);
             			if ($image)
             			{
             				if (empty($parameters[$key.'_thumbheight']))
             				{
             					$parameters[$key.'_thumbheight'] = null;
             				}
             				if (empty($parameters[$key.'_thumbwidth']))
             				{
             					$parameters[$key.'_thumbwidth'] = null;
             				}
             				$image->resizeImage($parameters["moduleName"], $parameters[$key.'_thumbheight'], $parameters[$key.'_thumbwidth'], $key);
             			}
             		}*/
         }
         if (class_exists($documentName . "I18n") && $documentName != "Listitem") {
             if (!($culture = $parameters["attrCulture"])) {
                 if (SF_APP == "panel") {
                     $culture = sfContext::getInstance()->getUser()->getCulture();
                 } else {
                     $culture = Document::getDocumentByExclusiveTag("default_culture");
                 }
                 if ($culture) {
                     $culture = $culture->getValue();
                 } else {
                     throw new Exception("No default culture defined");
                 }
             }
             $obj->save(null, $parent, $culture);
             if (!$parameters["id"] || SF_APP == 'panel') {
                 if (class_exists($documentName . "I18n")) {
                     if (SF_APP == "panel") {
                         $objI8n = Document::getDocumentByCulture($obj, null, true);
                     }
                     self::objectSave($objI8n, $obj, $documentName . "I18n");
                     if ($documentName == "Page") {
                         $objI8n->setRewriteUrl($parameters["attrRewriteUrl"]);
                     }
                     $objI8n->setCulture($culture);
                     $objI8n->save(null, $obj, $culture);
                 }
                 if (SF_APP != "panel") {
                     $request = sfContext::getInstance()->getRequest();
                     $request->setParameter("id", $obj->getId());
                 }
             }
         } else {
             $obj->save(null, $parent);
         }
         $tags = Document::getAvailableTagsOf($parameters['moduleName'], $documentName);
         foreach ($tags as $tag) {
             if ($parameters['tag_id_' . $tag->getId()]) {
                 Document::addTag($obj, $tag->getTagId());
             } else {
                 Document::removeTag($obj, $tag->getTagId());
             }
         }
         Tagrelation::updateTagRelationCache();
         UtilsHelper::setBackendMsg("Saved");
     } catch (Exception $e) {
         throw $e;
     }
     if (SF_APP == "panel") {
         self::panelRedirect();
     }
 }
示例#11
0
 public static function getMainList(&$documentId, $moduleName, $page = 1)
 {
     $moduleName = strtolower($moduleName);
     try {
         if ($moduleName == "settings") {
             $settingsArr = array();
             if (is_readable(sfConfig::get('sf_root_dir') . "/config/settings.xml")) {
                 $objects = XMLParser::getXMLdataValues(sfConfig::get('sf_root_dir') . "/config/settings.xml");
             }
             foreach ($objects as $obj) {
                 if ($obj['tag'] == 'ELEMENT' && $obj['type'] == 'open') {
                     $objName = $obj['attributes']['LABEL'];
                     $objDescription = $obj['attributes']['DESCRIPTION'];
                 }
                 if ($obj['tag'] == 'ITEM' && $obj['type'] == 'complete') {
                     //$val = $obj['attributes']['VALUE'];
                     $settingName = $objName;
                     //$settingName = strtolower($objName);
                     $settingsArr[$settingName] = $objDescription;
                 }
             }
             $pager = new sfPropelPager("Relation", 20);
             $pager->setResults($settingsArr);
             $pager->setPage($page);
             $pager->init();
             foreach ($pager->getResults() as $name => $label) {
                 $res['children'][$name] = $label;
             }
             $res['paging'] = $pager->paging(true);
             return $res;
         }
         if ($moduleName == "labels") {
             $localesArr = array();
             if (is_readable(sfConfig::get('sf_root_dir') . "/config/locales.xml")) {
                 $objects = XMLParser::getXMLdataValues(sfConfig::get('sf_root_dir') . "/config/locales.xml");
                 foreach ($objects as $obj) {
                     if ($obj['tag'] == 'LOCALE' && $obj['type'] == 'open') {
                         $objName = $obj['attributes']['LABEL'];
                         if ($obj['attributes']['DESCRIPTION']) {
                             $objDescription = $obj['attributes']['DESCRIPTION'];
                         } else {
                             $objDescription = '[' . $obj['attributes']['LABEL'] . ']';
                         }
                     }
                     if ($obj['tag'] == 'ITEM' && $obj['type'] == 'complete') {
                         //$val = $obj['attributes']['VALUE'];
                         $localeName = $objName;
                         //$localeName = strtolower($objName);
                         $localesArr[$localeName] = $objDescription;
                     }
                 }
             }
             $pager = new sfPropelPager("Relation", 20);
             $pager->setResults($localesArr);
             $pager->setPage($page);
             $pager->init();
             foreach ($pager->getResults() as $name => $label) {
                 $res['children'][$name] = $label;
             }
             $res['paging'] = $pager->paging(true);
             return $res;
         }
         $mainList = XMLParser::getXMLdataValues(sfConfig::get('sf_root_dir') . "/apps/panel/modules/" . $moduleName . "/config/mainList.xml");
         $displayedObjects = array();
         $rootId = null;
         foreach ($mainList as $obj) {
             if ($obj['tag'] == 'OBJECT' && $obj['type'] == 'complete') {
                 $displayedObjects[] = $obj['value'];
             }
             // check overwrite RootID
             if ($obj['tag'] == 'OBJECTS' && $obj['type'] == 'open') {
                 if (array_key_exists("attributes", $obj) && array_key_exists("PARENT", $obj['attributes'])) {
                     $rootName = $obj['attributes']['PARENT'];
                     $rootDocument = Rootfolder::getRootfolderByModule($rootName);
                     if ($rootDocument) {
                         $rootId = $rootDocument->getId();
                     }
                 }
                 if (array_key_exists("attributes", $obj) && array_key_exists("TAG", $obj['attributes'])) {
                     $tag = $obj['attributes']['TAG'];
                     $rootDocument = Document::getDocumentByExclusiveTag($tag);
                     if ($rootDocument) {
                         $rootId = $rootDocument->getId();
                     }
                 }
             }
         }
         $children = array();
         $res = array('children' => array(), 'paging' => '');
         $c = new Criteria();
         if (!$documentId) {
             if ($rootId) {
                 $documentId = $rootId;
             } else {
                 $document = Rootfolder::getRootfolderByModule($moduleName);
                 if ($document) {
                     $documentId = $document->getId();
                 }
             }
         }
         //echo "rootId = $rootId; moduleName = $moduleName;";
         if ($documentId) {
             $pager = new sfPropelPager("Relation", 20);
             $c->add(RelationPeer::ID1, $documentId);
             $c->add(RelationPeer::DOCUMENT_MODEL2, $displayedObjects, Criteria::IN);
             $c->addAscendingOrderByColumn(RelationPeer::SORT_ORDER);
             $pager->setCriteria($c);
             $pager->setPage($page);
             $pager->init();
             foreach ($pager->getResults() as $relation) {
                 $id = $relation->getId2();
                 $res['children'][] = Document::getDocumentInstance($id);
             }
         }
         $res['paging'] = $pager->paging(true);
         return $res;
     } catch (Exception $e) {
         throw $e;
     }
 }
示例#12
0
 public function executeUploadTrademarks()
 {
     $this->setLayout(false);
     if ($addPage = Document::getDocumentByExclusiveTag('website_page_add_new_trademark')) {
         $this->addTrademarkURL = $addPage->getHref();
     } else {
         $this->addTrademarkURL = '#';
     }
     $c = new Criteria();
     $c->addDescendingOrderByColumn(TrademarkPeer::ID);
     $cr1 = $c->getNewCriterion(TrademarkPeer::FROM_SYSTEM, 1);
     $cr2 = $c->getNewCriterion(TrademarkPeer::FROM_SYSTEM, 11);
     $cr1->addOr($cr2);
     $c->add($cr1);
     $importsArr[1] = TrademarkPeer::doSelect($c);
     $c = new Criteria();
     $c->addDescendingOrderByColumn(ImportPeer::ID);
     $c->add(ImportPeer::SYSTEM, 2);
     $importsArr[2] = ImportPeer::doSelect($c);
     $c = new Criteria();
     $c->addDescendingOrderByColumn(ImportPeer::ID);
     $c->add(ImportPeer::SYSTEM, 3);
     $importsArr[3] = ImportPeer::doSelect($c);
     $this->importsArr = $importsArr;
     $this->statusColors = array('new' => '#202080', 'imported' => '#208010', 'error' => '#802020');
     $this->reload = 0;
     if ($reload = $this->getRequestParameter('reload')) {
         $this->reload = $reload;
     }
 }
示例#13
0
文件: init_data.php 项目: kotow/work
function InitData($project_name)
{
    $listPageType = 'list_types';
    $c = new Criteria();
    $c->add(ListsPeer::LIST_ID, $listPageType);
    $listExist = ListsPeer::doSelectOne($c);
    if (!$listExist) {
        echo "Creating list 'list_type'...\n";
        $newList = new Lists();
        $newList->setLabel('List Types');
        $newList->setListid($listPageType);
        $newList->setListtype('system');
        $newList->save();
        $newItem = new Listitem();
        $newItem->setLabel('System list');
        $newItem->setValue('system');
        $newItem->save(null, $newList);
        $newItem = new Listitem();
        $newItem->setLabel('Static list');
        $newItem->setValue('static');
        $newItem->save(null, $newList);
        $newItem = new Listitem();
        $newItem->setLabel('Editable list');
        $newItem->setValue('editable');
        $newItem->save(null, $newList);
    }
    $listPageType = 'page_types';
    $c = new Criteria();
    $c->add(ListsPeer::LIST_ID, $listPageType);
    $listExist = ListsPeer::doSelectOne($c);
    if (!$listExist) {
        echo "Creating list 'page_types'...\n";
        $newList = new Lists();
        $newList->setLabel('Page Types');
        $newList->setListid($listPageType);
        $newList->setListtype('system');
        $newList->save();
        $newItem = new Listitem();
        $newItem->setLabel('Content page');
        $newItem->setValue('CONTENT');
        $newItem->save(null, $newList);
        $newItem = new Listitem();
        $newItem->setLabel('Page reference');
        $newItem->setValue('REFERENCE');
        $newItem->save(null, $newList);
        $newItem = new Listitem();
        $newItem->setLabel('External page');
        $newItem->setValue('EXTERNAL');
        $newItem->save(null, $newList);
    }
    $cultureType = 'culture';
    $c = new Criteria();
    $c->add(ListsPeer::LIST_ID, $cultureType);
    $listExist = ListsPeer::doSelectOne($c);
    if (!$listExist) {
        echo "Creating list 'culture'...\n";
        $newList = new Lists();
        $newList->setLabel('Culture');
        $newList->setListid($cultureType);
        $newList->setListtype('system');
        $newList->save();
        $newItem = new Listitem();
        $newItem->setLabel('english');
        $newItem->setValue('en');
        $newItem->save(null, $newList);
        /*		$newItem = new Listitem();
        		$newItem->setLabel('български');
        		$newItem->setValue('bg');
        		$newItem->save(null, $newList);*/
    }
    $userType = 'usertype';
    $c = new Criteria();
    $c->add(ListsPeer::LIST_ID, $userType);
    $listExist = ListsPeer::doSelectOne($c);
    if (!$listExist) {
        echo "Creating list 'user types'...\n";
        $newList = new Lists();
        $newList->setLabel('User Types');
        $newList->setListid($userType);
        $newList->setListtype('system');
        $newList->save();
        $newItem = new Listitem();
        $newItem->setLabel('Administrator (all rights)');
        $newItem->setValue('admin');
        $newItem->save(null, $newList);
        $newItem = new Listitem();
        $newItem->setLabel('Editor (no access to administration modules)');
        $newItem->setValue('editor');
        $newItem->save(null, $newList);
        $newItem = new Listitem();
        $newItem->setLabel('Editor (edit and save existing items)');
        $newItem->setValue('restricted_editor');
        $newItem->save(null, $newList);
    }
    $Mailinglist_Folder = Document::getDocumentByExclusiveTag('newsletter_folder_mailinglist');
    if (!$Mailinglist_Folder) {
        $Newsletter_Root = Rootfolder::getRootfolderByModule('Newsletter');
        $Mailinglist_Folder = new Folder();
        $Mailinglist_Folder->setLabel('Mailing lists');
        $Mailinglist_Folder->save(null, $Newsletter_Root);
        Document::addTag($Mailinglist_Folder, 'newsletter_folder_mailinglist');
    }
    $def_site = Document::getDocumentByExclusiveTag('website_website_default');
    if (!$def_site) {
        $website_root = Rootfolder::getRootfolderByModule('Website');
        $def_site = new Website();
        $def_site->setLabel(UtilsHelper::mb_ucfirst($project_name));
        $def_site->save(null, $website_root);
        Document::addTag($def_site, 'website_website_default');
    }
    $homePage = Document::getDocumentByExclusiveTag('website_page_home');
    if (!$homePage) {
        $homePage = new Page();
        $homePage->setLabel('Home');
        $homePage->setPageType('CONTENT');
        $homePage->setNavigationTitle('Home');
        $homePage->setTemplate('default');
        $homePage->save(null, $def_site);
        Document::addTag($homePage, 'website_page_home');
    }
}
示例#14
0
 public function executeSearchTemplates()
 {
     $this->setLayout(false);
     if ($page = Document::getDocumentByExclusiveTag('website_page_add_search_template')) {
         $this->addHref = $page->getHref();
     } else {
         $this->addHref = '#';
     }
     $root = Rootfolder::getRootfolderByModule('search');
     $brands = Document::getChildrenOf($root->getId(), 'Brand');
     foreach ($brands as $b) {
         if ($items = Document::getChildrenOf($b->getId(), 'Search')) {
             $searchTemplates[$b->getId()] = $items;
         }
     }
     $this->brands = $brands;
     $this->searchTemplates = $searchTemplates;
 }
示例#15
0
文件: sfPakeMisc.php 项目: kotow/work
function run_newsletter($task, $args)
{
    ini_set("memory_limit", "2048M");
    define('SF_ROOT_DIR', sfConfig::get('sf_root_dir'));
    define('SF_APP', 'frontend');
    define('SF_ENVIRONMENT', 'prod');
    define('SF_DEBUG', false);
    require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
    /*$databaseManager = new sfDatabaseManager();
    	$databaseManager->initialize();*/
    try {
        $controler = sfContext::getInstance()->getController();
        $newsletterHtml = $controler->getPresentationFor("news", "composeNewsletter");
        $newsletter = new Newsletter();
        $today = UtilsHelper::DateBG(date('Y-m-d H:i:s', time()), 'd F, Y г.');
        $newsletter->setLabel($today);
        $newsletter->setContent($newsletterHtml);
        $newsletter->save();
        $mailinglist = Document::getDocumentByExclusiveTag("newsletter_mailinglist_default");
        if ($mailinglist) {
            $subscribers = Document::getChildrenOf($mailinglist->getId(), "Subscriber");
        }
        $subject = "Sgrada.com - ежедневен бюлетин";
        $i = $ind = 0;
        $mailAddresses = array();
        $cnt = count($subscribers);
        foreach ($subscribers as $subscriber) {
            $ind++;
            if ($subscriber->getPublicationStatus() == "ACTIVE") {
                $mailAddresses[] = $subscriber->getEmail();
                echo " ====> " . $subscriber->getEmail() . "\n";
                $i++;
            }
            if ($i == 100 || $ind == $cnt) {
                if (!empty($mailAddresses)) {
                    //sendMail($mailAddresses, $subject, $newsletterHtml);
                    $mail = new sfMail();
                    $mail->initialize();
                    $mail->setMailer('sendmail');
                    $mail->setCharset('utf-8');
                    $mail->setSender(UtilsHelper::NO_REPLY_MAIL, UtilsHelper::SYSTEM_SENDER);
                    $mail->setFrom(UtilsHelper::NO_REPLY_MAIL, UtilsHelper::SYSTEM_SENDER);
                    $mail->addAddress(UtilsHelper::NO_REPLY_MAIL);
                    foreach ($mailAddresses as $mailAdd) {
                        $mail->addBcc($mailAdd);
                    }
                    $mail->setContentType('text/html');
                    $mail->setSubject($subject);
                    $mail->setBody($newsletterHtml);
                    $mail->send();
                }
                $mailAddresses = array();
                $i = 0;
            }
        }
    } catch (Exception $e) {
        $newsletter->setLabel("ERROR! " . $today);
        $newsletter->save();
        FileHelper::Log("TASK run_newsletter: " . $e->getMessage(), UtilsHelper::MSG_ERROR);
    }
}
示例#16
0
 public function executeSave()
 {
     try {
         $parameters = $this->getRequest()->getParameterHolder()->getAll();
         $parameters['documentName'] == "Folder" ? $moduleName = "Admin" : ($moduleName = $parameters['moduleName']);
         $documentName = $parameters["documentName"];
         $parent = Document::getDocumentInstance($parameters['parent']);
         if (is_numeric($parameters['id'])) {
             $obj = Document::getDocumentInstance($parameters['id']);
             $parent = Document::getParentOf($parameters['id']);
         } else {
             $obj = new $documentName();
         }
         include_once sfConfig::get('sf_root_dir') . "/config/Schema.class.php";
         $m = "get" . $documentName . "Properties";
         $properties = Schema::$m();
         //exit(var_dump($properties));
         $imageFields = explode(",", $parameters['imageFields']);
         /*foreach ($parameters as $property)
         		{
         			$function = 'set'.$property;
         			$obj->$function();
         		}*/
         foreach ($parameters as $key => $value) {
             if (!(strpos($key, 'attr') === false) && $key != "attrRewriteUrl") {
                 $key = str_replace('attr', '', $key);
                 if ($properties && $key != "Password" && !in_array($key, $properties)) {
                     continue;
                 }
                 if ($key == "Password" && empty($value)) {
                     continue;
                 }
                 $function = 'set' . $key;
                 if (is_array($value)) {
                     $date = $value['year'] . '-' . $value['month'] . '-' . $value['day'];
                     // 2009-02-09 16:10:20
                     if ($value['hour'] && $value['minute']) {
                         $time = $value['hour'] . ':' . $value['minute'];
                         $value = $date . ' ' . $time;
                     } else {
                         $value = $date;
                     }
                 }
                 if (in_array($key, $imageFields)) {
                     $getFunction = 'get' . $key;
                     $imgId = $obj->{$getFunction}();
                     if ($imgId != $value) {
                         $img = Document::getDocumentInstance($imgId);
                         if ($img) {
                             $imgExt = $img->getExtention();
                             @unlink(sfConfig::get('sf_root_dir') . "/www/media/upload/thumbs/" . $parameters["moduleName"] . "/" . $imgId . "-" . $key . "." . $imgExt);
                         }
                     }
                 }
                 if ($key == "Keywords") {
                     if ($value) {
                         $value = str_replace(',', '][', $value);
                         $value = '[' . substr($value, 0, -1);
                     }
                 }
                 $obj->{$function}($value);
             }
             if (in_array($key, $imageFields) && !empty($value)) {
                 $image = Document::getDocumentInstance($value);
                 if ($image) {
                     if (empty($parameters[$key . '_thumbheight'])) {
                         $parameters[$key . '_thumbheight'] = null;
                     }
                     if (empty($parameters[$key . '_thumbwidth'])) {
                         $parameters[$key . '_thumbwidth'] = null;
                     }
                     $image->resizeImage($parameters["moduleName"], $parameters[$key . '_thumbheight'], $parameters[$key . '_thumbwidth'], $key);
                 }
             }
         }
         if (class_exists($documentName . "I18n") && $documentName != "Listitem") {
             if (!($culture = $parameters["attrCulture"])) {
                 $culture = Document::getDocumentByExclusiveTag("default_culture");
                 if ($culture) {
                     $culture = $culture->getValue();
                 } else {
                     throw new Exception("No default culture defined");
                 }
             }
             $obj->save(null, $parent, $culture);
             if (!$parameters["id"]) {
                 if (class_exists($documentName . "I18n")) {
                     BackendService::objectSave($objI8n, $obj, $documentName . "I18n");
                     if ($documentName == "Page") {
                         $objI8n->setRewriteUrl($parameters["attrRewriteUrl"]);
                     }
                     $objI8n->setCulture($culture);
                     $objI8n->save(null, $obj, $culture);
                 }
                 $request = $this->getRequest();
                 $request->setParameter("id", $obj->getId());
             }
         } else {
             $obj->save(null, $parent);
         }
         $tags = Document::getAvailableTagsOf($moduleName, $parameters['documentName']);
         foreach ($tags as $tag) {
             if ($parameters['tag_id_' . $tag->getId()]) {
                 Document::addTag($obj, $tag->getTagId());
             } else {
                 Document::removeTag($obj, $tag->getTagId());
             }
         }
         Tagrelation::updateTagRelationCache();
         UtilsHelper::setBackendMsg("Saved");
     } catch (Exception $e) {
         UtilsHelper::setBackendMsg("Error while saving: " . $e->getMessage(), "error");
     }
     $this->forward(strtolower($moduleName), "edit" . $parameters['documentName']);
     exit;
 }
示例#17
0
 public function executeForceDownload()
 {
     set_time_limit(0);
     $baseDir = $this->getRequestParameter('dir');
     $baseDir = "./" . str_replace("DIR_SEP", "/", $baseDir);
     if (substr($baseDir, -1) != "/") {
         $baseDir .= "/";
     }
     $defWebsite = Document::getDocumentByExclusiveTag("website_website_default");
     if ($defWebsite) {
         $allowed_referrer = $defWebsite->getUrl();
         if (empty($allowed_referrer)) {
             FileHelper::Log("Default website URL is not defined", UtilsHelper::MSG_ERROR);
         }
     } else {
         FileHelper::Log("website_website_default tag is not defined", UtilsHelper::MSG_ERROR);
     }
     $allowed_ext = array('zip' => 'application/zip', 'pdf' => 'application/pdf', 'doc' => 'application/msword', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/vnd.ms-powerpoint', 'exe' => 'application/octet-stream', 'gif' => 'image/gif', 'png' => 'image/png', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'mp3' => 'audio/mpeg', 'wav' => 'audio/x-wav', 'mpeg' => 'video/mpeg', '3gp' => 'video/3gpp', 'mpg' => 'video/mpeg', 'mpe' => 'video/mpeg', 'mov' => 'video/quicktime', 'avi' => 'video/x-msvideo');
     // If hotlinking not allowed then make hackers think there are some server problems
     //if ((!isset($_SERVER['HTTP_REFERER']) || strpos(strtoupper($_SERVER['HTTP_REFERER']), strtoupper($allowed_referrer)) === false))
     //{
     //die("Internal server error. Please contact system administrator.");
     //}
     if (!$this->getRequestParameter('file')) {
         die("Please specify file name for download.");
     }
     $fname = basename($this->getRequestParameter('file'));
     function find_file($dirname, $fname, &$file_path)
     {
         $dir = opendir($dirname);
         while ($file = readdir($dir)) {
             if (empty($file_path) && $file != '.' && $file != '..') {
                 if (is_dir($dirname . '/' . $file)) {
                     find_file($dirname . '/' . $file, $fname, $file_path);
                 } else {
                     if (file_exists($dirname . '/' . $fname)) {
                         $file_path = $dirname . '/' . $fname;
                         return;
                     }
                 }
             }
         }
     }
     $file_path = '';
     find_file($baseDir, $fname, $file_path);
     if (!is_file($file_path)) {
         die("File does not exist. Make sure you specified correct file name.");
     }
     $fsize = filesize($file_path);
     $fext = strtolower(substr(strrchr($fname, "."), 1));
     if (!array_key_exists($fext, $allowed_ext)) {
         die("File type not allowed.");
     }
     if ($allowed_ext[$fext] == '') {
         $mtype = '';
         if (function_exists('mime_content_type')) {
             $mtype = mime_content_type($file_path);
         } else {
             if (function_exists('finfo_file')) {
                 $finfo = finfo_open(FILEINFO_MIME);
                 $mtype = finfo_file($finfo, $file_path);
                 finfo_close($finfo);
             }
         }
         if ($mtype == '') {
             $mtype = "application/force-download";
         }
     } else {
         $mtype = $allowed_ext[$fext];
     }
     if (!$this->getRequestParameter('newname')) {
         $asfname = $fname;
     } else {
         $asfname = str_replace(array('"', "'", '\\', '/'), '', $this->getRequestParameter('newname'));
         if ($asfname === '') {
             $asfname = 'NoName';
         }
     }
     $headers = get_headers($_SERVER['HTTP_REFERER'], 1);
     if (!$headers) {
         die("Internal server error. Please contact system administrator.");
     }
     /*header("Pragma: public");
     		header("Expires: 0");
     		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
     		header("Cache-Control: public");
     		header("Content-Description: File Transfer");*/
     header("Content-Type: {$mtype}");
     header("Content-Disposition: attachment; filename=\"{$asfname}\"");
     //header("Content-Transfer-Encoding: binary");
     //header("Content-Length: " . $fsize);
     $file = @fopen($file_path, "rb");
     if ($file) {
         while (!feof($file)) {
             print fread($file, 1024 * 8);
             flush();
             if (connection_status() != 0) {
                 @fclose($file);
                 die;
             }
         }
         @fclose($file);
     }
     header("Content-Type: text/html; charset=utf-8");
     header("Content-Disposition: inline");
 }
示例#18
0
 public function executeSendNewsletter()
 {
     $mailinglistsFolder = Document::getDocumentByExclusiveTag("newsletter_folder_mailinglist");
     if ($mailinglistsFolder) {
         $this->mailinglists = Document::getChildrenOf($mailinglistsFolder->getId(), "Mailinglist");
     }
     $this->items = $this->getRequestParameter('items');
     $mls = explode(",", $this->items);
     foreach ($mls as $ml) {
         $obj = Document::getDocumentInstance($ml);
         if (!$obj || get_class($obj) != "Newsletter") {
             exit("<br><br>Please choose at least one newsletter");
         }
     }
 }
示例#19
0
 public function executeEditGalleryMedia()
 {
     try {
         $request = $this->getRequest();
         //			$params = array();
         if ($id = $this->getRequestParameter("id")) {
             $media = Document::getDocumentInstance($id);
             $parentId = Document::getParentOf($id, null, false);
             $request->setParameter("parent", $parentId);
             $request->setParameter("attrLabel", $parentId . " gallery pic");
             if ($this->getRequestParameter("submitted")) {
                 if ($pathParam = trim($this->getRequestParameter("gp"))) {
                     $pathAdd = DIRECTORY_SEPARATOR . str_replace("_", DIRECTORY_SEPARATOR, $pathParam);
                 }
                 // check for TAGged folder
                 if ($parent = Document::getDocumentByExclusiveTag('media_folder_' . $pathParam, false)) {
                     $this->getRequest()->setParameter("parent", $parent->getId());
                 }
                 $allowedParam = trim($this->getRequestParameter("allowed"));
                 if ($allowedParam == "images") {
                     //if ($allowedParam == "images" || empty($allowedParam))
                     $allowedArr = array("image/gif", "image/jpeg", "image/pjpeg");
                 } elseif (!empty($allowedParam)) {
                     $allowedArr = explode(",", $this->getRequestParameter("allowed"));
                 }
                 $media = Media::upload('galPic', "upload" . $pathAdd, $allowedArr, false);
                 //					$media = Media::upload('galPic', "upload", $allowedArr, false);
                 if ($media && $media->IsImage()) {
                     $fileName = $media->getServerAbsoluteUrl();
                     //$media->getFiledirpath().$media->getFilename();
                     list($w, $h) = getimagesize($fileName);
                     $params['gw'] = $this->getRequestParameter("gw");
                     $params['gh'] = $this->getRequestParameter("gh");
                     $params['gtw'] = $this->getRequestParameter("gtw");
                     $params['gth'] = $this->getRequestParameter("gth");
                     $params['gcw'] = $this->getRequestParameter("gcw");
                     $params['gch'] = $this->getRequestParameter("gch");
                     $cropData = array(0, 0);
                     if ($params['gcw'] || $params['gch']) {
                         if ($params['gcw'] && $params['gch']) {
                             $cropData = array($params['gcw'], $params['gch']);
                         } else {
                             if ($params['gcw']) {
                                 $cropData = array($params['gcw'], 0);
                             } else {
                                 $cropData = array(0, $params['gch']);
                             }
                         }
                     }
                     if ($params['gw'] || $params['gh']) {
                         if ($params['gw'] > 0 && $w > $params['gw'] || $params['gh'] > 0 && $h > $params['gh']) {
                             $media->resizeImage(null, $params['gh'], $params['gw'], null, $cropData);
                         } else {
                             $media->resizeImage(null, null, 800, null, $cropData);
                         }
                     } else {
                         $media->resizeImage(null, null, 800, null, array(800, 600));
                     }
                     // thumbs
                     if ($params['gtw'] || $params['gth']) {
                         $media->resizeImage("thumbs", $params['gth'], $params['gtw']);
                     } else {
                         if ($h > $w) {
                             $media->resizeImage("thumbs", 80, null, null, array(120, 80));
                         } else {
                             $media->resizeImage("thumbs", null, 120, null, array(120, 80));
                         }
                     }
                     /*						if ($h > $w)
                     						{
                     							$media->resizeImage(null, 600);
                     							$media->resizeImage(1, 80, null, null, array(120, 80));
                     						}
                     						else
                     						{
                     							$media->resizeImage(null, null, 800);
                     							$media->resizeImage(1, null, 120, null, array(120, 80));
                     						}*/
                 }
             }
             $this->description = $media->getDescription();
             $this->newId = $media->getId();
         }
     } catch (Exception $e) {
         //			$this->message = $e->getMessage();
         $this->message = UtilsHelper::Localize("media." . $e->getMessage());
     }
 }