Модуль замены символов.

Главные вкладки

Комментарии

Аватар пользователя imarat imarat 18 июня 2014 в 0:01

"duozersk" wrote:
Это вроде функция php. если Вас не затрудник, можете рассказать как её применить в друпал?

так друпал же на php Smile
если заменять на выводе текста - то внутри hook_preprocess
если при вводе - то hook_entity_presave

Аватар пользователя druman druman 18 июня 2014 в 12:03

imarat wrote:
"duozersk" wrote:
Это вроде функция php. если Вас не затрудник, можете рассказать как её применить в друпал?

так друпал же на php Smile
если заменять на выводе текста - то внутри hook_preprocess
если при вводе - то hook_entity_presave

Она разве работает, когда контент загружается сторонним плагином?

Аватар пользователя druman druman 18 июня 2014 в 13:16

ХулиGUN wrote:
Давайте Вы детально опишите что Вам нужно, без всяких "если", "когда"... Зачем нам втягивать из Вас информацию силой?

Модуль создаёт контент на сайте(feeds из cvs файла).
Нужно заменить некоторые слова или символы на на другие(из списка, он не большоей 21 или 23 слова/символа). Wordfilter не походит, так как работает медленно и редактирует не в самой статье, а только при выводе на экран.
Нужно, что бы редактировал весь контент в БД.

PS Файл содержит форумлы latex. Т.е. нужно будет заменить \sqrt{5} на корень из(5). Также символы типа $%a%$, на курсивную "а"(подобие альфа). Сложных математических формул нет. Была идея обработать сам cvs, но мне нужно будет каждый день это делать - не хочу.

Попросили сделать, я немного шарю, даже на Си пишу - но сам в этом ни бум бум.

Аватар пользователя druman druman 18 июня 2014 в 15:02

ХулиGUN wrote:
"druman" wrote:
Модуль создаёт контент на сайте(feeds из cvs файла).

http://drupalcontrib.org/api/drupal/contributions!feeds!feeds.api.php/7

Какая классная документация у друпал.
Сейчас почитаю. спаисбо. Ааааа. Как много английского.

Аватар пользователя druman druman 18 июня 2014 в 15:09

ХулиGUN wrote:
"druman" wrote:
Ааааа. Как много английского.

Ландон ис зе кепитал оф Грейт Британ...

Лондон - это столица Великой Британии. Я не совсем дурак ))

Аватар пользователя druman druman 18 июня 2014 в 15:08

Мне, по идее, нужно hook_feeds_presave() использовать?
Не сильно владею английским. Насколько я понял, это функция при записывание данных в БД обрабатывает их?

Аватар пользователя druman druman 18 июня 2014 в 16:02

ХулиGUN wrote:
"druman" wrote:
Мне, по идее, нужно hook_feeds_presave() использовать?

Да

Как это сделать?
И как встроить код?
Я понял, что мне нужно использовать
http://www.php.net/manual/ru/function.str-replace.php
Я нашёл готовую функцию написанную на php мне реализацию, и легко могу переделать.
Как мне её встроить?
Прям можно для чайника объяснить и ссылками поделиться. Спасибо.

Аватар пользователя druman druman 18 июня 2014 в 16:21

ХулиGUN wrote:
Либо в template.php, либо в своём модуле переопределяете hook_feeds_presave(), встраиваете свою функцию, чистите кеш и вуаля...

Я открыл в модуле feeds файл feeds.api.php.
Там есть код:
<?php // <-для красоты отображения
function hook_feeds_presave(FeedsSource $source, $entity, $item) {
if ($entity->feeds_item->entity_type == 'node') {
// Skip saving this entity.
$entity->feeds_item->skip = TRUE;
}
}
// для красоты отображения-> ?>
И есть моя функция для замены:
<?php

function LaTexFormat($str)
{
$tr = array(
"\sqrt"=>"корень",
);
return strtr($str,$tr);
}

?>

И как мне их совместить?

Аватар пользователя druman druman 18 июня 2014 в 21:53

ХулиGUN wrote:
"druman" wrote:
И как мне их совместить?

