avatar
-0.40
0.273

Алексей

aVadim
aVadim
В файле engine/classes/modules/mail/Mail.class.php строку
F::IncludeLib('phpMailer/class.phpmailer.php');
заменить на
F::IncludeLib('phpMailer/PHPMailerAutoload.php');
Ну если уж очень-очень хочется, то можно, но с легким «хирургическим вмешательством».

Вы пишете, что будут отличия в функционале. Как они могут появиться? Я только один вариант знаю нормальный — это разный набор плагинов. А в текущей версии нет возможности набор активных плагинов менять «на лету» программным способом, они берутся из конкретного файла из папки приложения.

Значит, нужно, в зависимости от условий, задавать нужную папку приложения. Это можно сделать так: берете файл /engine/config.php и редактируете так, чтобы в зависимости от домена задавалась нужная папка приложения.

Например, можно добавить в конец файла перед return $config;:
if (!empty($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'm.site.ru') {
    $config['path']['dir']['app']           = ALTO_DIR . '/app/mobile/';
} else {
    $config['path']['dir']['app']           = ALTO_DIR . '/app/standard/';
}

return $config;
И вот теперь если юзер зайдет на мобильный домен, то все конфигурации и установки по плагинам будут браться из /app/mobile/config и /app/mobile/plugins, а для всех остальных — из /app/standard/config и /app/standard/plugins.

Главное не забыть домен m.sute.ru сделать алиасом site.ru.

И еще нюанс — все настройки сайта лучше не через админку делать, а через файловые конфиги, т.к. теперь есть ДВА приложения на одном движке.
Ох, вот говорю же — неправильно это, выводить по однотипным УРЛам совершенно разные вещи. Но если уж так хочется, то и это можно сделать. Надо просто добавить еще одно правило в $config['router']['uri']:
'[~^users/country/(\d+)$~]' => 'people/country/$1',
Попробуйте сделать так: в папку app/config/modules/search/ положите файл config.php:
<?php
/***
 * Поиск строгий/нестрогий
 * false - нестрогий поиск, т.е. запрос "дом" вернет "дома", "задом" и т.д.
 * true  - строгий поиск, т.е. запрос "дом" будет игнорировать "дома" и "задом",
 *         но запросу "дом*" будут соответствовать "дома", "домовой",
 *         а запросу "*дом" будут соответствовать "задом", "передом",
 *         а запросу "*дом*" будет соответствовать "рандомный"
 */
$config['strict_search'] = false;
aVadim
aVadim
Допустим, адрес вашего сайта — site.com, и директория, где он находится на сервере — /var/www/site.com. По умолчанию ассеты будут складываться в директорию /var/www/site.com/_run/, которая будет доступна по URL site.com/_run/.

Но вы, к примеру, заводите специальны домен static.com и хотите, чтоб js/css брались оттуда. Тогда задаете так:
$config['path']['runtime']['url'] = 'static.com';
$config['path']['runtime']['dir'] = '/var/www/static.com/';

ЗЫ все примеры вымышленные, реальные пути до директорий доменом на вашем сервере могут отличаться
aVadim
aVadim
Типографика работает так, как это задано в конфиге.

В текущей версии Альто есть два типографа — Jevix и Qevix. Я рекомендую Qevix, но вообще нужный типограф включается в конфиге (app/config/config.local.php):
$config['module']['text']['parser'] = 'Qevix';  // Text parser class: Jevix or Qevix

Настройки типографов по умолчанию задаются в common/config/jevix.php и в common/config/qevix.php. Но вы можете их изменить, задав свои правила в app/config/jevix.php или в app/config/qevix.php в зависимости от используемого типографа. Если нужного файла нет в app/config/, то создайте его, скопировав из common/config/, и скорректируйте правила так, как вам нужно.

Но учтите главное правило типографа: запрещено все, что явно не разрешено. А по умолчанию разрешены заголовки только h4, h5 и h6, а тег h3 явно не разрешен, следовательно, он вырезается.
В принципе, можно даже прямо в шаблонном виджете это сделать, примерно так:
{$iTopicCount=1+$iTopicCount}
{if $iTopicCount>4}
  {$iTopicCount=0}
  здесь нужный HTML-код
{/if}
Не очень изящно, зато просто. Но городить огород с исполняемым виджетом только для того, чтоб счетчик реализовать, это, наверное, все ж излишество.
lk0dee
lk0dee
шифруете ключ, как описано тут http://www.comodorus.ru/ssl/csr покупаете сертификат на домен, подключаете, радуетесь
aVadim
aVadim
В конфиг-файл app/config/config.local.php добавить:
$config['router']['uri'] = array(
    'talk/*' => 'error/404',
);
Но придется еще и файлы шаблонов править, чтобы вырезать упоминание о личке.
Jacomo
Jacomo
ой… без первого слэша конечно:
RewriteRule (.*) http://img.altocms.loc$1 [L,R=301]
Jacomo
Jacomo
Скорее должно быть как-то так:

RewriteCond %{REQUEST_URI} !^/uploads/(.+\.(png|gif|jpe?g))$ [NC]
RewriteRule ^/(.+)$ http://img.altocms.loc/$1 [L,R=301]


потому что REQUEST_URI -это то что передается в строке запроса, то есть
http://сайт:порт(REQUEST_URI)
Janik
Janik
нагугли такое:
RewriteCond %{REQUEST_URI} !^altocms\.loc/uploads/$ [NC]
RewriteRule ^(.+\.(png|gif|jpe?g))$ http://img.altocms.loc/$1 [L,R=301]
пробую на локалхосте, что-то не работает…
aVadim
aVadim
Ок, давайте с малого :)

