+5.68
Рейтинг
20.89
Сила

Александр Фатеев

  • avatar Shrike
  • 0
Для начала можно почитать здесь.
По самому плагину здесь
  • avatar Shrike
  • 1
Пробежавшись по engine\lib\internal\template\js\infobox.js выявил что основа для отображения ls.infobox.show(oLink,sContent,aOpt), где sContent — HTML шаблон.
Для простого — Привет:
<a href="#" onclick="return ls.infobox.show(this,'Привет');" ></a>
или личного
<a href="#" onclick="return ls.infobox.show(this,'Привет! {$oUserCurrent->getLogin()}');" ></a>
Если что-то посложнее тогда шаблон лучше поместить в переменную прописав ее в templates\skin\ИМЯСКИНА\js\template.js
ls.infobox.sPrivet=['<div class="infobox-help"><b>Привет!</b> Как дела?', '</div>'].join('');
  • avatar aex
  • 0
Как где? В каталоге.
  • avatar aex
  • 2
Почитай здесь
  • avatar PSNet
  • 1
  • avatar stepan
  • 1
На самом деле и сейчас ничто не мешает подобным образом организовать шаблоны в ЛС. В smarty есть возможность наследовать шаблоны www.smarty.net/docs/en/language.function.extends.tpl

Например, у меня структура получается примерно следующая: в индексной директории создаю index.tpl (или любое другое удобное вам название), где я размечаю основные блоки, которые будут использоваться на странице, получается примерно следующее:

{strip}
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>{$title}</title>   
    
    </head>
    
    <body>
    
        <div id="wrap" class="main_bg">

            {block name="content"}
                {include file="/blocks/header.tpl"}
            {/block}
    
            {block name="content"}{/block}
    
            {block name="content"}
                {include file="/blocks/footer.tpl"}
            {/block}
  
        </div>
    
    </body>    
    </html>
{/strip}


И далее на нужной нам странице «вызываем» этот шаблон, например, чтобы использовать его на индексной странице, в шаблоне actionIndex/index.tpl пропишем следующий код:


	{extends file="app/view/design/index.tpl"}

	{block name="content"}
		{include file="actionIndex/_content.tpl"}
	{/block}


Аналогично можем переопредедить и содержание других блоков:


	{extends file="app/view/design/index.tpl"}

        {block name="header"}
            {include file="actionIndex/_header.tpl"}
        {/block}

	{block name="content"}
	    {include file="actionIndex/_content.tpl"}
	{/block}

        {block name="footer"}
            <div class="footer"></div>
        {/block}


А в итоге получаем очень аккуратный и легкочитаемый код
  • avatar rsmike
  • 0
Часть конфига nginx, указанного здесь, помечена в nginx pitfalls страшными словами «DO NOT DO THIS! This is a terrible use» или «BAD:».

Привожу свой вариант ТИПОВОГО конфига (не включает кеширование, оптимизацию, сжатие, настройку phpmyadmin и т.д). Требует обновленного nginx, так как старые версии не понимают try_files и return. Предполагается работа с php-fpm через сокет (как описано в топике).


server {
  listen 80;
  server_name site.ru;
  access_log /var/log/nginx/site.ru-nginx.access.log;
  error_log /var/log/nginx/site.ru-nginx.error.log;
  root /var/www/site; 
  index index.php index.html;

  location / {
      try_files $uri $uri/ /index.php?q=$uri&$args;
  }

  location = /index.php {
      fastcgi_pass unix:/tmp/fastcgi.socket;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
  }
       
  location ~* \.(php|tpl|xml|log)$ { return 403; }
} 


Проверьте, кому не лень, на предмет возможных ошибок. И вопрос: вызывается ли в LS напрямую что-то, кроме index.php? Вроде бы нет, поэтому для безопасности пересылка в обработчик выставлена только для него.

бонус: рерайт www->безwww

server {
  server_name www.site.ru;
  return 301 $scheme://site.ru$request_uri;
}
$this->Viewer_AddHtmlTitle('This is Title!');
Текст лучше вынести в языковые файлы и обращаться примерно так:
$this->Lang_Get('plugin.pluginname.valuename')
Т.е в результате как-то так:
$this->Viewer_AddHtmlTitle($this->Lang_Get('plugin.pluginname.valuename'));