Перейти к содержимому


Инструкции



"Parse" tag in templates Использование тега parse в шаблонах

Написано Denis Chursinov, 07 Декабрь 2014 · 4 414 Просмотров
инструкции, шаблоны, ips
Скопирую сюда шпаргалку по {parse...}, чтоб не потерялась. После обновления у форума invisionpower.com до 4й версии они потеряли половину информации. Пока старые страницы есть в кеше у гугла и яндекса.


You may have noticed when editing templates tags which look like this:
{parse var="foo" var2="bar"}
These are special "parse tags". There are many different types you can use. This guide is going to explain all of the types of parse tags available.
addtohead
{parse addtohead="file.js" type="javascript"}
This tag can add javascript, CSS or raw data to the head of a page.
The "type" attribute should be either "javascript", "inlinecss", "importcss" or "raw".
block
{parse block="key"}
This tag will display a block created in IP.Content.
date
{
parse date="1254416063" format="long" relative="false"}
This tag will display a date in human-readable format from a timestamp.
The "date" attribute should be a unix timestamp.
The "format" attribute should be either "LONG", "SHORT", "SHORT2", "JOINED", "TINY" and determines the format (i.e. "LONG" will display the full date, including day of the week and full month name, while "SHORT2" will just display the date). Be aware that administrators can modify these formats via ACP settings under Settings -> Advanced tab -> Date, Time and Number Formats, so while "SHORT2" may display just the date by default, this may not always be the case in the event the administrator changes the corresponding setting. Dates and times are locale-aware.
The "relative" attribute should either be "true" or "false" - if "true", the appropriate settings are enabled, and it was a certain amount of time ago it may return something like "10 minutes ago" instead of an actual time.
expression
{parse expression="intval($data)"}
This tag takes a PHP expression and returns the result. Useful for using intval or str_replace with.
format_number
{parse format_number="123456"}
This tag formats a number as appropriate to the locale settings for the user's language. For example, it will convert 1000000 into 1,000,000 if the user's language choice is English.
include
{parse include="file_location.html"}
This will retrieve the contents of the file specified and insert it into the template.
Useful if you have a html header or other content outside of IP.Board that you want to include.
js_module
{parse js_module="name_of_module"}
This will get a javascript module. For example, use {parse js_module="editor"} to get the javascript required for the editor.
This is equivalent to $this->registry->getClass('output')->addJSModule('name_of_module');.
replacement
{parse replacement="a_post"}
This will return the image replacement variable for the user's skin choice. This is usually used to display images. You can edit image replacement variables for a skin by selecting "Manage Replacements" for the dropdown menu for the skin under the Look & Feel tab in the Admin CP.
resize_image
<img src='image.png' {parse resize_image="image.png" maxwidth="100" maxheight="100"} />
This will resize an image to the specified dimensions.
As shown in the example, it should be used in the image tag, as it will generate attributes for it.
striping
{parse striping="someKey" classes="row1, row2"}
{parse striping="someKey"}
This is used to use "stripey" rows. For example, if you have a table and want alternate rows to display slightly different colours.
Normally, you would start off by initiating the striping by using {parse striping=&quot;help&quot; classes=&quot;row1, row2&quot;} (where "row1" and "row2" are the CSS classes you wish to use) and then within your foreach loop, you would use a parse tag with the same key to return the class. For example:
{parse striping="example" classes="row1,row2"}
<foreach loop="$rows as $row">
<div class='{parse striping="example"}'>
  Example