Вывод разговоров выполняется в экшене ActionTalk. Поэтому стандартное расположение файлов шаблонов для этого экшена стоит искать в папке common/templates/skin/[skin_name]/tpls/actions/talk/.

Конкретно вывод одной беседы реализуется через action.talk.message.tpl. В конце этого файла идет подключение комментариев, вот этот код:
{if !$bNoComments}
         {include
         file='comments/comment.tree.tpl'
         iTargetId=$oTalk->getId()
         sTargetType='talk'
         iCountComment=$oTalk->getCountComment()
         sDateReadLast=$oTalkUser->getDateLast()
         sNoticeCommentAdd=$aLang.topic_comment_add
         bNoCommentFavourites=true}
{/if}
Т.е. тут идет подключение файла comments/comment.tree.tpl. Это значит, что если никаких переопределний не было сделано, то будет подключен файл common/templates/skin/[skin_name]/tpls/comments/comment.tree.tpl.

Если хочется сделать свой собственный вывод комментариев к беседе, то лучше всего создать новый шаблонный файл для вывода комментариев, например, comment.talk.tpl и подключать в action.talk.message.tpl его. И, соответственно, его и править.

Только прежде, чем вносить любые изменения в шаблонные файлы, надо сначала создать собственный скин. Например, скопировать common/templates/skin/experience в common/templates/skin/myskin и там уже править.
aVadim
aVadim
Для версии ниже 1.1 такой код должен работать:
{if E::ActivePlugin('agent') AND E::Agent_GetAgent()->isComputer()}
  <!-- Плагин активен и определяем, что пользователь зашел на сайт с компьютера -->
  <!-- Значит ему можно показать слайдер с большими баннерами -->
  <div id="big-slider">
      <!-- здесь код слайдера -->
  </div>
{/if}
Создай файл в папке шаблона например widget.mainmenu.tpl
Помести в него
</head>
<body>
<ul class="navigation"> 
   <li><a href="" target="_blank">Новости</a></li>
   <li><a href="" target="_blank">Статьи</a></li>
   <li><a href="" target="_blank">Шаблоны</a></li>
   <li><a href="" target="_blank">Книги</a></li>
   <li><a href="" target="_blank">Скрипты</a></li>
   <li><a href="" target="_blank">Видео</a></li>
   <li><a href="" target="_blank">Форум</a></li>
</ul>
<body>
</body>
</html>


А в файле widgets.php добавь
//Меню сайта
$config['widgets'][] = array(
    'name' => 'widgets/widget.mainmenu.tpl',
    'wgroup' => 'right',
    'priority' => 500,
    'action' => array(
        'index',
        'community',
        'filter',
        'blogs',
        'blog' => array('{topics}', '{topic}', '{blog}'),
        'tag',
    ),
    'title' => 'Меню',
);


Это простой вариант, а дальше надо немного знать css м все получиться