Вы хотите, чтобы я за Вас написал код?
Во-первых под рукой нет друпала для тестирования.
Во-вторых Ставить, настраивать и смотреть что и где тоже желания особого нет.
Смотрите что передаётся в аргументах hook_feeds_presave(FeedsSource $source, $entity, $item)
$entity - я так полагаю сущность, в которую Вы делаете импорт
$source - думаю, это сам цсв
$item - хз, но думаю это либо строка цсв, либо уже преобразованный массив

Если не знаете пхп, то скорее всего ничего у Вас не получится, лучше нанять специалиста.
А готовое решение за спасибо тут тоже никто писать не станет

Как написать свой модуль для друпала - http://habrahabr.ru/post/200340/
Там же и о использовании хуков


Вы ввели меня в заблуждение.

Я думал можно вставить нужный код свой, прицепить функцию и чудо. Какая у вас хорошая скрытая реклама.

Аватар пользователя druman druman 18 июня 2014 в 21:57

Я так и не догнал. Почему сам модуль нельзя модифицировать, то есть вставить мой код, и всё будет верно работать?
По идее, нужно только знать место, где его вставить. Нет?

Аватар пользователя ihappy ihappy 18 июня 2014 в 22:08

"druman" wrote:

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

Аватар пользователя druman druman 18 июня 2014 в 22:26

iHappy wrote:
"druman" wrote:

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

Какие-то вы дурачки. Удачи Вам, ребята.

Аватар пользователя ttenz ttenz 18 июня 2014 в 22:32

"druman" wrote:
модифицировать

Можно на основе существующего модуля создать свой с др названием, это имеет знач при дальнейшем обслуживании/поддержке сайта.

Аватар пользователя druman druman 19 июня 2014 в 12:24

ХулиGUN wrote:
"druman" wrote:
Какие-то вы дурачки. Удачи Вам, ребята.

И Вам того же с заменой текста)))
Ну раз Вы на Си спец, то и писали бы сайт на Си. В чём проблема то? А то копипастить бездумно чужие куски кода каждый "дурачок" может и потом с этими кусками, как мартышка с очками...

Ребят, на СИ сайты не пишут. Это низкоуровневый язык. Я не говорил, что я спец. Я лишь немного знаю. Просто вы ввели меня в заблуждение.
Я был полностью уверен, что включив/подменив нужный код свой будет работать.

Аватар пользователя drupby drupby 19 июня 2014 в 13:20

"ХулиGUN" wrote:
Либо переопределяете их в template.php используемой темы

не нужно людей вводить в заблуждение

Аватар пользователя drupby drupby 19 июня 2014 в 14:37

"ХулиGUN" wrote:
Вызов методов друпала там тоже работает

каких еще методов друпала ? в template.php описываются только альтер хуки, препроцессы-процессы и функции темизации

а в данном случае нужно писать модуль и там имплементировать hook_feeds_presave

function ИМЯМОДУЛЯ_feeds_presave(FeedsSource $source, $entity, $item) {
 
}

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

Аватар пользователя druman druman 19 июня 2014 в 14:49

drupby wrote:
"ХулиGUN" wrote:
Вызов методов друпала там тоже работает

каких еще методов друпала ? в template.php описываются только альтер хуки, препроцессы-процессы и функции темизации

а в данном случае нужно писать модуль и там имплементировать hook_feeds_presave

function ИМЯМОДУЛЯ_feeds_presave(FeedsSource $source, $entity, $item) {
 
}

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


Т.е. просто внедрить свой код нельзя, верно?

Аватар пользователя Moel Moel 19 июня 2014 в 15:13

"druman" wrote:
Т.е. просто внедрить свой код нельзя, верно?

Можно, запросто. Только модуль никогда не обновляйте=) После каждого обновления будете вспоминать и внедрять заново. А отличие в принципе в внедрении кода, как вы говорите от своего модуля в 5 строчках + создание одной папки и двух файлов.

Аватар пользователя druman druman 19 июня 2014 в 15:17

Moel wrote:
"druman" wrote:
Т.е. просто внедрить свой код нельзя, верно?

Можно, запросто. Только модуль никогда не обновляйте=) После каждого обновления будете вспоминать и внедрять заново. А отличие в принципе в внедрении кода, как вы говорите от своего модуля в 5 строчках + создание одной папки и двух файлов.

