рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдЧреНрд░рджреВрдд
рдХрд┐рд╕реА рднреА рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡реЗрдм рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдВрдЧ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдХрдИ рд╕рд╛рдЗрдЯреЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдФрд░ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдереАред рджрд┐рдпрд╛ рдЧрдпрд╛:
Drupal 7 рд╕рд╛рдЗрдЯред рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ: рдПрдХ рдореЙрдбреНрдпреВрд▓ рдвреВрдВрдвреЗрдВ рдпрд╛ рд▓рд┐рдЦреЗрдВ рдЬреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдХреМрди рд╕рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЖрдпрд╛, рдЖрдк рдЗрд╕ рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрдпреБрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдЦреЛрдЬреЗрдВ
рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд╡рд┐рдХрд▓реНрдк
рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рди рдореЙрдбреНрдпреВрд▓ рд╣реИред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдиреЛрдбреНрд╕ рдФрд░ рдЯреИрдХреНрд╕реЛрдиреЙрдореА (рд╕рд╛рдордЧреНрд░реА рдкрд░ рдирдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕рд╣рд┐рдд) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
рдИрдореЗрд▓ рдиреНрдпреВрдЬрд╝рд▓реЗрдЯрд░реНрд╕ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЙрдиреНрдореБрдЦреАрдХрд░рдг рдХреА рдХрдореА рдереАред
рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк
рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕рдХреА рд╡реНрдпрд╛рдкрдХрддрд╛ рдФрд░ рдорд╛рдкрдиреАрдпрддрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП (рд╣рдорд╛рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рджрд╕реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдЙрдкрдпреБрдХреНрдд рдереА, рд▓реЗрдХрд┐рди 7.x рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХрдореА рдиреЗ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред
рдЗрд╕рд▓рд┐рдП, рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╛рдзрд╛рди рдерд╛ - рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк
рдкреВрд░реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реЛрдЧрд╛), рдЗрд╕рд▓рд┐рдП рдореИрдВ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдФрд░ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ (рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣
рдЖрдЗрдЯрдо рд╣реИ ) рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдореБрдЦреНрдп
рд╢реАрд░реНрд╖рдХ рдлрд╝реАрд▓реНрдбреНрд╕,
рдмреЙрдбреА ,
рдЗрдореЗрдЬ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рджреВрд╕рд░реЗ, рдЕрдЧрд▓рд╛ рдЪрд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЛрдбреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЖрдХреГрддрд┐ рдореЗрдВ:

