diff --git a/application/modules/default/controllers/HomeController.php b/application/modules/default/controllers/HomeController.php index 3f3bbf50a..f342e254c 100644 --- a/application/modules/default/controllers/HomeController.php +++ b/application/modules/default/controllers/HomeController.php @@ -1,477 +1,520 @@ . **/ class HomeController extends Local_Controller_Action_DomainSwitch { public function indexAction() { /** @var Default_Model_ConfigStore $storeConfig */ $storeConfig = Zend_Registry::isRegistered('store_config') ? Zend_Registry::get('store_config') : null; if ($storeConfig) { $this->view->package_type = $storeConfig->package_type; if($storeConfig->isShowHomepage()) { $test = (int)$this->getParam('test', 0); if($test==1) { $this->_helper->viewRenderer('index-' . $storeConfig->config_id_name.'-test'); }else{ $this->_helper->viewRenderer('index-' . $storeConfig->config_id_name); } return; } } $params = array('ord' => 'latest'); if ($this->hasParam('domain_store_id')) { $params['domain_store_id'] = $this->getParam('domain_store_id'); } $this->forward('index', 'explore', 'default', $params); } public function indexAction_() { $storeConfig = Zend_Registry::isRegistered('store_config') ? Zend_Registry::get('store_config') : null; $storePackageTypeIds = null; if ($storeConfig) { $this->view->package_type = $filter['package_type'] = $storeConfig['package_type']; } Zend_Registry::get('logger')->debug('*** SHOW_HOME_PAGE: ' . getenv('SHOW_HOME_PAGE')); /** * The SHOW_HOME_PAGE environment var will be set in apache .htaccess for some specific host names * e.g. * SetEnvIfNoCase Host opendesktop\.org$ SHOW_HOME_PAGE */ if (false == $this->hasParam('domain_store_id') AND getenv('SHOW_HOME_PAGE')) { $this->_helper->viewRenderer('index-' . $this->getNameForStoreClient()); return; } // forward is the faster way, but you have no influence to the url. On redirect the url changes. $params = array('ord' => 'latest'); if ($this->hasParam('domain_store_id')) { $params['domain_store_id'] = $this->getParam('domain_store_id'); } $this->forward('index', 'explore', 'default', $params); } public function showfeatureajaxAction() { $this->_helper->layout->disableLayout(); $modelInfo = new Default_Model_Info(); $page = (int)$this->getParam('page'); if($page==0){ $featureProducts = $modelInfo->getRandProduct(); $featureProducts->setItemCountPerPage(1); $featureProducts->setCurrentPageNumber(1); }else{ $featureProducts = $modelInfo->getFeaturedProductsForHostStores(100); if($featureProducts->getTotalItemCount() > 0){ $offset = (int)$this->getParam('page'); $irandom = rand(1,$featureProducts->getTotalItemCount()); $featureProducts->setItemCountPerPage(1); $featureProducts->setCurrentPageNumber($irandom); } } if ($featureProducts->getTotalItemCount() > 0) { $this->view->featureProducts = $featureProducts; $this->_helper->viewRenderer('/partials/featuredProducts'); // $this->_helper->json($featureProducts); } } + + public function showfeaturejsonAction() + { + $this->_helper->layout->disableLayout(); + $modelInfo = new Default_Model_Info(); + $page = (int)$this->getParam('page'); + if($page==0){ + $featureProducts = $modelInfo->getRandProduct(); + $featureProducts->setItemCountPerPage(1); + $featureProducts->setCurrentPageNumber(1); + }else{ + $featureProducts = $modelInfo->getFeaturedProductsForHostStores(100); + if($featureProducts->getTotalItemCount() > 0){ + $offset = (int)$this->getParam('page'); + $irandom = rand(1,$featureProducts->getTotalItemCount()); + $featureProducts->setItemCountPerPage(1); + $featureProducts->setCurrentPageNumber($irandom); + } + } + + $item; + foreach ($featureProducts as $i) { + $item = $i; + break; + } + $response = array( + 'project_id' => $item['project_id'], + 'member_id' => $item['member_id'], + 'username' => $item['username'], + 'profile_image_url' => $item['profile_image_url'], + 'featured' => $item['featured'], + 'description' => $item['description'], + 'image_small' => $item['image_small'], + 'laplace_score' => $item['laplace_score'], + 'count_likes' => $item['count_likes'], + 'count_dislikes' => $item['count_dislikes'], + 'changed_at' => $item['changed_at'], + 'created_at' => $item['created_at'], + 'count_comments' => $item['count_comments'] + ); + $this->_helper->json($response); + } + public function metamenujsAction() { $this->_helper->layout()->disableLayout(); header('Access-Control-Allow-Origin: *'); $this->getResponse() ->setHeader('Access-Control-Allow-Origin', '*') ->setHeader('Access-Control-Allow-Credentials', 'true') ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') ; } public function metamenubundlejsAction() { $this->_helper->layout()->disableLayout(); // header('Access-Control-Allow-Origin: *'); // $this->getResponse() // ->setHeader('Access-Control-Allow-Origin', '*') // ->setHeader('Access-Control-Allow-Credentials', 'true') // ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') // ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') // ; } public function baseurlajaxAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); header('Access-Control-Allow-Origin: *'); $this->getResponse() ->setHeader('Access-Control-Allow-Origin', '*') ->setHeader('Access-Control-Allow-Credentials', 'true') ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') ; $resultArray = array(); $baseurl = Zend_Registry::get('config')->settings->client->default->baseurl; $resultArray['base_url'] = $baseurl; $resultAll = array(); $resultAll['status'] = "success"; $resultAll['data'] = $resultArray; $this->_helper->json($resultAll); } public function forumurlajaxAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); header('Access-Control-Allow-Origin: *'); $this->getResponse() ->setHeader('Access-Control-Allow-Origin', '*') ->setHeader('Access-Control-Allow-Credentials', 'true') ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') ; $resultArray = array(); $url_forum = Zend_Registry::get('config')->settings->client->default->url_forum; $resultArray['url_forum'] = $url_forum; $resultAll = array(); $resultAll['status'] = "success"; $resultAll['data'] = $resultArray; $this->_helper->json($resultAll); } public function blogurlajaxAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); header('Access-Control-Allow-Origin: *'); $this->getResponse() ->setHeader('Access-Control-Allow-Origin', '*') ->setHeader('Access-Control-Allow-Credentials', 'true') ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') ; $resultArray = array(); $url_blog = Zend_Registry::get('config')->settings->client->default->url_blog; $resultArray['url_blog'] = $url_blog; $resultAll = array(); $resultAll['status'] = "success"; $resultAll['data'] = $resultArray; $this->_helper->json($resultAll); } public function storenameajaxAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); header('Access-Control-Allow-Origin: *'); $this->getResponse() ->setHeader('Access-Control-Allow-Origin', '*') ->setHeader('Access-Control-Allow-Credentials', 'true') ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') ; $resultArray = array(); $sname = Zend_Registry::get('store_host'); $resultArray['store_name'] = $sname; $resultAll = array(); $resultAll['status'] = "success"; $resultAll['data'] = $resultArray; $this->_helper->json($resultAll); } public function loginurlajaxAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); header('Access-Control-Allow-Origin: *'); $this->getResponse() ->setHeader('Access-Control-Allow-Origin', '*') ->setHeader('Access-Control-Allow-Credentials', 'true') ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') ; $resultArray = array(); $url = $this->getParam('url'); $filterRedirect = new Local_Filter_Url_Encrypt(); $loginUrl = '/login?redirect=' . $filterRedirect->filter($url); $resultArray['login_url'] = $loginUrl; $resultAll = array(); $resultAll['status'] = "success"; $resultAll['data'] = $resultArray; $this->_helper->json($resultAll); } public function domainsajaxAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); header('Access-Control-Allow-Origin: *'); $this->getResponse() ->setHeader('Access-Control-Allow-Origin', '*') ->setHeader('Access-Control-Allow-Credentials', 'true') ->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') ->setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept') ; $resultArray = array(); $domainobjects = $this->fetchMetaheaderMenuJson(); $resultArray['domains'] = $domainobjects; $resultAll = array(); $resultAll['status'] = "success"; $resultAll['data'] = $resultArray; $this->_helper->json($resultAll); } protected function setLayout() { $storeConfig = Zend_Registry::isRegistered('store_config') ? Zend_Registry::get('store_config') : null; if($storeConfig && $storeConfig->layout_home) { $this->_helper->layout()->setLayout($storeConfig->layout_home); }else{ $this->_helper->layout()->setLayout('home_template'); } } private function fetchMetaheaderMenuJson() { $sname = Zend_Registry::get('store_host'); /** @var Zend_Cache_Core $cache */ $cache = Zend_Registry::get('cache'); $cacheName = __FUNCTION__ . md5($sname); if (false == ($domainobjects = $cache->load($cacheName))) { $tbl = new Default_Model_DbTable_ConfigStore(); $result = $tbl->fetchDomainObjects(); // sort Desktop manuelly to the front $arrayDesktop = array(); $arrayRest = array(); foreach ($result as $obj) { $o = $obj['order']; $curOrder = floor($obj['order']/1000); if($curOrder<10 or $curOrder>50) continue; $obj['calcOrder'] = $curOrder; $tmp = array(); $tmp['order'] = $obj['order']; $tmp['calcOrder'] = $obj['calcOrder']; $tmp['host'] = $obj['host']; $tmp['name'] = $obj['name']; if($curOrder==30) { // Desktop set calcOrder = 9 manuelly put desktop in front $tmp['calcOrder'] = 9; $arrayDesktop[] = $tmp; }else{ $arrayRest[] = $tmp; } } $domainobjects = array_merge($arrayDesktop, $arrayRest); $baseurl = Zend_Registry::get('config')->settings->client->default->baseurl; // set group name manully foreach ($domainobjects as &$obj) { if($sname == $obj['host']){ $obj['menuactive'] = 1; }else{ $obj['menuactive'] = 0; } $order = $obj['order']; // z.b 150001 ende ==1 go real link otherwise /s/$name $last_char_check = substr($order, -1); if($last_char_check=='1') { $obj['menuhref'] = $obj['host']; }else{ $obj['menuhref'] = $baseurl.'/s/'.$obj['name']; } switch ($obj['calcOrder']) { case 9: $obj['menugroup']='Desktops'; break; case 10: $obj['menugroup']='Applications'; break; case 20: $obj['menugroup']='Addons'; break; case 40: $obj['menugroup']='Artwork'; break; case 50: $obj['menugroup']='Other'; break; } } $cache->save($domainobjects, $cacheName, array(), 28800); } return Zend_Json::encode($domainobjects); } /** * @throws Exception * @throws Zend_Exception * @throws Zend_Form_Exception */ public function redirectmeAction() { $this->_helper->layout()->disableLayout(); //$this->_helper->viewRenderer->setNoRender(true); $redir = "/"; if(isset($_GET['redirect'])) { $redir = $_GET['redirect']; $filter = new Local_Filter_Url_Decrypt(); $redir = $filter->filter($redir); } $this->view->redirect = $redir; } public function fetchforgitAction() { $this->_helper->layout()->disableLayout(); $tableProject = new Default_Model_Project(); $params = $this->getAllParams(); $action = 'fetch-products-for-git-project-id'; if($this->hasParam('target')) { $action = $params['target']; } if($action == 'fetch-products-for-git-project-id') { $gitProjectId = $params['project_id']; $this->view->products = null; if(isset($gitProjectId)) { $products = $tableProject->fetchAll('status = 100 AND type_id = 1 AND is_gitlab_project = 1 AND gitlab_project_id = ' . $gitProjectId); $helperImage = new Default_View_Helper_Image(); $viewArray = array(); $viewProjectArray = array(); foreach ($products as $product) { $viewProjectArray = array(); $viewProjectArray['project_id'] = $product['project_id']; $viewProjectArray['title'] = $product['title']; $viewProjectArray['version'] = $product['version']; $viewProjectArray['member_id'] = $product['member_id']; $viewProjectArray['avatar'] = $helperImage->Image($product['image_small'], array('width' => 100, 'height' => 100)); $viewArray[] = $viewProjectArray; } $this->view->viewdata = $viewArray; } } else { $this->view->viewdata = array(); } } } diff --git a/application/modules/default/views/scripts/home/index-opendesktop-test.phtml b/application/modules/default/views/scripts/home/index-opendesktop-test.phtml index 73b27e261..cff9424e1 100755 --- a/application/modules/default/views/scripts/home/index-opendesktop-test.phtml +++ b/application/modules/default/views/scripts/home/index-opendesktop-test.phtml @@ -1,119 +1,425 @@ . **/ $this->headTitle($_SERVER['HTTP_HOST'], 'SET'); $this->doctype(Zend_View_Helper_Doctype::XHTML1_RDFA); $this->headMeta()->appendProperty('og:url', 'www.opendesktop.org'); $this->headMeta()->appendProperty('og:type', 'website'); $this->headMeta()->appendProperty('og:title', 'opendesktop.org'); $this->headMeta()->appendProperty('og:site_name','www.opendesktop.org'); $this->headMeta()->appendProperty('og:description','A community where developers and artists share applications, themes and other content'); $this->headMeta()->appendProperty('og:image','https://www.opendesktop.org/images/system/opendesktop-logo.png'); $modelInfo = new Default_Model_Info(); -$this->comments = $modelInfo->getLatestComments(10); +//$this->comments = $modelInfo->getLatestComments(10); //$this->users = $modelInfo->getNewActiveMembers(18); //$this->supporters = $modelInfo->getNewActiveSupporters(9); //$this->plingproducts = $modelInfo->getNewActivePlingProduct(9); $this->productsThemesGTK = $modelInfo->getLastProductsForHostStores(5,"366,363,273,267,138,125,131,153,154,414,133"); $this->productsThemesPlasma = $modelInfo->getLastProductsForHostStores(5,"365,119,123,266,114,118,349,417,101,100,111,422,423,446,417"); $this->productsWindowmanager = $modelInfo->getLastProductsForHostStores(5,"117,267,139,143,142,140,141,144"); $this->productsIconsCursors= $modelInfo->getLastProductsForHostStores(5,"386,107"); $this->productsScreenshots= $modelInfo->getLastProductsForHostStores(5,"225,445"); $this->productsApps = $modelInfo->getLastProductsForHostStores(5,233); $this->productsAddons = $modelInfo->getLastProductsForHostStores(5,"152"); $this->productsWallpapersOriginal = $modelInfo->getLastProductsForHostStores(5,"295,158",null,true); $this->productsWallpapers = $modelInfo->getLastProductsForHostStores(5,"295,158",null,false); $this->countSupporters = $modelInfo->getCountActiveSupporters(); $featuredProducts = $modelInfo->getFeaturedProductsForHostStores(100); if ($featuredProducts->getTotalItemCount()) { $request = Zend_Controller_Front::getInstance()->getRequest(); $offset = (int)$request->getParam('page'); $irandom = rand(1,$featuredProducts->getTotalItemCount()); $featuredProducts->setItemCountPerPage(1); $featuredProducts->setCurrentPageNumber($irandom); $this->featureProducts = $featuredProducts; } $helperBuildMemberUrl = new Default_View_Helper_BuildMemberUrl(); $helperImage = new Default_View_Helper_Image(); $helpPrintDate = new Default_View_Helper_PrintDate(); -$response = array( - "comments" => Zend_Json::encode($this->comments), + +$item; +foreach ($this->featureProducts as $i) { + $item = $i; + break; +} +$feature = array( + 'project_id' => $item['project_id'], + 'member_id' => $item['member_id'], + 'username' => $item['username'], + 'profile_image_url' => $item['profile_image_url'], + 'featured' => $item['featured'], + 'description' => $item['description'], + 'image_small' => $item['image_small'], + 'laplace_score' => $item['laplace_score'], + 'count_likes' => $item['count_likes'], + 'count_dislikes' => $item['count_dislikes'], + 'changed_at' => $item['changed_at'], + 'created_at' => $item['created_at'], + 'count_comments' => $item['count_comments'] +); +$response = array( "productsThemesGTK" => Zend_Json::encode($this->productsThemesGTK), "productsThemesPlasma" => Zend_Json::encode($this->productsThemesPlasma), "productsWindowmanager" => Zend_Json::encode($this->productsWindowmanager), "productsIconsCursors" => Zend_Json::encode($this->productsIconsCursors), "productsScreenshots" => Zend_Json::encode($this->productsScreenshots), "productsApps" => Zend_Json::encode($this->productsApps), "productsAddons" => Zend_Json::encode($this->productsAddons), "productsWallpapersOriginal" => Zend_Json::encode($this->productsWallpapersOriginal), "productsWallpapers" => Zend_Json::encode($this->productsWallpapers), - "featureProducts" => Zend_Json::encode($this->featureProducts) + "featureProducts" => Zend_Json::encode($feature) ); ?> - +
- + +testest +
+
+ +
+
+ +
- + +
+ partial('/home/partials/product_group.phtml', array( + "title" => "GTK/Gnome", + "products" => $this->productsThemesGTK, + "catIDs" =>"366" + ) + ); + + echo $this->partial('/home/partials/product_group.phtml', array( + "title" => "KDE Plasma", + "products" => $this->productsThemesPlasma, + "catIDs" =>"365" + ) + ); + ?> +
+ +
+ partial('/home/partials/product_group.phtml', array( + "title" => "Window Managers", + "products" => $this->productsWindowmanager, + "catIDs" =>"147" + ) + ); + + echo $this->partial('/home/partials/product_group.phtml', array( + "title" => "Icons, Cursors", + "products" => $this->productsIconsCursors, + "catIDs" =>"386,107" + ) + ); + ?> +
+ +
+ partial('/home/partials/product_group.phtml', array( + "title" => "Artwork, Wallpapers ", + "products" => $this->productsWallpapers, + "catIDs" =>"158,295" + ) + ); + + + echo $this->partial('/home/partials/product_group.phtml', array( + "title" => "Artwork, Wallpapers (Original)", + "products" => $this->productsWallpapersOriginal, + "catIDs" =>"158,295" + + ) + ); + ?> +
+
+ partial('/home/partials/product_group.phtml', array( + "title" => "App Add-Ons", + "products" => $this->productsAddons, + "catIDs" =>"152" + ) + ); + + echo $this->partial('/home/partials/product_group.phtml', array( + "title" => "Applications", + "products" => $this->productsApps, + "catIDs" =>"233" + ) + ); + + ?> +
+ +
+ partial('/home/partials/product_group.phtml', array( + "title" => "Concepts, Screenshots", + "products" => $this->productsScreenshots, + "catIDs" =>"445,225" + ) + ); + + ?> +
+ + +
+ partial('/home/partials/plingprojects.phtml', array( + "title" => "Recently plinged Products", + "projects" => $this->plingproducts + ) + ); + ?> +
+
+ +
+
+ partial('/home/partials/users.phtml', array( + "title" => "Latest Supporters", + "users" => $this->supporters + ) + ); + ?> +
+
+ +
+
+ partial('/home/partials/users.phtml', array( + "title" => "Latest Community Members ", + "users" => $this->users + ) + ); + ?> +
+
+ + */ + ?> +
+ +
-
+ + + + + +inlineScript()->appendScript( + ' $(document).ready(function(){ + TooltipUser.setup("tooltipuser","right"); + TooltipUser.setup("tooltipuserleft","left"); + TooltipUserPlings.setup("tooltipuserplings","right"); + }); + ');