Можно в ЛС к вам за помощью в этом обновиться?
Да не страшно, можно каждый раз вставлять этот код, после обновления.

Аватар пользователя Moel Moel 19 июня 2014 в 17:25

Блин
открываете вашсайт/sites/all/modules/
тут создаете папку: например feeds_strtr
дальше создаете 2 файла:
1)feeds_strtr.info
Здесь пишите:

name = feeds_strtr
description = My custom feeds manipulations
core = 7.x
dependencies[] = feeds
package = Custom modules

2)feeds_strtr.module
Здесь пишите:
<?php
feeds_strtr_feeds_presave(FeedsSource $source, $entity, $item){
//Тут уже делаете что захотите.
}

//Желательно установить модуль devel. Сможете например написать:
<?php
feeds_strtr_feeds_presave(FeedsSource $source, $entity, $item){
dpm($source); //dpm - команда модуля devel. Она вам покажет в удобночитаемом виде все о $source
dpm($entity);
dpm($item);
}

Аватар пользователя Moel Moel 19 июня 2014 в 17:28

А в личку писать не стоит. Вам тут уже дали более чем достаточно информации. Просто сидеть и разбираться дальше вам надо. Думать за вас как применить тот или иной хук или функцию php тут не будут. Все есть в документации.

Аватар пользователя ihappy ihappy 19 июня 2014 в 17:29

"druman" wrote:
2. Уверен нах?

Там полу бред.
Мало того, что сайты пишут на С++(Можно и на С, но с Классами легче), так они еще намного быстрей работают и выдерживают намного больше нагрузку.
Рассказывать как не буду, не писал, но есть знакомые, которые занимаются тестирование такого сайта.

Аватар пользователя druman druman 19 июня 2014 в 18:14

iHappy wrote:
"druman" wrote:
2. Уверен нах?

Там полу бред.
Мало того, что сайты пишут на С++(Можно и на С, но с Классами легче), так они еще намного быстрей работают и выдерживают намного больше нагрузку.
Рассказывать как не буду, не писал, но есть знакомые, которые занимаются тестирование такого сайта.

Яндекс?
Обычные сайты на си/с++ не пишут. Прос классы это бред. c++ есть опп, в си нет.

Аватар пользователя druman druman 20 июня 2014 в 12:45

ХулиGUN wrote:
"druman" wrote:
Прос классы это бред. c++ есть опп, в си нет

Не думаю что с С на С++ так сложно перейти. Одно ж вытекает из другого. Не вижу ничего что мешало бы это сделать, кроме незнания первого

Блин.
Как до Вас донести.
Писать сайт,Ю на том же c++ - это глупость.

Аватар пользователя ihappy ihappy 20 июня 2014 в 12:33

"druman" wrote:
Обычные сайты на си/с++ не пишут.

Я тебе вообще говорю. Обычным сайтам конечно не нужно писать на Сях.
"druman" wrote:
Прос классы это бред. c++ есть опп, в си нет.

С++ это расширение С, добавляющий к нему ООП. На С++, можно писать чистый С. А также, код написанный на чистом С, почти спокойно компилируется компилятором С++.
Конечно, не любой код соберется сразу, некоторый надо будет подправлять, но я опять же, про в общем говорю. Или ты опять будешь это оспаривать?

"ХулиGUN" wrote:
Не думаю что с С на С++ так сложно перейти.

С учетом того, что когда учат С++, сначала проходят быстрый курс чистого С, то очень даже легко.

Аватар пользователя druman druman 20 июня 2014 в 22:11

ХулиGUN wrote:
"druman" wrote:
Писать сайт,Ю на том же c++ - это глупость.

Пытаться делать что-либо при помощи инструмента который не знаешь, когда под рукой есть родной - вот это глупость.

Ясно.

Аватар пользователя ihappy ihappy 20 июня 2014 в 14:27

"druman" wrote:
Писать сайт,Ю на том же c++ - это глупость.

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

Аватар пользователя druman druman 20 июня 2014 в 22:10

iHappy wrote:
"druman" wrote:
Писать сайт,Ю на том же c++ - это глупость.

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

По Вашему, мне для моей задачи нужен Си?