рдЗрд╕
рджреГрд╢реНрдп рдореЗрдВ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдлрд╝реАрд▓реНрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛
, Nid рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЛ рдЯреЗрдореНрдкрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬрд┐рд╕рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдШрдЯрдирд╛ рдмрд╛рдж рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХреА рдЬрд╛рдПрдЧреА), рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рд╕реЗ рдЗрд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╡рд░рдг
рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд╕рд╛рдЗрдЯреЛрдВ / рд╕рднреА / рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ
рдХрд╕реНрдЯрдо_рд╕реНрдХреНрд░рд┐рдкреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБред рд╣рдореЗрдВ 4 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
custom_subs рдмрдиреЗрдЧрд╛ ред рдЕрдм рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред
рдЬрд╛рдирдХрд╛рд░реА рдлрд╝рд╛рдЗрд▓
Custom_subsults.info рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:
name = "Custom Subscriptions" description = "Allows users to follow content" core = 7.x version = 7.x-1.0 php = 5.1 scripts[] = custom_subscriptions.js
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдпрд╣рд╛рдБ рд╢рд╛рдорд┐рд▓ рдереАред
рд╕реНрдерд╛рдкрдирд╛ рдлрд╝рд╛рдЗрд▓
рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧреА, рдЬрд┐рд╕рдореЗрдВ рдлрд╝реАрд▓реНрдб
рдпреВрдЖрдИрдбреА (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рдФрд░
рдПрдирдЖрдИрдбреА (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рдЧрдИ рдиреЛрдб рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рд╣реЛрдЧреАред
Custom_subsults.install рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:
<?php function custom_subscriptions_schema() { $schema['custom_subscriptions'] = array( 'description' => t('The base table for subscriptions'), 'fields' => array( 'sid' => array( 'type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, ), 'uid' => array( 'type' => 'int', 'length' => 10, 'not null' => TRUE, ), 'nid' => array( 'type' => 'int', 'length' => 10, 'not null' => TRUE, ), ), 'primary key' => array('sid'), ); return $schema; }
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдЧреА:

рдереАрдо рд╕реЗрдЯрдЕрдк
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
рджреГрд╢реНрдп рдореЗрдВ
рдПрдирдЖрдИрдбреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рдирд╛рдо
рджреГрд╢реНрдп-рджреГрд╢реНрдп-рдлрд╝реАрд▓реНрдб - рдЖрдЗрдЯрдо - рдкреГрд╖реНрда - nid.tpl.php рд╣реИ (рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдирд╛рдо
рджреГрд╢реНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ
рдПрдбрд╡рд╛рдВрд╕ рдбреА /
рдереАрдо рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдереАрдо рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ (
рдЬрд╝реЗрди рд╕рдмрдЯреЙрдкрд┐рдХ рдЬрд┐рд╕реЗ
STARTERKIT рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓
рджреГрд╢реНрдп-рдлрд╝реАрд▓реНрдб - рдЖрдЗрдЯрдо - рдкреГрд╖реНрда - nid.tpl.php рдХреА рд╕рд╛рдордЧреНрд░реА :
<?php global $user; ?> <?php if ($user->uid != 0): ?> <?php $following = db_select('custom_subscriptions', 'cs') ->fields('cs') ->condition('uid', $user->uid) ->condition('nid', $output) ->execute() ->rowCount(); ?> <?php if ($following == 0):?> <?php print('<a href="follow/' . $output . '" class="follow">FOLLOW</a>'); ?> <?php else:?> <?php print('<a href="unfollow/' . $output . '" class="following">FOLLOWING</a>'); ?> <?php endif; ?> <?php endif; ?>
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкреНрд░рд╕реНрддреБрдд рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рджрд╕реНрдпрддрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗрд╡рд▓ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
custom_subscos рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдлрд╝реАрд▓реНрдб рд╢реАрд░реНрд╖рдХ
FOLLOW (рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рд╕реЗ
рдмрджрд▓рдХрд░ FOLLOWING (рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рд╕рджрд╕реНрдпрддрд╛ рд╣реИ)ред рдкреНрд░рддрд┐рдмрджреНрдз рдХрд╛рд░реНрд░рд╡рд╛рдИ (
рдлрд╝реЙрд▓реЛ / рдЕрдирдлрд╝реЙрд▓реЛ ) рдФрд░
рдиреА рдбреА рдиреЛрдб рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА
href рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдЧреАред
рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рддрдВрддреНрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕
рдЪреВрдВрдХрд┐ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдкрд╕ рдореЗрдВ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЗрдП рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд╣рдо рд╕рд╛рдордЧреНрд░реА рдкрд░ рдордБрдбрд░рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдлрд╝реАрд▓реНрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕ рдлрд╝реАрд▓реНрдб рдкрд░ рд╣реЛрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдХреЗ рдкрд╛рда рдХреЛ
UNFOLLOW рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣
рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред
рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА
custom_subsults.j s:
(function ($) { Drupal.behaviors.collectiveMove = { attach: function(context, settings) {
рдЕрдм рдордЬрд╝реЗрджрд╛рд░ рднрд╛рдЧ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдгред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ: рдЬрдм рдЖрдк
FOLLOW рдкреЛрд╕реНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ
, рддреЛ рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрд░рд╡рд╛рдИ (
'рдЕрдиреБрд╕рд░рдг' ) рдФрд░ рдиреЛрдб рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
UNFOLLOW рдХреЗ рд▓рд┐рдП, рддрдВрддреНрд░ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЕрд▓рдЧ (
'рдЕрдирдлрд╝реЙрд▓реЛ ') рд╣реЛрдЧреА, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдкреГрд╖реНрда рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ
рд╣реБрдХ_рдореЗрди рдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
Custom_subsults.module рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:
<?php function custom_subscriptions_menu() { $items = array(); $items['custom_subscriptions_ajax'] = array( 'title' => 'Ajax callback', 'page callback' => 'custom_subscriptions_ajax', 'access callback' => TRUE, 'type' => MENU_CALLBACK, ); return $items; }
рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ Drupal рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА
php рдЯреИрдЧ рд╕реЗрдЯ рд╣реИред
рдкреЗрдЬ рддреИрдпрд╛рд░ рд╣реИ - рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВред
Custom_subsults.module рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:
<?php function custom_subscriptions_menu() { ... } function custom_subscriptions_ajax() { global $user; if($_POST['type'] == 'follow') { if ($_POST['nid']) { db_insert('custom_subscriptions') ->fields(array( 'uid' => $user->uid, 'nid' => $_POST['nid'], )) ->execute(); print(1); } } else if($_POST['type'] == 'unfollow') { if ($_POST['nid']) { db_delete('custom_subscriptions') ->condition('uid', $user->uid) ->condition('nid', $_POST['nid']) ->execute(); print(1); } } else { print(0); } }
рдкреЛрд╕реНрдЯ- рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдПрдХреНрд╢рди (
рдлреЙрд▓реЛ / рдЕрдирдлреЙрд▓реЛ ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЯреЗрдмрд▓ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рддреЗ рдпрд╛ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ
рдпреВрдЖрдИрдбреА (рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рдФрд░
рдПрдирдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ '1' рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред
рдЕрдм рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдмрдиреА рд╣реБрдИ рд╣реИ -
рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдард┐рдд рдкреГрд╖реНрда рдкрд░
nid рдлрд╝реАрд▓реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ред
Custom_subsults.js рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:
(function ($) { Drupal.behaviors.collectiveMove = { attach: function(context, settings) { ...
рдЬрдм рд╣рдо
nid рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдирд┐рд╖реЗрдз (рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП);
- рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ nid рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ href рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ;
- рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рддреИрдпрд╛рд░ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛;
- рдПрдХ рд╕рдлрд▓ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирд╛рдо рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд▓рд┐рдВрдХ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрджрд▓реЗрдВред
рдПрдХ рдЖрдлреНрдЯрд░рд╡рд░реНрдб рдХреЗ рдмрдЬрд╛рдп
рдЗрд╕ рд▓реЗрдЦ рдиреЗ
Drupal 7 рдореЗрдВ рдиреЛрдб рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИред рдореБрдЦреНрдп рдмрд┐рдВрджреБ
рдкреЛрд╕реНрдЯ- рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
рдЖрдк рдпрд╣рд╛рдВ рддреИрдпрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:
github.com/Sacret/custom_subscos