</div>
</foreach>
template
{parse template="myTemplate" group="global" params="$data, $moreData"}
This can be used to display a template within another template.
The "template" paramater should be the name of the template bit you wish to call.
The "group" parameter should be what group it is in (e.g. "global", "topic", "forum", "ucp", etc).
The "params" parameter should be the variables to pass to it.
url
{parse url="this=that" base="public"}
This is used to display a link - it takes into account friendly URLs if enabled. You should use this tag to display any URL.
The "url" parameter should usually be whatever comes after index.php? - so to display a link to a user's profile you would use {parse url=&quot;showuser=X&quot;]}
The "base" parameter defines what to use as the base URL (i.e. what the "url" parameter will be added on to) - you can use "public", "admin", "publicWithApp", "public_dir", "img_url", "avatars", "emoticons", "mime" or "upload".
You can also use an "seotitle" parameter which will be used in friendly URLs - for example for a link to a user's profile you would display the members_seo_name value for the member.
You can also use a "template" parameter to provide the SEO template for friendly URLs, for example "showuser", "showtopic", etc. If none is passed but SEO is enabled, IPB will search all templates for a match
You can also define "httpauth" as "true" which will add the HTTP authentication information (as defined by setting in the Admin CP) to the URL.
variable
{parse variable="testKey" default="foo" oncondition="$data == \'new\'" value="bar"}
This will set a variable in the template.
The "variable" parameter should be the variable name.
The "oncondition" parameter should be the condition (in PHP code) that the variable will be set on.
The "value" parameter should be the value to set.


Подключение к соц.сетям (инструкция)

Написано Denis Chursinov, 14 Февраль 2014 · 6 686 Просмотров
инструкция
Часто спрашивают о подключении авторизации во вконтакте, twitter и facebook.
Решил сделать тут инструкцию, чтобы отвечать сразу ссылкой на эту тему.

Итак, начнем с VK.1.jpg
  • Выбираем в качестве типа приложения веб-сайт и заполняем поля адреса и домена
2.jpg
  • На странице приложения получаем защищенный ключ и ID приложения
3.jpg
  • Вводим эти данные в АЦ-Настройки-Интеграция с соц.сетями
4.jpg
  • Хук "формы авторизации вконтакте" должен быть включен, иначе иконка в верхней панели на главной не появится.
5.jpg

Twitter:
  • Имя, под которым будет отображаться приложение в вашем списке и при авторизации
  • Описание
  • Адрес вашего форума
  • Адрес вашего форума + /interfaces/twitter/index.php . Например
    http://forums.ibresource.ru/interfaces/twitter/index.php
  • Получаем данные приложения
2.jpg
  • Вводим их в АЦ-Настройки-Интеграция с социальными сетями
3.jpg


Источник: Подключение к соц.сетям (инструкция)


Установка локализации 3.3.4

Написано Denis Chursinov, 14 Февраль 2014 · 6 633 Просмотров
инструкция, установка и 1 еще...

Решил расписать все по пунктам.

Небольшое вступление для ясности:
Итак, у вас установлена английская версия форума, который уже заполнен какой-то информацией. Т.е. удалить и переставить уже не получиться. Если возможно удалить и установить заново, то лучше это сделать.
Это не инструкция по установке или обновлению форума!!! Это способ русифицировать уже установленный англоязычный движок без смены версии!
И еще раз:
Если у вас установлена более старая локализованная версия и вы хотите ее обновить, или англоязычная версия отличная от версии локализации, или вы хотите установить форум с нуля, то этот способ не для вас!

Для обновления или чистой установки скопируйте файлы локализации в полный англоязычный дистрибутив с заменой оригинала и устанавливайте/обновляйте как обычно.

1. Скопировать с заменой содержимое вашей локализации в корень форума.

  • Если используете нестандартное имя папки admin, то не забудьте, что скопировать содержимое папки admin локализации нужно именно туда.
  • Убедиться в отсутствии ошибок при передаче.
  • Проверить права:
chmod -R 0777 blog/headers

chmod -R 0777 cache

chmod 0777 conf_global.php

chmod -R 0777 downloads

chmod -R 0777 hooks

chmod -R 0777 public/style_css

chmod -R 0777 public/style_emoticons

chmod -R 0777 public/style_images

chmod -R 0777 screenshots

