Категории
pCloud Premium

Joomla полезни PHP кодове за да създадете вашият темплейт

Полезни PHP кодове за да създадете вашият темплейт

Ако искате вашият модул, картинка, css файл, текст или скрипт да се зареждат на точно определено място във вашият уеб сайт, тук ще разберете как. С помоща на php можем да показваме определно съдържание на определени места, като например: Article ID, Section ID, Category ID, Search page, Menu ID, Virtuemart страници и т.н

 

Root директория

Този код изобразява вашата root папка, в която се намира вашата Joomla! инсталация <?php echo $this->baseurl ?>

Page Options

  1. <?php $pageoption1 = JRequest::getVar( 'Itemid', '' ); $pageoption2 = JRequest::getVar( 'page', '' ); $pageoption3 = JRequest::getVar( 'option', '' ); ?>

С този код задаваме три дефиниции: $pageoption1, $pageoption2 и $pageoption3

За да използваме някоя от тях, горният код трябва да присъства в най-горната част на страницата.

Ако искаме да покажем даден елемент в определено меню/menu ID, трябва да изпишем:

$pageoption1

Примерен линк: index.php?option=com_contentANDview=articleANDid=34ANDItemid=1ANDlang=bg

  1. <?php if ($pageoption1 == '1') { ?>
  2. Този текст ще се покаже само в меню с ID 1
  3. <?php } ?>
  1. <?php if (($pageoption1 == '1') OR (($pageoption1 == '2')) OR (($pageoption1 == '3')) OR (($pageoption1 == '12'))) { ?>
  2. Този текст ще се показва в менюта с ID 1,2,3 и 12
  3. <?php } ?>
  1. <?php if ($pageoption1 == '1')
  2. {echo '<div id="my_div_one"></div>'; } 
    else { echo '<div id="my_div_two"></div>'; }
  3. ?>

Ако се намираме в меню с ID 1, ще се покаже <div id="my_div_one"></div>

Във всяко друго меню ще се покаже <div id="my_div_two"></div>

$pageoption2

Примерен линк: index.php?page=shop.product_detailsANDcategory_id=1ANDflypage=flypage.tplANDproduct_id=1ANDoption=com_virtuemartANDItemid=1

  1. <?php if ($pageoption2 == 'shop.product_details') { ?>
  2. Този текст ще се покаже в страницата на продукт от Virtuemart
  3. <?php } ?>
  1. <?php if (($pageoption2 == 'shop.cart') OR (($pageoption2 == 'checkout.index')) OR (($pageoption2 == 'checkout.thankyou'))) { ?>
  2. Този текст ще се показва в 3 специфични страници на Virtuemart: "Кошницата/Cart", "Checkout (първата страница при закупуване на продукт)" и Финалната страница при закупуване на продукт.
  3. <?php } ?>

$pageoption3

Примерен линк: index.php?option=com_contentANDview=articleANDid=1ANDItemid=1ANDlang=bg

  1. <?php if ($pageoption3 == 'com_content') { ?>
  2. Този текст ще се покаже там, където показваме съдържание (Content) от Joomla!
  3. <?php } ?>

Начална страница - Home Page

Joomla ни задължава да посочим кое меню е Default или иначе казано, началната страница на уеб сайта.

Този код трябва да стои в най-горната част на страницата:

  1. <?php
  2. $defaultMenu = JFactory::getApplication()->getMenu()->getDefault()->id;
  3. $currentMenu = JFactory::getApplication()->getMenu()->getActive()->id;
  4. if($defaultMenu == $currentMenu){
  5. $homePage = true;
  6. }else{
  7. $homePage = false;
  8. }
  9. ?>

Сега можем да използваме:

  1. <?php if($homePage == true): ?>
  2. Този текст ще се показва само в началната страница
  3. <?php endif; ?>

Или това:

  1. <?php
  2. if ($homePage == true) {
  3. echo "Ако сме в началната страница ще видим този текст";
  4. } elseif ($homePage == false) {
  5. echo "На всяка друга страница ще се показва този текст";
  6. }
  7. ?>

Езици

Примерен линк: index.php?option=com_contentANDview=articleANDid=1ANDItemid=1ANDlang=bg

  1. <?php if($this->language == "bg-bg") { ?>
  2. Този текст ще се появи само ако езика на сайта е български
  3. <?php } ?>
  1. <?php if($this->language == "en-gb") { ?>
  2. Този текст ще се появи само ако езика на сайта е английски
  3. <?php } ?>

Можем да комбинираме всеки един от тези кодове, например:

  1. <?php if ($pageoption1 == '1') { ?>
  2. <?php if($this->language == "bg-bg") { ?>
  3. Този текст ще се покаже в меню с ID 1 само ако езика е български
  4. <?php } ?>
  5. <?php } ?>

Joomla статии, секции, категории и други

  1. <?php if (JRequest::getVar('view')=='article') { ?>
  2. Този текст ще се появи само ако сайта показва статия/Article
  3. <?php } ?>
  1. <?php if (JRequest::getVar('view')=='frontpage') { ?>
  2. Този текст ще се появи в секция FrontPage
  3. <?php } ?>
  1. <?php if (JRequest::getVar('view')=='section') { ?>
  2. Този текст ще се появи в меню показващо Section
  3. <?php } ?>
  1. <?php if (JRequest::getVar('view')=='section' && JRequest::getVar('id')==1) { ?>
  2. Този текст ще се появи в Секция/Section с определено ID
  3. <?php } ?>

Ако имате предложения, с които да допълним тази статия, моля оставете коментар.

Надявам се статията да е била полезна ico

<?php
// This is the content of index.php in the root of your template directory
defined( '_JEXEC' ) or die( 'Restricted access' );
 
$CssDir = $this->baseurl . '/templates/templatename/css';
 
$defaultMenu = JFactory::getApplication()->getMenu()->getDefault()->id;
$currentMenu = JFactory::getApplication()->getMenu()->getActive()->id;
 
if($defaultMenu == $currentMenu){ 
   $bodyId = 'id="home"'; 
   $homePage = true; 
}else{
   $bodyId = ''; 
   $homePage = false; 
}
 
?>
27 Март 2012г.
Прегледано 17318 пъти