Аватар пользователя ihappy ihappy 21 июня 2014 в 19:47

"druman" wrote:
По Вашему, мне для моей задачи нужен Си?

Ты оспорил, то что на сях не пишут. Я ответил. А ты пиши хоть на ассемблере. Мне без разницы.

Аватар пользователя ttenz ttenz 21 июня 2014 в 23:13

Сделал интересное наблюдение-часто ники соответствуют характеру:

druman - дур мэн - дурной человек

ХулиGUN - любит хулиганить

iHappy - я один счастливый, остальные не интересны

Аватар пользователя druman druman 22 июня 2014 в 12:35

ttenz wrote:

druman - дур мэн - дурной человек

Вы бы не позорились и не показывали свою невнимательность.
Дурной человек - durnoy chelovek или хотя бы - durnoy human.

Мой ник: druman, что является сокращением от Drupal Human (человек Друпал)- > DruMan

Аватар пользователя ttenz ttenz 22 июня 2014 в 12:48

"druman" wrote:

Я заметил, учел, что человек не будет явно себя называть, его сознание не пропустить. Man имеет значение как мужчины, так и человека.

+ учитывалось и поведение человека: Вы первый назвали всех дураками, т.е. лучшая защита нападение, попытка также замаскироваться, чтоб другие первыми не назвали, видимо есть опыт.

Ну и + умственные способности, человек позиционирует, что он пишет на Си, в тоже время не может разобраться в структуре друпала.

Drupal man - Вы просто быть не можете, Вы не понимаете элементарных понятий друпала.

Аватар пользователя druman druman 26 июня 2014 в 13:10

ttenz wrote:
"druman" wrote:

Я заметил, учел, что человек не будет явно себя называть, его сознание не пропустить. Man имеет значение как мужчины, так и человека.

+ учитывалось и поведение человека: Вы первый назвали всех дураками, т.е. лучшая защита нападение, попытка также замаскироваться, чтоб другие первыми не назвали, видимо есть опыт.

Ну и + умственные способности, человек позиционирует, что он пишет на Си, в тоже время не может разобраться в структуре друпала.

Drupal man - Вы просто быть не можете, Вы не понимаете элементарных понятий друпала.


Вот ты клоун.

Аватар пользователя ihappy ihappy 23 июня 2014 в 19:23

"ХулиGUN" wrote:
Пускай лучше на бумажке пишет

на машинном языке ))
"ttenz" wrote:
iHappy - я один счастливый, остальные не интересны

Очень близко;)

Аватар пользователя druman druman 26 июня 2014 в 13:59

multpix wrote:
А на манеже - все теже,
выкупили очередного бесенка и гоняют его по сцене)

соскучились по инзам?


Воу-воу, чувак, полегче Smile

Аватар пользователя multpix multpix 26 июня 2014 в 14:13

"druman" wrote:
Воу-воу, чувак, полегче :)

хочешь полегче, чудик?
ты блог свой открой - http://www.drupal.ru/blog/97023
там только "дай" - и ни слова о "делюсь"
а потом сопоставь это с:
"druman" wrote:
Какие-то вы дурачки. Удачи Вам, ребята.

когда тебе вполне вменяемые камрады пытались ответить.

если ты желаешь, чтоб над тобой и дальше глумились - продолжай в том-же духе.
твою учетку дажыж вырезать не будут - смеха ради, хоть это и не педагогично.

определись - что тебе нужно: содействие или троллинг - и действуй соответственно.

Аватар пользователя druman druman 26 июня 2014 в 22:40

multpix wrote:
"druman" wrote:
Воу-воу, чувак, полегче :)

хочешь полегче, чудик?
ты блог свой открой - http://www.drupal.ru/blog/97023
там только "дай" - и ни слова о "делюсь"
а потом сопоставь это с:
"druman" wrote:
Какие-то вы дурачки. Удачи Вам, ребята.

когда тебе вполне вменяемые камрады пытались ответить.

если ты желаешь, чтоб над тобой и дальше глумились - продолжай в том-же духе.
твою учетку дажыж вырезать не будут - смеха ради, хоть это и не педагогично.

определись - что тебе нужно: содействие или троллинг - и действуй соответственно.


Ок.
Ну собственно содействие здесь не очень.