chmod -R 0777 uploads

chmod -R 0777 uploads/profile

chmod -R 0755 admin

chmod -R 0755 blog/colorpicker

chmod -R 0755 blog/fonts

chmod -R 0755 css_files

chmod -R 0755 converge_local

chmod -R 0755 interface

chmod -R 0755 ips_kernel

chmod -R 0755 lofiversion

chmod -R 0755 public/js

chmod -R 0755 public/min

chmod -R 0755 public/style_avatars

chmod -R 0755 public/style_captcha

chmod -R 0755 public/style_extra
2. Look&amp;Feel -> Manage Languages -> Edit( карандаш рядом с названием языка )
В свойствах языка задать локаль ru_RU.UTF-8
3. Убедиться что в conf_global.php есть строчка
$INFO['sql_charset'] = 'utf8';
Если строчки нет, то добавлять ее на этом этапе не нужно!
4. Убедиться в правильности кодировки базы данных.
а) Сконвертировать базу и все таблицы в utf8_general_ci . Варианты конвертации есть в этом гайде: перекодирование базы данных. Мне больше нравится способ "Конвертирование посредством самого MySQL"
б) Если в п.3 строчки не было, то, независимо от collation и charset базы данных и таблиц, форум, скорее всего, записывал данные в режиме CP1252. В этом случае открыв в adminer или phpMyAdmin поле с кириллическими символами(наверняка найдете в posts) увидите что-то вроде
ПРЕВЕД МЕДВЕД!
. Здесь вместо варианта А придется использовать скрипт конвертации от IPS
Прикрепленный файл  convertCharset.php   8,74К   5 скачиваний.Создайте новую пустую базу данных и впишите данные для доступа к ней в convertCharset.php. Скопируйте convertCharset.php в корень форума и обратитесь к нему через браузер. На больших базах работа скрипта может прерваться по таймауту, тогда вставьте имя последней скопированной таблицы в переменную $skip_until_table и запустите его снова. Есть еще вариант сделать дамп базы данных с помощью sypex dumper, затем создать новую базу и импортировать этот дамп, указав кодировку utf-8 и отметив пункт "коррекция кодировки" в дампере.
После копирования впишите данные новой базы данных в conf_global.php и добавьте строку
$INFO['sql_charset'] = 'utf8';
5. В английском дистрибутиве из папки tools скопировать папку upgradeFinish в папку admin(может быть переименована) вашего форума.
6. Зайти браузером в ВАШ_ФОРУМ/admin/upgradeFinish/ и подождать пока закончатся все шаги.
7. Переключить АЦ в режим разработки, заменив, если уже есть "define('IN_DEV...", или добавив строчку
define('IN_DEV', (IN_ACP ? 1 : 0));
8. На главной странице АЦ выполнить все операции под спойлерами "Необходимо обновление..."
9. Отключить режим разработки, обновить кэши, удалить папку upgradeFinish из п.п.4,5

Названия приложений и, соответственно, ссылки на них в навигационном меню, сервисы публикации ссылок, дополнительные поля профилей, звания, уровни репутации, имена групп и масок доступа пользователей,причины предупреждений при таком способе установки не переводятся.


Источник: Установка локализации 3.3.4


Как купить лицензию на IP.Board

Написано Denis Chursinov, 14 Февраль 2014 · 7 508 Просмотров
лицензия, оплата, инструкция
Как купить лицензию на IP.Board

Частенько спрашивают, как купить оригинальную лицензию.
Чтобы по 10 раз не рассказывать одно и то же, сделаю инструкцию.
Итак, несколько вступительных ремарок:

 

Лицензия у IPS на момент написания инструкции бывает 2х типов - классическая лицензия на использование форума и его компонентов и аренда готового форума на хостинге Invision Power .
Первый вариант дает право использования ПО Invision Power на любом хостинге неограниченное время. Классическая лицензия закрепляется за доменом при вводе лицензионного ключа в админ-центре. В комплект с классической лицензией входит подписка на услуги компании Invision Power Services сроком на полгода. В стандартную подписку входит доступ к антиспам-сервису, визуальному редактору стилей, чату на 5 пользователей, технической поддержке на английском языке, доступ к дистрибутивам текущих версий ПО. Для внесения путаницы подписка называется активной лицензией (active license), а продление подписки продлением лицензии. На самом деле активная лицензия к праву на использование продукта отношения не имеет. Однако IPS оставляет за собой право отзывать лицензии у клиентов, если обнаружит использование версии ПО, которая была опубликована после окончания срока последней подписки. Логика IPS такова: без подписки клиент не может получить дистрибутив текущей версии, а значит при обновлении он нарушил лицензионное соглашение. Продлить подписку можно в любой момент, не обязательно продлевать сразу после окончания срока. Смена лицензированного домена возможна один раз за каждый период действия подписки, т.е. раз в полгода.

 

Второй вариант - аренда форума действует по системе подписки.Вы заказываете форум, система автоматически его устанавливает, дает вам логин и пароль от админ-центра. Все как в случае демо-форума. Вы не получаете доступа к дистрибутивам, вы не получаете доступа к файлам форума и не имеете прямого доступа к базе данных форума. Стоимость рассчитывается на основе посещаемости вашего форума. Оплата производится ежемесячно. Ваш форум автоматически обновляется до новых версий, обновления безопасности и патчи багтрекера применяются также автоматически. Локализация возможна только на уровне language pack , т.е. штатной системы языков.

 

Я распишу покупку именно классической лицензии.

 

1. Переходим по ссылке на страницу покупки
2. Выбираем компоненты (при одновременном заказе они дешевле, чем при докупке потом).
Прикрепленное изображение
3. Переходим на страницу оформления по кнопке checkout.
Прикрепленное изображение
Заполняем данные для создания аккаунта на форуме и в клиент-центре. Заполняем данные для формирования счета на оплату. Все латиницей. Все галки ставим. Адрес E-Mail указываем реальный.
4. Переходим на страницу оплаты:
Прикрепленное изображение
Здесь выбираем способ оплаты. Вводим код купона на скидку. Знакомимся с лиц. соглашением.
Если выбрать в качестве способа оплаты карту, то этим экраном все и ограничится.
Может быть еще дополнительный экран подтверждения платежа 3d secure, если ваш банк этого требует.

 

Если выбрать paypal, то следующим экраном будет страница оплаты платежной системы PayPal.
Прикрепленное изображение

 

Карты некоторых банков не проходят проверку платежа у эквайера IPS. Точных данных о том, какие карты не проходят у меня нет. Но вероятность с именным пластиком российских банков довольно высокая. Поэтому советую платить такими картами через paypal.

 

Без проблем проходят виртуальные карты от qiwi(выдается сразу при заведении кошелька), yandex (выдается бесплатно по запросу), webmoney (выдается платно через сервис wmcard). С неименными (unembossed) пластиковыми картами "кукуруза", "связной" тоже проблем не замечено.

 

После оплаты вам придет письмо с подтверждением платежа. В некоторых случаях оплата проходит ручную проверку. Такая проверка может длиться до 2х рабочих дней. Т.е. если вы оплатили в субботу в 6 утра по Москве. То в Америке уже 17:00 пятницы, и ваш платеж проверят до 8 утра среды по Москве. Если к этому времени подтверждение не пришло, то нужно зайти в клиент-центр http://invisionpower.com/clients используя данные для входа, указанные вами на шаге 3, и создать запрос в поддержку. Если в клиент-центр не попасть, то нужно написать на support@invisionpower.com Ответа ждать 2 рабочих дня.

 

Для клиентов, которые не могут оплатить заказ на сайте invision power, компания IBResource предоставляет специальный сервис активации заказов.